aboutsummaryrefslogtreecommitdiff
blob: a3bd28e4f4bba88d50989f74a84d25d49e06bc07 (plain)
ofshex dumpascii
0000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 70 68 70 0a 3c 3f 70 68 70 0a 2f 2a 0a 20 2a 20 54 #!/usr/bin/env.php.<?php./*..*.T
0020 68 69 73 20 66 69 6c 65 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a his.file.is.part.of.Composer...*
0040 0a 20 2a 20 28 63 29 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 ..*.(c).Nils.Adermann.<naderman@
0060 6e 61 64 65 72 6d 61 6e 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 naderman.de>..*.....Jordi.Boggia
0080 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f no.<j.boggiano@seld.be>..*..*.Fo
00a0 72 20 74 68 65 20 66 75 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 r.the.full.copyright.and.license
00c0 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 0a 20 2a 20 74 68 65 .information,.please.view..*.the
00e0 20 6c 69 63 65 6e 73 65 20 74 68 61 74 20 69 73 20 6c 6f 63 61 74 65 64 20 61 74 20 74 68 65 20 .license.that.is.located.at.the.
0100 62 6f 74 74 6f 6d 20 6f 66 20 74 68 69 73 20 66 69 6c 65 2e 0a 20 2a 2f 0a 0a 2f 2f 20 41 76 6f bottom.of.this.file...*/..//.Avo
0120 69 64 20 41 50 43 20 63 61 75 73 69 6e 67 20 72 61 6e 64 6f 6d 20 66 61 74 61 6c 20 65 72 72 6f id.APC.causing.random.fatal.erro
0140 72 73 20 70 65 72 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 63 6f 6d 70 6f 73 rs.per.https://github.com/compos
0160 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 73 2f 32 36 34 0a 69 66 20 28 65 78 74 65 6e er/composer/issues/264.if.(exten
0180 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 61 70 63 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 sion_loaded('apc').&&.ini_get('a
01a0 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 70 63 2e pc.enable_cli').&&.ini_get('apc.
01c0 63 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 27 29 29 20 7b 0a 20 20 20 20 69 66 20 28 76 65 cache_by_default')).{.....if.(ve
01e0 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 70 68 70 76 65 72 73 69 6f 6e 28 27 61 70 63 27 29 2c rsion_compare(phpversion('apc'),
0200 20 27 33 2e 30 2e 31 32 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 69 6e 69 5f .'3.0.12',.'>=')).{.........ini_
0220 73 65 74 28 27 61 70 63 2e 63 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 27 2c 20 30 29 3b 0a set('apc.cache_by_default',.0);.
0240 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 66 77 72 69 74 65 28 53 54 44 45 ....}.else.{.........fwrite(STDE
0260 52 52 2c 20 27 57 61 72 6e 69 6e 67 3a 20 41 50 43 20 3c 3d 20 33 2e 30 2e 31 32 20 6d 61 79 20 RR,.'Warning:.APC.<=.3.0.12.may.
0280 63 61 75 73 65 20 66 61 74 61 6c 20 65 72 72 6f 72 73 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 cause.fatal.errors.when.running.
02a0 63 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 73 2e 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 20 20 composer.commands.'.PHP_EOL);...
02c0 20 20 20 20 20 20 66 77 72 69 74 65 28 53 54 44 45 52 52 2c 20 27 55 70 64 61 74 65 20 41 50 43 ......fwrite(STDERR,.'Update.APC
02e0 2c 20 6f 72 20 73 65 74 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 6f 72 20 61 70 63 2e 63 ,.or.set.apc.enable_cli.or.apc.c
0300 61 63 68 65 5f 62 79 5f 64 65 66 61 75 6c 74 20 74 6f 20 30 20 69 6e 20 79 6f 75 72 20 70 68 70 ache_by_default.to.0.in.your.php
0320 2e 69 6e 69 2e 27 2e 50 48 50 5f 45 4f 4c 29 3b 0a 20 20 20 20 7d 0a 7d 0a 0a 50 68 61 72 3a 3a .ini.'.PHP_EOL);.....}.}..Phar::
0340 6d 61 70 50 68 61 72 28 27 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 29 3b 0a 72 65 71 75 69 72 mapPhar('composer.phar');.requir
0360 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 e.'phar://composer.phar/bin/comp
0380 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a c1 oser';..__HALT_COMPILER();.?>...
03a0 74 00 00 66 01 00 00 11 00 00 00 01 00 0d 00 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 t..f.............composer.phar..
03c0 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 c5 01 00 00 d7 86 2d 55 c5 ......src/bootstrap.php......-U.
03e0 01 00 00 a8 af 32 90 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....2.............src/Composer/
0400 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 70 b5 15 00 00 d7 86 2d 55 b5 15 00 00 28 aa f2 0b IO/ConsoleIO.php......-U....(...
0420 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c ............src/Composer/IO/Null
0440 49 4f 2e 70 68 70 b3 03 00 00 d7 86 2d 55 b3 03 00 00 7e 31 13 c4 b6 01 00 00 00 00 00 00 1f 00 IO.php......-U....~1............
0460 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 ..src/Composer/IO/IOInterface.ph
0480 70 87 04 00 00 d7 86 2d 55 87 04 00 00 9f 70 87 79 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p......-U.....p.y............src
04a0 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 61 73 65 49 4f 2e 70 68 70 06 05 00 00 d7 86 2d 55 06 /Composer/IO/BaseIO.php......-U.
04c0 05 00 00 23 0e b0 2e b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...#...............src/Composer/
04e0 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 10 04 00 00 d7 86 2d 55 10 04 00 00 68 76 15 e1 b6 IO/BufferIO.php......-U....hv...
0500 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......)...src/Composer/Command/
0520 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 90 0b 00 00 d7 86 2d 55 90 0b 00 00 RunScriptCommand.php......-U....
0540 12 73 a3 34 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d .s.4........(...src/Composer/Com
0560 6d 61 6e 64 2f 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 67 3a 00 00 d7 86 2d 55 mand/DiagnoseCommand.phpg:....-U
0580 67 3a 00 00 39 88 ec e6 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 g:..9...........'...src/Composer
05a0 2f 43 6f 6d 6d 61 6e 64 2f 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 08 11 00 00 d7 /Command/ArchiveCommand.php.....
05c0 86 2d 55 08 11 00 00 b8 55 f6 aa b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f .-U.....U..........*...src/Compo
05e0 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e 64 2e 70 68 ser/Command/ClearCacheCommand.ph
0600 70 5a 05 00 00 d7 86 2d 55 5a 05 00 00 89 ec 17 3e b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 pZ.....-UZ......>............src
0620 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 89 06 00 /Composer/Command/Command.php...
0640 00 d7 86 2d 55 89 06 00 00 b5 0c 76 4a b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d ...-U......vJ........-...src/Com
0660 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 poser/Command/CreateProjectComma
0680 6e 64 2e 70 68 70 c7 31 00 00 d7 86 2d 55 c7 31 00 00 44 59 dd bf b6 01 00 00 00 00 00 00 25 00 nd.php.1....-U.1..DY..........%.
06a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d ..src/Composer/Command/AboutComm
06c0 61 6e 64 2e 70 68 70 bb 02 00 00 d7 86 2d 55 bb 02 00 00 23 7b 69 6b b6 01 00 00 00 00 00 00 2b and.php......-U....#{ik........+
06e0 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 63 72 69 70 74 41 6c ...src/Composer/Command/ScriptAl
0700 69 61 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 b2 05 00 00 d7 86 2d 55 b2 05 00 00 f1 c7 24 bd b6 01 iasCommand.php......-U......$...
0720 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 ......$...src/Composer/Command/S
0740 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 70 35 30 00 00 d7 86 2d 55 35 30 00 00 b9 ad 89 84 b6 01 howCommand.php50....-U50........
0760 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 55 ......&...src/Composer/Command/U
0780 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 2a 16 00 00 d7 86 2d 55 2a 16 00 00 cd 0a 23 c3 pdateCommand.php*.....-U*.....#.
07a0 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 ........&...src/Composer/Command
07c0 2f 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 2e 70 68 70 10 34 00 00 d7 86 2d 55 10 34 00 00 72 8f /ConfigCommand.php.4....-U.4..r.
07e0 d3 03 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 ..........'...src/Composer/Comma
0800 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 23 13 00 00 d7 86 2d 55 23 13 00 nd/InstallCommand.php#.....-U#..
0820 00 3d 03 4a 25 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f .=.J%........(...src/Composer/Co
0840 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 18 0b 00 00 d7 86 2d mmand/ValidateCommand.php......-
0860 55 18 0b 00 00 79 77 82 03 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U....yw..........'...src/Compose
0880 72 2f 43 6f 6d 6d 61 6e 64 2f 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 84 0a 00 00 r/Command/DependsCommand.php....
08a0 d7 86 2d 55 84 0a 00 00 c8 21 0c 22 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U.....!."........&...src/Comp
08c0 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 6c 09 oser/Command/SearchCommand.phpl.
08e0 00 00 d7 86 2d 55 6c 09 00 00 b6 4b 34 1e b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f ....-Ul....K4.........*...src/Co
0900 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 mposer/Command/SelfUpdateCommand
0920 2e 70 68 70 23 1a 00 00 d7 86 2d 55 23 1a 00 00 a1 23 88 29 b6 01 00 00 00 00 00 00 28 00 00 00 .php#.....-U#....#.)........(...
0940 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 4c 69 63 65 6e 73 65 73 43 6f 6d src/Composer/Command/LicensesCom
0960 6d 61 6e 64 2e 70 68 70 cf 0e 00 00 d7 86 2d 55 cf 0e 00 00 a0 ee a5 94 b6 01 00 00 00 00 00 00 mand.php......-U................
0980 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 48 6f 6d 65 43 6f 6d $...src/Composer/Command/HomeCom
09a0 6d 61 6e 64 2e 70 68 70 2b 0e 00 00 d7 86 2d 55 2b 0e 00 00 1c 5e 9a 03 b6 01 00 00 00 00 00 00 mand.php+.....-U+....^..........
09c0 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 '...src/Composer/Command/Require
09e0 43 6f 6d 6d 61 6e 64 2e 70 68 70 7e 18 00 00 d7 86 2d 55 7e 18 00 00 a1 fa 84 be b6 01 00 00 00 Command.php~.....-U~............
0a00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 75 6d 70 ...,...src/Composer/Command/Dump
0a20 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 2e 70 68 70 ff 06 00 00 d7 86 2d 55 ff 06 00 00 19 AutoloadCommand.php......-U.....
0a40 46 1d 5a b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d F.Z........&...src/Composer/Comm
0a60 61 6e 64 2f 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 2e 70 68 70 13 07 00 00 d7 86 2d 55 13 07 00 and/GlobalCommand.php......-U...
0a80 00 a9 a8 40 95 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f ...@.........&...src/Composer/Co
0aa0 6d 6d 61 6e 64 2f 52 65 6d 6f 76 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 94 0e 00 00 d7 86 2d 55 94 mmand/RemoveCommand.php......-U.
0ac0 0e 00 00 b9 3e 31 9c b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....>1.........,...src/Composer/
0ae0 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e Command/Helper/DialogHelper.php.
0b00 01 00 00 d7 86 2d 55 9e 01 00 00 95 82 8c 26 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 .....-U.......&........&...src/C
0b20 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 omposer/Command/StatusCommand.ph
0b40 70 6f 09 00 00 d7 86 2d 55 6f 09 00 00 97 1b b2 ce b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 po.....-Uo...............$...src
0b60 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 /Composer/Command/InitCommand.ph
0b80 70 0a 38 00 00 d7 86 2d 55 0a 38 00 00 9c a6 14 1f b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 p.8....-U.8..............)...src
0ba0 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 /Composer/Downloader/VcsDownload
0bc0 65 72 2e 70 68 70 f7 11 00 00 d7 86 2d 55 f7 11 00 00 ab 91 df f2 b6 01 00 00 00 00 00 00 29 00 er.php......-U................).
0be0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 52 61 72 44 6f 77 ..src/Composer/Downloader/RarDow
0c00 6e 6c 6f 61 64 65 72 2e 70 68 70 df 07 00 00 d7 86 2d 55 df 07 00 00 15 be bc 7f b6 01 00 00 00 nloader.php......-U.............
0c20 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 ...*...src/Composer/Downloader/F
0c40 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 a6 15 00 00 d7 86 2d 55 a6 15 00 00 63 8b 07 ileDownloader.php......-U....c..
0c60 ce b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f .........)...src/Composer/Downlo
0c80 61 64 65 72 2f 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 5c 0f 00 00 d7 86 2d 55 5c 0f ader/SvnDownloader.php\.....-U\.
0ca0 00 00 a8 07 8e 3d b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 .....=........0...src/Composer/D
0cc0 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 ownloader/PearPackageExtractor.p
0ce0 68 70 61 1b 00 00 d7 86 2d 55 61 1b 00 00 40 d4 d8 23 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 hpa.....-Ua...@..#........+...sr
0d00 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 6e 6c 6f 61 64 4d 61 c/Composer/Downloader/DownloadMa
0d20 6e 61 67 65 72 2e 70 68 70 91 11 00 00 d7 86 2d 55 91 11 00 00 27 6f c5 62 b6 01 00 00 00 00 00 nager.php......-U....'o.b.......
0d40 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 44 6f 77 ./...src/Composer/Downloader/Dow
0d60 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ca 01 00 00 d7 86 2d 55 ca 01 00 00 nloaderInterface.php......-U....
0d80 67 73 21 6c b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 gs!l............src/Composer/Dow
0da0 6e 6c 6f 61 64 65 72 2f 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 96 01 nloader/TransportException.php..
0dc0 00 00 d7 86 2d 55 96 01 00 00 68 22 42 72 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f ....-U....h"Br........*...src/Co
0de0 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 mposer/Downloader/PharDownloader
0e00 2e 70 68 70 e5 00 00 00 d7 86 2d 55 e5 00 00 00 de c9 1f e7 b6 01 00 00 00 00 00 00 29 00 00 00 .php......-U................)...
0e20 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 54 61 72 44 6f 77 6e 6c src/Composer/Downloader/TarDownl
0e40 6f 61 64 65 72 2e 70 68 70 e3 00 00 00 d7 86 2d 55 e3 00 00 00 cd 92 58 3f b6 01 00 00 00 00 00 oader.php......-U......X?.......
0e60 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 48 67 44 .(...src/Composer/Downloader/HgD
0e80 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 63 08 00 00 d7 86 2d 55 63 08 00 00 87 82 54 84 b6 01 00 ownloader.phpc.....-Uc.....T....
0ea0 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 .....1...src/Composer/Downloader
0ec0 2f 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 cc 00 00 00 d7 86 /ChangeReportInterface.php......
0ee0 2d 55 cc 00 00 00 af e0 a8 bf b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -U................-...src/Compos
0f00 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 2e er/Downloader/ArchiveDownloader.
0f20 70 68 70 a0 0d 00 00 d7 86 2d 55 a0 0d 00 00 d0 b6 54 6a b6 01 00 00 00 00 00 00 2f 00 00 00 73 php......-U......Tj......../...s
0f40 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 73 79 73 74 65 rc/Composer/Downloader/Filesyste
0f60 6d 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 0f 01 00 00 d7 86 2d 55 0f 01 00 00 5d 54 bd 88 b6 01 mException.php......-U....]T....
0f80 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 ..........src/Composer/Downloade
0fa0 72 2f 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 78 07 00 00 d7 86 2d 55 r/PerforceDownloader.phpx.....-U
0fc0 78 07 00 00 18 3c e9 63 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 x....<.c........)...src/Composer
0fe0 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 43 0b 00 /Downloader/ZipDownloader.phpC..
1000 00 d7 86 2d 55 43 0b 00 00 02 5d 5e 2b b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d ...-UC....]^+........*...src/Com
1020 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 47 7a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 2e poser/Downloader/GzipDownloader.
1040 70 68 70 c8 05 00 00 d7 86 2d 55 c8 05 00 00 ad e4 df d0 b6 01 00 00 00 00 00 00 29 00 00 00 73 php......-U................)...s
1060 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 47 69 74 44 6f 77 6e 6c 6f rc/Composer/Downloader/GitDownlo
1080 61 64 65 72 2e 70 68 70 66 23 00 00 d7 86 2d 55 66 23 00 00 94 64 f5 cc b6 01 00 00 00 00 00 00 ader.phpf#....-Uf#...d..........
10a0 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 76 61 6...src/Composer/Repository/Inva
10c0 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6e 00 00 00 d7 86 lidRepositoryException.phpn.....
10e0 2d 55 6e 00 00 00 e0 93 eb 98 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -Un...............+...src/Compos
1100 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 er/Repository/ArrayRepository.ph
1120 70 15 0c 00 00 d7 86 2d 55 15 0c 00 00 b4 af de 2f b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 p......-U......./........0...src
1140 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 46 69 6c 65 73 79 73 74 65 6d 52 /Composer/Repository/FilesystemR
1160 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 c0 04 00 00 d7 86 2d 55 c0 04 00 00 26 78 62 a3 b6 01 00 epository.php......-U....&xb....
1180 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 .....7...src/Composer/Repository
11a0 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 /WritableRepositoryInterface.php
11c0 89 01 00 00 d7 86 2d 55 89 01 00 00 91 2f 73 ef b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f ......-U...../s.........*...src/
11e0 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 52 65 70 6f 73 69 74 6f Composer/Repository/PearReposito
1200 72 79 2e 70 68 70 b0 15 00 00 d7 86 2d 55 b0 15 00 00 0a 2c 42 b7 b6 01 00 00 00 00 00 00 2d 00 ry.php......-U.....,B.........-.
1220 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 ..src/Composer/Repository/Reposi
1240 74 6f 72 79 4d 61 6e 61 67 65 72 2e 70 68 70 b3 07 00 00 d7 86 2d 55 b3 07 00 00 33 33 b8 ef b6 toryManager.php......-U....33...
1260 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......3...src/Composer/Reposito
1280 72 79 2f 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 0f 03 ry/WritableArrayRepository.php..
12a0 00 00 d7 86 2d 55 0f 03 00 00 be 47 17 2a b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f ....-U.....G.*........,...src/Co
12c0 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 48 75 62 44 72 69 76 mposer/Repository/Vcs/GitHubDriv
12e0 65 72 2e 70 68 70 72 27 00 00 d7 86 2d 55 72 27 00 00 22 2e 6a 30 b6 01 00 00 00 00 00 00 32 00 er.phpr'....-Ur'..".j0........2.
1300 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 ..src/Composer/Repository/Vcs/Gi
1320 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 ec 0c 00 00 d7 86 2d 55 ec 0c 00 00 tBitbucketDriver.php......-U....
1340 18 46 ff f4 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 .F..........)...src/Composer/Rep
1360 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 2e 70 68 70 01 16 00 00 d7 86 2d ository/Vcs/GitDriver.php......-
1380 55 01 16 00 00 5c 7f ee ef b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U....\...............src/Compose
13a0 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 50 65 72 66 6f 72 63 65 44 72 69 76 65 72 2e r/Repository/Vcs/PerforceDriver.
13c0 70 68 70 21 0a 00 00 d7 86 2d 55 21 0a 00 00 8d 80 d9 6b b6 01 00 00 00 00 00 00 29 00 00 00 73 php!.....-U!......k........)...s
13e0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 53 76 6e 44 72 rc/Composer/Repository/Vcs/SvnDr
1400 69 76 65 72 2e 70 68 70 b2 19 00 00 d7 86 2d 55 b2 19 00 00 cb c2 a0 57 b6 01 00 00 00 00 00 00 iver.php......-U.......W........
1420 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 2...src/Composer/Repository/Vcs/
1440 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 89 02 00 00 d7 86 2d 55 89 02 VcsDriverInterface.php......-U..
1460 00 00 70 4f e3 a4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ..pO..........(...src/Composer/R
1480 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 44 72 69 76 65 72 2e 70 68 70 e0 12 00 00 d7 86 epository/Vcs/HgDriver.php......
14a0 2d 55 e0 12 00 00 f1 91 e7 b6 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -U................)...src/Compos
14c0 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 2e 70 68 70 d1 er/Repository/Vcs/VcsDriver.php.
14e0 05 00 00 d7 86 2d 55 d1 05 00 00 e5 25 06 52 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 .....-U.....%.R........1...src/C
1500 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 48 67 42 69 74 62 75 63 6b omposer/Repository/Vcs/HgBitbuck
1520 65 74 44 72 69 76 65 72 2e 70 68 70 f4 0d 00 00 d7 86 2d 55 f4 0d 00 00 98 e1 57 f5 b6 01 00 00 etDriver.php......-U......W.....
1540 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....4...src/Composer/Repository/
1560 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 InstalledArrayRepository.php....
1580 d7 86 2d 55 a3 00 00 00 2f f6 7e 3e b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U..../.~>........7...src/Comp
15a0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 oser/Repository/RepositorySecuri
15c0 74 79 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6f 00 00 00 d7 86 2d 55 6f 00 00 00 70 d5 ab aa b6 tyException.phpo.....-Uo...p....
15e0 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......)...src/Composer/Reposito
1600 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 40 1d 00 00 d7 86 2d 55 40 1d 00 00 ry/VcsRepository.php@.....-U@...
1620 83 b2 a3 ab b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 ................src/Composer/Rep
1640 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 9d 0e ository/PlatformRepository.php..
1660 00 00 d7 86 2d 55 9d 0e 00 00 b5 e1 c7 d8 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f ....-U................9...src/Co
1680 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 mposer/Repository/InstalledFiles
16a0 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 d7 86 2d 55 a3 00 00 00 56 ystemRepository.php......-U....V
16c0 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f .._......../...src/Composer/Repo
16e0 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 08 09 sitory/CompositeRepository.php..
1700 00 00 d7 86 2d 55 08 09 00 00 34 fa 03 45 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f ....-U....4..E........8...src/Co
1720 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 mposer/Repository/InstalledRepos
1740 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 d7 86 2d 55 87 00 00 00 18 a3 itoryInterface.php......-U......
1760 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 9p............src/Composer/Repos
1780 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a4 3e 00 00 itory/ComposerRepository.php.>..
17a0 d7 86 2d 55 a4 3e 00 00 de e8 0e 01 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U.>............../...src/Comp
17c0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 49 oser/Repository/Pear/DependencyI
17e0 6e 66 6f 2e 70 68 70 71 01 00 00 d7 86 2d 55 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 00 00 38 nfo.phpq.....-Uq...f.T.........8
1800 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f ...src/Composer/Repository/Pear/
1820 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 2e 70 68 70 25 16 00 00 d7 PackageDependencyParser.php%....
1840 86 2d 55 25 16 00 00 06 6a 3f 93 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f .-U%....j?.........,...src/Compo
1860 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e 66 6f 2e ser/Repository/Pear/ChannelInfo.
1880 70 68 70 c4 01 00 00 d7 86 2d 55 c4 01 00 00 3a 54 2a c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 php......-U....:T*.............s
18a0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e rc/Composer/Repository/Pear/Chan
18c0 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6e 06 00 00 d7 86 2d 55 6e 06 00 00 1c 9a 38 15 b6 01 00 nelReader.phpn.....-Un.....8....
18e0 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 .....,...src/Composer/Repository
1900 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 b0 03 00 00 d7 86 2d 55 b0 03 00 /Pear/PackageInfo.php......-U...
1920 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 .............5...src/Composer/Re
1940 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 pository/Pear/DependencyConstrai
1960 6e 74 2e 70 68 70 71 02 00 00 d7 86 2d 55 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 34 00 nt.phpq.....-Uq...9..=........4.
1980 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 ..src/Composer/Repository/Pear/C
19a0 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 70 26 09 00 00 d7 86 2d 55 26 09 hannelRest11Reader.php&.....-U&.
19c0 00 00 f2 55 62 08 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ...Ub.........,...src/Composer/R
19e0 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 epository/Pear/ReleaseInfo.php..
1a00 00 00 d7 86 2d 55 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f ....-U....o...........2...src/Co
1a20 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 61 6e 6e mposer/Repository/Pear/BaseChann
1a40 65 6c 52 65 61 64 65 72 2e 70 68 70 36 05 00 00 d7 86 2d 55 36 05 00 00 2e 66 69 21 b6 01 00 00 elReader.php6.....-U6....fi!....
1a60 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....4...src/Composer/Repository/
1a80 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 2e 70 68 70 c1 09 00 00 Pear/ChannelRest10Reader.php....
1aa0 d7 86 2d 55 c1 09 00 00 04 4f 80 eb b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U.....O........../...src/Comp
1ac0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser/Repository/RepositoryInterf
1ae0 61 63 65 2e 70 68 70 d4 01 00 00 d7 86 2d 55 d4 01 00 00 f2 90 9f c9 b6 01 00 00 00 00 00 00 2e ace.php......-U.................
1b00 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 41 72 74 69 66 ...src/Composer/Repository/Artif
1b20 61 63 74 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 eb 0a 00 00 d7 86 2d 55 eb 0a 00 00 9a cf 6f actRepository.php......-U......o
1b40 f0 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 .........-...src/Composer/Reposi
1b60 74 6f 72 79 2f 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 47 03 00 00 d7 86 tory/PackageRepository.phpG.....
1b80 2d 55 47 03 00 00 ed 04 3a 6b b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -UG.....:k........(...src/Compos
1ba0 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 ff 06 er/Package/CompletePackage.php..
1bc0 00 00 d7 86 2d 55 ff 06 00 00 6f 2b e3 09 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f ....-U....o+..........+...src/Co
1be0 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 mposer/Package/Dumper/ArrayDumpe
1c00 72 2e 70 68 70 ec 0b 00 00 d7 86 2d 55 ec 0b 00 00 aa 96 7f e6 b6 01 00 00 00 00 00 00 37 00 00 r.php......-U................7..
1c20 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 .src/Composer/Package/Loader/Inv
1c40 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 d7 86 2d 55 alidPackageException.phpE.....-U
1c60 45 02 00 00 78 62 13 be b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 E...xb..........*...src/Composer
1c80 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4a 73 6f 6e 4c 6f 61 64 65 72 2e 70 68 70 f9 01 /Package/Loader/JsonLoader.php..
1ca0 00 00 d7 86 2d 55 f9 01 00 00 21 7e 88 7b b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ....-U....!~.{......../...src/Co
1cc0 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 mposer/Package/Loader/LoaderInte
1ce0 72 66 61 63 65 2e 70 68 70 b2 00 00 00 d7 86 2d 55 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 rface.php......-U.....}.........
1d00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 .+...src/Composer/Package/Loader
1d20 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 08 1b 00 00 d7 86 2d 55 08 1b 00 00 47 59 09 8a /ArrayLoader.php......-U....GY..
1d40 b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........5...src/Composer/Package
1d60 2f 4c 6f 61 64 65 72 2f 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 /Loader/ValidatingArrayLoader.ph
1d80 70 d9 2f 00 00 d7 86 2d 55 d9 2f 00 00 31 af 85 4b b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 p./....-U./..1..K........1...src
1da0 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 52 6f 6f 74 50 61 63 /Composer/Package/Loader/RootPac
1dc0 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 53 22 00 00 d7 86 2d 55 53 22 00 00 f0 a8 1d 3c b6 01 kageLoader.phpS"....-US".....<..
1de0 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c ..........src/Composer/Package/L
1e00 6f 63 6b 65 72 2e 70 68 70 de 1c 00 00 d7 86 2d 55 de 1c 00 00 36 14 68 d0 b6 01 00 00 00 00 00 ocker.php......-U....6.h........
1e20 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 50 61 63 6b 61 67 .)...src/Composer/Package/Packag
1e40 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 5f 07 00 00 d7 86 2d 55 5f 07 00 00 e6 88 b9 82 b6 01 eInterface.php_.....-U_.........
1e60 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 42 ......$...src/Composer/Package/B
1e80 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 4d 0b 00 00 d7 86 2d 55 4d 0b 00 00 b7 0b 25 fe b6 01 asePackage.phpM.....-UM.....%...
1ea0 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 56 ......0...src/Composer/Package/V
1ec0 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 2e 70 68 70 08 09 00 00 d7 86 ersion/VersionSelector.php......
1ee0 2d 55 08 09 00 00 0c 45 07 58 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -U.....E.X............src/Compos
1f00 65 72 2f 50 61 63 6b 61 67 65 2f 56 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 er/Package/Version/VersionParser
1f20 2e 70 68 70 0c 2e 00 00 d7 86 2d 55 0c 2e 00 00 17 2f 40 56 b6 01 00 00 00 00 00 00 31 00 00 00 .php......-U...../@V........1...
1f40 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 src/Composer/Package/CompletePac
1f60 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f5 01 00 00 d7 86 2d 55 f5 01 00 00 a6 ca 81 kageInterface.php......-U.......
1f80 f2 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 .........-...src/Composer/Packag
1fa0 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b4 01 00 00 d7 86 e/RootPackageInterface.php......
1fc0 2d 55 b4 01 00 00 ea 71 4b d0 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -U.....qK.........$...src/Compos
1fe0 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 65 2e 70 68 70 6e 04 00 00 d7 86 er/Package/RootPackage.phpn.....
2000 2d 55 6e 04 00 00 e1 41 43 4f b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -Un....ACO........3...src/Compos
2020 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 65 72 49 6e 74 65 er/Package/Archiver/ArchiverInte
2040 72 66 61 63 65 2e 70 68 70 ef 00 00 00 d7 86 2d 55 ef 00 00 00 07 3c ca b8 b6 01 00 00 00 00 00 rface.php......-U.....<.........
2060 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 .7...src/Composer/Package/Archiv
2080 65 72 2f 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 1f 01 00 00 er/ComposerExcludeFilter.php....
20a0 d7 86 2d 55 1f 01 00 00 8b 53 5a 30 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U.....SZ0............src/Comp
20c0 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 50 68 61 72 41 72 63 68 69 76 oser/Package/Archiver/PharArchiv
20e0 65 72 2e 70 68 70 5b 03 00 00 d7 86 2d 55 5b 03 00 00 ca 35 cd f8 b6 01 00 00 00 00 00 00 33 00 er.php[.....-U[....5..........3.
2100 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f ..src/Composer/Package/Archiver/
2120 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 91 06 00 00 d7 86 2d 55 91 06 00 BaseExcludeFilter.php......-U...
2140 00 11 04 4d f9 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 ...M.........2...src/Composer/Pa
2160 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e ckage/Archiver/GitExcludeFilter.
2180 70 68 70 77 03 00 00 d7 86 2d 55 77 03 00 00 4c 67 55 bb b6 01 00 00 00 00 00 00 37 00 00 00 73 phpw.....-Uw...LgU.........7...s
21a0 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 rc/Composer/Package/Archiver/Arc
21c0 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 2e 70 68 70 bf 04 00 00 d7 86 2d 55 bf 04 hivableFilesFinder.php......-U..
21e0 00 00 8e 63 45 6c b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 ...cEl........0...src/Composer/P
2200 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2e 70 ackage/Archiver/ArchiveManager.p
2220 68 70 27 0c 00 00 d7 86 2d 55 27 0c 00 00 e9 1b 89 f4 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 hp'.....-U'...............1...sr
2240 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 48 67 45 78 c/Composer/Package/Archiver/HgEx
2260 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 13 05 00 00 d7 86 2d 55 13 05 00 00 7e 94 0e b8 b6 cludeFilter.php......-U....~....
2280 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......)...src/Composer/Package/
22a0 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 de 03 00 00 d7 86 2d 55 de 03 00 00 RootAliasPackage.php......-U....
22c0 d5 12 3e 05 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 ..>.............src/Composer/Pac
22e0 6b 61 67 65 2f 50 61 63 6b 61 67 65 2e 70 68 70 c4 1a 00 00 d7 86 2d 55 c4 1a 00 00 84 f4 13 11 kage/Package.php......-U........
2300 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........%...src/Composer/Package
2320 2f 41 6c 69 61 73 50 61 63 6b 61 67 65 2e 70 68 70 57 16 00 00 d7 86 2d 55 57 16 00 00 54 2f 59 /AliasPackage.phpW.....-UW...T/Y
2340 c1 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 .............src/Composer/Packag
2360 65 2f 4c 69 6e 6b 2e 70 68 70 2a 05 00 00 d7 86 2d 55 2a 05 00 00 1d 5f 92 85 b6 01 00 00 00 00 e/Link.php*.....-U*...._........
2380 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 ..7...src/Composer/Package/LinkC
23a0 6f 6e 73 74 72 61 69 6e 74 2f 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 ea 01 00 onstraint/EmptyConstraint.php...
23c0 00 d7 86 2d 55 ea 01 00 00 00 ec 1b be b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d ...-U................7...src/Com
23e0 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c poser/Package/LinkConstraint/Mul
2400 74 69 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 67 04 00 00 d7 86 2d 55 67 04 00 00 73 15 33 06 tiConstraint.phpg.....-Ug...s.3.
2420 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........9...src/Composer/Package
2440 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e /LinkConstraint/VersionConstrain
2460 74 2e 70 68 70 c9 08 00 00 d7 86 2d 55 c9 08 00 00 79 3f b3 d8 b6 01 00 00 00 00 00 00 3a 00 00 t.php......-U....y?..........:..
2480 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 .src/Composer/Package/LinkConstr
24a0 61 69 6e 74 2f 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 70 02 00 00 d7 aint/SpecificConstraint.phpp....
24c0 86 2d 55 70 02 00 00 5f 84 88 59 b6 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f .-Up..._..Y........?...src/Compo
24e0 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 69 6e 6b 43 ser/Package/LinkConstraint/LinkC
2500 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 d7 86 2d 55 15 01 onstraintInterface.php......-U..
2520 00 00 e5 fe 87 a2 b6 01 00 00 00 00 00 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 ..................src/Composer/C
2540 61 63 68 65 2e 70 68 70 2a 10 00 00 d7 86 2d 55 2a 10 00 00 96 75 9e c1 b6 01 00 00 00 00 00 00 ache.php*.....-U*....u..........
2560 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 3...src/Composer/DependencyResol
2580 76 65 72 2f 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 91 01 00 00 d7 86 2d 55 91 ver/PolicyInterface.php......-U.
25a0 01 00 00 42 18 9f b6 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...B...........+...src/Composer/
25c0 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 25 0a DependencyResolver/RuleSet.php%.
25e0 00 00 d7 86 2d 55 25 0a 00 00 39 7a 09 0e b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f ....-U%...9z..........6...src/Co
2600 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 mposer/DependencyResolver/Solver
2620 42 75 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 01 00 00 d7 86 2d 55 98 01 00 00 7f 22 71 4e BugException.php......-U....."qN
2640 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 ........1...src/Composer/Depende
2660 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 1b 17 00 ncyResolver/DefaultPolicy.php...
2680 00 d7 86 2d 55 1b 17 00 00 89 16 26 97 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d ...-U......&.........-...src/Com
26a0 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 63 69 73 69 6f poser/DependencyResolver/Decisio
26c0 6e 73 2e 70 68 70 51 0f 00 00 d7 86 2d 55 51 0f 00 00 3f 98 ac 24 b6 01 00 00 00 00 00 00 31 00 ns.phpQ.....-UQ...?..$........1.
26e0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ..src/Composer/DependencyResolve
2700 72 2f 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 2e 70 68 70 e7 03 00 00 d7 86 2d 55 e7 03 00 00 97 r/RuleWatchNode.php......-U.....
2720 de 12 c8 b6 01 00 00 00 00 00 00 3b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 ...........;...src/Composer/Depe
2740 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 ndencyResolver/SolverProblemsExc
2760 65 70 74 69 6f 6e 2e 70 68 70 25 04 00 00 d7 86 2d 55 25 04 00 00 54 1a ed 50 b6 01 00 00 00 00 eption.php%.....-U%...T..P......
2780 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 ../...src/Composer/DependencyRes
27a0 6f 6c 76 65 72 2f 54 72 61 6e 73 61 63 74 69 6f 6e 2e 70 68 70 d4 13 00 00 d7 86 2d 55 d4 13 00 olver/Transaction.php......-U...
27c0 00 a0 33 f4 1b b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 ..3..........@...src/Composer/De
27e0 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 6e 69 6e 73 pendencyResolver/Operation/Unins
2800 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 49 02 00 00 d7 86 2d 55 49 02 00 00 46 fb c2 tallOperation.phpI.....-UI...F..
2820 c9 b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 .........=...src/Composer/Depend
2840 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 65 encyResolver/Operation/UpdateOpe
2860 72 61 74 69 6f 6e 2e 70 68 70 68 03 00 00 d7 86 2d 55 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 ration.phph.....-Uh....S.]......
2880 00 00 49 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 ..I...src/Composer/DependencyRes
28a0 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c olver/Operation/MarkAliasInstall
28c0 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d0 02 00 00 d7 86 2d 55 d0 02 00 00 78 55 5a 61 b6 edOperation.php......-U....xUZa.
28e0 01 00 00 00 00 00 00 3e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e .......>...src/Composer/Dependen
2900 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 cyResolver/Operation/InstallOper
2920 61 74 69 6f 6e 2e 70 68 70 43 02 00 00 d7 86 2d 55 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 ation.phpC.....-UC....\.*.......
2940 00 3d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f .=...src/Composer/DependencyReso
2960 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 2e 70 lver/Operation/SolverOperation.p
2980 68 70 eb 01 00 00 d7 86 2d 55 eb 01 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 hp......-U................K...sr
29a0 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 c/Composer/DependencyResolver/Op
29c0 65 72 61 74 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 eration/MarkAliasUninstalledOper
29e0 61 74 69 6f 6e 2e 70 68 70 d6 02 00 00 d7 86 2d 55 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 ation.php......-U...._i.........
2a00 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f .@...src/Composer/DependencyReso
2a20 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 lver/Operation/OperationInterfac
2a40 65 2e 70 68 70 d3 00 00 00 d7 86 2d 55 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 28 00 00 e.php......-U......&.........(..
2a60 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .src/Composer/DependencyResolver
2a80 2f 50 6f 6f 6c 2e 70 68 70 27 22 00 00 d7 86 2d 55 27 22 00 00 d8 9b 1d 78 b6 01 00 00 00 00 00 /Pool.php'"....-U'".....x.......
2aa0 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f .(...src/Composer/DependencyReso
2ac0 6c 76 65 72 2f 52 75 6c 65 2e 70 68 70 10 16 00 00 d7 86 2d 55 10 16 00 00 c1 0e 5b 94 b6 01 00 lver/Rule.php......-U......[....
2ae0 00 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 .....4...src/Composer/Dependency
2b00 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 5d 1b 00 Resolver/RuleSetGenerator.php]..
2b20 00 d7 86 2d 55 5d 1b 00 00 34 93 d1 39 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d ...-U]...4..9......../...src/Com
2b40 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 62 75 67 53 6f poser/DependencyResolver/DebugSo
2b60 6c 76 65 72 2e 70 68 70 89 06 00 00 d7 86 2d 55 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 lver.php......-U................
2b80 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 3...src/Composer/DependencyResol
2ba0 76 65 72 2f 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 d7 86 2d 55 14 ver/RuleSetIterator.php......-U.
2bc0 06 00 00 7d f5 c7 f9 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...}...........2...src/Composer/
2be0 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 43 68 61 69 DependencyResolver/RuleWatchChai
2c00 6e 2e 70 68 70 69 01 00 00 d7 86 2d 55 69 01 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 2a 00 00 n.phpi.....-Ui...h..,........*..
2c20 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .src/Composer/DependencyResolver
2c40 2f 53 6f 6c 76 65 72 2e 70 68 70 09 37 00 00 d7 86 2d 55 09 37 00 00 26 14 84 b0 b6 01 00 00 00 /Solver.php.7....-U.7..&........
2c60 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 ...+...src/Composer/DependencyRe
2c80 73 6f 6c 76 65 72 2f 52 65 71 75 65 73 74 2e 70 68 70 cc 04 00 00 d7 86 2d 55 cc 04 00 00 99 a6 solver/Request.php......-U......
2ca0 f2 e4 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e ..........+...src/Composer/Depen
2cc0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 17 14 00 00 d7 86 2d dencyResolver/Problem.php......-
2ce0 55 17 14 00 00 c8 20 53 90 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U......S.........2...src/Compose
2d00 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 r/DependencyResolver/RuleWatchGr
2d20 61 70 68 2e 70 68 70 dc 06 00 00 d7 86 2d 55 dc 06 00 00 89 03 0f 38 b6 01 00 00 00 00 00 00 2d aph.php......-U.......8........-
2d40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2f 43 6f 6e 66 69 67 53 6f 75 ...src/Composer/Config/ConfigSou
2d60 72 63 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ae 01 00 00 d7 86 2d 55 ae 01 00 00 36 4a 5b aa rceInterface.php......-U....6J[.
2d80 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2f ........(...src/Composer/Config/
2da0 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 2e 70 68 70 7d 0c 00 00 d7 86 2d 55 7d 0c 00 00 JsonConfigSource.php}.....-U}...
2dc0 0f e8 c7 20 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 ............$...src/Composer/Plu
2de0 67 69 6e 2f 50 6c 75 67 69 6e 45 76 65 6e 74 73 2e 70 68 70 a4 00 00 00 d7 86 2d 55 a4 00 00 00 gin/PluginEvents.php......-U....
2e00 30 ef de 58 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 0..X........$...src/Composer/Plu
2e20 67 69 6e 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 e2 02 00 00 d7 86 2d 55 e2 02 00 00 gin/CommandEvent.php......-U....
2e40 b3 c6 c7 57 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 ...W........,...src/Composer/Plu
2e60 67 69 6e 2f 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2e 70 68 70 60 02 00 00 gin/PreFileDownloadEvent.php`...
2e80 d7 86 2d 55 60 02 00 00 00 39 2d ce b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 ..-U`....9-.........'...src/Comp
2ea0 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f4 oser/Plugin/PluginInterface.php.
2ec0 00 00 00 d7 86 2d 55 f4 00 00 00 0c 31 89 25 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 .....-U.....1.%........%...src/C
2ee0 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 2e 70 68 70 omposer/Plugin/PluginManager.php
2f00 76 17 00 00 d7 86 2d 55 76 17 00 00 9a 55 9d 69 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f v.....-Uv....U.i............src/
2f20 43 6f 6d 70 6f 73 65 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 57 2d 00 00 d7 86 2d 55 57 2d 00 00 Composer/Factory.phpW-....-UW-..
2f40 85 e6 25 5f b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 ..%_............src/Composer/Uti
2f60 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 34 26 00 00 d7 86 2d 55 34 26 00 00 52 6c 97 87 l/Filesystem.php4&....-U4&..Rl..
2f80 b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 ............src/Composer/Util/Gi
2fa0 74 48 75 62 2e 70 68 70 5e 11 00 00 d7 86 2d 55 5e 11 00 00 8c f9 06 58 b6 01 00 00 00 00 00 00 tHub.php^.....-U^......X........
2fc0 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 43 6f 6d 70 6f 73 65 72 4d 69 $...src/Composer/Util/ComposerMi
2fe0 72 72 6f 72 2e 70 68 70 b1 04 00 00 d7 86 2d 55 b1 04 00 00 ad bd f8 d8 b6 01 00 00 00 00 00 00 rror.php......-U................
3000 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 65 72 66 6f 72 63 65 2e 70 ....src/Composer/Util/Perforce.p
3020 68 70 08 33 00 00 d7 86 2d 55 08 33 00 00 82 3d 65 2e b6 01 00 00 00 00 00 00 25 00 00 00 73 72 hp.3....-U.3...=e.........%...sr
3040 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e c/Composer/Util/ProcessExecutor.
3060 70 68 70 ee 06 00 00 d7 86 2d 55 ee 06 00 00 d4 03 05 c0 b6 01 00 00 00 00 00 00 19 00 00 00 73 php......-U....................s
3080 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 2e 70 68 70 08 19 00 00 d7 86 2d 55 rc/Composer/Util/Git.php......-U
30a0 08 19 00 00 d3 60 6a 21 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .....`j!........&...src/Composer
30c0 2f 55 74 69 6c 2f 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 6b 25 00 00 d7 86 /Util/RemoteFilesystem.phpk%....
30e0 2d 55 6b 25 00 00 ac 95 9c 08 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -Uk%..............*...src/Compos
3100 65 72 2f 55 74 69 6c 2f 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 er/Util/StreamContextFactory.php
3120 e2 0c 00 00 d7 86 2d 55 e2 0c 00 00 1b d0 0b 42 b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f ......-U.......B........%...src/
3140 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 Composer/Util/ConfigValidator.ph
3160 70 32 0e 00 00 d7 86 2d 55 32 0e 00 00 f6 13 37 2e b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 p2.....-U2.....7........."...src
3180 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 /Composer/Util/ErrorHandler.php.
31a0 02 00 00 d7 86 2d 55 14 02 00 00 b4 40 85 e6 b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 .....-U.....@..............src/C
31c0 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 41 75 74 68 48 65 6c 70 65 72 2e 70 68 70 cc 03 00 00 d7 omposer/Util/AuthHelper.php.....
31e0 86 2d 55 cc 03 00 00 9c bc 8d c0 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f .-U................+...src/Compo
3200 73 65 72 2f 55 74 69 6c 2f 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 2e 70 ser/Util/SpdxLicenseIdentifier.p
3220 68 70 36 0a 00 00 d7 86 2d 55 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 24 00 00 00 73 72 hp6.....-U6....6.o........$...sr
3240 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 2e 70 c/Composer/Util/NoProxyPattern.p
3260 68 70 be 06 00 00 d7 86 2d 55 be 06 00 00 5a 2b b0 6d b6 01 00 00 00 00 00 00 19 00 00 00 73 72 hp......-U....Z+.m............sr
3280 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 47 11 00 00 d7 86 2d 55 47 c/Composer/Util/Svn.phpG.....-UG
32a0 11 00 00 04 18 44 a7 b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....D.............src/Composer/
32c0 43 6f 6d 70 6f 73 65 72 2e 70 68 70 07 09 00 00 d7 86 2d 55 07 09 00 00 7a 6c 60 53 b6 01 00 00 Composer.php......-U....zl`S....
32e0 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 4d 61 ....%...src/Composer/Json/JsonMa
3300 6e 69 70 75 6c 61 74 6f 72 2e 70 68 70 a1 27 00 00 d7 86 2d 55 a1 27 00 00 ec df e6 6c b6 01 00 nipulator.php.'....-U.'.....l...
3320 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 .........src/Composer/Json/JsonF
3340 69 6c 65 2e 70 68 70 12 13 00 00 d7 86 2d 55 12 13 00 00 6f f6 85 c1 b6 01 00 00 00 00 00 00 23 ile.php......-U....o...........#
3360 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 46 6f 72 6d 61 74 74 ...src/Composer/Json/JsonFormatt
3380 65 72 2e 70 68 70 07 06 00 00 d7 86 2d 55 07 06 00 00 63 96 5d 59 b6 01 00 00 00 00 00 00 2d 00 er.php......-U....c.]Y........-.
33a0 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 4a 73 6f 6e 2f 4a 73 6f 6e 56 61 6c 69 64 61 74 69 ..src/Composer/Json/JsonValidati
33c0 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 5c 01 00 00 d7 86 2d 55 5c 01 00 00 2e 58 f3 dc b6 onException.php\.....-U\....X...
33e0 01 00 00 00 00 00 00 17 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2e 70 ...........src/Composer/Config.p
3400 68 70 d6 17 00 00 d7 86 2d 55 d6 17 00 00 17 37 e5 f4 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 hp......-U.....7..........9...sr
3420 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 c/Composer/EventDispatcher/Event
3440 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 d7 86 2d 55 a9 SubscriberInterface.php......-U.
3460 00 00 00 68 b7 01 30 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ...h..0........&...src/Composer/
3480 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 2e 70 68 70 a0 02 00 00 d7 86 2d EventDispatcher/Event.php......-
34a0 55 a0 02 00 00 b1 99 6a ef b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 U......j.........0...src/Compose
34c0 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 r/EventDispatcher/EventDispatche
34e0 72 2e 70 68 70 9a 1b 00 00 d7 86 2d 55 9a 1b 00 00 06 57 03 18 b6 01 00 00 00 00 00 00 1d 00 00 r.php......-U.....W.............
3500 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 b5 02 .src/Composer/Script/Event.php..
3520 00 00 d7 86 2d 55 b5 02 00 00 6c 74 a6 4d b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ....-U....lt.M........$...src/Co
3540 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 50 04 mposer/Script/ScriptEvents.phpP.
3560 00 00 d7 86 2d 55 50 04 00 00 00 ec 68 51 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ....-UP.....hQ........$...src/Co
3580 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 57 00 mposer/Script/CommandEvent.phpW.
35a0 00 00 d7 86 2d 55 57 00 00 00 a3 56 5a 74 b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f ....-UW....VZt........$...src/Co
35c0 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 9c 00 mposer/Script/PackageEvent.php..
35e0 00 00 d7 86 2d 55 9c 00 00 00 a7 ff c9 0d b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f ....-U................(...src/Co
3600 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 73 2e 70 mposer/Installer/PackageEvents.p
3620 68 70 b8 01 00 00 d7 86 2d 55 b8 01 00 00 64 62 d8 73 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp......-U....db.s........)...sr
3640 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 45 76 c/Composer/Installer/InstallerEv
3660 65 6e 74 2e 70 68 70 0e 06 00 00 d7 86 2d 55 0e 06 00 00 6c d4 7a 69 b6 01 00 00 00 00 00 00 28 ent.php......-U....l.zi........(
3680 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4e 6f 6f 70 49 6e ...src/Composer/Installer/NoopIn
36a0 73 74 61 6c 6c 65 72 2e 70 68 70 2b 05 00 00 d7 86 2d 55 2b 05 00 00 c0 b7 4d 7d b6 01 00 00 00 staller.php+.....-U+.....M}.....
36c0 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4d 65 .../...src/Composer/Installer/Me
36e0 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 9c 04 00 00 d7 86 2d 55 9c 04 tapackageInstaller.php......-U..
3700 00 00 c6 12 c5 21 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 .....!........(...src/Composer/I
3720 6e 73 74 61 6c 6c 65 72 2f 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 56 11 00 00 d7 86 nstaller/PearInstaller.phpV.....
3740 2d 55 56 11 00 00 9d 7a f0 01 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 -UV....z..........+...src/Compos
3760 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 er/Installer/ProjectInstaller.ph
3780 70 1d 06 00 00 d7 86 2d 55 1d 06 00 00 2a 30 40 50 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 p......-U....*0@P........+...src
37a0 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 /Composer/Installer/LibraryInsta
37c0 6c 6c 65 72 2e 70 68 70 88 1c 00 00 d7 86 2d 55 88 1c 00 00 0a 6e 42 86 b6 01 00 00 00 00 00 00 ller.php......-U.....nB.........
37e0 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 ....src/Composer/Installer/Insta
3800 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2e 70 68 70 40 14 00 00 d7 86 2d 55 40 14 00 00 9b f6 llationManager.php@.....-U@.....
3820 ab 03 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 ..........*...src/Composer/Insta
3840 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 2e 70 68 70 de 00 00 00 d7 86 2d 55 ller/InstallerEvents.php......-U
3860 de 00 00 00 ec 9f 40 47 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 ......@G........*...src/Composer
3880 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 4a 06 /Installer/PluginInstaller.phpJ.
38a0 00 00 d7 86 2d 55 4a 06 00 00 ab 10 e8 56 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f ....-UJ......V........-...src/Co
38c0 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 mposer/Installer/InstallerInterf
38e0 61 63 65 2e 70 68 70 c5 02 00 00 d7 86 2d 55 c5 02 00 00 48 53 93 a1 b6 01 00 00 00 00 00 00 27 ace.php......-U....HS..........'
3900 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 61 63 6b 61 67 ...src/Composer/Installer/Packag
3920 65 45 76 65 6e 74 2e 70 68 70 89 03 00 00 d7 86 2d 55 89 03 00 00 02 91 3a a0 b6 01 00 00 00 00 eEvent.php......-U......:.......
3940 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 41 70 70 6c 69 ..$...src/Composer/Console/Appli
3960 63 61 74 69 6f 6e 2e 70 68 70 18 22 00 00 d7 86 2d 55 18 22 00 00 94 4c 54 dc b6 01 00 00 00 00 cation.php."....-U."...LT.......
3980 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c 65 2f 48 74 6d 6c 4f ..,...src/Composer/Console/HtmlO
39a0 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 ce 05 00 00 d7 86 2d 55 ce 05 00 00 e0 b9 utputFormatter.php......-U......
39c0 9f 84 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 75 74 6f 6c ..........+...src/Composer/Autol
39e0 6f 61 64 2f 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 5a 45 00 00 d7 86 2d oad/AutoloadGenerator.phpZE....-
3a00 55 5a 45 00 00 a3 dc a7 98 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 UZE..............+...src/Compose
3a20 72 2f 41 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 r/Autoload/ClassMapGenerator.php
3a40 0e 0f 00 00 d7 86 2d 55 0e 0f 00 00 f9 6d 49 dc b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f ......-U.....mI.............src/
3a60 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 85 75 00 00 d7 86 2d 55 85 75 Composer/Installer.php.u....-U.u
3a80 00 00 24 9a 09 cf b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 41 ..$...........%...src/Composer/A
3aa0 75 74 6f 6c 6f 61 64 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 94 30 00 00 d7 86 2d 55 94 utoload/ClassLoader.php.0....-U.
3ac0 30 00 00 b8 4c 68 a6 b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 70 64 78 2d 69 64 65 6e 0...Lh.............res/spdx-iden
3ae0 74 69 66 69 65 72 2e 6a 73 6f 6e 44 10 00 00 d7 86 2d 55 44 10 00 00 2a 4f 69 f2 b6 01 00 00 00 tifier.jsonD.....-UD...*Oi......
3b00 00 00 00 18 00 00 00 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 6d 61 2e 6a 73 6f 6e c1 .......res/composer-schema.json.
3b20 51 00 00 d7 86 2d 55 c1 51 00 00 90 8c b8 da b6 01 00 00 00 00 00 00 1f 00 00 00 73 72 63 2f 43 Q....-U.Q..................src/C
3b40 6f 6d 70 6f 73 65 72 2f 49 4f 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 00 24 00 00 d7 86 omposer/IO/hiddeninput.exe.$....
3b60 2d 55 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d -U.$.....v........?...vendor/sym
3b80 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 fony/process/Symfony/Component/P
3ba0 72 6f 63 65 73 73 2f 50 68 70 50 72 6f 63 65 73 73 2e 70 68 70 d7 02 00 00 d7 86 2d 55 d7 02 00 rocess/PhpProcess.php......-U...
3bc0 00 05 8a 80 ab b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .............E...vendor/symfony/
3be0 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 process/Symfony/Component/Proces
3c00 73 2f 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 7e 04 00 00 d7 86 2d 55 7e 04 s/ExecutableFinder.php~.....-U~.
3c20 00 00 06 2b 85 1f b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ...+..........<...vendor/symfony
3c40 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 /process/Symfony/Component/Proce
3c60 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 dc 4e 00 00 d7 86 2d 55 dc 4e 00 00 85 34 41 d4 b6 01 ss/Process.php.N....-U.N...4A...
3c80 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 ......C...vendor/symfony/process
3ca0 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 /Symfony/Component/Process/Proce
3cc0 73 73 42 75 69 6c 64 65 72 2e 70 68 70 01 0b 00 00 d7 86 2d 55 01 0b 00 00 8f 01 ef 79 b6 01 00 ssBuilder.php......-U.......y...
3ce0 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f .....A...vendor/symfony/process/
3d00 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 Symfony/Component/Process/Proces
3d20 73 55 74 69 6c 73 2e 70 68 70 8c 05 00 00 d7 86 2d 55 8c 05 00 00 c8 62 dd 76 b6 01 00 00 00 00 sUtils.php......-U.....b.v......
3d40 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d ..W...vendor/symfony/process/Sym
3d60 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e fony/Component/Process/Exception
3d80 2f 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1f 04 00 /ProcessTimedOutException.php...
3da0 00 d7 86 2d 55 1f 04 00 00 2e 09 c3 e1 b6 01 00 00 00 00 00 00 51 00 00 00 76 65 6e 64 6f 72 2f ...-U................Q...vendor/
3dc0 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/process/Symfony/Componen
3de0 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 t/Process/Exception/ExceptionInt
3e00 65 72 66 61 63 65 2e 70 68 70 66 00 00 00 d7 86 2d 55 66 00 00 00 5d f6 3e 54 b6 01 00 00 00 00 erface.phpf.....-Uf...].>T......
3e20 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d ..O...vendor/symfony/process/Sym
3e40 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e fony/Component/Process/Exception
3e60 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 d7 86 2d 55 98 00 00 /RuntimeException.php......-U...
3e80 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ....:........M...vendor/symfony/
3ea0 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 process/Symfony/Component/Proces
3ec0 73 2f 45 78 63 65 70 74 69 6f 6e 2f 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 94 00 s/Exception/LogicException.php..
3ee0 00 00 d7 86 2d 55 94 00 00 00 20 b3 e3 f1 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 ....-U................U...vendor
3f00 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/process/Symfony/Compone
3f20 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 46 61 69 6c nt/Process/Exception/ProcessFail
3f40 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 3c 03 00 00 d7 86 2d 55 3c 03 00 00 22 77 db 6e b6 edException.php<.....-U<..."w.n.
3f60 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 .......W...vendor/symfony/proces
3f80 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 s/Symfony/Component/Process/Exce
3fa0 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 ption/InvalidArgumentException.p
3fc0 68 70 a8 00 00 00 d7 86 2d 55 a8 00 00 00 d0 c0 2b 5f b6 01 00 00 00 00 00 00 38 00 00 00 76 65 hp......-U......+_........8...ve
3fe0 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/process/Symfony/Com
4000 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 4c 49 43 45 4e 53 45 29 04 00 00 d7 86 2d 55 29 04 ponent/Process/LICENSE).....-U).
4020 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....&.........H...vendor/symfony
4040 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 /process/Symfony/Component/Proce
4060 73 73 2f 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2e 70 68 70 14 04 00 00 d7 86 ss/PhpExecutableFinder.php......
4080 2d 55 14 04 00 00 fb d4 4d 3e b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d -U......M>........I...vendor/sym
40a0 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 fony/process/Symfony/Component/P
40c0 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 2e 70 68 70 44 rocess/Pipes/PipesInterface.phpD
40e0 01 00 00 d7 86 2d 55 44 01 00 00 76 d8 ee a1 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f .....-UD...v...........H...vendo
4100 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/process/Symfony/Compon
4120 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 41 62 73 74 72 61 63 74 50 69 70 65 73 2e ent/Process/Pipes/AbstractPipes.
4140 70 68 70 00 03 00 00 d7 86 2d 55 00 03 00 00 98 7c a5 be b6 01 00 00 00 00 00 00 47 00 00 00 76 php......-U.....|..........G...v
4160 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f endor/symfony/process/Symfony/Co
4180 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 57 69 6e 64 6f 77 73 50 69 70 mponent/Process/Pipes/WindowsPip
41a0 65 73 2e 70 68 70 bd 0e 00 00 d7 86 2d 55 bd 0e 00 00 00 2e 58 a3 b6 01 00 00 00 00 00 00 44 00 es.php......-U......X.........D.
41c0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/process/Symfony
41e0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 69 70 65 73 2f 55 6e 69 78 50 69 70 /Component/Process/Pipes/UnixPip
4200 65 73 2e 70 68 70 a4 0b 00 00 d7 86 2d 55 a4 0b 00 00 f8 01 55 74 b6 01 00 00 00 00 00 00 48 00 es.php......-U......Ut........H.
4220 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
4240 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 48 65 6c 70 43 /Component/Console/Command/HelpC
4260 6f 6d 6d 61 6e 64 2e 70 68 70 36 07 00 00 d7 86 2d 55 36 07 00 00 23 af be 7d b6 01 00 00 00 00 ommand.php6.....-U6...#..}......
4280 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..D...vendor/symfony/console/Sym
42a0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 43 fony/Component/Console/Command/C
42c0 6f 6d 6d 61 6e 64 2e 70 68 70 f0 1b 00 00 d7 86 2d 55 f0 1b 00 00 70 1e c5 13 b6 01 00 00 00 00 ommand.php......-U....p.........
42e0 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..H...vendor/symfony/console/Sym
4300 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6d 6d 61 6e 64 2f 4c fony/Component/Console/Command/L
4320 69 73 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 b3 07 00 00 d7 86 2d 55 b3 07 00 00 56 03 d3 e9 b6 01 istCommand.php......-U....V.....
4340 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......M...vendor/symfony/console
4360 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 /Symfony/Component/Console/Teste
4380 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 d4 05 00 00 d7 86 2d 55 d4 r/ApplicationTester.php......-U.
43a0 05 00 00 ac ec a4 64 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ......d........I...vendor/symfon
43c0 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
43e0 6f 6c 65 2f 54 65 73 74 65 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 90 06 00 00 ole/Tester/CommandTester.php....
4400 d7 86 2d 55 90 06 00 00 48 bb e2 60 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 ..-U....H..`........X...vendor/s
4420 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/console/Symfony/Component
4440 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 /Console/Formatter/OutputFormatt
4460 65 72 53 74 79 6c 65 53 74 61 63 6b 2e 70 68 70 08 05 00 00 d7 86 2d 55 08 05 00 00 79 08 49 27 erStyleStack.php......-U....y.I'
4480 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........S...vendor/symfony/conso
44a0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 le/Symfony/Component/Console/For
44c0 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 2e 70 68 70 b7 matter/OutputFormatterStyle.php.
44e0 0f 00 00 d7 86 2d 55 b7 0f 00 00 c7 00 c5 4b b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f .....-U.......K........\...vendo
4500 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
4520 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d ent/Console/Formatter/OutputForm
4540 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8e 01 00 00 d7 86 2d 55 8e atterStyleInterface.php......-U.
4560 01 00 00 f6 eb c4 3d b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ......=........N...vendor/symfon
4580 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
45a0 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 ole/Formatter/OutputFormatter.ph
45c0 70 66 0c 00 00 d7 86 2d 55 66 0c 00 00 4b 64 ff 2d b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e pf.....-Uf...Kd.-........W...ven
45e0 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 dor/symfony/console/Symfony/Comp
4600 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 74 65 72 2f 4f 75 74 70 75 74 46 6f onent/Console/Formatter/OutputFo
4620 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 98 01 00 00 d7 86 2d 55 98 01 00 00 rmatterInterface.php......-U....
4640 33 6c 7e b4 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 3l~.........@...vendor/symfony/c
4660 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
4680 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 b6 52 00 00 d7 86 2d 55 b6 52 00 00 94 2e f6 28 /Application.php.R....-U.R.....(
46a0 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........H...vendor/symfony/conso
46c0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 le/Symfony/Component/Console/Inp
46e0 75 74 2f 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 2e 70 68 70 9e 05 00 00 d7 86 2d 55 9e 05 00 00 ut/InputArgument.php......-U....
4700 4b 5d ec 69 b6 01 00 00 00 00 00 00 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 K].i........@...vendor/symfony/c
4720 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
4740 2f 49 6e 70 75 74 2f 49 6e 70 75 74 2e 70 68 70 12 0a 00 00 d7 86 2d 55 12 0a 00 00 c7 fd 54 05 /Input/Input.php......-U......T.
4760 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........F...vendor/symfony/conso
4780 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 le/Symfony/Component/Console/Inp
47a0 75 74 2f 53 74 72 69 6e 67 49 6e 70 75 74 2e 70 68 70 8b 05 00 00 d7 86 2d 55 8b 05 00 00 86 75 ut/StringInput.php......-U.....u
47c0 6e fd b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e n.........F...vendor/symfony/con
47e0 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 sole/Symfony/Component/Console/I
4800 6e 70 75 74 2f 49 6e 70 75 74 4f 70 74 69 6f 6e 2e 70 68 70 ab 0b 00 00 d7 86 2d 55 ab 0b 00 00 nput/InputOption.php......-U....
4820 ea 86 ae bd b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ............D...vendor/symfony/c
4840 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
4860 2f 49 6e 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 d9 13 00 00 d7 86 2d 55 d9 13 00 00 /Input/ArgvInput.php......-U....
4880 cb 16 6b 45 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 ..kE........I...vendor/symfony/c
48a0 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 onsole/Symfony/Component/Console
48c0 2f 49 6e 70 75 74 2f 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 d7 86 2d /Input/InputInterface.php......-
48e0 55 20 03 00 00 39 94 f8 c7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U....9...........E...vendor/symf
4900 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
4920 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 fb 09 00 00 d7 86 nsole/Input/ArrayInput.php......
4940 2d 55 fb 09 00 00 e2 f6 a5 70 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d -U.......p........N...vendor/sym
4960 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 fony/console/Symfony/Component/C
4980 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 onsole/Input/InputAwareInterface
49a0 2e 70 68 70 9a 00 00 00 d7 86 2d 55 9a 00 00 00 87 6a 54 9f b6 01 00 00 00 00 00 00 4a 00 00 00 .php......-U.....jT.........J...
49c0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
49e0 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 omponent/Console/Input/InputDefi
4a00 6e 69 74 69 6f 6e 2e 70 68 70 0b 17 00 00 d7 86 2d 55 0b 17 00 00 98 a3 4a 4d b6 01 00 00 00 00 nition.php......-U......JM......
4a20 00 00 3a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..:...vendor/symfony/console/Sym
4a40 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 fony/Component/Console/Shell.php
4a60 2e 0f 00 00 d7 86 2d 55 2e 0f 00 00 fe c9 8e 87 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 ......-U................L...vend
4a80 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
4aa0 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 43 68 6f 69 63 65 51 75 65 73 nent/Console/Question/ChoiceQues
4ac0 74 69 6f 6e 2e 70 68 70 66 07 00 00 d7 86 2d 55 66 07 00 00 d4 1f 12 68 b6 01 00 00 00 00 00 00 tion.phpf.....-Uf......h........
4ae0 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f R...vendor/symfony/console/Symfo
4b00 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 43 6f ny/Component/Console/Question/Co
4b20 6e 66 69 72 6d 61 74 69 6f 6e 51 75 65 73 74 69 6f 6e 2e 70 68 70 4b 02 00 00 d7 86 2d 55 4b 02 nfirmationQuestion.phpK.....-UK.
4b40 00 00 f5 c3 54 c8 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ....T.........F...vendor/symfony
4b60 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
4b80 6c 65 2f 51 75 65 73 74 69 6f 6e 2f 51 75 65 73 74 69 6f 6e 2e 70 68 70 ae 08 00 00 d7 86 2d 55 le/Question/Question.php......-U
4ba0 ae 08 00 00 2e 65 38 d6 b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f .....e8.........8...vendor/symfo
4bc0 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e ny/console/Symfony/Component/Con
4be0 73 6f 6c 65 2f 4c 49 43 45 4e 53 45 29 04 00 00 d7 86 2d 55 29 04 00 00 eb 08 26 95 b6 01 00 00 sole/LICENSE).....-U).....&.....
4c00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....B...vendor/symfony/console/S
4c20 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f ymfony/Component/Console/Output/
4c40 4f 75 74 70 75 74 2e 70 68 70 a7 08 00 00 d7 86 2d 55 a7 08 00 00 1c da 20 5f b6 01 00 00 00 00 Output.php......-U......._......
4c60 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d ..F...vendor/symfony/console/Sym
4c80 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4e 75 fony/Component/Console/Output/Nu
4ca0 6c 6c 4f 75 74 70 75 74 2e 70 68 70 bf 03 00 00 d7 86 2d 55 bf 03 00 00 60 35 45 cb b6 01 00 00 llOutput.php......-U....`5E.....
4cc0 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....R...vendor/symfony/console/S
4ce0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f ymfony/Component/Console/Output/
4d00 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 e5 00 00 00 d7 86 ConsoleOutputInterface.php......
4d20 2d 55 e5 00 00 00 72 4e f4 00 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d -U....rN..........H...vendor/sym
4d40 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 fony/console/Symfony/Component/C
4d60 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 53 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 a2 04 onsole/Output/StreamOutput.php..
4d80 00 00 d7 86 2d 55 a2 04 00 00 1a 06 fc 30 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 ....-U.......0........J...vendor
4da0 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 /symfony/console/Symfony/Compone
4dc0 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 nt/Console/Output/BufferedOutput
4de0 2e 70 68 70 5f 01 00 00 d7 86 2d 55 5f 01 00 00 fb 42 cd b7 b6 01 00 00 00 00 00 00 4b 00 00 00 .php_.....-U_....B..........K...
4e00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
4e20 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e omponent/Console/Output/OutputIn
4e40 74 65 72 66 61 63 65 2e 70 68 70 49 03 00 00 d7 86 2d 55 49 03 00 00 c8 e2 e3 42 b6 01 00 00 00 terface.phpI.....-UI......B.....
4e60 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...I...vendor/symfony/console/Sy
4e80 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 mfony/Component/Console/Output/C
4ea0 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 2e 70 68 70 14 05 00 00 d7 86 2d 55 14 05 00 00 6a e5 ac 06 onsoleOutput.php......-U....j...
4ec0 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........I...vendor/symfony/conso
4ee0 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4c 6f 67 le/Symfony/Component/Console/Log
4f00 67 65 72 2f 43 6f 6e 73 6f 6c 65 4c 6f 67 67 65 72 2e 70 68 70 3b 09 00 00 d7 86 2d 55 3b 09 00 ger/ConsoleLogger.php;.....-U;..
4f20 00 23 d8 42 7e b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .#.B~........S...vendor/symfony/
4f40 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c console/Symfony/Component/Consol
4f60 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 e/Descriptor/DescriptorInterface
4f80 2e 70 68 70 fc 00 00 00 d7 86 2d 55 fc 00 00 00 b1 51 07 b5 b6 01 00 00 00 00 00 00 4e 00 00 00 .php......-U.....Q..........N...
4fa0 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 vendor/symfony/console/Symfony/C
4fc0 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 54 65 78 74 omponent/Console/Descriptor/Text
4fe0 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 36 1a 00 00 d7 86 2d 55 36 1a 00 00 aa e0 ed 3b b6 01 Descriptor.php6.....-U6......;..
5000 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......M...vendor/symfony/console
5020 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 /Symfony/Component/Console/Descr
5040 69 70 74 6f 72 2f 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 a0 1c 00 00 d7 86 2d 55 a0 iptor/XmlDescriptor.php......-U.
5060 1c 00 00 85 7b ee 6d b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ....{.m........R...vendor/symfon
5080 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
50a0 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f ole/Descriptor/MarkdownDescripto
50c0 72 2e 70 68 70 0a 0e 00 00 d7 86 2d 55 0a 0e 00 00 00 4c db 2a b6 01 00 00 00 00 00 00 56 00 00 r.php......-U.....L.*........V..
50e0 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f .vendor/symfony/console/Symfony/
5100 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 41 70 70 Component/Console/Descriptor/App
5120 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 2e 70 68 70 f9 07 00 00 d7 86 2d 55 f9 licationDescription.php......-U.
5140 07 00 00 89 3e 10 4f b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ....>.O........J...vendor/symfon
5160 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 y/console/Symfony/Component/Cons
5180 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 5c 07 00 ole/Descriptor/Descriptor.php\..
51a0 00 d7 86 2d 55 5c 07 00 00 57 4a 5b ed b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f ...-U\...WJ[.........N...vendor/
51c0 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e symfony/console/Symfony/Componen
51e0 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4a 73 6f 6e 44 65 73 63 72 69 70 t/Console/Descriptor/JsonDescrip
5200 74 6f 72 2e 70 68 70 32 0d 00 00 d7 86 2d 55 32 0d 00 00 86 63 15 61 b6 01 00 00 00 00 00 00 4b tor.php2.....-U2....c.a........K
5220 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
5240 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 y/Component/Console/Helper/Helpe
5260 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 d7 86 2d 55 ef 00 00 00 3d 65 1b 0c b6 01 rInterface.php......-U....=e....
5280 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......G...vendor/symfony/console
52a0 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 /Symfony/Component/Console/Helpe
52c0 72 2f 54 61 62 6c 65 48 65 6c 70 65 72 2e 70 68 70 d8 0a 00 00 d7 86 2d 55 d8 0a 00 00 2c 0d 7f r/TableHelper.php......-U....,..
52e0 a0 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 .........A...vendor/symfony/cons
5300 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 ole/Symfony/Component/Console/He
5320 6c 70 65 72 2f 54 61 62 6c 65 2e 70 68 70 0f 17 00 00 d7 86 2d 55 0f 17 00 00 7b 9f 56 82 b6 01 lper/Table.php......-U....{.V...
5340 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......G...vendor/symfony/console
5360 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 /Symfony/Component/Console/Helpe
5380 72 2f 50 72 6f 67 72 65 73 73 42 61 72 2e 70 68 70 15 24 00 00 d7 86 2d 55 15 24 00 00 32 8c 35 r/ProgressBar.php.$....-U.$..2.5
53a0 4a b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 J........L...vendor/symfony/cons
53c0 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 ole/Symfony/Component/Console/He
53e0 6c 70 65 72 2f 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 2e 70 68 70 39 05 00 00 d7 86 2d lper/DescriptorHelper.php9.....-
5400 55 39 05 00 00 fb f9 e4 f0 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U9...............K...vendor/symf
5420 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
5440 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 2e 70 68 70 nsole/Helper/FormatterHelper.php
5460 63 04 00 00 d7 86 2d 55 63 04 00 00 93 fd ab 4e b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 c.....-Uc......N........P...vend
5480 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
54a0 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 65 62 75 67 46 6f 72 6d 61 74 74 nent/Console/Helper/DebugFormatt
54c0 65 72 48 65 6c 70 65 72 2e 70 68 70 6d 08 00 00 d7 86 2d 55 6d 08 00 00 f2 af 73 3e b6 01 00 00 erHelper.phpm.....-Um.....s>....
54e0 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....I...vendor/symfony/console/S
5500 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f ymfony/Component/Console/Helper/
5520 50 72 6f 63 65 73 73 48 65 6c 70 65 72 2e 70 68 70 e2 08 00 00 d7 86 2d 55 e2 08 00 00 7c 7f cc ProcessHelper.php......-U....|..
5540 bc b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 .........E...vendor/symfony/cons
5560 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 ole/Symfony/Component/Console/He
5580 6c 70 65 72 2f 48 65 6c 70 65 72 53 65 74 2e 70 68 70 2f 04 00 00 d7 86 2d 55 2f 04 00 00 e2 77 lper/HelperSet.php/.....-U/....w
55a0 00 64 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e .d........H...vendor/symfony/con
55c0 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 sole/Symfony/Component/Console/H
55e0 65 6c 70 65 72 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 ca 1b 00 00 d7 86 2d 55 ca 1b elper/DialogHelper.php......-U..
5600 00 00 6c d5 48 6c b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..l.Hl........J...vendor/symfony
5620 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f /console/Symfony/Component/Conso
5640 6c 65 2f 48 65 6c 70 65 72 2f 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 2e 70 68 70 10 19 00 00 le/Helper/QuestionHelper.php....
5660 d7 86 2d 55 10 19 00 00 52 0b 1c 8a b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 ..-U....R...........J...vendor/s
5680 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 ymfony/console/Symfony/Component
56a0 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 2e 70 /Console/Helper/TableSeparator.p
56c0 68 70 5b 00 00 00 d7 86 2d 55 5b 00 00 00 4c 56 16 a1 b6 01 00 00 00 00 00 00 42 00 00 00 76 65 hp[.....-U[...LV..........B...ve
56e0 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/console/Symfony/Com
5700 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 ponent/Console/Helper/Helper.php
5720 df 06 00 00 d7 86 2d 55 df 06 00 00 6f be 01 e3 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 ......-U....o...........J...vend
5740 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
5760 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 50 72 6f 67 72 65 73 73 48 65 6c 70 nent/Console/Helper/ProgressHelp
5780 65 72 2e 70 68 70 83 19 00 00 d7 86 2d 55 83 19 00 00 93 68 1e 99 b6 01 00 00 00 00 00 00 4c 00 er.php......-U.....h..........L.
57a0 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/console/Symfony
57c0 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 49 6e 70 75 74 41 /Component/Console/Helper/InputA
57e0 77 61 72 65 48 65 6c 70 65 72 2e 70 68 70 63 01 00 00 d7 86 2d 55 63 01 00 00 f1 f8 90 7c b6 01 wareHelper.phpc.....-Uc......|..
5800 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 ......F...vendor/symfony/console
5820 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 /Symfony/Component/Console/Helpe
5840 72 2f 54 61 62 6c 65 53 74 79 6c 65 2e 70 68 70 d5 08 00 00 d7 86 2d 55 d5 08 00 00 e6 22 f0 f9 r/TableStyle.php......-U....."..
5860 b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f ........G...vendor/symfony/conso
5880 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 le/Symfony/Component/Console/Eve
58a0 6e 74 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 2e 70 68 70 c5 02 00 00 d7 86 2d 55 c5 02 00 00 d2 nt/ConsoleEvent.php......-U.....
58c0 78 db 5c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f x.\........P...vendor/symfony/co
58e0 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f nsole/Symfony/Component/Console/
5900 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 2e 70 68 70 7a Event/ConsoleTerminateEvent.phpz
5920 02 00 00 d7 86 2d 55 7a 02 00 00 b3 2c ee 4c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f .....-Uz....,.L........P...vendo
5940 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e r/symfony/console/Symfony/Compon
5960 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 ent/Console/Event/ConsoleExcepti
5980 6f 6e 45 76 65 6e 74 2e 70 68 70 12 03 00 00 d7 86 2d 55 12 03 00 00 e1 16 32 e9 b6 01 00 00 00 onEvent.php......-U......2......
59a0 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 ...N...vendor/symfony/console/Sy
59c0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f mfony/Component/Console/Event/Co
59e0 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 b2 01 00 00 d7 86 2d 55 b2 01 00 nsoleCommandEvent.php......-U...
5a00 00 5a 6b 89 32 b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .Zk.2........B...vendor/symfony/
5a20 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c console/Symfony/Component/Consol
5a40 65 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 2e 70 68 70 ef 00 00 00 d7 86 2d 55 ef 00 00 00 0d e/ConsoleEvents.php......-U.....
5a60 d5 48 b8 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 .H.........9...vendor/symfony/fi
5a80 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 nder/Symfony/Component/Finder/Fi
5aa0 6e 64 65 72 2e 70 68 70 fa 22 00 00 d7 86 2d 55 fa 22 00 00 67 83 18 1f b6 01 00 00 00 00 00 00 nder.php."....-U."..g...........
5ac0 40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e @...vendor/symfony/finder/Symfon
5ae0 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 68 65 6c 6c 2f 43 6f 6d 6d 61 6e 64 y/Component/Finder/Shell/Command
5b00 2e 70 68 70 a3 0a 00 00 d7 86 2d 55 a3 0a 00 00 d6 3c ca 54 b6 01 00 00 00 00 00 00 3e 00 00 00 .php......-U.....<.T........>...
5b20 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f vendor/symfony/finder/Symfony/Co
5b40 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 53 68 65 6c 6c 2f 53 68 65 6c 6c 2e 70 68 70 e9 03 mponent/Finder/Shell/Shell.php..
5b60 00 00 d7 86 2d 55 e9 03 00 00 bf eb db 95 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e 64 6f 72 ....-U................C...vendor
5b80 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
5ba0 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 52 65 67 65 78 2e 70 68 70 81 0e 00 t/Finder/Expression/Regex.php...
5bc0 00 d7 86 2d 55 81 0e 00 00 53 37 50 e6 b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f ...-U....S7P.........B...vendor/
5be0 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
5c00 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 47 6c 6f 62 2e 70 68 70 a1 07 00 00 d7 /Finder/Expression/Glob.php.....
5c20 86 2d 55 a1 07 00 00 20 20 56 bf b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 .-U......V.........H...vendor/sy
5c40 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
5c60 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 45 78 70 72 65 73 73 69 6f 6e 2e 70 68 70 7d inder/Expression/Expression.php}
5c80 05 00 00 d7 86 2d 55 7d 05 00 00 2f b7 63 f0 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f .....-U}.../.c.........L...vendo
5ca0 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 r/symfony/finder/Symfony/Compone
5cc0 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 56 61 6c 75 65 49 6e 74 65 72 66 nt/Finder/Expression/ValueInterf
5ce0 61 63 65 2e 70 68 70 3b 01 00 00 d7 86 2d 55 3b 01 00 00 0b ee e3 d3 b6 01 00 00 00 00 00 00 4b ace.php;.....-U;...............K
5d00 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 ...vendor/symfony/finder/Symfony
5d20 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 64 61 70 74 65 /Component/Finder/Adapter/Adapte
5d40 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 af 03 00 00 d7 86 2d 55 af 03 00 00 8b 08 e9 c8 b6 01 rInterface.php......-U..........
5d60 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f ......I...vendor/symfony/finder/
5d80 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 Symfony/Component/Finder/Adapter
5da0 2f 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 7b 06 00 00 d7 86 2d 55 7b 06 00 00 51 /BsdFindAdapter.php{.....-U{...Q
5dc0 2c 44 32 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 ,D2........I...vendor/symfony/fi
5de0 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 nder/Symfony/Component/Finder/Ad
5e00 61 70 74 65 72 2f 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 5e 06 00 00 d7 86 2d 55 apter/GnuFindAdapter.php^.....-U
5e20 5e 06 00 00 df 7a 98 72 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ^....z.r........J...vendor/symfo
5e40 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 ny/finder/Symfony/Component/Find
5e60 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 2e 70 68 70 a4 0a er/Adapter/AbstractAdapter.php..
5e80 00 00 d7 86 2d 55 a4 0a 00 00 a2 29 7a 39 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 ....-U.....)z9........N...vendor
5ea0 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
5ec0 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 t/Finder/Adapter/AbstractFindAda
5ee0 70 74 65 72 2e 70 68 70 db 18 00 00 d7 86 2d 55 db 18 00 00 53 f5 54 b4 b6 01 00 00 00 00 00 00 pter.php......-U....S.T.........
5f00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e E...vendor/symfony/finder/Symfon
5f20 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 50 68 70 41 64 y/Component/Finder/Adapter/PhpAd
5f40 61 70 74 65 72 2e 70 68 70 2b 07 00 00 d7 86 2d 55 2b 07 00 00 26 98 ee d2 b6 01 00 00 00 00 00 apter.php+.....-U+...&..........
5f60 00 37 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f .7...vendor/symfony/finder/Symfo
5f80 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 ny/Component/Finder/Glob.php....
5fa0 d7 86 2d 55 0d 05 00 00 7a 9d f8 0a b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 ..-U....z...........T...vendor/s
5fc0 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f ymfony/finder/Symfony/Component/
5fe0 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 Finder/Iterator/DepthRangeFilter
6000 49 74 65 72 61 74 6f 72 2e 70 68 70 f0 01 00 00 d7 86 2d 55 f0 01 00 00 df 30 99 04 b6 01 00 00 Iterator.php......-U.....0......
6020 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 ....L...vendor/symfony/finder/Sy
6040 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f mfony/Component/Finder/Iterator/
6060 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 2e 70 68 70 de 05 00 00 d7 86 2d 55 de 05 00 00 SortableIterator.php......-U....
6080 f6 b3 06 25 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 ...%........U...vendor/symfony/f
60a0 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
60c0 74 65 72 61 74 6f 72 2f 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f terator/FilecontentFilterIterato
60e0 72 2e 70 68 70 23 03 00 00 d7 86 2d 55 23 03 00 00 da 5f 56 c7 b6 01 00 00 00 00 00 00 4d 00 00 r.php#.....-U#...._V.........M..
6100 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 .vendor/symfony/finder/Symfony/C
6120 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 50 61 74 omponent/Finder/Iterator/FilePat
6140 68 73 49 74 65 72 61 74 6f 72 2e 70 68 70 8d 05 00 00 d7 86 2d 55 8d 05 00 00 fd f2 e4 51 b6 01 hsIterator.php......-U.......Q..
6160 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f ......S...vendor/symfony/finder/
6180 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f Symfony/Component/Finder/Iterato
61a0 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 67 02 00 r/SizeRangeFilterIterator.phpg..
61c0 00 d7 86 2d 55 67 02 00 00 21 d4 97 e9 b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f ...-Ug...!...........Z...vendor/
61e0 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
6200 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 /Finder/Iterator/ExcludeDirector
6220 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 94 02 00 00 d7 86 2d 55 94 02 00 00 22 yFilterIterator.php......-U...."
6240 d6 f3 c1 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 ...........J...vendor/symfony/fi
6260 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 nder/Symfony/Component/Finder/It
6280 65 72 61 74 6f 72 2f 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 86 02 00 00 d7 86 2d erator/FilterIterator.php......-
62a0 55 86 02 00 00 30 a3 be d4 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 U....0...........V...vendor/symf
62c0 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e ony/finder/Symfony/Component/Fin
62e0 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 der/Iterator/MultiplePcreFilterI
6300 74 65 72 61 74 6f 72 2e 70 68 70 d8 02 00 00 d7 86 2d 55 d8 02 00 00 04 d2 f9 93 b6 01 00 00 00 terator.php......-U.............
6320 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d ...P...vendor/symfony/finder/Sym
6340 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 43 fony/Component/Finder/Iterator/C
6360 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5d 02 00 00 d7 86 2d 55 5d ustomFilterIterator.php].....-U]
6380 02 00 00 74 e0 b1 b5 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e ...t...........R...vendor/symfon
63a0 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 y/finder/Symfony/Component/Finde
63c0 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f r/Iterator/FilenameFilterIterato
63e0 72 2e 70 68 70 87 02 00 00 d7 86 2d 55 87 02 00 00 46 20 92 0b b6 01 00 00 00 00 00 00 53 00 00 r.php......-U....F...........S..
6400 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 .vendor/symfony/finder/Symfony/C
6420 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 61 74 65 52 61 6e omponent/Finder/Iterator/DateRan
6440 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 7a 02 00 00 d7 86 2d 55 7a 02 00 00 geFilterIterator.phpz.....-Uz...
6460 7f 7d 17 a2 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 .}..........R...vendor/symfony/f
6480 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
64a0 74 65 72 61 74 6f 72 2f 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 terator/FileTypeFilterIterator.p
64c0 68 70 5c 02 00 00 d7 86 2d 55 5c 02 00 00 70 91 27 98 b6 01 00 00 00 00 00 00 56 00 00 00 76 65 hp\.....-U\...p.'.........V...ve
64e0 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 ndor/symfony/finder/Symfony/Comp
6500 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 52 65 63 75 72 73 69 76 65 44 onent/Finder/Iterator/RecursiveD
6520 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 2e 70 68 70 59 06 00 00 d7 86 2d 55 59 06 00 00 irectoryIterator.phpY.....-UY...
6540 ea d3 ca dc b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 ............N...vendor/symfony/f
6560 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 inder/Symfony/Component/Finder/I
6580 74 65 72 61 74 6f 72 2f 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 b8 02 terator/PathFilterIterator.php..
65a0 00 00 d7 86 2d 55 b8 02 00 00 45 2a 45 17 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 ....-U....E*E.........L...vendor
65c0 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e /symfony/finder/Symfony/Componen
65e0 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 t/Finder/Comparator/DateComparat
6600 6f 72 2e 70 68 70 25 03 00 00 d7 86 2d 55 25 03 00 00 4c bf 45 c7 b6 01 00 00 00 00 00 00 4e 00 or.php%.....-U%...L.E.........N.
6620 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f ..vendor/symfony/finder/Symfony/
6640 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4e 75 6d 62 Component/Finder/Comparator/Numb
6660 65 72 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 78 03 00 00 d7 86 2d 55 78 03 00 00 02 bd 99 35 erComparator.phpx.....-Ux......5
6680 b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........H...vendor/symfony/finde
66a0 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 r/Symfony/Component/Finder/Compa
66c0 72 61 74 6f 72 2f 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 8c 03 00 00 d7 86 2d 55 8c 03 00 00 rator/Comparator.php......-U....
66e0 16 77 fe 54 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 .w.T........R...vendor/symfony/f
6700 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 inder/Symfony/Component/Finder/E
6720 78 63 65 70 74 69 6f 6e 2f 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 xception/AccessDeniedException.p
6740 68 70 84 00 00 00 d7 86 2d 55 84 00 00 00 bd be 73 9c b6 01 00 00 00 00 00 00 4f 00 00 00 76 65 hp......-U......s.........O...ve
6760 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 ndor/symfony/finder/Symfony/Comp
6780 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f 6e onent/Finder/Exception/Exception
67a0 49 6e 74 65 72 66 61 63 65 2e 70 68 70 84 00 00 00 d7 86 2d 55 84 00 00 00 1c 47 7a 2d b6 01 00 Interface.php......-U.....Gz-...
67c0 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 .....Z...vendor/symfony/finder/S
67e0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f ymfony/Component/Finder/Exceptio
6800 6e 2f 4f 70 65 72 61 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 2e n/OperationNotPermitedException.
6820 70 68 70 8a 00 00 00 d7 86 2d 55 8a 00 00 00 55 12 38 38 b6 01 00 00 00 00 00 00 54 00 00 00 76 php......-U....U.88........T...v
6840 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d endor/symfony/finder/Symfony/Com
6860 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 64 61 70 74 65 72 46 ponent/Finder/Exception/AdapterF
6880 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 16 02 00 00 d7 86 2d 55 16 02 00 00 6d ailureException.php......-U....m
68a0 8c 5f 2c b6 01 00 00 00 00 00 00 59 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 ._,........Y...vendor/symfony/fi
68c0 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 nder/Symfony/Component/Finder/Ex
68e0 63 65 70 74 69 6f 6e 2f 53 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 ception/ShellCommandFailureExcep
6900 74 69 6f 6e 2e 70 68 70 24 02 00 00 d7 86 2d 55 24 02 00 00 43 94 73 d3 b6 01 00 00 00 00 00 00 tion.php$.....-U$...C.s.........
6920 36 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 6...vendor/symfony/finder/Symfon
6940 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 4c 49 43 45 4e 53 45 29 04 00 00 d7 86 y/Component/Finder/LICENSE).....
6960 2d 55 29 04 00 00 eb 08 26 95 b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d -U).....&.........>...vendor/sym
6980 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
69a0 6e 64 65 72 2f 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 70 fb 02 00 00 d7 86 2d 55 fb 02 00 00 nder/SplFileInfo.php......-U....
69c0 91 05 86 36 b6 01 00 00 00 00 00 00 1c 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e ...6............vendor/seld/json
69e0 6c 69 6e 74 2f 4c 49 43 45 4e 53 45 22 04 00 00 d7 86 2d 55 22 04 00 00 61 83 73 79 b6 01 00 00 lint/LICENSE".....-U"...a.sy....
6a00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 ....4...vendor/seld/jsonlint/src
6a20 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e 00 00 00 /Seld/JsonLint/Undefined.php>...
6a40 d7 86 2d 55 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 ..-U>....q..........5...vendor/s
6a60 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4a eld/jsonlint/src/Seld/JsonLint/J
6a80 73 6f 6e 50 61 72 73 65 72 2e 70 68 70 29 31 00 00 d7 86 2d 55 29 31 00 00 3f 35 52 33 b6 01 00 sonParser.php)1....-U)1..?5R3...
6aa0 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 .....0...vendor/seld/jsonlint/sr
6ac0 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4c 65 78 65 72 2e 70 68 70 07 0f 00 00 d7 86 2d c/Seld/JsonLint/Lexer.php......-
6ae0 55 07 0f 00 00 89 84 6d 21 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 U......m!........;...vendor/seld
6b00 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 50 61 72 73 /jsonlint/src/Seld/JsonLint/Pars
6b20 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1e 01 00 00 d7 86 2d 55 1e 01 00 00 89 b2 10 f1 ingException.php......-U........
6b40 b6 01 00 00 00 00 00 00 28 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 ........(...vendor/justinrainbow
6b60 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 4c 49 43 45 4e 53 45 f7 05 00 00 d7 86 2d 55 f7 05 00 00 /json-schema/LICENSE......-U....
6b80 78 de 78 74 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 x.xt........?...vendor/justinrai
6ba0 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f nbow/json-schema/src/JsonSchema/
6bc0 52 65 66 52 65 73 6f 6c 76 65 72 2e 70 68 70 7c 0a 00 00 d7 86 2d 55 7c 0a 00 00 99 26 0d 69 b6 RefResolver.php|.....-U|....&.i.
6be0 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f .......S...vendor/justinrainbow/
6c00 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 json-schema/src/JsonSchema/Const
6c20 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 9e 17 raints/UndefinedConstraint.php..
6c40 00 00 d7 86 2d 55 9e 17 00 00 0e ef 08 ae b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 ....-U................P...vendor
6c60 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a /justinrainbow/json-schema/src/J
6c80 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 74 72 69 6e 67 43 6f 6e 73 sonSchema/Constraints/StringCons
6ca0 74 72 61 69 6e 74 2e 70 68 70 a9 03 00 00 d7 86 2d 55 a9 03 00 00 6d f2 65 e0 b6 01 00 00 00 00 traint.php......-U....m.e.......
6cc0 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d ..P...vendor/justinrainbow/json-
6ce0 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 schema/src/JsonSchema/Constraint
6d00 73 2f 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 20 02 00 00 d7 86 2d 55 20 02 s/SchemaConstraint.php......-U..
6d20 00 00 c8 cc d5 e2 b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 ..............T...vendor/justinr
6d40 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d ainbow/json-schema/src/JsonSchem
6d60 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 a/Constraints/CollectionConstrai
6d80 6e 74 2e 70 68 70 11 09 00 00 d7 86 2d 55 11 09 00 00 bb 7e ab 78 b6 01 00 00 00 00 00 00 53 00 nt.php......-U.....~.x........S.
6da0 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 ..vendor/justinrainbow/json-sche
6dc0 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f ma/src/JsonSchema/Constraints/Co
6de0 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 4e 01 00 00 d7 86 2d 55 4e 01 00 nstraintInterface.phpN.....-UN..
6e00 00 f8 c6 4d 79 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 ...My........N...vendor/justinra
6e20 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 inbow/json-schema/src/JsonSchema
6e40 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e 75 6d 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 fc /Constraints/EnumConstraint.php.
6e60 01 00 00 d7 86 2d 55 fc 01 00 00 70 21 a3 6e b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f .....-U....p!.n........J...vendo
6e80 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f r/justinrainbow/json-schema/src/
6ea0 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e JsonSchema/Constraints/Constrain
6ec0 74 2e 70 68 70 89 0e 00 00 d7 86 2d 55 89 0e 00 00 21 ca 66 b9 b6 01 00 00 00 00 00 00 50 00 00 t.php......-U....!.f.........P..
6ee0 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d .vendor/justinrainbow/json-schem
6f00 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d a/src/JsonSchema/Constraints/Num
6f20 62 65 72 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 b5 08 00 00 d7 86 2d 55 b5 08 00 00 96 e8 b8 berConstraint.php......-U.......
6f40 4c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f L........P...vendor/justinrainbo
6f60 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e w/json-schema/src/JsonSchema/Con
6f80 73 74 72 61 69 6e 74 73 2f 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 e6 0a 00 straints/ObjectConstraint.php...
6fa0 00 d7 86 2d 55 e6 0a 00 00 7f b7 45 98 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f ...-U......E.........N...vendor/
6fc0 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 justinrainbow/json-schema/src/Js
6fe0 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 54 79 70 65 43 6f 6e 73 74 72 61 onSchema/Constraints/TypeConstra
7000 69 6e 74 2e 70 68 70 7c 08 00 00 d7 86 2d 55 7c 08 00 00 2c 24 a2 db b6 01 00 00 00 00 00 00 50 int.php|.....-U|...,$..........P
7020 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 ...vendor/justinrainbow/json-sch
7040 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 46 ema/src/JsonSchema/Constraints/F
7060 6f 72 6d 61 74 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 f7 0d 00 00 d7 86 2d 55 f7 0d 00 00 f8 ormatConstraint.php......-U.....
7080 ee bd 4b b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e ..K........R...vendor/justinrain
70a0 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 bow/json-schema/src/JsonSchema/E
70c0 78 63 65 70 74 69 6f 6e 2f 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 2e 70 68 xception/UriResolverException.ph
70e0 70 6a 00 00 00 d7 86 2d 55 6a 00 00 00 53 d3 c7 b3 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e pj.....-Uj...S...........W...ven
7100 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 dor/justinrainbow/json-schema/sr
7120 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 52 65 73 6f 75 72 63 65 4e c/JsonSchema/Exception/ResourceN
7140 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6f 00 00 00 d7 86 2d 55 6f 00 00 00 otFoundException.phpo.....-Uo...
7160 c6 24 22 c5 b6 01 00 00 00 00 00 00 5d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 .$".........]...vendor/justinrai
7180 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f nbow/json-schema/src/JsonSchema/
71a0 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 Exception/InvalidSchemaMediaType
71c0 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 76 00 00 00 d7 86 2d 55 76 00 00 00 02 8a 43 d3 b6 01 00 Exception.phpv.....-Uv.....C....
71e0 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 .....W...vendor/justinrainbow/js
7200 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 on-schema/src/JsonSchema/Excepti
7220 6f 6e 2f 49 6e 76 61 6c 69 64 53 6f 75 72 63 65 55 72 69 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 on/InvalidSourceUriException.php
7240 77 00 00 00 d7 86 2d 55 77 00 00 00 4e 2d f2 5b b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 w.....-Uw...N-.[........S...vend
7260 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 or/justinrainbow/json-schema/src
7280 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 74 69 6f 6e 2f 4a 73 6f 6e 44 65 63 6f 64 69 /JsonSchema/Exception/JsonDecodi
72a0 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 de 02 00 00 d7 86 2d 55 de 02 00 00 86 be a9 91 b6 ngException.php......-U.........
72c0 01 00 00 00 00 00 00 56 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f .......V...vendor/justinrainbow/
72e0 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 45 78 63 65 70 json-schema/src/JsonSchema/Excep
7300 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 tion/InvalidArgumentException.ph
7320 70 76 00 00 00 d7 86 2d 55 76 00 00 00 ac 20 ab 22 b6 01 00 00 00 00 00 00 43 00 00 00 76 65 6e pv.....-Uv......"........C...ven
7340 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 dor/justinrainbow/json-schema/sr
7360 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 55 72 69 52 65 73 6f 6c 76 65 72 2e 70 68 70 c/JsonSchema/Uri/UriResolver.php
7380 ae 09 00 00 d7 86 2d 55 ae 09 00 00 e0 50 be a1 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 ......-U.....P..........D...vend
73a0 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 or/justinrainbow/json-schema/src
73c0 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 55 72 69 52 65 74 72 69 65 76 65 72 2e 70 68 70 /JsonSchema/Uri/UriRetriever.php
73e0 96 13 00 00 d7 86 2d 55 96 13 00 00 aa ff a8 dc b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 ......-U................T...vend
7400 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 or/justinrainbow/json-schema/src
7420 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 2f 41 62 73 74 72 /JsonSchema/Uri/Retrievers/Abstr
7440 61 63 74 52 65 74 72 69 65 76 65 72 2e 70 68 70 dc 00 00 00 d7 86 2d 55 dc 00 00 00 1b 5d 6a 1c actRetriever.php......-U.....]j.
7460 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 ........R...vendor/justinrainbow
7480 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f /json-schema/src/JsonSchema/Uri/
74a0 52 65 74 72 69 65 76 65 72 73 2f 46 69 6c 65 47 65 74 43 6f 6e 74 65 6e 74 73 2e 70 68 70 d1 04 Retrievers/FileGetContents.php..
74c0 00 00 d7 86 2d 55 d1 04 00 00 e6 87 a8 12 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 ....-U................X...vendor
74e0 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a /justinrainbow/json-schema/src/J
7500 73 6f 6e 53 63 68 65 6d 61 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 2f 55 72 69 52 65 74 72 sonSchema/Uri/Retrievers/UriRetr
7520 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 d7 86 2d 55 a9 00 00 00 06 03 ieverInterface.php......-U......
7540 43 4f b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 CO........G...vendor/justinrainb
7560 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 55 72 ow/json-schema/src/JsonSchema/Ur
7580 69 2f 52 65 74 72 69 65 76 65 72 73 2f 43 75 72 6c 2e 70 68 70 74 04 00 00 d7 86 2d 55 74 04 00 i/Retrievers/Curl.phpt.....-Ut..
75a0 00 49 b7 fd 00 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 .I...........R...vendor/justinra
75c0 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 inbow/json-schema/src/JsonSchema
75e0 2f 55 72 69 2f 52 65 74 72 69 65 76 65 72 73 2f 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 79 2e /Uri/Retrievers/PredefinedArray.
7600 70 68 70 5e 02 00 00 d7 86 2d 55 5e 02 00 00 22 df 36 6f b6 01 00 00 00 00 00 00 3d 00 00 00 76 php^.....-U^...".6o........=...v
7620 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f endor/justinrainbow/json-schema/
7640 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 87 02 00 00 src/JsonSchema/Validator.php....
7660 d7 86 2d 55 87 02 00 00 2d 00 da f4 b6 01 00 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f 72 2f 61 ..-U....-...............vendor/a
7680 75 74 6f 6c 6f 61 64 2e 70 68 70 91 00 00 00 d7 86 2d 55 91 00 00 00 ab d6 d5 a2 b6 01 00 00 00 utoload.php......-U.............
76a0 00 00 00 27 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f ...'...vendor/composer/autoload_
76c0 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 b1 01 00 00 d7 86 2d 55 b1 01 00 00 5b ae 13 e3 b6 01 namespaces.php......-U....[.....
76e0 00 00 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f ......!...vendor/composer/autolo
7700 61 64 5f 70 73 72 34 2e 70 68 70 b2 00 00 00 d7 86 2d 55 b2 00 00 00 d4 81 a8 d0 b6 01 00 00 00 ad_psr4.php......-U.............
7720 00 00 00 25 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f ...%...vendor/composer/autoload_
7740 63 6c 61 73 73 6d 61 70 2e 70 68 70 64 00 00 00 d7 86 2d 55 64 00 00 00 5a a1 a6 48 b6 01 00 00 classmap.phpd.....-Ud...Z..H....
7760 00 00 00 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 ....!...vendor/composer/autoload
7780 5f 72 65 61 6c 2e 70 68 70 4b 04 00 00 d7 86 2d 55 4b 04 00 00 38 7e 99 f5 b6 01 00 00 00 00 00 _real.phpK.....-UK...8~.........
77a0 00 21 00 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 63 6c 75 64 65 5f 70 61 74 .!...vendor/composer/include_pat
77c0 68 73 2e 70 68 70 9f 01 00 00 d7 86 2d 55 9f 01 00 00 a7 c5 e1 a2 b6 01 00 00 00 00 00 00 1f 00 hs.php......-U..................
77e0 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 ..vendor/composer/ClassLoader.ph
7800 70 97 13 00 00 d7 86 2d 55 97 13 00 00 42 a7 86 30 b6 01 00 00 00 00 00 00 0c 00 00 00 62 69 6e p......-U....B..0............bin
7820 2f 63 6f 6d 70 6f 73 65 72 6c 04 00 00 d7 86 2d 55 6c 04 00 00 d4 9a c3 09 b6 01 00 00 00 00 00 /composerl.....-Ul..............
7840 00 07 00 00 00 4c 49 43 45 4e 53 45 33 04 00 00 d7 86 2d 55 33 04 00 00 0b 81 32 0b b6 01 00 00 .....LICENSE3.....-U3.....2.....
7860 00 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e ....<?php............function.in
7880 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 24 66 69 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 69 cludeIfExists($file).{.return.fi
78a0 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 20 3f 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 le_exists($file).?.include.$file
78c0 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 .:.false;.}..if.((!$loader.=.inc
78e0 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 76 65 6e 64 6f 72 ludeIfExists(__DIR__.'/../vendor
7900 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 26 26 20 28 21 24 6c 6f 61 64 65 72 20 3d 20 /autoload.php')).&&.(!$loader.=.
7920 69 6e 63 6c 75 64 65 49 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f includeIfExists(__DIR__.'/../../
7940 2e 2e 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 29 20 7b 0a 65 63 68 6f 20 27 59 6f 75 20 ../autoload.php'))).{.echo.'You.
7960 6d 75 73 74 20 73 65 74 20 75 70 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e must.set.up.the.project.dependen
7980 63 69 65 73 2c 20 72 75 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 cies,.run.the.following.commands
79a0 3a 27 2e 50 48 50 5f 45 4f 4c 2e 0a 27 63 75 72 6c 20 2d 73 53 20 68 74 74 70 73 3a 2f 2f 67 65 :'.PHP_EOL..'curl.-sS.https://ge
79c0 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 69 6e 73 74 61 6c 6c 65 72 20 7c 20 70 68 70 27 2e 50 tcomposer.org/installer.|.php'.P
79e0 48 50 5f 45 4f 4c 2e 0a 27 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 HP_EOL..'php.composer.phar.insta
7a00 6c 6c 27 2e 50 48 50 5f 45 4f 4c 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ll'.PHP_EOL;.exit(1);.}..return.
7a20 24 6c 6f 61 64 65 72 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 $loader;.<?php............namesp
7a40 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ace.Composer\IO;..use.Symfony\Co
7a60 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 mponent\Console\Input\InputInter
7a80 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 face;.use.Symfony\Component\Cons
7aa0 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ole\Output\ConsoleOutputInterfac
7ac0 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 e;.use.Symfony\Component\Console
7ae0 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d \Output\OutputInterface;.use.Sym
7b00 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 fony\Component\Console\Helper\He
7b20 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 lperSet;.use.Symfony\Component\P
7b40 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a rocess\ExecutableFinder;........
7b60 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 65 78 74 65 6e 64 73 20 42 61 73 65 49 4f 0a 7b class.ConsoleIO.extends.BaseIO.{
7b80 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 .protected.$input;.protected.$ou
7ba0 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 6f 74 tput;.protected.$helperSet;.prot
7bc0 65 63 74 65 64 20 24 6c 61 73 74 4d 65 73 73 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c ected.$lastMessage;.protected.$l
7be0 61 73 74 4d 65 73 73 61 67 65 45 72 72 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d astMessageErr;.private.$startTim
7c00 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e e;.........public.function.__con
7c20 73 74 72 75 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 struct(InputInterface.$input,.Ou
7c40 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 tputInterface.$output,.HelperSet
7c60 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 .$helperSet).{.$this->input.=.$i
7c80 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 nput;.$this->output.=.$output;.$
7ca0 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a this->helperSet.=.$helperSet;.}.
7cc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 .public.function.enableDebugging
7ce0 28 24 73 74 61 72 74 54 69 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 ($startTime).{.$this->startTime.
7d00 3d 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$startTime;.}.....public.funct
7d20 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion.isInteractive().{.return.$th
7d40 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a is->input->isInteractive();.}...
7d60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a ..public.function.isDecorated().
7d80 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 {.return.$this->output->isDecora
7da0 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 ted();.}.....public.function.isV
7dc0 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d erbose().{.return.$this->output-
7de0 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 >getVerbosity().>=.OutputInterfa
7e00 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ce::VERBOSITY_VERBOSE;.}.....pub
7e20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 lic.function.isVeryVerbose().{.r
7e40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 eturn.$this->output->getVerbosit
7e60 79 28 29 20 3e 3d 20 33 3b 20 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f y().>=.3;...}.....public.functio
7e80 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 n.isDebug().{.return.$this->outp
7ea0 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 34 3b 20 0a 20 7d 0a 0a 0a 0a ut->getVerbosity().>=.4;...}....
7ec0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 .public.function.write($messages
7ee0 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 57 72 ,.$newline.=.true).{.$this->doWr
7f00 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 66 61 6c 73 65 29 3b ite($messages,.$newline,.false);
7f20 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f .}.....public.function.writeErro
7f40 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a r($messages,.$newline.=.true).{.
7f60 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 $this->doWrite($messages,.$newli
7f80 6e 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 ne,.true);.}.......private.funct
7fa0 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c ion.doWrite($messages,.$newline,
7fc0 20 24 73 74 64 65 72 72 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e .$stderr).{.if.(null.!==.$this->
7fe0 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 24 6d 65 6d 6f 72 79 55 73 61 67 65 20 3d 20 6d 65 6d 6f startTime).{.$memoryUsage.=.memo
8000 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 3b 0a 24 74 ry_get_usage()./.1024./.1024;.$t
8020 69 6d 65 53 70 65 6e 74 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 imeSpent.=.microtime(true).-.$th
8040 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 is->startTime;.$messages.=.array
8060 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6d 65 73 73 61 67 65 29 20 75 73 65 20 28 24 6d _map(function.($message).use.($m
8080 65 6d 6f 72 79 55 73 61 67 65 2c 20 24 74 69 6d 65 53 70 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e emoryUsage,.$timeSpent).{.return
80a0 20 73 70 72 69 6e 74 66 28 27 5b 25 2e 31 66 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 20 24 6d .sprintf('[%.1fMB/%.2fs].%s',.$m
80c0 65 6d 6f 72 79 55 73 61 67 65 2c 20 24 74 69 6d 65 53 70 65 6e 74 2c 20 24 6d 65 73 73 61 67 65 emoryUsage,.$timeSpent,.$message
80e0 29 3b 0a 7d 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 );.},.(array).$messages);.}..if.
8100 28 74 72 75 65 20 3d 3d 3d 20 24 73 74 64 65 72 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 (true.===.$stderr.&&.$this->outp
8120 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 ut.instanceof.ConsoleOutputInter
8140 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f face).{.$this->output->getErrorO
8160 75 74 70 75 74 28 29 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 utput()->write($messages,.$newli
8180 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 45 72 72 20 3d 20 6a 6f 69 ne);.$this->lastMessageErr.=.joi
81a0 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 n($newline.?."\n".:.'',.(array).
81c0 24 6d 65 73 73 61 67 65 73 29 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 $messages);.return;.}..$this->ou
81e0 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 tput->write($messages,.$newline)
8200 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 ;.$this->lastMessage.=.join($new
8220 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 line.?."\n".:.'',.(array).$messa
8240 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 ges);.}.....public.function.over
8260 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 write($messages,.$newline.=.true
8280 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 4f 76 65 72 77 ,.$size.=.null).{.$this->doOverw
82a0 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a 65 2c rite($messages,.$newline,.$size,
82c0 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f .false);.}.....public.function.o
82e0 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e verwriteError($messages,.$newlin
8300 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d e.=.true,.$size.=.null).{.$this-
8320 3e 64 6f 4f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 >doOverwrite($messages,.$newline
8340 2c 20 24 73 69 7a 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ,.$size,.true);.}........private
8360 20 66 75 6e 63 74 69 6f 6e 20 64 6f 4f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c .function.doOverwrite($messages,
8380 20 24 6e 65 77 6c 69 6e 65 2c 20 24 73 69 7a 65 2c 20 24 73 74 64 65 72 72 29 0a 7b 0a 69 66 20 .$newline,.$size,.$stderr).{.if.
83a0 28 74 72 75 65 20 3d 3d 3d 20 24 73 74 64 65 72 72 20 26 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 (true.===.$stderr.&&.$this->outp
83c0 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 ut.instanceof.ConsoleOutputInter
83e0 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d face).{.$output.=.$this->output-
8400 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 >getErrorOutput();.}.else.{.$out
8420 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 6d 65 73 73 61 put.=.$this->output;.}....$messa
8440 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c ges.=.join($newline.?."\n".:.'',
8460 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 .(array).$messages);....if.(!iss
8480 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 et($size)).{...$size.=.strlen(st
84a0 72 69 70 5f 74 61 67 73 28 24 73 74 64 65 72 72 20 3f 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 rip_tags($stderr.?.$this->lastMe
84c0 73 73 61 67 65 45 72 72 20 3a 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 29 29 3b ssageErr.:.$this->lastMessage));
84e0 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 .}...$this->doWrite(str_repeat("
8500 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a \x08",.$size),.false,.$stderr);.
8520 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c ...$this->doWrite($messages,.fal
8540 73 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 se,.$stderr);..$fill.=.$size.-.s
8560 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 trlen(strip_tags($messages));.if
8580 20 28 24 66 69 6c 6c 20 3e 20 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 .($fill.>.0).{...$this->doWrite(
85a0 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 2c 20 24 str_repeat('.',.$fill),.false,.$
85c0 73 74 64 65 72 72 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 73 74 72 5f 72 65 stderr);...$this->doWrite(str_re
85e0 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 2c 20 24 73 74 64 peat("\x08",.$fill),.false,.$std
8600 65 72 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e err);.}..if.($newline).{.$this->
8620 64 6f 57 72 69 74 65 28 27 27 2c 20 74 72 75 65 2c 20 24 73 74 64 65 72 72 29 3b 0a 7d 0a 0a 69 doWrite('',.true,.$stderr);.}..i
8640 66 20 28 24 73 74 64 65 72 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 f.($stderr).{.$this->lastMessage
8660 45 72 72 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d Err.=.$messages;.}.else.{.$this-
8680 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 7d 0a 0a 0a >lastMessage.=.$messages;.}.}...
86a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c ..public.function.ask($question,
86c0 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 .$default.=.null).{.$output.=.$t
86e0 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e his->output;..if.($output.instan
8700 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 ceof.ConsoleOutputInterface).{.$
8720 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 output.=.$output->getErrorOutput
8740 28 29 3b 0a 7d 0a 0a 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 ();.}...$dialog.=.$this->helperS
8760 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 61 6c et->get('dialog');..return.$dial
8780 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 og->ask($output,.$question,.$def
87a0 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b ault);.}.....public.function.ask
87c0 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 Confirmation($question,.$default
87e0 20 3d 20 74 72 75 65 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 .=.true).{.$output.=.$this->outp
8800 75 74 3b 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 ut;..if.($output.instanceof.Cons
8820 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 oleOutputInterface).{.$output.=.
8840 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 24 $output->getErrorOutput();.}...$
8860 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 dialog.=.$this->helperSet->get('
8880 64 69 61 6c 6f 67 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f dialog');..return.$dialog->askCo
88a0 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 nfirmation($output,.$question,.$
88c0 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 default);.}.....public.function.
88e0 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 askAndValidate($question,.$valid
8900 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c ator,.$attempts.=.false,.$defaul
8920 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 t.=.null).{.$output.=.$this->out
8940 70 75 74 3b 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e put;..if.($output.instanceof.Con
8960 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d soleOutputInterface).{.$output.=
8980 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a .$output->getErrorOutput();.}...
89a0 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 $dialog.=.$this->helperSet->get(
89c0 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 'dialog');..return.$dialog->askA
89e0 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 ndValidate($output,.$question,.$
8a00 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b validator,.$attempts,.$default);
8a20 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 48 69 64 .}.....public.function.askAndHid
8a40 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e eAnswer($question).{...if.(defin
8a60 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 ed('PHP_WINDOWS_VERSION_BUILD'))
8a80 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 .{.$finder.=.new.ExecutableFinde
8aa0 72 28 29 3b 0a 0a 0a 20 69 66 20 28 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 62 61 73 68 27 r();....if.($finder->find('bash'
8ac0 29 20 26 26 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 73 74 74 79 27 29 29 20 7b 0a 24 74 ).&&.$finder->find('stty')).{.$t
8ae0 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 his->writeError($question,.false
8b00 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 27 62 61 );.$value.=.rtrim(shell_exec('ba
8b20 73 68 20 2d 63 20 22 73 74 74 79 20 2d 65 63 68 6f 3b 20 72 65 61 64 20 2d 6e 30 20 64 69 73 63 sh.-c."stty.-echo;.read.-n0.disc
8b40 61 72 64 3b 20 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 3b 20 73 74 74 79 20 65 63 ard;.read.-r.mypassword;.stty.ec
8b60 68 6f 3b 20 65 63 68 6f 20 24 6d 79 70 61 73 73 77 6f 72 64 22 27 29 29 3b 0a 24 74 68 69 73 2d ho;.echo.$mypassword"'));.$this-
8b80 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b >writeError('');..return.$value;
8ba0 0a 7d 0a 0a 0a 20 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e .}....$exe.=.__DIR__.'\\hiddenin
8bc0 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 put.exe';....if.('phar:'.===.sub
8be0 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d str(__FILE__,.0,.5)).{.$tmpExe.=
8c00 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 .sys_get_temp_dir().'/hiddeninpu
8c20 74 2e 65 78 65 27 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 20 3d 20 66 6f 70 65 6e 28 5f 5f 44 t.exe';......$source.=.fopen(__D
8c40 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 2c 20 27 72 27 29 3b 0a IR__.'\\hiddeninput.exe',.'r');.
8c60 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 6e 28 24 74 6d 70 45 78 65 2c 20 27 77 2b 27 29 3b 0a $target.=.fopen($tmpExe,.'w+');.
8c80 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 2c 20 24 stream_copy_to_stream($source,.$
8ca0 74 61 72 67 65 74 29 3b 0a 66 63 6c 6f 73 65 28 24 73 6f 75 72 63 65 29 3b 0a 66 63 6c 6f 73 65 target);.fclose($source);.fclose
8cc0 28 24 74 61 72 67 65 74 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 ($target);.unset($source,.$targe
8ce0 74 29 3b 0a 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 t);..$exe.=.$tmpExe;.}..$this->w
8d00 72 69 74 65 45 72 72 6f 72 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 76 61 riteError($question,.false);.$va
8d20 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b 0a 24 lue.=.rtrim(shell_exec($exe));.$
8d40 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 this->writeError('');....if.(iss
8d60 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a et($tmpExe)).{.unlink($tmpExe);.
8d80 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 }..return.$value;.}..if.(file_ex
8da0 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 ists('/usr/bin/env')).{...$test.
8dc0 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 =."/usr/bin/env.%s.-c.'echo.OK'.
8de0 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 2>./dev/null";.foreach.(array('b
8e00 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 ash',.'zsh',.'ksh',.'csh').as.$s
8e20 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 h).{.if.('OK'.===.rtrim(shell_ex
8e40 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 29 20 7b 0a 24 73 68 65 ec(sprintf($test,.$sh)))).{.$she
8e60 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 ll.=.$sh;.break;.}.}.if.(isset($
8e80 73 68 65 6c 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 71 75 65 shell)).{.$this->writeError($que
8ea0 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 28 24 73 68 65 6c stion,.false);.$readCmd.=.($shel
8ec0 6c 20 3d 3d 3d 20 27 63 73 68 27 29 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d l.===.'csh').?.'set.mypassword.=
8ee0 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f .$<'.:.'read.-r.mypassword';.$co
8f00 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 mmand.=.sprintf("/usr/bin/env.%s
8f20 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 .-c.'stty.-echo;.%s;.stty.echo;.
8f40 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 echo.\$mypassword'",.$shell,.$re
8f60 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 adCmd);.$value.=.rtrim(shell_exe
8f80 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 c($command));.$this->writeError(
8fa0 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 '');..return.$value;.}.}....retu
8fc0 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 3c 3f rn.$this->ask($question);.}.}.<?
8fe0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
9000 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 65 78 74 65 6e 64 73 r\IO;.......class.NullIO.extends
9020 20 42 61 73 65 49 4f 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 .BaseIO.{....public.function.isI
9040 6e 74 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a nteractive().{.return.false;.}..
9060 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b ...public.function.isVerbose().{
9080 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .return.false;.}.....public.func
90a0 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 tion.isVeryVerbose().{.return.fa
90c0 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 lse;.}.....public.function.isDeb
90e0 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ug().{.return.false;.}.....publi
9100 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 c.function.isDecorated().{.retur
9120 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 n.false;.}.....public.function.w
9140 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 rite($messages,.$newline.=.true)
9160 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 .{.}.....public.function.writeEr
9180 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a ror($messages,.$newline.=.true).
91a0 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 {.}.....public.function.overwrit
91c0 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 e($messages,.$newline.=.true,.$s
91e0 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ize.=.80).{.}.....public.functio
9200 6e 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 n.overwriteError($messages,.$new
9220 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 38 30 29 0a 7b 0a 7d 0a 0a 0a 0a line.=.true,.$size.=.80).{.}....
9240 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 .public.function.ask($question,.
9260 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 $default.=.null).{.return.$defau
9280 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e lt;.}.....public.function.askCon
92a0 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 firmation($question,.$default.=.
92c0 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 true).{.return.$default;.}.....p
92e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 ublic.function.askAndValidate($q
9300 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d uestion,.$validator,.$attempts.=
9320 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 .false,.$default.=.null).{.retur
9340 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f n.$default;.}.....public.functio
9360 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a n.askAndHideAnswer($question).{.
9380 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.null;.}.}.<?php..........
93a0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 43 6f ..namespace.Composer\IO;..use.Co
93c0 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 mposer\Config;.......interface.I
93e0 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f OInterface.{......public.functio
9400 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.isInteractive();.......public.
9420 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c function.isVerbose();.......publ
9440 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 3b 0a 0a 0a 0a ic.function.isVeryVerbose();....
9460 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 3b 0a 0a 0a ...public.function.isDebug();...
9480 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 ....public.function.isDecorated(
94a0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 );........public.function.write(
94c0 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a $messages,.$newline.=.true);....
94e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 45 72 72 6f 72 28 24 ....public.function.writeError($
9500 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a messages,.$newline.=.true);.....
9520 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d ....public.function.overwrite($m
9540 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 essages,.$newline.=.true,.$size.
9560 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.null);.........public.function
9580 20 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c .overwriteError($messages,.$newl
95a0 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a ine.=.true,.$size.=.null);......
95c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 ......public.function.ask($quest
95e0 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion,.$default.=.null);..........
9600 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f ..public.function.askConfirmatio
9620 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 3b 0a 0a n($question,.$default.=.true);..
9640 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ................public.function.
9660 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 askAndValidate($question,.$valid
9680 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c ator,.$attempts.=.false,.$defaul
96a0 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 t.=.null);.........public.functi
96c0 6f 6e 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a on.askAndHideAnswer($question);.
96e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 ......public.function.getAuthent
9700 69 63 61 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ications();.........public.funct
9720 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 ion.hasAuthentication($repositor
9740 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 yName);.........public.function.
9760 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d getAuthentication($repositoryNam
9780 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 e);.........public.function.setA
97a0 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 uthentication($repositoryName,.$
97c0 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a username,.$password.=.null);....
97e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 ...public.function.loadConfigura
9800 74 69 6f 6e 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a tion(Config.$config);.}.<?php...
9820 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a .........namespace.Composer\IO;.
9840 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 61 62 73 74 72 61 63 74 20 .use.Composer\Config;..abstract.
9860 63 6c 61 73 73 20 42 61 73 65 49 4f 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 class.BaseIO.implements.IOInterf
9880 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 ace.{.protected.$authentications
98a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.array();.....public.function.
98c0 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 getAuthentications().{.return.$t
98e0 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c his->authentications;.}.....publ
9900 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 ic.function.hasAuthentication($r
9920 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 epositoryName).{.return.isset($t
9940 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 his->authentications[$repository
9960 4e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Name]);.}.....public.function.ge
9980 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 tAuthentication($repositoryName)
99a0 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 .{.if.(isset($this->authenticati
99c0 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 ons[$repositoryName])).{.return.
99e0 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f $this->authentications[$reposito
9a00 72 79 4e 61 6d 65 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 ryName];.}..return.array('userna
9a20 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 6e 75 6c 6c 29 me'.=>.null,.'password'.=>.null)
9a40 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 ;.}.....public.function.setAuthe
9a60 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 2c 20 24 75 73 65 72 ntication($repositoryName,.$user
9a80 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d name,.$password.=.null).{.$this-
9aa0 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 >authentications[$repositoryName
9ac0 5d 20 3d 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 75 73 65 72 6e 61 6d ].=.array('username'.=>.$usernam
9ae0 65 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a e,.'password'.=>.$password);.}..
9b00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 ...public.function.loadConfigura
9b20 74 69 6f 6e 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 24 74 6f tion(Config.$config).{...if.($to
9b40 6b 65 6e 73 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 kens.=.$config->get('github-oaut
9b60 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d 61 h')).{.foreach.($tokens.as.$doma
9b80 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 in.=>.$token).{.if.(!preg_match(
9ba0 27 7b 5e 5b 61 2d 7a 30 2d 39 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 74 68 72 6f '{^[a-z0-9]+$}',.$token)).{.thro
9bc0 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 w.new.\UnexpectedValueException(
9be0 27 59 6f 75 72 20 67 69 74 68 75 62 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 'Your.github.oauth.token.for.'.$
9c00 64 6f 6d 61 69 6e 2e 27 20 63 6f 6e 74 61 69 6e 73 20 69 6e 76 61 6c 69 64 20 63 68 61 72 61 63 domain.'.contains.invalid.charac
9c20 74 65 72 73 3a 20 22 27 2e 24 74 6f 6b 65 6e 2e 27 22 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 ters:."'.$token.'"');.}.$this->s
9c40 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e etAuthentication($domain,.$token
9c60 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 ,.'x-oauth-basic');.}.}....if.($
9c80 63 72 65 64 73 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 74 74 70 2d 62 61 73 69 63 creds.=.$config->get('http-basic
9ca0 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 72 65 64 73 20 61 73 20 24 64 6f 6d 61 69 6e ')).{.foreach.($creds.as.$domain
9cc0 20 3d 3e 20 24 63 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 .=>.$cred).{.$this->setAuthentic
9ce0 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 63 72 65 64 5b 27 75 73 65 72 6e 61 6d 65 27 5d ation($domain,.$cred['username']
9d00 2c 20 24 63 72 65 64 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f ,.$cred['password']);.}.}.}.}.<?
9d20 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
9d40 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e r\IO;..use.Symfony\Component\Con
9d60 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 sole\Output\StreamOutput;.use.Sy
9d80 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 mfony\Component\Console\Formatte
9da0 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 r\OutputFormatterInterface;.use.
9dc0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
9de0 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 StringInput;.use.Symfony\Compone
9e00 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a nt\Console\Helper\HelperSet;....
9e20 0a 63 6c 61 73 73 20 42 75 66 66 65 72 49 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 49 .class.BufferIO.extends.ConsoleI
9e40 4f 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 O.{......public.function.__const
9e60 72 75 63 74 28 0a 24 69 6e 70 75 74 20 3d 20 27 27 2c 0a 24 76 65 72 62 6f 73 69 74 79 20 3d 20 ruct(.$input.=.'',.$verbosity.=.
9e80 53 74 72 65 61 6d 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a StreamOutput::VERBOSITY_NORMAL,.
9ea0 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 OutputFormatterInterface.$format
9ec0 74 65 72 20 3d 20 6e 75 6c 6c 0a 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 ter.=.null.).{.$input.=.new.Stri
9ee0 6e 67 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 ngInput($input);.$input->setInte
9f00 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 ractive(false);..$output.=.new.S
9f20 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 treamOutput(fopen('php://memory'
9f40 2c 20 27 72 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 21 65 6d 70 74 79 28 24 66 6f 72 ,.'rw'),.$verbosity,.!empty($for
9f60 6d 61 74 74 65 72 29 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f matter),.$formatter);..parent::_
9f80 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 _construct($input,.$output,.new.
9fa0 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 HelperSet(array()));.}..public.f
9fc0 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 unction.getOutput().{.fseek($thi
9fe0 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 2c 20 30 29 3b 0a 0a 24 6f 75 s->output->getStream(),.0);..$ou
a000 74 70 75 74 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 tput.=.stream_get_contents($this
a020 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 ->output->getStream());..$output
a040 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 28 3f 3c 3d 5e .=.preg_replace_callback("{(?<=^
a060 7c 5c 6e 7c 5c 78 30 38 29 28 2e 2b 3f 29 28 5c 78 30 38 2b 29 7d 22 2c 20 66 75 6e 63 74 69 6f |\n|\x08)(.+?)(\x08+)}",.functio
a080 6e 20 28 24 6d 61 74 63 68 65 73 29 20 7b 0a 24 70 72 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 n.($matches).{.$pre.=.strip_tags
a0a0 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 72 65 29 ($matches[1]);..if.(strlen($pre)
a0c0 20 3d 3d 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 20 7b 0a 72 65 74 75 .===.strlen($matches[2])).{.retu
a0e0 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6d 61 74 63 68 65 rn.'';.}....return.rtrim($matche
a100 73 5b 31 5d 29 2e 22 5c 6e 22 3b 0a 7d 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e s[1])."\n";.},.$output);..return
a120 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .$output;.}.}.<?php............n
a140 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 amespace.Composer\Command;..use.
a160 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 Composer\Script\CommandEvent;.us
a180 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a e.Composer\Script\ScriptEvents;.
a1a0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
a1c0 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
a1e0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 Component\Console\Input\InputOpt
a200 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ion;.use.Symfony\Component\Conso
a220 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 le\Input\InputArgument;.use.Symf
a240 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
a260 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 53 63 72 69 70 putInterface;.....class.RunScrip
a280 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 tCommand.extends.Command.{....pr
a2a0 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 45 76 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 53 otected.$scriptEvents.=.array(.S
a2c0 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a 53 63 criptEvents::PRE_INSTALL_CMD,.Sc
a2e0 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a 53 63 riptEvents::POST_INSTALL_CMD,.Sc
a300 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 72 69 riptEvents::PRE_UPDATE_CMD,.Scri
a320 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 72 69 70 ptEvents::POST_UPDATE_CMD,.Scrip
a340 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 tEvents::PRE_STATUS_CMD,.ScriptE
a360 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 vents::POST_STATUS_CMD,.ScriptEv
a380 65 6e 74 73 3a 3a 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 2c ents::POST_ROOT_PACKAGE_INSTALL,
a3a0 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 .ScriptEvents::POST_CREATE_PROJE
a3c0 43 54 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 52 43 48 49 56 CT_CMD,.ScriptEvents::PRE_ARCHIV
a3e0 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 52 43 48 49 56 E_CMD,.ScriptEvents::POST_ARCHIV
a400 45 5f 43 4d 44 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 55 54 4f 4c 4f 41 E_CMD,.ScriptEvents::PRE_AUTOLOA
a420 44 5f 44 55 4d 50 2c 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 41 55 54 4f 4c D_DUMP,.ScriptEvents::POST_AUTOL
a440 4f 41 44 5f 44 55 4d 50 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e OAD_DUMP,.);..protected.function
a460 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 .configure().{.$this.->setName('
a480 72 75 6e 2d 73 63 72 69 70 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 run-script').->setDescription('R
a4a0 75 6e 20 74 68 65 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 un.the.scripts.defined.in.compos
a4c0 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 er.json.').->setDefinition(array
a4e0 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 2c 20 49 6e (.new.InputArgument('script',.In
a500 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 53 63 72 69 70 74 20 6e putArgument::OPTIONAL,.'Script.n
a520 61 6d 65 20 74 6f 20 72 75 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 ame.to.run.'),.new.InputArgument
a540 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 ('args',.InputArgument::IS_ARRAY
a560 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 2c .|.InputArgument::OPTIONAL,.''),
a580 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e .new.InputOption('dev',.null,.In
a5a0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 74 73 20 74 68 65 putOption::VALUE_NONE,.'Sets.the
a5c0 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e .dev.mode.'),.new.InputOption('n
a5e0 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 o-dev',.null,.InputOption::VALUE
a600 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 _NONE,.'Disables.the.dev.mode.')
a620 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 ,.new.InputOption('list',.'l',.I
a640 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 73 63 nputOption::VALUE_NONE,.'List.sc
a660 72 69 70 74 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 ripts.'),.)).->setHelp(<<<EOT.Th
a680 65 20 3c 69 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e e.<info>run-script</info>.comman
a6a0 64 20 72 75 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 d.runs.scripts.defined.in.compos
a6c0 65 72 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 er.json:..<info>php.composer.pha
a6e0 72 20 72 75 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e r.run-script.post-update-cmd</in
a700 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f fo>.EOT.).;.}..protected.functio
a720 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c n.execute(InputInterface.$input,
a740 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 .OutputInterface.$output).{.if.(
a760 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 29 29 20 7b 0a 72 65 74 $input->getOption('list')).{.ret
a780 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 73 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 20 65 6c 73 65 urn.$this->listScripts();.}.else
a7a0 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 if.(!$input->getArgument('script
a7c0 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 54 69 6d 65 45 78 63 65 70 74 69 6f ')).{.throw.new.\RunTimeExceptio
a7e0 6e 28 27 4d 69 73 73 69 6e 67 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e 74 20 22 73 63 n('Missing.required.argument."sc
a800 72 69 70 74 22 27 29 3b 0a 7d 0a 0a 24 73 63 72 69 70 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 ript"');.}..$script.=.$input->ge
a820 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 tArgument('script');.if.(!in_arr
a840 61 79 28 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 73 63 72 69 70 74 45 76 65 6e 74 73 29 ay($script,.$this->scriptEvents)
a860 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 ).{.if.(defined('Composer\Script
a880 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2d 27 \ScriptEvents::'.str_replace('-'
a8a0 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 70 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 7b 0a ,.'_',.strtoupper($script)))).{.
a8c0 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
a8e0 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 ion(sprintf('Script."%s".cannot.
a900 62 65 20 72 75 6e 20 77 69 74 68 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 2c 20 24 73 63 72 69 be.run.with.this.command',.$scri
a920 70 74 29 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 pt));.}.}..$composer.=.$this->ge
a940 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 68 61 73 4c 69 73 74 65 6e 65 72 73 20 3d 20 24 63 6f tComposer();.$hasListeners.=.$co
a960 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 68 61 mposer->getEventDispatcher()->ha
a980 73 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 73 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 sEventListeners(new.CommandEvent
a9a0 28 24 73 63 72 69 70 74 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 ($script,.$composer,.$this->getI
a9c0 4f 28 29 29 29 3b 0a 69 66 20 28 21 24 68 61 73 4c 69 73 74 65 6e 65 72 73 29 20 7b 0a 74 68 72 O()));.if.(!$hasListeners).{.thr
a9e0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
aa00 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 (sprintf('Script."%s".is.not.def
aa20 69 6e 65 64 20 69 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 2c 20 24 73 63 72 69 70 74 29 29 ined.in.this.package',.$script))
aa40 3b 0a 7d 0a 0a 0a 20 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 ;.}....$binDir.=.$composer->getC
aa60 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 69 66 20 28 69 73 5f onfig()->get('bin-dir');.if.(is_
aa80 64 69 72 28 24 62 69 6e 44 69 72 29 29 20 7b 0a 24 5f 53 45 52 56 45 52 5b 27 50 41 54 48 27 5d dir($binDir)).{.$_SERVER['PATH']
aaa0 20 3d 20 72 65 61 6c 70 61 74 68 28 24 62 69 6e 44 69 72 29 2e 50 41 54 48 5f 53 45 50 41 52 41 .=.realpath($binDir).PATH_SEPARA
aac0 54 4f 52 2e 67 65 74 65 6e 76 28 27 50 41 54 48 27 29 3b 0a 70 75 74 65 6e 76 28 27 50 41 54 48 TOR.getenv('PATH');.putenv('PATH
aae0 3d 27 2e 24 5f 53 45 52 56 45 52 5b 27 50 41 54 48 27 5d 29 3b 0a 7d 0a 0a 24 61 72 67 73 20 3d ='.$_SERVER['PATH']);.}..$args.=
ab00 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 29 3b 0a 0a 72 .$input->getArgument('args');..r
ab20 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 eturn.$composer->getEventDispatc
ab40 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 73 63 72 69 70 74 2c 20 24 her()->dispatchScript($script,.$
ab60 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 7c 7c 20 21 24 69 6e 70 input->getOption('dev').||.!$inp
ab80 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 20 24 61 72 67 73 29 3b ut->getOption('no-dev'),.$args);
aba0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 53 63 72 69 70 .}..protected.function.listScrip
abc0 74 73 28 29 0a 7b 0a 24 73 63 72 69 70 74 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 ts().{.$scripts.=.$this->getComp
abe0 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 63 72 69 70 74 73 oser()->getPackage()->getScripts
ac00 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 73 63 72 69 70 74 73 29 29 20 7b 0a 72 65 74 ();..if.(!count($scripts)).{.ret
ac20 75 72 6e 20 30 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 urn.0;.}..$this->getIO()->writeE
ac40 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 73 63 72 69 70 74 73 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 66 rror('<info>scripts:</info>');.f
ac60 6f 72 65 61 63 68 20 28 24 73 63 72 69 70 74 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 63 oreach.($scripts.as.$name.=>.$sc
ac80 72 69 70 74 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 20 ript).{.$this->getIO()->write('.
aca0 20 27 20 2e 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 7d 0a 3c 3f .'...$name);.}..return.0;.}.}.<?
acc0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
ace0 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 r\Command;..use.Composer\Compose
ad00 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d r;.use.Composer\Factory;.use.Com
ad20 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 poser\Downloader\TransportExcept
ad40 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 ion;.use.Composer\Plugin\Command
ad60 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 Event;.use.Composer\Plugin\Plugi
ad80 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 nEvents;.use.Composer\Util\Confi
ada0 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 gValidator;.use.Composer\Util\Pr
adc0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c ocessExecutor;.use.Composer\Util
ade0 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \RemoteFilesystem;.use.Composer\
ae00 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 Util\StreamContextFactory;.use.S
ae20 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
ae40 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nputInterface;.use.Symfony\Compo
ae60 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 nent\Console\Output\OutputInterf
ae80 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 20 65 ace;.....class.DiagnoseCommand.e
aea0 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 xtends.Command.{..protected.$rfs
aec0 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 70 72 6f 74 65 63 ;...protected.$process;...protec
aee0 74 65 64 20 24 66 61 69 6c 75 72 65 73 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ted.$failures.=.0;..protected.fu
af00 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
af20 4e 61 6d 65 28 27 64 69 61 67 6e 6f 73 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f Name('diagnose').->setDescriptio
af40 6e 28 27 44 69 61 67 6e 6f 73 65 73 20 74 68 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 65 6e 74 n('Diagnoses.the.system.to.ident
af60 69 66 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 2e 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c ify.common.errors.').->setHelp(<
af80 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 6f 3e 20 <<EOT.The.<info>diagnose</info>.
afa0 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 74 6f 20 command.checks.common.errors.to.
afc0 68 65 6c 70 20 64 65 62 75 67 67 69 6e 67 20 70 72 6f 62 6c 65 6d 73 2e 0a 0a 45 4f 54 0a 29 0a help.debugging.problems...EOT.).
afe0 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 ;.}..protected.function.execute(
b000 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
b020 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 erface.$output).{.$composer.=.$t
b040 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 63 his->getComposer(false);..if.($c
b060 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 omposer).{.$commandEvent.=.new.C
b080 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e ommandEvent(PluginEvents::COMMAN
b0a0 44 2c 20 27 64 69 61 67 6e 6f 73 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b D,.'diagnose',.$input,.$output);
b0c0 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 .$composer->getEventDispatcher()
b0e0 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d ->dispatch($commandEvent->getNam
b100 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 e(),.$commandEvent);..$this->get
b120 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a IO()->write('Checking.composer.j
b140 73 6f 6e 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 son:.',.false);.$this->outputRes
b160 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 43 6f 6d 70 6f 73 65 72 53 63 68 65 6d 61 28 29 ult($this->checkComposerSchema()
b180 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d );.}..if.($composer).{.$config.=
b1a0 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 7d 20 65 6c 73 65 20 .$composer->getConfig();.}.else.
b1c0 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 {.$config.=.Factory::createConfi
b1e0 67 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 g();.}..$this->rfs.=.new.RemoteF
b200 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 20 24 63 6f 6e 66 69 ilesystem($this->getIO(),.$confi
b220 67 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 g);.$this->process.=.new.Process
b240 45 78 65 63 75 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 24 74 68 69 73 Executor($this->getIO());..$this
b260 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 70 6c 61 74 66 ->getIO()->write('Checking.platf
b280 6f 72 6d 20 73 65 74 74 69 6e 67 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e orm.settings:.',.false);.$this->
b2a0 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 50 6c 61 74 66 6f 72 outputResult($this->checkPlatfor
b2c0 6d 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 m());..$this->getIO()->write('Ch
b2e0 65 63 6b 69 6e 67 20 67 69 74 20 73 65 74 74 69 6e 67 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a ecking.git.settings:.',.false);.
b300 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b $this->outputResult($this->check
b320 47 69 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 Git());..$this->getIO()->write('
b340 43 68 65 63 6b 69 6e 67 20 68 74 74 70 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 3a 20 27 2c 20 66 Checking.http.connectivity:.',.f
b360 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 alse);.$this->outputResult($this
b380 2d 3e 63 68 65 63 6b 48 74 74 70 28 29 29 3b 0a 0a 24 6f 70 74 73 20 3d 20 73 74 72 65 61 6d 5f ->checkHttp());..$opts.=.stream_
b3a0 63 6f 6e 74 65 78 74 5f 67 65 74 5f 6f 70 74 69 6f 6e 73 28 53 74 72 65 61 6d 43 6f 6e 74 65 78 context_get_options(StreamContex
b3c0 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 28 27 68 74 74 70 3a 2f 2f 65 78 61 tFactory::getContext('http://exa
b3e0 6d 70 6c 65 2e 6f 72 67 27 29 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6f 70 74 73 5b 27 68 mple.org'));.if.(!empty($opts['h
b400 74 74 70 27 5d 5b 27 70 72 6f 78 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 ttp']['proxy'])).{.$this->getIO(
b420 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 20 70 72 6f 78 79 3a 20 27 )->write('Checking.HTTP.proxy:.'
b440 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 ,.false);.$this->outputResult($t
b460 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 his->checkHttpProxy());.$this->g
b480 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 20 70 72 6f etIO()->write('Checking.HTTP.pro
b4a0 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 xy.support.for.request_fulluri:.
b4c0 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 ',.false);.$this->outputResult($
b4e0 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 this->checkHttpProxyFullUriReque
b500 73 74 50 61 72 61 6d 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 stParam());.$this->getIO()->writ
b520 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 53 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 e('Checking.HTTPS.proxy.support.
b540 66 6f 72 20 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a for.request_fulluri:.',.false);.
b560 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b $this->outputResult($this->check
b580 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 HttpsProxyFullUriRequestParam())
b5a0 3b 0a 7d 0a 0a 69 66 20 28 24 6f 61 75 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 ;.}..if.($oauth.=.$config->get('
b5c0 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 61 75 74 github-oauth')).{.foreach.($oaut
b5e0 68 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d h.as.$domain.=>.$token).{.$this-
b600 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 27 2e 24 64 6f 6d >getIO()->write('Checking.'.$dom
b620 61 69 6e 2e 27 20 6f 61 75 74 68 20 61 63 63 65 73 73 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 ain.'.oauth.access:.',.false);.$
b640 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 this->outputResult($this->checkG
b660 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a ithubOauth($domain,.$token));.}.
b680 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 }.else.{.$this->getIO()->write('
b6a0 43 68 65 63 6b 69 6e 67 20 67 69 74 68 75 62 2e 63 6f 6d 20 72 61 74 65 20 6c 69 6d 69 74 3a 20 Checking.github.com.rate.limit:.
b6c0 27 2c 20 66 61 6c 73 65 29 3b 0a 24 72 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 ',.false);.$rate.=.$this->getGit
b6e0 68 75 62 52 61 74 65 4c 69 6d 69 74 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 3b 0a 0a 69 66 20 hubRateLimit('github.com');..if.
b700 28 31 30 20 3e 20 24 72 61 74 65 5b 27 72 65 6d 61 69 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 (10.>.$rate['remaining']).{.$thi
b720 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 57 41 52 4e s->getIO()->write('<warning>WARN
b740 49 4e 47 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d ING</warning>');.$this->getIO()-
b760 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 47 69 74 68 75 62 >write(sprintf(.'<comment>Github
b780 20 68 61 73 20 61 20 72 61 74 65 20 6c 69 6d 69 74 20 6f 6e 20 74 68 65 69 72 20 41 50 49 2e 20 .has.a.rate.limit.on.their.API..
b7a0 27 0a 2e 20 27 59 6f 75 20 63 75 72 72 65 6e 74 6c 79 20 68 61 76 65 20 3c 6f 70 74 69 6f 6e 73 '...'You.currently.have.<options
b7c0 3d 62 6f 6c 64 3e 25 75 3c 2f 6f 70 74 69 6f 6e 73 3d 62 6f 6c 64 3e 20 27 0a 2e 20 27 6f 75 74 =bold>%u</options=bold>.'...'out
b7e0 20 6f 66 20 3c 6f 70 74 69 6f 6e 73 3d 62 6f 6c 64 3e 25 75 3c 2f 6f 70 74 69 6f 6e 73 3d 62 6f .of.<options=bold>%u</options=bo
b800 6c 64 3e 20 72 65 71 75 65 73 74 73 20 6c 65 66 74 2e 27 20 2e 20 50 48 50 5f 45 4f 4c 0a 2e 20 ld>.requests.left.'...PHP_EOL...
b820 27 53 65 65 20 68 74 74 70 73 3a 2f 2f 64 65 76 65 6c 6f 70 65 72 2e 67 69 74 68 75 62 2e 63 6f 'See.https://developer.github.co
b840 6d 2f 76 33 2f 23 72 61 74 65 2d 6c 69 6d 69 74 69 6e 67 20 61 6e 64 20 61 6c 73 6f 27 20 2e 20 m/v3/#rate-limiting.and.also'...
b860 50 48 50 5f 45 4f 4c 0a 2e 20 27 20 20 20 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 PHP_EOL...'....https://getcompos
b880 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 er.org/doc/articles/troubleshoot
b8a0 69 6e 67 2e 6d 64 23 61 70 69 2d 72 61 74 65 2d 6c 69 6d 69 74 2d 61 6e 64 2d 6f 61 75 74 68 2d ing.md#api-rate-limit-and-oauth-
b8c0 74 6f 6b 65 6e 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 24 72 61 74 65 5b 27 72 65 6d 61 69 6e tokens</comment>',.$rate['remain
b8e0 69 6e 67 27 5d 2c 0a 24 72 61 74 65 5b 27 6c 69 6d 69 74 27 5d 0a 29 29 3b 0a 7d 20 65 6c 73 65 ing'],.$rate['limit'].));.}.else
b900 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e .{.$this->getIO()->write('<info>
b920 4f 4b 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 OK</info>');.}.}..$this->getIO()
b940 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 64 69 73 6b 20 66 72 65 65 20 73 70 61 63 ->write('Checking.disk.free.spac
b960 65 3a 20 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c e:.',.false);.$this->outputResul
b980 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 t($this->checkDiskSpace($config)
b9a0 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b );..$this->getIO()->write('Check
b9c0 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 3a 20 27 2c 20 66 61 6c 73 65 29 3b ing.composer.version:.',.false);
b9e0 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 74 68 69 73 2d 3e 63 68 65 63 .$this->outputResult($this->chec
ba00 6b 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 69 6c kVersion());..return.$this->fail
ba20 75 72 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 43 ures;.}..private.function.checkC
ba40 6f 6d 70 6f 73 65 72 53 63 68 65 6d 61 28 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e omposerSchema().{.$validator.=.n
ba60 65 77 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 ew.ConfigValidator($this->getIO(
ba80 29 29 3b 0a 6c 69 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 ));.list($errors,.$publishErrors
baa0 2c 20 24 77 61 72 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 ,.$warnings).=.$validator->valid
bac0 61 74 65 28 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 29 3b ate(Factory::getComposerFile());
bae0 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 ..if.($errors.||.$publishErrors.
bb00 7c 7c 20 24 77 61 72 6e 69 6e 67 73 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 ||.$warnings).{.$messages.=.arra
bb20 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 y(.'error'.=>.array_merge($error
bb40 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e s,.$publishErrors),.'warning'.=>
bb60 20 24 77 61 72 6e 69 6e 67 73 2c 0a 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 66 6f .$warnings,.);..$output.=.'';.fo
bb80 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d reach.($messages.as.$style.=>.$m
bba0 73 67 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b sgs).{.foreach.($msgs.as.$msg).{
bbc0 0a 24 6f 75 74 70 75 74 20 2e 3d 20 27 3c 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e .$output..=.'<'...$style...'>'..
bbe0 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 50 48 .$msg...'</'...$style...'>'...PH
bc00 50 5f 45 4f 4c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6f 75 74 70 75 74 P_EOL;.}.}..return.rtrim($output
bc20 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 );.}..return.true;.}..private.fu
bc40 6e 63 74 69 6f 6e 20 63 68 65 63 6b 47 69 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 nction.checkGit().{.$this->proce
bc60 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 63 6f 6c 6f 72 2e 75 69 ss->execute('git.config.color.ui
bc80 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 74 72 69 6d ',.$output);.if.(strtolower(trim
bca0 28 24 6f 75 74 70 75 74 29 29 20 3d 3d 3d 20 27 61 6c 77 61 79 73 27 29 20 7b 0a 72 65 74 75 72 ($output)).===.'always').{.retur
bcc0 6e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 59 6f 75 72 20 67 69 74 20 63 6f 6c 6f 72 2e 75 69 20 73 65 n.'<comment>Your.git.color.ui.se
bce0 74 74 69 6e 67 20 69 73 20 73 65 74 20 74 6f 20 61 6c 77 61 79 73 2c 20 74 68 69 73 20 69 73 20 tting.is.set.to.always,.this.is.
bd00 6b 6e 6f 77 6e 20 74 6f 20 63 72 65 61 74 65 20 69 73 73 75 65 73 2e 20 55 73 65 20 22 67 69 74 known.to.create.issues..Use."git
bd20 20 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 61 6c 20 63 6f 6c 6f 72 2e 75 69 20 74 72 75 65 22 20 .config.--global.color.ui.true".
bd40 74 6f 20 73 65 74 20 69 74 20 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b to.set.it.correctly.</comment>';
bd60 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .}..return.true;.}..private.func
bd80 74 69 6f 6e 20 63 68 65 63 6b 48 74 74 70 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 tion.checkHttp().{.$protocol.=.e
bda0 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 xtension_loaded('openssl').?.'ht
bdc0 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d tps'.:.'http';.try.{.$this->rfs-
bde0 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 >getContents('packagist.org',.$p
be00 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b rotocol...'://packagist.org/pack
be20 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ages.json',.false);.}.catch.(\Ex
be40 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 ception.$e).{.return.$e;.}..retu
be60 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 rn.true;.}..private.function.che
be80 63 6b 48 74 74 70 50 72 6f 78 79 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 ckHttpProxy().{.$protocol.=.exte
bea0 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 nsion_loaded('openssl').?.'https
bec0 27 20 3a 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 64 '.:.'http';.try.{.$json.=.json_d
bee0 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 ecode($this->rfs->getContents('p
bf00 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 ackagist.org',.$protocol...'://p
bf20 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c ackagist.org/packages.json',.fal
bf40 73 65 29 2c 20 74 72 75 65 29 3b 0a 24 68 61 73 68 20 3d 20 72 65 73 65 74 28 24 6a 73 6f 6e 5b se),.true);.$hash.=.reset($json[
bf60 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 3b 0a 24 68 61 73 68 20 3d 20 24 'provider-includes']);.$hash.=.$
bf80 68 61 73 68 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c hash['sha256'];.$path.=.str_repl
bfa0 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 68 61 73 68 2c 20 6b 65 79 28 24 6a 73 6f 6e 5b 27 ace('%hash%',.$hash,.key($json['
bfc0 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 3b 0a 24 70 72 6f 76 69 64 65 72 provider-includes']));.$provider
bfe0 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b .=.$this->rfs->getContents('pack
c000 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b agist.org',.$protocol...'://pack
c020 61 67 69 73 74 2e 6f 72 67 2f 27 2e 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 agist.org/'.$path,.false);..if.(
c040 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 70 72 6f 76 69 64 65 72 29 20 21 3d 3d 20 24 68 hash('sha256',.$provider).!==.$h
c060 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 61 74 20 79 6f 75 ash).{.return.'It.seems.that.you
c080 72 20 70 72 6f 78 79 20 69 73 20 6d 6f 64 69 66 79 69 6e 67 20 68 74 74 70 20 74 72 61 66 66 69 r.proxy.is.modifying.http.traffi
c0a0 63 20 6f 6e 20 74 68 65 20 66 6c 79 27 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 c.on.the.fly';.}.}.catch.(\Excep
c0c0 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 tion.$e).{.return.$e;.}..return.
c0e0 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e true;.}.........private.function
c100 20 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 .checkHttpProxyFullUriRequestPar
c120 61 6d 28 29 0a 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e am().{.$url.=.'http://packagist.
c140 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d org/packages.json';.try.{.$this-
c160 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 >rfs->getContents('packagist.org
c180 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 ',.$url,.false);.}.catch.(Transp
c1a0 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e ortException.$e).{.try.{.$this->
c1c0 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 rfs->getContents('packagist.org'
c1e0 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 ,.$url,.false,.array('http'.=>.a
c200 72 72 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 rray('request_fulluri'.=>.false)
c220 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 ));.}.catch.(TransportException.
c240 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 73 73 20 74 $e).{.return.'Unable.to.assess.t
c260 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 65 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 he.situation,.maybe.packagist.or
c280 67 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 g.is.down.('.$e->getMessage().')
c2a0 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 ';.}..return.'It.seems.there.is.
c2c0 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 a.problem.with.your.proxy.server
c2e0 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 ,.try.setting.the."HTTP_PROXY_RE
c300 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 61 6e 64 20 22 48 54 54 50 53 5f 50 52 4f 58 59 5f QUEST_FULLURI".and."HTTPS_PROXY_
c320 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 REQUEST_FULLURI".environment.var
c340 69 61 62 6c 65 73 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 iables.to."false"';.}..return.tr
c360 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 ue;.}.........private.function.c
c380 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 heckHttpsProxyFullUriRequestPara
c3a0 6d 28 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 m().{.if.(!extension_loaded('ope
c3c0 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6f nssl')).{.return.'You.need.the.o
c3e0 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 74 penssl.extension.installed.for.t
c400 68 69 73 20 63 68 65 63 6b 27 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 his.check';.}..$url.=.'https://a
c420 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 53 65 6c 64 61 65 6b 2f 6a 73 6f 6e pi.github.com/repos/Seldaek/json
c440 6c 69 6e 74 2f 7a 69 70 62 61 6c 6c 2f 31 2e 30 2e 30 27 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 lint/zipball/1.0.0';.try.{.$this
c460 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c ->rfs->getContents('github.com',
c480 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 .$url,.false);.}.catch.(Transpor
c4a0 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 tException.$e).{.try.{.$this->rf
c4c0 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 s->getContents('github.com',.$ur
c4e0 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 l,.false,.array('http'.=>.array(
c500 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 3b 0a 7d 'request_fulluri'.=>.false)));.}
c520 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b .catch.(TransportException.$e).{
c540 0a 72 65 74 75 72 6e 20 27 55 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 73 73 20 74 68 65 20 73 69 .return.'Unable.to.assess.the.si
c560 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 65 20 67 69 74 68 75 62 20 69 73 20 64 6f 77 6e 20 28 27 tuation,.maybe.github.is.down.('
c580 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e .$e->getMessage().')';.}..return
c5a0 20 27 49 74 20 73 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 .'It.seems.there.is.a.problem.wi
c5c0 74 68 20 79 6f 75 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e th.your.proxy.server,.try.settin
c5e0 67 20 74 68 65 20 22 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 g.the."HTTPS_PROXY_REQUEST_FULLU
c600 52 49 22 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 22 66 61 6c RI".environment.variable.to."fal
c620 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 se"';.}..return.true;.}..private
c640 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 .function.checkGithubOauth($doma
c660 69 6e 2c 20 24 74 6f 6b 65 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 in,.$token).{.$this->getIO()->se
c680 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c tAuthentication($domain,.$token,
c6a0 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 .'x-oauth-basic');.try.{.$url.=.
c6c0 24 64 6f 6d 61 69 6e 20 3d 3d 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 $domain.===.'github.com'.?.'http
c6e0 73 3a 2f 2f 61 70 69 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 75 73 65 72 2f 72 65 70 6f 73 27 20 s://api.'.$domain.'/user/repos'.
c700 3a 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 76 33 2f 75 73 :.'https://'.$domain.'/api/v3/us
c720 65 72 2f 72 65 70 6f 73 27 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 er/repos';..return.$this->rfs->g
c740 65 74 43 6f 6e 74 65 6e 74 73 28 24 64 6f 6d 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c etContents($domain,.$url,.false,
c760 20 61 72 72 61 79 28 0a 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 20 3d 3e 20 .array(.'retry-auth-failure'.=>.
c780 66 61 6c 73 65 0a 29 29 20 3f 20 74 72 75 65 20 3a 20 27 55 6e 65 78 70 65 63 74 65 64 20 65 72 false.)).?.true.:.'Unexpected.er
c7a0 72 6f 72 27 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ror';.}.catch.(\Exception.$e).{.
c7c0 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 if.($e.instanceof.TransportExcep
c7e0 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 31 29 20 7b tion.&&.$e->getCode().===.401).{
c800 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d 6d 65 6e 74 3e 54 68 65 20 6f 61 75 74 68 20 74 6f 6b 65 .return.'<comment>The.oauth.toke
c820 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 73 65 65 6d 73 20 69 6e 76 61 6c 69 64 2c n.for.'.$domain.'.seems.invalid,
c840 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 61 6c 20 2d .run."composer.config.--global.-
c860 2d 75 6e 73 65 74 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 22 -unset.github-oauth.'.$domain.'"
c880 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 72 65 74 .to.remove.it</comment>';.}..ret
c8a0 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 urn.$e;.}.}..private.function.ge
c8c0 74 47 69 74 68 75 62 52 61 74 65 4c 69 6d 69 74 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e tGithubRateLimit($domain,.$token
c8e0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e .=.null).{.if.($token).{.$this->
c900 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 64 6f 6d 61 getIO()->setAuthentication($doma
c920 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 7d 0a in,.$token,.'x-oauth-basic');.}.
c940 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 64 6f 6d 61 69 6e 20 3d 3d 3d 20 27 67 69 74 68 75 .try.{.$url.=.$domain.===.'githu
c960 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 27 2e 24 64 6f 6d 61 69 6e 2e b.com'.?.'https://api.'.$domain.
c980 27 2f 72 61 74 65 5f 6c 69 6d 69 74 27 20 3a 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 64 6f 6d 61 '/rate_limit'.:.'https://'.$doma
c9a0 69 6e 2e 27 2f 61 70 69 2f 72 61 74 65 5f 6c 69 6d 69 74 27 3b 0a 24 6a 73 6f 6e 20 3d 20 24 74 in.'/api/rate_limit';.$json.=.$t
c9c0 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 64 6f 6d 61 69 6e 2c 20 24 his->rfs->getContents($domain,.$
c9e0 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 url,.false,.array('retry-auth-fa
ca00 69 6c 75 72 65 27 20 3d 3e 20 66 61 6c 73 65 29 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f ilure'.=>.false));.$data.=.json_
ca20 64 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 61 decode($json,.true);..return.$da
ca40 74 61 5b 27 72 65 73 6f 75 72 63 65 73 27 5d 5b 27 63 6f 72 65 27 5d 3b 0a 7d 20 63 61 74 63 68 ta['resources']['core'];.}.catch
ca60 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e .(\Exception.$e).{.if.($e.instan
ca80 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 ceof.TransportException.&&.$e->g
caa0 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f 6d etCode().===.401).{.return.'<com
cac0 6d 65 6e 74 3e 54 68 65 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 ment>The.oauth.token.for.'.$doma
cae0 69 6e 2e 27 20 73 65 65 6d 73 20 69 6e 76 61 6c 69 64 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 in.'.seems.invalid,.run."compose
cb00 72 20 63 6f 6e 66 69 67 20 2d 2d 67 6c 6f 62 61 6c 20 2d 2d 75 6e 73 65 74 20 67 69 74 68 75 62 r.config.--global.--unset.github
cb20 2d 6f 61 75 74 68 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 -oauth.'.$domain.'".to.remove.it
cb40 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a </comment>';.}..return.$e;.}.}..
cb60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 private.function.checkDiskSpace(
cb80 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 6d 69 6e 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a $config).{.$minSpaceFree.=.1024*
cba0 31 30 32 34 3b 0a 69 66 20 28 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 1024;.if.((($df.=.@disk_free_spa
cbc0 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 ce($dir.=.$config->get('home')))
cbe0 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 .!==.false.&&.$df.<.$minSpaceFre
cc00 65 29 0a 7c 7c 20 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 e).||.(($df.=.@disk_free_space($
cc20 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 dir.=.$config->get('vendor-dir')
cc40 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 )).!==.false.&&.$df.<.$minSpaceF
cc60 72 65 65 29 0a 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b ree).).{.return.'<error>The.disk
cc80 20 68 6f 73 74 69 6e 67 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 3c 2f 65 72 72 6f 72 .hosting.'.$dir.'.is.full</error
cca0 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 >';.}..return.true;.}..private.f
ccc0 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 unction.checkVersion().{.$protoc
cce0 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 ol.=.extension_loaded('openssl')
cd00 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 .?.'https'.:.'http';.$latest.=.t
cd20 72 69 6d 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 rim($this->rfs->getContents('get
cd40 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 composer.org',.$protocol...'://g
cd60 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 etcomposer.org/version',.false))
cd80 3b 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 ;..if.(Composer::VERSION.!==.$la
cda0 74 65 73 74 20 26 26 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 27 40 test.&&.Composer::VERSION.!==.'@
cdc0 70 61 63 6b 61 67 65 5f 76 65 72 73 69 6f 6e 40 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 63 6f package_version@').{.return.'<co
cde0 6d 6d 65 6e 74 3e 59 6f 75 20 61 72 65 20 6e 6f 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 mment>You.are.not.running.the.la
ce00 74 65 73 74 20 76 65 72 73 69 6f 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 3b 0a 7d 0a 0a 72 65 74 75 test.version</comment>';.}..retu
ce20 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 rn.true;.}..private.function.out
ce40 70 75 74 52 65 73 75 6c 74 28 24 72 65 73 75 6c 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d putResult($result).{.if.(true.==
ce60 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 =.$result).{.$this->getIO()->wri
ce80 74 65 28 27 3c 69 6e 66 6f 3e 4f 4b 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a te('<info>OK</info>');.}.else.{.
cea0 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 2b 2b 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 $this->failures++;.$this->getIO(
cec0 29 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 41 49 4c 3c 2f 65 72 72 6f 72 3e 27 29 3b )->write('<error>FAIL</error>');
cee0 0a 69 66 20 28 24 72 65 73 75 6c 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 45 78 63 65 70 74 69 .if.($result.instanceof.\Excepti
cf00 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 5b 27 2e on).{.$this->getIO()->write('['.
cf20 67 65 74 5f 63 6c 61 73 73 28 24 72 65 73 75 6c 74 29 2e 27 5d 20 27 2e 24 72 65 73 75 6c 74 2d get_class($result).'].'.$result-
cf40 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 73 75 6c >getMessage());.}.elseif.($resul
cf60 74 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 74 72 69 6d 28 t).{.$this->getIO()->write(trim(
cf80 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 $result));.}.}.}..private.functi
cfa0 6f 6e 20 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 on.checkPlatform().{.$output.=.'
cfc0 27 3b 0a 24 6f 75 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 73 67 2c 20 24 73 74 79 6c 65 ';.$out.=.function.($msg,.$style
cfe0 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 27 3c ).use.(&$output).{.$output..=.'<
d000 27 2e 24 73 74 79 6c 65 2e 27 3e 27 2e 24 6d 73 67 2e 27 3c 2f 27 2e 24 73 74 79 6c 65 2e 27 3e '.$style.'>'.$msg.'</'.$style.'>
d020 27 2e 50 48 50 5f 45 4f 4c 3b 0a 7d 3b 0a 0a 0a 20 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 '.PHP_EOL;.};....$errors.=.array
d040 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 69 6e 69 50 61 ();.$warnings.=.array();..$iniPa
d060 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 24 64 69 73 th.=.php_ini_loaded_file();.$dis
d080 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 69 6e 69 playIniMessage.=.false;.if.($ini
d0a0 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f 4c 2e 50 48 Path).{.$iniMessage.=.PHP_EOL.PH
d0c0 50 5f 45 4f 4c 2e 27 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 P_EOL.'The.php.ini.used.by.your.
d0e0 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 command-line.PHP.is:.'...$iniPat
d100 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f h;.}.else.{.$iniMessage.=.PHP_EO
d120 4c 2e 50 48 50 5f 45 4f 4c 2e 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e L.PHP_EOL.'A.php.ini.file.does.n
d140 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 ot.exist..You.will.have.to.creat
d160 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 3d 20 50 48 50 5f 45 4f e.one.';.}.$iniMessage..=.PHP_EO
d180 4c 2e 27 49 66 20 79 6f 75 20 63 61 6e 20 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 20 69 6e 69 L.'If.you.can.not.modify.the.ini
d1a0 20 66 69 6c 65 2c 20 79 6f 75 20 63 61 6e 20 61 6c 73 6f 20 72 75 6e 20 60 70 68 70 20 2d 64 20 .file,.you.can.also.run.`php.-d.
d1c0 6f 70 74 69 6f 6e 3d 76 61 6c 75 65 60 20 74 6f 20 6d 6f 64 69 66 79 20 69 6e 69 20 76 61 6c 75 option=value`.to.modify.ini.valu
d1e0 65 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e 20 59 6f 75 20 63 61 6e 20 75 73 65 20 2d 64 20 6d 75 es.on.the.fly..You.can.use.-d.mu
d200 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 27 3b 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 ltiple.times.';..if.(!function_e
d220 78 69 73 74 73 28 27 6a 73 6f 6e 5f 64 65 63 6f 64 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b xists('json_decode')).{.$errors[
d240 27 6a 73 6f 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 'json'].=.true;.}..if.(!extensio
d260 6e 5f 6c 6f 61 64 65 64 28 27 50 68 61 72 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 68 61 n_loaded('Phar')).{.$errors['pha
d280 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f r'].=.true;.}..if.(!extension_lo
d2a0 61 64 65 64 28 27 66 69 6c 74 65 72 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 66 69 6c 74 65 aded('filter')).{.$errors['filte
d2c0 72 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f r'].=.true;.}..if.(!extension_lo
d2e0 61 64 65 64 28 27 68 61 73 68 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 68 61 73 68 27 5d 20 aded('hash')).{.$errors['hash'].
d300 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 =.true;.}..if.(!extension_loaded
d320 28 27 63 74 79 70 65 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 63 74 79 70 65 27 5d 20 3d 20 ('ctype')).{.$errors['ctype'].=.
d340 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c true;.}..if.(!ini_get('allow_url
d360 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 _fopen')).{.$errors['allow_url_f
d380 6f 70 65 6e 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f open'].=.true;.}..if.(extension_
d3a0 6c 6f 61 64 65 64 28 27 69 6f 6e 43 75 62 65 20 4c 6f 61 64 65 72 27 29 20 26 26 20 69 6f 6e 63 loaded('ionCube.Loader').&&.ionc
d3c0 75 62 65 5f 6c 6f 61 64 65 72 5f 69 76 65 72 73 69 6f 6e 28 29 20 3c 20 34 30 30 30 39 29 20 7b ube_loader_iversion().<.40009).{
d3e0 0a 24 65 72 72 6f 72 73 5b 27 69 6f 6e 63 75 62 65 27 5d 20 3d 20 69 6f 6e 63 75 62 65 5f 6c 6f .$errors['ioncube'].=.ioncube_lo
d400 61 64 65 72 5f 76 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 ader_version();.}..if.(version_c
d420 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 ompare(PHP_VERSION,.'5.3.2',.'<'
d440 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f )).{.$errors['php'].=.PHP_VERSIO
d460 4e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 29 N;.}..if.(!isset($errors['php'])
d480 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c .&&.version_compare(PHP_VERSION,
d4a0 20 27 35 2e 33 2e 34 27 2c 20 27 3c 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 70 .'5.3.4',.'<')).{.$warnings['php
d4c0 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 '].=.PHP_VERSION;.}..if.(!extens
d4e0 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 ion_loaded('openssl')).{.$errors
d500 5b 27 6f 70 65 6e 73 73 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 64 65 66 69 ['openssl'].=.true;.}..if.(!defi
d520 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f ned('HHVM_VERSION').&&.!extensio
d540 6e 5f 6c 6f 61 64 65 64 28 27 61 70 63 75 27 29 20 26 26 20 69 6e 69 5f 67 65 74 28 27 61 70 63 n_loaded('apcu').&&.ini_get('apc
d560 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 61 70 63 5f .enable_cli')).{.$warnings['apc_
d580 63 6c 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 cli'].=.true;.}..ob_start();.php
d5a0 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 24 70 68 70 69 6e 66 6f 20 3d 20 6f info(INFO_GENERAL);.$phpinfo.=.o
d5c0 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b b_get_clean();.if.(preg_match('{
d5e0 43 6f 6e 66 69 67 75 72 65 20 43 6f 6d 6d 61 6e 64 28 3f 3a 20 2a 3c 2f 74 64 3e 3c 74 64 20 63 Configure.Command(?:.*</td><td.c
d600 6c 61 73 73 3d 22 76 22 3e 7c 20 2a 3d 3e 20 2a 29 28 2e 2a 3f 29 28 3f 3a 3c 2f 74 64 3e 7c 24 lass="v">|.*=>.*)(.*?)(?:</td>|$
d620 29 7d 6d 27 2c 20 24 70 68 70 69 6e 66 6f 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 66 )}m',.$phpinfo,.$match)).{.$conf
d640 69 67 75 72 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d igure.=.$match[1];..if.(false.!=
d660 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 =.strpos($configure,.'--enable-s
d680 69 67 63 68 69 6c 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 73 69 67 63 68 69 6c 64 igchild')).{.$warnings['sigchild
d6a0 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 '].=.true;.}..if.(false.!==.strp
d6c0 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 os($configure,.'--with-curlwrapp
d6e0 65 72 73 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 63 75 72 6c 77 72 61 70 70 65 72 73 ers')).{.$warnings['curlwrappers
d700 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 '].=.true;.}.}..if.(ini_get('xde
d720 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 bug.profiler_enabled')).{.$warni
d740 6e 67 73 5b 27 78 64 65 62 75 67 5f 70 72 6f 66 69 6c 65 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 ngs['xdebug_profile'].=.true;.}.
d760 65 6c 73 65 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 62 75 67 elseif.(extension_loaded('xdebug
d780 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 64 27 5d ')).{.$warnings['xdebug_loaded']
d7a0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 65 72 72 6f 72 73 29 29 .=.true;.}..if.(!empty($errors))
d7c0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 65 72 72 6f 72 20 3d 3e .{.foreach.($errors.as.$error.=>
d7e0 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 72 72 6f 72 29 20 7b 0a 63 .$current).{.switch.($error).{.c
d800 61 73 65 20 27 6a 73 6f 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 ase.'json':.$text.=.PHP_EOL."The
d820 20 6a 73 6f 6e 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 .json.extension.is.missing.".PHP
d840 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 _EOL;.$text..=."Install.it.or.re
d860 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 6a 73 compile.php.without.--disable-js
d880 6f 6e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 61 72 27 3a 0a 24 74 65 78 74 20 on";.break;..case.'phar':.$text.
d8a0 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 70 68 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 =.PHP_EOL."The.phar.extension.is
d8c0 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e .missing.".PHP_EOL;.$text..=."In
d8e0 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 stall.it.or.recompile.php.withou
d900 74 20 2d 2d 64 69 73 61 62 6c 65 2d 70 68 61 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 t.--disable-phar";.break;..case.
d920 27 66 69 6c 74 65 72 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 66 'filter':.$text.=.PHP_EOL."The.f
d940 69 6c 74 65 72 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 ilter.extension.is.missing.".PHP
d960 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 _EOL;.$text..=."Install.it.or.re
d980 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 66 69 compile.php.without.--disable-fi
d9a0 6c 74 65 72 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 61 73 68 27 3a 0a 24 74 65 78 lter";.break;..case.'hash':.$tex
d9c0 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 68 61 73 68 20 65 78 74 65 6e 73 69 6f 6e 20 t.=.PHP_EOL."The.hash.extension.
d9e0 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 is.missing.".PHP_EOL;.$text..=."
da00 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 Install.it.or.recompile.php.with
da20 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 68 61 73 68 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 out.--disable-hash";.break;..cas
da40 65 20 27 63 74 79 70 65 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 e.'ctype':.$text.=.PHP_EOL."The.
da60 63 74 79 70 65 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 22 2e 50 48 50 ctype.extension.is.missing.".PHP
da80 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 6e 73 74 61 6c 6c 20 69 74 20 6f 72 20 72 65 _EOL;.$text..=."Install.it.or.re
daa0 63 6f 6d 70 69 6c 65 20 70 68 70 20 77 69 74 68 6f 75 74 20 2d 2d 64 69 73 61 62 6c 65 2d 63 74 compile.php.without.--disable-ct
dac0 79 70 65 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 69 63 6f 64 65 27 3a 0a 24 74 ype";.break;..case.'unicode':.$t
dae0 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 64 65 74 65 63 74 5f 75 6e 69 63 6f 64 ext.=.PHP_EOL."The.detect_unicod
db00 65 20 73 65 74 74 69 6e 67 20 6d 75 73 74 20 62 65 20 64 69 73 61 62 6c 65 64 2e 22 2e 50 48 50 e.setting.must.be.disabled.".PHP
db20 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e _EOL;.$text..=."Add.the.followin
db40 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 g.to.the.end.of.your.`php.ini`:"
db60 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 64 65 74 65 63 74 5f 75 .PHP_EOL;.$text..=."....detect_u
db80 6e 69 63 6f 64 65 20 3d 20 4f 66 66 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 nicode.=.Off";.$displayIniMessag
dba0 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 75 68 6f 73 69 6e 27 e.=.true;.break;..case.'suhosin'
dbc0 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 73 75 68 6f 73 69 6e 2e 65 :.$text.=.PHP_EOL."The.suhosin.e
dbe0 78 65 63 75 74 6f 72 2e 69 6e 63 6c 75 64 65 2e 77 68 69 74 65 6c 69 73 74 20 73 65 74 74 69 6e xecutor.include.whitelist.settin
dc00 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 g.is.incorrect.".PHP_EOL;.$text.
dc20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 .=."Add.the.following.to.the.end
dc40 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 20 6f 72 20 73 75 68 6f 73 69 6e 2e 69 6e .of.your.`php.ini`.or.suhosin.in
dc60 69 20 28 45 78 61 6d 70 6c 65 20 70 61 74 68 20 5b 66 6f 72 20 44 65 62 69 61 6e 5d 3a 20 2f 65 i.(Example.path.[for.Debian]:./e
dc80 74 63 2f 70 68 70 35 2f 63 6c 69 2f 63 6f 6e 66 2e 64 2f 73 75 68 6f 73 69 6e 2e 69 6e 69 29 3a tc/php5/cli/conf.d/suhosin.ini):
dca0 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 73 75 68 6f 73 69 6e ".PHP_EOL;.$text..=."....suhosin
dcc0 2e 65 78 65 63 75 74 6f 72 2e 69 6e 63 6c 75 64 65 2e 77 68 69 74 65 6c 69 73 74 20 3d 20 70 68 .executor.include.whitelist.=.ph
dce0 61 72 20 22 2e 24 63 75 72 72 65 6e 74 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 ar.".$current;.$displayIniMessag
dd00 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 e.=.true;.break;..case.'php':.$t
dd20 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 ext.=.PHP_EOL."Your.PHP.({$curre
dd40 6e 74 7d 29 20 69 73 20 74 6f 6f 20 6f 6c 64 2c 20 79 6f 75 20 6d 75 73 74 20 75 70 67 72 61 64 nt}).is.too.old,.you.must.upgrad
dd60 65 20 74 6f 20 50 48 50 20 35 2e 33 2e 32 20 6f 72 20 68 69 67 68 65 72 2e 22 3b 0a 62 72 65 61 e.to.PHP.5.3.2.or.higher.";.brea
dd80 6b 3b 0a 0a 63 61 73 65 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 3a 0a 24 74 65 78 k;..case.'allow_url_fopen':.$tex
dda0 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e t.=.PHP_EOL."The.allow_url_fopen
ddc0 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b .setting.is.incorrect.".PHP_EOL;
dde0 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 .$text..=."Add.the.following.to.
de00 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f the.end.of.your.`php.ini`:".PHP_
de20 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 EOL;.$text..=."....allow_url_fop
de40 65 6e 20 3d 20 4f 6e 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 en.=.On";.$displayIniMessage.=.t
de60 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6f 6e 63 75 62 65 27 3a 0a 24 74 65 rue;.break;..case.'ioncube':.$te
de80 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f 75 72 20 69 6f 6e 43 75 62 65 20 4c 6f 61 64 65 xt.=.PHP_EOL."Your.ionCube.Loade
dea0 72 20 65 78 74 65 6e 73 69 6f 6e 20 28 24 63 75 72 72 65 6e 74 29 20 69 73 20 69 6e 63 6f 6d 70 r.extension.($current).is.incomp
dec0 61 74 69 62 6c 65 20 77 69 74 68 20 50 68 61 72 20 66 69 6c 65 73 2e 22 2e 50 48 50 5f 45 4f 4c atible.with.Phar.files.".PHP_EOL
dee0 3b 0a 24 74 65 78 74 20 2e 3d 20 22 55 70 67 72 61 64 65 20 74 6f 20 69 6f 6e 43 75 62 65 20 34 ;.$text..=."Upgrade.to.ionCube.4
df00 2e 30 2e 39 20 6f 72 20 68 69 67 68 65 72 20 6f 72 20 72 65 6d 6f 76 65 20 74 68 69 73 20 6c 69 .0.9.or.higher.or.remove.this.li
df20 6e 65 20 28 70 61 74 68 20 6d 61 79 20 62 65 20 64 69 66 66 65 72 65 6e 74 29 20 66 72 6f 6d 20 ne.(path.may.be.different).from.
df40 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 20 74 6f 20 64 69 73 61 62 6c 65 20 69 74 3a 22 2e 50 your.`php.ini`.to.disable.it:".P
df60 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 7a 65 6e 64 5f 65 78 74 65 6e HP_EOL;.$text..=."....zend_exten
df80 73 69 6f 6e 20 3d 20 2f 75 73 72 2f 6c 69 62 2f 70 68 70 35 2f 32 30 30 39 30 36 32 36 2b 6c 66 sion.=./usr/lib/php5/20090626+lf
dfa0 73 2f 69 6f 6e 63 75 62 65 5f 6c 6f 61 64 65 72 5f 6c 69 6e 5f 35 2e 33 2e 73 6f 22 3b 0a 24 64 s/ioncube_loader_lin_5.3.so";.$d
dfc0 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a isplayIniMessage.=.true;.break;.
dfe0 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c .case.'openssl':.$text.=.PHP_EOL
e000 2e 22 54 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 ."The.openssl.extension.is.missi
e020 6e 67 2c 20 77 68 69 63 68 20 6d 65 61 6e 73 20 74 68 61 74 20 73 65 63 75 72 65 20 48 54 54 50 ng,.which.means.that.secure.HTTP
e040 53 20 74 72 61 6e 73 66 65 72 73 20 61 72 65 20 69 6d 70 6f 73 73 69 62 6c 65 2e 22 2e 50 48 50 S.transfers.are.impossible.".PHP
e060 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 66 20 70 6f 73 73 69 62 6c 65 20 79 6f 75 20 _EOL;.$text..=."If.possible.you.
e080 73 68 6f 75 6c 64 20 65 6e 61 62 6c 65 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 6c 65 20 70 68 should.enable.it.or.recompile.ph
e0a0 70 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 6f 70 65 6e 73 73 6c 22 3b 0a 62 72 65 61 6b 3b 0a 7d p.with.--with-openssl";.break;.}
e0c0 0a 24 6f 75 74 28 24 74 65 78 74 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 .$out($text,.'error');.}..$outpu
e0e0 74 20 2e 3d 20 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 77 61 72 t..=.PHP_EOL;.}..if.(!empty($war
e100 6e 69 6e 67 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 77 61 72 6e 69 6e 67 73 20 61 73 20 nings)).{.foreach.($warnings.as.
e120 24 77 61 72 6e 69 6e 67 20 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 $warning.=>.$current).{.switch.(
e140 24 77 61 72 6e 69 6e 67 29 20 7b 0a 63 61 73 65 20 27 61 70 63 5f 63 6c 69 27 3a 0a 24 74 65 78 $warning).{.case.'apc_cli':.$tex
e160 74 20 3d 20 22 54 68 65 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 73 65 74 74 69 6e 67 20 t.=."The.apc.enable_cli.setting.
e180 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d is.incorrect.".PHP_EOL;.$text..=
e1a0 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f ."Add.the.following.to.the.end.o
e1c0 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 f.your.`php.ini`:".PHP_EOL;.$tex
e1e0 74 20 2e 3d 20 22 20 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 3d 20 4f 66 66 22 3b 0a 24 t..=."..apc.enable_cli.=.Off";.$
e200 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b displayIniMessage.=.true;.break;
e220 0a 0a 63 61 73 65 20 27 73 69 67 63 68 69 6c 64 27 3a 0a 24 74 65 78 74 20 3d 20 22 50 48 50 20 ..case.'sigchild':.$text.=."PHP.
e240 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 was.compiled.with.--enable-sigch
e260 69 6c 64 20 77 68 69 63 68 20 63 61 6e 20 63 61 75 73 65 20 69 73 73 75 65 73 20 6f 6e 20 73 6f ild.which.can.cause.issues.on.so
e280 6d 65 20 70 6c 61 74 66 6f 72 6d 73 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d me.platforms.".PHP_EOL;.$text..=
e2a0 20 22 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 69 73 20 66 6c 61 67 ."Recompile.it.without.this.flag
e2c0 20 69 66 20 70 6f 73 73 69 62 6c 65 2c 20 73 65 65 20 61 6c 73 6f 3a 22 2e 50 48 50 5f 45 4f 4c .if.possible,.see.also:".PHP_EOL
e2e0 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 68 74 74 70 73 3a 2f 2f 62 75 67 73 2e 70 68 70 2e 6e ;.$text..=."..https://bugs.php.n
e300 65 74 2f 62 75 67 2e 70 68 70 3f 69 64 3d 32 32 39 39 39 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 et/bug.php?id=22999";.break;..ca
e320 73 65 20 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 3a 0a 24 74 65 78 74 20 3d 20 22 50 48 50 20 se.'curlwrappers':.$text.=."PHP.
e340 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 was.compiled.with.--with-curlwra
e360 70 70 65 72 73 20 77 68 69 63 68 20 77 69 6c 6c 20 63 61 75 73 65 20 69 73 73 75 65 73 20 77 69 ppers.which.will.cause.issues.wi
e380 74 68 20 48 54 54 50 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 47 69 74 48 75 th.HTTP.authentication.and.GitHu
e3a0 62 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 52 65 63 6f 6d 70 69 6c b.".PHP_EOL;.$text..=.".Recompil
e3c0 65 20 69 74 20 77 69 74 68 6f 75 74 20 74 68 69 73 20 66 6c 61 67 20 69 66 20 70 6f 73 73 69 62 e.it.without.this.flag.if.possib
e3e0 6c 65 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d le";.break;..case.'php':.$text.=
e400 20 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 71 75 69 74 65 ."Your.PHP.({$current}).is.quite
e420 20 6f 6c 64 2c 20 75 70 67 72 61 64 69 6e 67 20 74 6f 20 50 48 50 20 35 2e 33 2e 34 20 6f 72 20 .old,.upgrading.to.PHP.5.3.4.or.
e440 68 69 67 68 65 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b higher.is.recommended.".PHP_EOL;
e460 0a 24 74 65 78 74 20 2e 3d 20 22 20 43 6f 6d 70 6f 73 65 72 20 77 6f 72 6b 73 20 77 69 74 68 20 .$text..=.".Composer.works.with.
e480 35 2e 33 2e 32 2b 20 66 6f 72 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2c 20 62 75 74 20 74 68 65 72 5.3.2+.for.most.people,.but.ther
e4a0 65 20 6d 69 67 68 74 20 62 65 20 65 64 67 65 20 63 61 73 65 20 69 73 73 75 65 73 2e 22 3b 0a 62 e.might.be.edge.case.issues.";.b
e4c0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 64 27 3a 0a 24 74 65 reak;..case.'xdebug_loaded':.$te
e4e0 78 74 20 3d 20 22 54 68 65 20 78 64 65 62 75 67 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6c 6f xt.=."The.xdebug.extension.is.lo
e500 61 64 65 64 2c 20 74 68 69 73 20 63 61 6e 20 73 6c 6f 77 20 64 6f 77 6e 20 43 6f 6d 70 6f 73 65 aded,.this.can.slow.down.Compose
e520 72 20 61 20 6c 69 74 74 6c 65 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 r.a.little.".PHP_EOL;.$text..=."
e540 20 44 69 73 61 62 6c 69 6e 67 20 69 74 20 77 68 65 6e 20 75 73 69 6e 67 20 43 6f 6d 70 6f 73 65 .Disabling.it.when.using.Compose
e560 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 r.is.recommended.";.break;..case
e580 20 27 78 64 65 62 75 67 5f 70 72 6f 66 69 6c 65 27 3a 0a 24 74 65 78 74 20 3d 20 22 54 68 65 20 .'xdebug_profile':.$text.=."The.
e5a0 78 64 65 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 20 73 65 74 74 69 6e 67 20 xdebug.profiler_enabled.setting.
e5c0 69 73 20 65 6e 61 62 6c 65 64 2c 20 74 68 69 73 20 63 61 6e 20 73 6c 6f 77 20 64 6f 77 6e 20 43 is.enabled,.this.can.slow.down.C
e5e0 6f 6d 70 6f 73 65 72 20 61 20 6c 6f 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e omposer.a.lot.".PHP_EOL;.$text..
e600 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 =."Add.the.following.to.the.end.
e620 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 20 74 6f 20 64 69 73 61 62 6c 65 20 69 74 3a of.your.`php.ini`.to.disable.it:
e640 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 78 64 65 62 75 67 2e 70 72 ".PHP_EOL;.$text..=."..xdebug.pr
e660 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 20 3d 20 30 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 ofiler_enabled.=.0";.$displayIni
e680 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 Message.=.true;.break;.}.$out($t
e6a0 65 78 74 2c 20 27 63 6f 6d 6d 65 6e 74 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 70 6c ext,.'comment');.}.}..if.($displ
e6c0 61 79 49 6e 69 4d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 28 24 69 6e 69 4d 65 73 73 61 67 65 ayIniMessage).{.$out($iniMessage
e6e0 2c 20 27 63 6f 6d 6d 65 6e 74 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 77 61 72 6e 69 6e ,.'comment');.}..return.!$warnin
e700 67 73 20 26 26 20 21 24 65 72 72 6f 72 73 20 3f 20 74 72 75 65 20 3a 20 24 6f 75 74 70 75 74 3b gs.&&.!$errors.?.true.:.$output;
e720 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
e740 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c Composer\Command;..use.Composer\
e760 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 Factory;.use.Composer\IO\IOInter
e780 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 face;.use.Composer\DependencyRes
e7a0 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 olver\Pool;.use.Composer\Reposit
e7c0 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d ory\CompositeRepository;.use.Com
e7e0 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 poser\Script\ScriptEvents;.use.C
e800 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 omposer\Plugin\CommandEvent;.use
e820 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 .Composer\Plugin\PluginEvents;.u
e840 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 se.Composer\Package\Version\Vers
e860 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ionParser;..use.Symfony\Componen
e880 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 t\Console\Input\InputArgument;.u
e8a0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
e8c0 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ut\InputInterface;.use.Symfony\C
e8e0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
e900 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
e920 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a e\Output\OutputInterface;.......
e940 63 6c 61 73 73 20 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d class.ArchiveCommand.extends.Com
e960 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 mand.{.protected.function.config
e980 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 61 72 63 68 69 76 65 ure().{.$this.->setName('archive
e9a0 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 61 6e 20 61 ').->setDescription('Create.an.a
e9c0 72 63 68 69 76 65 20 6f 66 20 74 68 69 73 20 63 6f 6d 70 6f 73 65 72 20 70 61 63 6b 61 67 65 27 rchive.of.this.composer.package'
e9e0 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 ).->setDefinition(array(.new.Inp
ea00 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d utArgument('package',.InputArgum
ea20 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 61 ent::OPTIONAL,.'The.package.to.a
ea40 72 63 68 69 76 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 rchive.instead.of.the.current.pr
ea60 6f 6a 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 oject'),.new.InputArgument('vers
ea80 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 ion',.InputArgument::OPTIONAL,.'
eaa0 41 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 66 69 6e 64 20 74 68 65 A.version.constraint.to.find.the
eac0 20 70 61 63 6b 61 67 65 20 74 6f 20 61 72 63 68 69 76 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 .package.to.archive'),.new.Input
eae0 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f Option('format',.'f',.InputOptio
eb00 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 n::VALUE_REQUIRED,.'Format.of.th
eb20 65 20 72 65 73 75 6c 74 69 6e 67 20 61 72 63 68 69 76 65 3a 20 74 61 72 20 6f 72 20 7a 69 70 27 e.resulting.archive:.tar.or.zip'
eb40 2c 20 27 74 61 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 69 72 27 2c ,.'tar'),.new.InputOption('dir',
eb60 20 66 61 6c 73 65 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 .false,.InputOption::VALUE_REQUI
eb80 52 45 44 2c 20 27 57 72 69 74 65 20 74 68 65 20 61 72 63 68 69 76 65 20 74 6f 20 74 68 69 73 20 RED,.'Write.the.archive.to.this.
eba0 64 69 72 65 63 74 6f 72 79 27 2c 20 27 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c directory',.'.'),.)).->setHelp(<
ebc0 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 61 72 63 68 69 76 65 3c 2f 69 6e 66 6f 3e 20 63 <<EOT.The.<info>archive</info>.c
ebe0 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 6e 20 61 72 63 68 69 76 65 20 6f 66 20 74 68 65 ommand.creates.an.archive.of.the
ec00 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 6d 61 74 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 .specified.format.containing.the
ec20 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 6f 66 20 74 68 65 20 43 6f .files.and.directories.of.the.Co
ec40 6d 70 6f 73 65 72 20 70 72 6f 6a 65 63 74 20 6f 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 0a mposer.project.or.the.specified.
ec60 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 76 65 72 73 69 6f 6e package.in.the.specified.version
ec80 20 61 6e 64 20 77 72 69 74 65 73 20 69 74 20 74 6f 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 .and.writes.it.to.the.specified.
eca0 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 directory...<info>php.composer.p
ecc0 68 61 72 20 61 72 63 68 69 76 65 20 5b 2d 2d 66 6f 72 6d 61 74 3d 7a 69 70 5d 20 5b 2d 2d 64 69 har.archive.[--format=zip].[--di
ece0 72 3d 2f 66 6f 6f 5d 20 5b 70 61 63 6b 61 67 65 20 5b 76 65 72 73 69 6f 6e 5d 5d 3c 2f 69 6e 66 r=/foo].[package.[version]]</inf
ed00 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f o>..EOT.).;.}..protected.functio
ed20 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c n.execute(InputInterface.$input,
ed40 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d .OutputInterface.$output).{.$com
ed60 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 poser.=.$this->getComposer(false
ed80 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e );.if.($composer).{.$commandEven
eda0 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 t.=.new.CommandEvent(PluginEvent
edc0 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 61 72 63 68 69 76 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 s::COMMAND,.'archive',.$input,.$
ede0 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 output);.$composer->getEventDisp
ee00 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 atcher()->dispatch($commandEvent
ee20 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 24 63 6f ->getName(),.$commandEvent);.$co
ee40 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 mposer->getEventDispatcher()->di
ee60 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 spatchScript(ScriptEvents::PRE_A
ee80 52 43 48 49 56 45 5f 43 4d 44 29 3b 0a 7d 0a 0a 24 72 65 74 75 72 6e 43 6f 64 65 20 3d 20 24 74 RCHIVE_CMD);.}..$returnCode.=.$t
eea0 68 69 73 2d 3e 61 72 63 68 69 76 65 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 his->archive(.$this->getIO(),.$i
eec0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 nput->getArgument('package'),.$i
eee0 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 nput->getArgument('version'),.$i
ef00 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 0a 24 69 6e 70 75 nput->getOption('format'),.$inpu
ef20 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 69 72 27 29 0a 29 3b 0a 0a 69 66 20 28 30 20 3d 3d t->getOption('dir').);..if.(0.==
ef40 3d 20 24 72 65 74 75 72 6e 43 6f 64 65 20 26 26 20 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 =.$returnCode.&&.$composer).{.$c
ef60 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 omposer->getEventDispatcher()->d
ef80 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 ispatchScript(ScriptEvents::POST
efa0 5f 41 52 43 48 49 56 45 5f 43 4d 44 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e _ARCHIVE_CMD);.}..return.$return
efc0 43 6f 64 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 Code;.}..protected.function.arch
efe0 69 76 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d ive(IOInterface.$io,.$packageNam
f000 65 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d e.=.null,.$version.=.null,.$form
f020 61 74 20 3d 20 27 74 61 72 27 2c 20 24 64 65 73 74 20 3d 20 27 2e 27 29 0a 7b 0a 24 63 6f 6e 66 at.=.'tar',.$dest.=.'.').{.$conf
f040 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 66 ig.=.Factory::createConfig();.$f
f060 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 3b 0a 24 64 6f 77 6e 6c 6f 61 64 4d actory.=.new.Factory;.$downloadM
f080 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 anager.=.$factory->createDownloa
f0a0 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 61 72 63 68 69 76 65 dManager($io,.$config);.$archive
f0c0 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 41 72 63 68 69 76 Manager.=.$factory->createArchiv
f0e0 65 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 2c 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 eManager($config,.$downloadManag
f100 65 72 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 er);..if.($packageName).{.$packa
f120 67 65 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 ge.=.$this->selectPackage($io,.$
f140 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 packageName,.$version);..if.(!$p
f160 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 ackage).{.return.1;.}.}.else.{.$
f180 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e package.=.$this->getComposer()->
f1a0 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 getPackage();.}..$io->writeError
f1c0 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 69 6e 67 20 74 68 65 20 61 72 63 68 69 76 65 2e 3c 2f 69 ('<info>Creating.the.archive.</i
f1e0 6e 66 6f 3e 27 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2d 3e 61 72 63 68 69 76 65 nfo>');.$archiveManager->archive
f200 28 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 64 65 73 74 29 3b 0a 0a 72 65 74 ($package,.$format,.$dest);..ret
f220 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c urn.0;.}..protected.function.sel
f240 65 63 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 ectPackage(IOInterface.$io,.$pac
f260 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 69 6f kageName,.$version.=.null).{.$io
f280 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 20 66 6f ->writeError('<info>Searching.fo
f2a0 72 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 6f 3e 27 r.the.specified.package.</info>'
f2c0 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f );..if.($composer.=.$this->getCo
f2e0 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 mposer(false)).{.$localRepo.=.$c
f300 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d omposer->getRepositoryManager()-
f320 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 >getLocalRepository();.$repos.=.
f340 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 new.CompositeRepository(array_me
f360 72 67 65 28 61 72 72 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 rge(array($localRepo),.$composer
f380 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 ->getRepositoryManager()->getRep
f3a0 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 ositories()));.}.else.{.$default
f3c0 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 Repos.=.Factory::createDefaultRe
f3e0 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 69 6f 2d positories($this->getIO());.$io-
f400 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f >writeError('No.composer.json.fo
f420 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 und.in.the.current.directory,.se
f440 61 72 63 68 69 6e 67 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 arching.packages.from.'...implod
f460 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 e(',.',.array_keys($defaultRepos
f480 29 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 )));.$repos.=.new.CompositeRepos
f4a0 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d itory($defaultRepos);.}..$pool.=
f4c0 20 6e 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 .new.Pool();.$pool->addRepositor
f4e0 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f y($repos);..$parser.=.new.Versio
f500 6e 50 61 72 73 65 72 28 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 24 76 65 72 73 69 nParser();.$constraint.=.($versi
f520 6f 6e 29 20 3f 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 on).?.$parser->parseConstraints(
f540 24 76 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 $version).:.null;.$packages.=.$p
f560 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 ool->whatProvides($packageName,.
f580 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 $constraint,.true);..if.(count($
f5a0 70 61 63 6b 61 67 65 73 29 20 3e 20 31 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 packages).>.1).{.$package.=.rese
f5c0 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c t($packages);.$io->writeError('<
f5e0 69 6e 66 6f 3e 46 6f 75 6e 64 20 6d 75 6c 74 69 70 6c 65 20 6d 61 74 63 68 65 73 2c 20 73 65 6c info>Found.multiple.matches,.sel
f600 65 63 74 65 64 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e ected.'.$package->getPrettyStrin
f620 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 g().'.</info>');.$io->writeError
f640 28 27 41 6c 74 65 72 6e 61 74 69 76 65 73 20 77 65 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c ('Alternatives.were.'.implode(',
f660 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 20 72 65 .',.array_map(function.($p).{.re
f680 74 75 72 6e 20 24 70 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 20 7d 2c 20 24 turn.$p->getPrettyString();.},.$
f6a0 70 61 63 6b 61 67 65 73 29 29 2e 27 2e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 packages)).'.');.$io->writeError
f6c0 28 27 3c 63 6f 6d 6d 65 6e 74 3e 50 6c 65 61 73 65 20 75 73 65 20 61 20 6d 6f 72 65 20 73 70 65 ('<comment>Please.use.a.more.spe
f6e0 63 69 66 69 63 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 70 69 63 6b 20 61 20 64 69 66 66 65 cific.constraint.to.pick.a.diffe
f700 72 65 6e 74 20 70 61 63 6b 61 67 65 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 20 65 6c 73 rent.package.</comment>');.}.els
f720 65 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 eif.($packages).{.$package.=.res
f740 65 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 et($packages);.$io->writeError('
f760 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 61 6e 20 65 78 61 63 74 20 6d 61 74 63 68 20 27 2e 24 70 61 <info>Found.an.exact.match.'.$pa
f780 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 ckage->getPrettyString().'.</inf
f7a0 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 o>');.}.else.{.$io->writeError('
f7c0 3c 65 72 72 6f 72 3e 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 70 61 63 6b 61 67 65 20 <error>Could.not.find.a.package.
f7e0 6d 61 74 63 68 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 3c 2f 65 72 72 6f matching.'.$packageName.'.</erro
f800 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 r>');..return.false;.}..return.$
f820 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 package;.}.}.<?php............na
f840 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 mespace.Composer\Command;..use.C
f860 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 omposer\Cache;.use.Composer\Fact
f880 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ory;.use.Symfony\Component\Conso
f8a0 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d le\Input\InputInterface;.use.Sym
f8c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
f8e0 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 65 61 72 43 61 tputInterface;.....class.ClearCa
f900 63 68 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f cheCommand.extends.Command.{.pro
f920 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 tected.function.configure().{.$t
f940 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6c 65 61 72 2d 63 61 63 68 65 27 29 0a 2d 3e 73 his.->setName('clear-cache').->s
f960 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 63 6c 65 61 72 63 61 63 68 65 27 29 29 0a 2d etAliases(array('clearcache')).-
f980 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 6c 65 61 72 73 20 63 6f 6d 70 6f 73 65 72 >setDescription('Clears.composer
f9a0 5c 27 73 20 69 6e 74 65 72 6e 61 6c 20 70 61 63 6b 61 67 65 20 63 61 63 68 65 2e 27 29 0a 2d 3e \'s.internal.package.cache.').->
f9c0 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 63 6c 65 61 72 2d 63 setHelp(<<<EOT.The.<info>clear-c
f9e0 61 63 68 65 3c 2f 69 6e 66 6f 3e 20 64 65 6c 65 74 65 73 20 61 6c 6c 20 63 61 63 68 65 64 20 70 ache</info>.deletes.all.cached.p
fa00 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 63 6f 6d 70 6f 73 65 72 27 73 0a 63 61 63 68 65 20 64 69 ackages.from.composer's.cache.di
fa20 72 65 63 74 6f 72 79 2e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 rectory..EOT.).;.}..protected.fu
fa40 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 nction.execute(InputInterface.$i
fa60 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
fa80 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 .$config.=.Factory::createConfig
faa0 28 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 61 63 68 ();.$io.=.$this->getIO();..$cach
fac0 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 ePaths.=.array(.'cache-dir'.=>.$
fae0 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 64 69 72 27 29 2c 0a 27 63 61 63 68 65 config->get('cache-dir'),.'cache
fb00 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 -files-dir'.=>.$config->get('cac
fb20 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 he-files-dir'),.'cache-repo-dir'
fb40 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 .=>.$config->get('cache-repo-dir
fb60 27 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 24 63 6f 6e 66 69 67 2d 3e '),.'cache-vcs-dir'.=>.$config->
fb80 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 get('cache-vcs-dir'),.);..foreac
fba0 68 20 28 24 63 61 63 68 65 50 61 74 68 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 63 68 65 h.($cachePaths.as.$key.=>.$cache
fbc0 50 61 74 68 29 20 7b 0a 24 63 61 63 68 65 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 63 Path).{.$cachePath.=.realpath($c
fbe0 61 63 68 65 50 61 74 68 29 3b 0a 69 66 20 28 21 24 63 61 63 68 65 50 61 74 68 29 20 7b 0a 24 69 achePath);.if.(!$cachePath).{.$i
fc00 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 3c 69 6e 66 6f 3e 43 61 63 68 65 20 64 69 72 65 63 o->writeError("<info>Cache.direc
fc20 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 28 24 6b 65 79 29 3a 20 24 63 61 63 tory.does.not.exist.($key):.$cac
fc40 68 65 50 61 74 68 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 63 hePath</info>");..continue;.}.$c
fc60 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 61 63 68 65 50 61 74 68 ache.=.new.Cache($io,.$cachePath
fc80 29 3b 0a 69 66 20 28 21 24 63 61 63 68 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 );.if.(!$cache->isEnabled()).{.$
fca0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 3c 69 6e 66 6f 3e 43 61 63 68 65 20 69 73 20 6e io->writeError("<info>Cache.is.n
fcc0 6f 74 20 65 6e 61 62 6c 65 64 20 28 24 6b 65 79 29 3a 20 24 63 61 63 68 65 50 61 74 68 3c 2f 69 ot.enabled.($key):.$cachePath</i
fce0 6e 66 6f 3e 22 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 nfo>");..continue;.}..$io->write
fd00 45 72 72 6f 72 28 22 3c 69 6e 66 6f 3e 43 6c 65 61 72 69 6e 67 20 63 61 63 68 65 20 28 24 6b 65 Error("<info>Clearing.cache.($ke
fd20 79 29 3a 20 24 63 61 63 68 65 50 61 74 68 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 24 63 61 63 68 65 2d y):.$cachePath</info>");.$cache-
fd40 3e 67 63 28 30 2c 20 30 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c >gc(0,.0);.}..$io->writeError('<
fd60 69 6e 66 6f 3e 41 6c 6c 20 63 61 63 68 65 73 20 63 6c 65 61 72 65 64 2e 3c 2f 69 6e 66 6f 3e 27 info>All.caches.cleared.</info>'
fd80 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 );.}.}.<?php............namespac
fda0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Command;..use.Compose
fdc0 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 r\Composer;.use.Composer\Console
fde0 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f \Application;.use.Composer\IO\IO
fe00 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 Interface;.use.Composer\IO\NullI
fe20 4f 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 O;.use.Symfony\Component\Console
fe40 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
fe60 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 ny\Component\Console\Output\Outp
fe80 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 utInterface;.use.Symfony\Compone
fea0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 20 61 73 20 42 61 nt\Console\Command\Command.as.Ba
fec0 73 65 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 seCommand;........abstract.class
fee0 20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a .Command.extends.BaseCommand.{..
ff00 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ..private.$composer;.....private
ff20 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .$io;........public.function.get
ff40 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 2c 20 24 64 69 73 61 Composer($required.=.true,.$disa
ff60 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d blePlugins.=.false).{.if.(null.=
ff80 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 ==.$this->composer).{.$applicati
ffa0 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 on.=.$this->getApplication();.if
ffc0 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 .($application.instanceof.Applic
ffe0 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 61 70 70 ation).{..$this->composer.=.$app
10000 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 2c lication->getComposer($required,
10020 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 .$disablePlugins);.}.elseif.($re
10040 71 75 69 72 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 quired).{.throw.new.\RuntimeExce
10060 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 20 43 6f 6d 70 6f ption(.'Could.not.create.a.Compo
10080 73 65 72 5c 43 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6e 63 65 2c 20 79 6f 75 20 6d 75 73 74 20 ser\Composer.instance,.you.must.
100a0 69 6e 6a 65 63 74 20 27 2e 0a 27 6f 6e 65 20 69 66 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 inject.'..'one.if.this.command.i
100c0 73 20 6e 6f 74 20 75 73 65 64 20 77 69 74 68 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f s.not.used.with.a.Composer\Conso
100e0 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 27 0a 29 3b 0a 7d 0a 7d 0a le\Application.instance'.);.}.}.
10100 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->composer;.}.....p
10120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d 70 6f 73 65 72 28 43 6f 6d 70 6f ublic.function.setComposer(Compo
10140 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 ser.$composer).{.$this->composer
10160 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .=.$composer;.}.....public.funct
10180 69 6f 6e 20 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d ion.resetComposer().{.$this->com
101a0 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 poser.=.null;.$this->getApplicat
101c0 69 6f 6e 28 29 2d 3e 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ion()->resetComposer();.}.....pu
101e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c blic.function.getIO().{.if.(null
10200 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d .===.$this->io).{.$application.=
10220 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 .$this->getApplication();.if.($a
10240 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f pplication.instanceof.Applicatio
10260 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e n).{..$this->io.=.$application->
10280 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 getIO();.}.else.{.$this->io.=.ne
102a0 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 w.NullIO();.}.}..return.$this->i
102c0 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 4f 28 49 o;.}.....public.function.setIO(I
102e0 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 OInterface.$io).{.$this->io.=.$i
10300 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 o;.}.....protected.function.init
10320 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 ialize(InputInterface.$input,.Ou
10340 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 74 72 75 tputInterface.$output).{.if.(tru
10360 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e e.===.$input->hasParameterOption
10380 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 29 29 20 26 26 20 24 69 6e 70 75 74 2d 3e (array('--no-ansi')).&&.$input->
103a0 68 61 73 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 20 7b 0a 24 69 6e 70 hasOption('no-progress')).{.$inp
103c0 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 74 72 75 ut->setOption('no-progress',.tru
103e0 65 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 6e 70 75 74 e);.}..parent::initialize($input
10400 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$output);.}.}.<?php...........
10420 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 .namespace.Composer\Command;..us
10440 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c e.Composer\Config;.use.Composer\
10460 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b Factory;.use.Composer\Installer;
10480 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 72 6f 6a 65 63 74 49 .use.Composer\Installer\ProjectI
104a0 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 nstaller;.use.Composer\Installer
104c0 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 \InstallationManager;.use.Compos
104e0 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
10500 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Package\BasePackage;.use.Compose
10520 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 r\DependencyResolver\Pool;.use.C
10540 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 omposer\DependencyResolver\Opera
10560 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f tion\InstallOperation;.use.Compo
10580 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 53 65 6c 65 63 ser\Package\Version\VersionSelec
105a0 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d tor;.use.Composer\Repository\Com
105c0 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 poserRepository;.use.Composer\Re
105e0 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 pository\CompositeRepository;.us
10600 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 46 69 6c 65 73 79 73 74 65 6d e.Composer\Repository\Filesystem
10620 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 Repository;.use.Composer\Reposit
10640 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 ory\InstalledFilesystemRepositor
10660 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 y;.use.Composer\Script\ScriptEve
10680 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f nts;.use.Symfony\Component\Conso
106a0 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 le\Input\InputArgument;.use.Symf
106c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
106e0 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
10700 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
10720 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
10740 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\OutputInterface;.use.Symfony\C
10760 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 omponent\Finder\Finder;.use.Comp
10780 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 oser\Json\JsonFile;.use.Composer
107a0 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f \Config\JsonConfigSource;.use.Co
107c0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 mposer\Util\Filesystem;.use.Comp
107e0 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 oser\Util\RemoteFilesystem;.use.
10800 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e Composer\Package\Version\Version
10820 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 72 6f Parser;..........class.CreatePro
10840 6a 65 63 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 jectCommand.extends.Command.{.pr
10860 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 otected.function.configure().{.$
10880 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 27 29 this.->setName('create-project')
108a0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 20 6e 65 77 20 70 72 .->setDescription('Create.new.pr
108c0 6f 6a 65 63 74 20 66 72 6f 6d 20 61 20 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 67 69 76 65 6e 20 oject.from.a.package.into.given.
108e0 64 69 72 65 63 74 6f 72 79 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 directory.').->setDefinition(arr
10900 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c ay(.new.InputArgument('package',
10920 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 50 61 63 6b 61 .InputArgument::OPTIONAL,.'Packa
10940 67 65 20 6e 61 6d 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 27 29 2c 0a 6e 65 77 20 49 ge.name.to.be.installed'),.new.I
10960 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 27 2c 20 49 6e 70 75 74 41 nputArgument('directory',.InputA
10980 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 44 69 72 65 63 74 6f 72 79 20 77 68 rgument::OPTIONAL,.'Directory.wh
109a0 65 72 65 20 74 68 65 20 66 69 6c 65 73 20 73 68 6f 75 6c 64 20 62 65 20 63 72 65 61 74 65 64 27 ere.the.files.should.be.created'
109c0 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 ),.new.InputArgument('version',.
109e0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f InputArgument::OPTIONAL,.'Versio
10a00 6e 2c 20 77 69 6c 6c 20 64 65 66 61 75 6c 74 20 74 6f 20 6c 61 74 65 73 74 27 29 2c 0a 6e 65 77 n,.will.default.to.latest'),.new
10a20 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 .InputOption('stability',.'s',.I
10a40 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e nputOption::VALUE_REQUIRED,.'Min
10a60 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 65 64 20 28 75 6e 6c 65 73 73 20 61 imum-stability.allowed.(unless.a
10a80 20 76 65 72 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 29 2e 27 29 2c 0a 6e 65 77 20 49 .version.is.specified).'),.new.I
10aa0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c nputOption('prefer-source',.null
10ac0 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 ,.InputOption::VALUE_NONE,.'Forc
10ae0 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 es.installation.from.package.sou
10b00 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 rces.when.possible,.including.VC
10b20 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f S.information.'),.new.InputOptio
10b40 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 n('prefer-dist',.null,.InputOpti
10b60 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 on::VALUE_NONE,.'Forces.installa
10b80 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 tion.from.package.dist.even.for.
10ba0 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.versions.'),.new.InputOption
10bc0 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 ('repository-url',.null,.InputOp
10be0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 20 64 69 tion::VALUE_REQUIRED,.'Pick.a.di
10c00 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f 6b 20 66 fferent.repository.url.to.look.f
10c20 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 or.the.package.'),.new.InputOpti
10c40 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('dev',.null,.InputOption::VAL
10c60 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f UE_NONE,.'Enables.installation.o
10c80 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 f.require-dev.packages.(enabled.
10ca0 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 by.default,.only.present.for.BC)
10cc0 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e .'),.new.InputOption('no-dev',.n
10ce0 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 ull,.InputOption::VALUE_NONE,.'D
10d00 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d isables.installation.of.require-
10d20 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.packages.'),.new.InputOption
10d40 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e ('no-plugins',.null,.InputOption
10d60 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 64 69 73 61 62 6c ::VALUE_NONE,.'Whether.to.disabl
10d80 65 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e e.plugins.'),.new.InputOption('n
10da0 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 o-custom-installers',.null,.Inpu
10dc0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 tOption::VALUE_NONE,.'DEPRECATED
10de0 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 :.Use.no-plugins.instead.'),.new
10e00 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c .InputOption('no-scripts',.null,
10e20 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 .InputOption::VALUE_NONE,.'Wheth
10e40 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 64 er.to.prevent.execution.of.all.d
10e60 65 66 69 6e 65 64 20 73 63 72 69 70 74 73 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 efined.scripts.in.the.root.packa
10e80 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 ge.'),.new.InputOption('no-progr
10ea0 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ess',.null,.InputOption::VALUE_N
10ec0 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f ONE,.'Do.not.output.download.pro
10ee0 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d gress.'),.new.InputOption('keep-
10f00 76 63 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e vcs',.null,.InputOption::VALUE_N
10f20 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 74 69 6f ONE,.'Whether.to.prevent.deletio
10f40 6e 20 76 63 73 20 66 6f 6c 64 65 72 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e n.vcs.folder.'),.new.InputOption
10f60 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e ('no-install',.null,.InputOption
10f80 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 73 6b 69 70 20 69 ::VALUE_NONE,.'Whether.to.skip.i
10fa0 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 65 70 65 6e nstallation.of.the.package.depen
10fc0 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e dencies.'),.new.InputOption('ign
10fe0 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f ore-platform-reqs',.null,.InputO
11000 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 ption::VALUE_NONE,.'Ignore.platf
11020 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 orm.requirements.(php.&.ext-.pac
11040 6b 61 67 65 73 29 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 kages).'),.)).->setHelp(<<<EOT.T
11060 68 65 20 3c 69 6e 66 6f 3e 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 3c 2f 69 6e 66 6f 3e 20 63 he.<info>create-project</info>.c
11080 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 6e 65 77 20 70 72 6f 6a 65 63 74 20 66 72 6f ommand.creates.a.new.project.fro
110a0 6d 20 61 20 67 69 76 65 6e 0a 70 61 63 6b 61 67 65 20 69 6e 74 6f 20 61 20 6e 65 77 20 64 69 72 m.a.given.package.into.a.new.dir
110c0 65 63 74 6f 72 79 2e 20 49 66 20 65 78 65 63 75 74 65 64 20 77 69 74 68 6f 75 74 20 70 61 72 61 ectory..If.executed.without.para
110e0 6d 73 20 61 6e 64 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 0a 77 69 74 68 20 61 20 63 6f 6d ms.and.in.a.directory.with.a.com
11100 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 74 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 poser.json.file.it.installs.the.
11120 70 61 63 6b 61 67 65 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f 6a 65 63 74 packages.for.the.current.project
11140 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 62 ...You.can.use.this.command.to.b
11160 6f 6f 74 73 74 72 61 70 20 6e 65 77 20 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 75 70 20 61 ootstrap.new.projects.or.setup.a
11180 20 63 6c 65 61 6e 0a 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e 73 74 61 6c .clean.version-controlled.instal
111a0 6c 61 74 69 6f 6e 20 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 72 20 70 72 lation.for.developers.of.your.pr
111c0 6f 6a 65 63 74 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 oject...<info>php.composer.phar.
111e0 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 76 65 6e 64 6f 72 2f 70 72 6f 6a 65 63 74 20 74 61 create-project.vendor/project.ta
11200 72 67 65 74 2d 64 69 72 65 63 74 6f 72 79 20 5b 76 65 72 73 69 6f 6e 5d 3c 2f 69 6e 66 6f 3e 0a rget-directory.[version]</info>.
11220 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 72 73 69 6f .You.can.also.specify.the.versio
11240 6e 20 77 69 74 68 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 75 73 69 6e 67 20 3d 20 n.with.the.package.name.using.=.
11260 6f 72 20 3a 20 61 73 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 75 or.:.as.separator...To.install.u
11280 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2c 20 65 69 74 68 65 72 20 73 70 65 63 69 66 79 nstable.packages,.either.specify
112a0 20 74 68 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 65 20 74 68 .the.version.you.want,.or.use.th
112c0 65 0a 2d 2d 73 74 61 62 69 6c 69 74 79 3d 64 65 76 20 28 77 68 65 72 65 20 64 65 76 20 63 61 6e e.--stability=dev.(where.dev.can
112e0 20 62 65 20 6f 6e 65 20 6f 66 20 52 43 2c 20 62 65 74 61 2c 20 61 6c 70 68 61 20 6f 72 20 64 65 .be.one.of.RC,.beta,.alpha.or.de
11300 76 29 2e 0a 0a 54 6f 20 73 65 74 75 70 20 61 20 64 65 76 65 6c 6f 70 65 72 20 77 6f 72 6b 61 62 v)...To.setup.a.developer.workab
11320 6c 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 72 65 61 74 65 20 74 68 65 le.version.you.should.create.the
11340 20 70 72 6f 6a 65 63 74 20 75 73 69 6e 67 20 74 68 65 20 73 6f 75 72 63 65 0a 63 6f 6e 74 72 6f .project.using.the.source.contro
11360 6c 6c 65 64 20 63 6f 64 65 20 62 79 20 61 70 70 65 6e 64 69 6e 67 20 74 68 65 20 3c 69 6e 66 6f lled.code.by.appending.the.<info
11380 3e 27 2d 2d 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a >'--prefer-source'</info>.flag..
113a0 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 6e 6f 74 68 .To.install.a.package.from.anoth
113c0 65 72 20 72 65 70 6f 73 69 74 6f 72 79 20 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 20 6f er.repository.than.the.default.o
113e0 6e 65 20 79 6f 75 0a 63 61 6e 20 70 61 73 73 20 74 68 65 20 3c 69 6e 66 6f 3e 27 2d 2d 72 65 70 ne.you.can.pass.the.<info>'--rep
11400 6f 73 69 74 6f 72 79 2d 75 72 6c 3d 68 74 74 70 3a 2f 2f 6d 79 72 65 70 6f 73 69 74 6f 72 79 2e ository-url=http://myrepository.
11420 6f 72 67 27 3c 2f 69 6e 66 6f 3e 20 66 6c 61 67 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 org'</info>.flag...EOT.).;.}..pr
11440 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e otected.function.execute(InputIn
11460 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
11480 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 $output).{.$config.=.Factory::cr
114a0 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 eateConfig();..$preferSource.=.f
114c0 61 6c 73 65 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 alse;.$preferDist.=.false;.$this
114e0 2d 3e 75 70 64 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 69 6f 6e 73 28 24 63 6f 6e 66 69 67 ->updatePreferredOptions($config
11500 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 24 70 72 65 66 65 72 ,.$input,.$preferSource,.$prefer
11520 44 69 73 74 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e Dist);..if.($input->getOption('n
11540 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e o-custom-installers')).{.$this->
11560 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f getIO()->writeError('<warning>Yo
11580 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f u.are.using.the.deprecated.optio
115a0 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e n."no-custom-installers"..Use."n
115c0 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b o-plugins".instead.</warning>');
115e0 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c .$input->setOption('no-plugins',
11600 20 74 72 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c .true);.}..return.$this->install
11620 50 72 6f 6a 65 63 74 28 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 63 6f 6e 66 69 67 Project(.$this->getIO(),.$config
11640 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 ,.$input->getArgument('package')
11660 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 74 6f 72 79 ,.$input->getArgument('directory
11680 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e '),.$input->getArgument('version
116a0 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 '),.$input->getOption('stability
116c0 27 29 2c 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 0a 24 70 72 65 66 65 72 44 69 73 74 2c 0a '),.$preferSource,.$preferDist,.
116e0 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 0a 24 69 !$input->getOption('no-dev'),.$i
11700 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 nput->getOption('repository-url'
11720 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 ),.$input->getOption('no-plugins
11740 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 '),.$input->getOption('no-script
11760 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 2d 76 63 73 s'),.$input->getOption('keep-vcs
11780 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 '),.$input->getOption('no-progre
117a0 73 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 ss'),.$input->getOption('no-inst
117c0 61 6c 6c 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 all'),.$input->getOption('ignore
117e0 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 2c 0a 24 69 6e 70 75 74 0a 29 3b 0a 7d 0a 0a 70 -platform-reqs'),.$input.);.}..p
11800 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f ublic.function.installProject(IO
11820 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 Interface.$io,.Config.$config,.$
11840 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 packageName,.$directory.=.null,.
11860 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 61 62 69 6c 69 $packageVersion.=.null,.$stabili
11880 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 ty.=.'stable',.$preferSource.=.f
118a0 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 alse,.$preferDist.=.false,.$inst
118c0 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 allDevPackages.=.false,.$reposit
118e0 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d oryUrl.=.null,.$disablePlugins.=
11900 20 66 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 .false,.$noScripts.=.false,.$kee
11920 70 56 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 pVcs.=.false,.$noProgress.=.fals
11940 65 2c 20 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 20 66 61 6c 73 65 2c 20 24 69 67 6e 6f 72 65 50 6c e,.$noInstall.=.false,.$ignorePl
11960 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 atformReqs.=.false,.InputInterfa
11980 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 6f 6c 64 43 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b ce.$input).{.$oldCwd.=.getcwd();
119a0 0a 0a 0a 20 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 ....$io->loadConfiguration($conf
119c0 69 67 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 ig);..if.($packageName.!==.null)
119e0 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 24 74 68 69 73 2d 3e 69 6e .{.$installedFromVcs.=.$this->in
11a00 73 74 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 stallRootPackage($io,.$config,.$
11a20 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 2c 20 24 70 61 63 6b 61 67 packageName,.$directory,.$packag
11a40 65 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 2c 20 24 70 72 65 66 65 72 53 6f 75 eVersion,.$stability,.$preferSou
11a60 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 rce,.$preferDist,.$installDevPac
11a80 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 24 64 69 73 61 62 6c 65 50 kages,.$repositoryUrl,.$disableP
11aa0 6c 75 67 69 6e 73 2c 20 24 6e 6f 53 63 72 69 70 74 73 2c 20 24 6b 65 65 70 56 63 73 2c 20 24 6e lugins,.$noScripts,.$keepVcs,.$n
11ac0 6f 50 72 6f 67 72 65 73 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 oProgress);.}.else.{.$installedF
11ae0 72 6f 6d 56 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 46 romVcs.=.false;.}..$composer.=.F
11b00 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 actory::create($io,.null,.$disab
11b20 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f lePlugins);.$composer->getDownlo
11b40 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 adManager()->setOutputProgress(!
11b60 24 6e 6f 50 72 6f 67 72 65 73 73 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 $noProgress);..$fs.=.new.Filesys
11b80 74 65 6d 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 tem();..if.($noScripts.===.false
11ba0 29 20 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 ).{...$composer->getEventDispatc
11bc0 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e her()->dispatchScript(ScriptEven
11be0 74 73 3a 3a 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 2c 20 24 ts::POST_ROOT_PACKAGE_INSTALL,.$
11c00 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 24 72 6f 6f 74 50 61 63 installDevPackages);.}..$rootPac
11c20 6b 61 67 65 43 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 kageConfig.=.$composer->getConfi
11c40 67 28 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 50 72 65 66 65 72 72 65 64 4f 70 74 69 6f g();.$this->updatePreferredOptio
11c60 6e 73 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 43 6f 6e 66 69 67 2c 20 24 69 6e 70 75 74 2c 20 24 ns($rootPackageConfig,.$input,.$
11c80 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 29 3b 0a 0a 0a 20 69 preferSource,.$preferDist);....i
11ca0 66 20 28 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 73 74 f.($noInstall.===.false).{.$inst
11cc0 61 6c 6c 65 72 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 aller.=.Installer::create($io,.$
11ce0 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 65 74 50 72 65 66 65 72 composer);.$installer->setPrefer
11d00 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 Source($preferSource).->setPrefe
11d20 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 rDist($preferDist).->setDevMode(
11d40 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 $installDevPackages).->setRunScr
11d60 69 70 74 73 28 21 24 6e 6f 53 63 72 69 70 74 73 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 ipts(!$noScripts).->setIgnorePla
11d80 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 tformRequirements($ignorePlatfor
11da0 6d 52 65 71 73 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a mReqs);..if.($disablePlugins).{.
11dc0 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a $installer->disablePlugins();.}.
11de0 0a 24 73 74 61 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 72 75 6e 28 29 3b 0a 69 66 .$status.=.$installer->run();.if
11e00 20 28 30 20 21 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 .(0.!==.$status).{.return.$statu
11e20 73 3b 0a 7d 0a 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d s;.}.}..$hasVcs.=.$installedFrom
11e40 56 63 73 3b 0a 69 66 20 28 21 24 6b 65 65 70 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 Vcs;.if.(!$keepVcs.&&.$installed
11e60 46 72 6f 6d 56 63 73 0a 26 26 20 28 0a 21 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 FromVcs.&&.(.!$io->isInteractive
11e80 28 29 0a 7c 7c 20 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 ().||.$io->askConfirmation('<inf
11ea0 6f 3e 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 o>Do.you.want.to.remove.the.exis
11ec0 74 69 6e 67 20 56 43 53 20 28 2e 67 69 74 2c 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f ting.VCS.(.git,..svn..).history?
11ee0 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d </info>.[<comment>Y,n</comment>]
11f00 3f 20 27 2c 20 74 72 75 65 29 0a 29 0a 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 ?.',.true).).).{.$finder.=.new.F
11f20 69 6e 64 65 72 28 29 3b 0a 24 66 69 6e 64 65 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 inder();.$finder->depth(0)->dire
11f40 63 74 6f 72 69 65 73 28 29 2d 3e 69 6e 28 67 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 ctories()->in(getcwd())->ignoreV
11f60 43 53 28 66 61 6c 73 65 29 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 CS(false)->ignoreDotFiles(false)
11f80 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c ;.foreach.(array('.svn',.'_svn',
11fa0 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 .'CVS',.'_darcs',.'.arch-params'
11fc0 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 ,.'.monotone',.'.bzr',.'.git',.'
11fe0 2e 68 67 27 29 20 61 73 20 24 76 63 73 4e 61 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 .hg').as.$vcsName).{.$finder->na
12000 6d 65 28 24 76 63 73 4e 61 6d 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 69 72 73 20 3d 20 69 me($vcsName);.}..try.{.$dirs.=.i
12020 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 terator_to_array($finder);.unset
12040 28 24 66 69 6e 64 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 ($finder);.foreach.($dirs.as.$di
12060 72 29 20 7b 0a 69 66 20 28 21 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 r).{.if.(!$fs->removeDirectory($
12080 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 dir)).{.throw.new.\RuntimeExcept
120a0 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d ion('Could.not.remove.'.$dir);.}
120c0 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 69 6f .}.}.catch.(\Exception.$e).{.$io
120e0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 ->writeError('<error>An.error.oc
12100 63 75 72 72 65 64 20 77 68 69 6c 65 20 72 65 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 curred.while.removing.the.VCS.me
12120 74 61 64 61 74 61 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 tadata:.'.$e->getMessage().'</er
12140 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a ror>');.}..$hasVcs.=.false;.}...
12160 20 69 66 20 28 21 24 68 61 73 56 63 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d .if.(!$hasVcs).{.$package.=.$com
12180 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 poser->getPackage();.$configSour
121a0 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 ce.=.new.JsonConfigSource(new.Js
121c0 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 29 3b 0a 66 6f 72 65 61 63 onFile('composer.json'));.foreac
121e0 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 h.(BasePackage::$supportedLinkTy
12200 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6d 65 74 61 29 20 7b 0a 66 6f 72 65 61 63 68 pes.as.$type.=>.$meta).{.foreach
12220 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6d 65 74 61 5b 27 6d 65 74 68 6f 64 .($package->{'get'.$meta['method
12240 27 5d 7d 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 ']}().as.$link).{.if.($link->get
12260 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 3d 3d 3d 20 27 73 65 6c 66 2e 76 65 72 PrettyConstraint().===.'self.ver
12280 73 69 6f 6e 27 29 20 7b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 4c 69 6e 6b 28 sion').{.$configSource->addLink(
122a0 24 74 79 70 65 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 70 61 63 6b $type,.$link->getTarget(),.$pack
122c0 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a age->getPrettyVersion());.}.}.}.
122e0 7d 0a 0a 69 66 20 28 24 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a }..if.($noScripts.===.false).{..
12300 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 .$composer->getEventDispatcher()
12320 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 ->dispatchScript(ScriptEvents::P
12340 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 2c 20 24 69 6e 73 74 61 6c 6c OST_CREATE_PROJECT_CMD,.$install
12360 44 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 63 68 64 69 72 28 24 6f 6c 64 43 77 64 29 3b DevPackages);.}..chdir($oldCwd);
12380 0a 24 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d .$vendorComposerDir.=.$composer-
123a0 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e >getConfig()->get('vendor-dir').
123c0 27 2f 63 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 43 '/composer';.if.(is_dir($vendorC
123e0 6f 6d 70 6f 73 65 72 44 69 72 29 20 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 omposerDir).&&.$fs->isDirEmpty($
12400 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 vendorComposerDir)).{.@rmdir($ve
12420 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 ndorComposerDir);.$vendorDir.=.$
12440 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 composer->getConfig()->get('vend
12460 6f 72 2d 64 69 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 or-dir');.if.(is_dir($vendorDir)
12480 20 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 44 69 72 29 29 .&&.$fs->isDirEmpty($vendorDir))
124a0 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 .{.@rmdir($vendorDir);.}.}..retu
124c0 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 rn.0;.}..protected.function.inst
124e0 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 allRootPackage(IOInterface.$io,.
12500 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 Config.$config,.$packageName,.$d
12520 69 72 65 63 74 6f 72 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e irectory.=.null,.$packageVersion
12540 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 .=.null,.$stability.=.'stable',.
12560 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 $preferSource.=.false,.$preferDi
12580 73 74 20 3d 20 66 61 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 st.=.false,.$installDevPackages.
125a0 3d 20 66 61 6c 73 65 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 =.false,.$repositoryUrl.=.null,.
125c0 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 $disablePlugins.=.false,.$noScri
125e0 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 6b 65 65 70 56 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 pts.=.false,.$keepVcs.=.false,.$
12600 6e 6f 50 72 6f 67 72 65 73 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d noProgress.=.false).{.if.(null.=
12620 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 70 6f ==.$repositoryUrl).{.$sourceRepo
12640 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 46 61 63 74 6f .=.new.CompositeRepository(Facto
12660 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 69 ry::createDefaultRepositories($i
12680 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 6a 73 6f 6e 22 20 3d o,.$config));.}.elseif.("json".=
126a0 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 50 41 54 48 ==.pathinfo($repositoryUrl,.PATH
126c0 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 INFO_EXTENSION).&&.file_exists($
126e0 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 repositoryUrl)).{.$json.=.new.Js
12700 6f 6e 46 69 6c 65 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 6e 65 77 20 52 65 6d 6f 74 onFile($repositoryUrl,.new.Remot
12720 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 61 74 eFilesystem($io,.$config));.$dat
12740 61 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 a.=.$json->read();.if.(!empty($d
12760 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 ata['packages']).||.!empty($data
12780 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 ['includes']).||.!empty($data['p
127a0 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 rovider-includes'])).{.$sourceRe
127c0 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 po.=.new.ComposerRepository(arra
127e0 79 28 27 75 72 6c 27 20 3d 3e 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 72 65 61 y('url'.=>.'file://'...strtr(rea
12800 6c 70 61 74 68 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 lpath($repositoryUrl),.'\\',.'/'
12820 29 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 6f 75 )),.$io,.$config);.}.else.{.$sou
12840 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f rceRepo.=.new.FilesystemReposito
12860 72 79 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 ry($json);.}.}.elseif.(0.===.str
12880 70 6f 73 28 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 2c 20 27 68 74 74 70 27 29 29 20 7b 0a 24 pos($repositoryUrl,.'http')).{.$
128a0 73 6f 75 72 63 65 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 sourceRepo.=.new.ComposerReposit
128c0 6f 72 79 28 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 ory(array('url'.=>.$repositoryUr
128e0 6c 29 2c 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f l),.$io,.$config);.}.else.{.thro
12900 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
12920 22 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 67 69 76 65 6e 2e 20 48 "Invalid.repository.url.given..H
12940 61 73 20 74 6f 20 62 65 20 61 20 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 61 6e 20 68 74 74 70 as.to.be.a..json.file.or.an.http
12960 20 75 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f .url.");.}..$parser.=.new.Versio
12980 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 70 61 72 73 nParser();.$requirements.=.$pars
129a0 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 28 er->parseNameVersionPairs(array(
129c0 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 $packageName));.$name.=.strtolow
129e0 65 72 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 er($requirements[0]['name']);.if
12a00 20 28 21 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 26 26 20 69 73 73 65 74 28 24 72 65 71 .(!$packageVersion.&&.isset($req
12a20 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 uirements[0]['version'])).{.$pac
12a40 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 kageVersion.=.$requirements[0]['
12a60 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 61 62 version'];.}..if.(null.===.$stab
12a80 69 6c 69 74 79 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 ility).{.if.(preg_match('{^[^,\s
12aa0 5d 2a 3f 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 ]*?@('.implode('|',.array_keys(B
12ac0 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 asePackage::$stabilities)).')$}i
12ae0 27 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 ',.$packageVersion,.$match)).{.$
12b00 73 74 61 62 69 6c 69 74 79 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a stability.=.$match[1];.}.else.{.
12b20 24 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 $stability.=.VersionParser::pars
12b40 65 53 74 61 62 69 6c 69 74 79 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d eStability($packageVersion);.}.}
12b60 0a 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f ..$stability.=.VersionParser::no
12b80 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 69 rmalizeStability($stability);..i
12ba0 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 f.(!isset(BasePackage::$stabilit
12bc0 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 ies[$stability])).{.throw.new.\I
12be0 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 nvalidArgumentException('Invalid
12c00 20 73 74 61 62 69 6c 69 74 79 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 73 74 61 62 69 6c 69 74 .stability.provided.('.$stabilit
12c20 79 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 y.'),.must.be.one.of:.'.implode(
12c40 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 ',.',.array_keys(BasePackage::$s
12c60 74 61 62 69 6c 69 74 69 65 73 29 29 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f tabilities)));.}..$pool.=.new.Po
12c80 6f 6c 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 ol($stability);.$pool->addReposi
12ca0 74 6f 72 79 28 24 73 6f 75 72 63 65 52 65 70 6f 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 53 65 tory($sourceRepo);....$versionSe
12cc0 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 28 24 70 6f lector.=.new.VersionSelector($po
12ce0 6f 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 ol);.$package.=.$versionSelector
12d00 2d 3e 66 69 6e 64 42 65 73 74 43 61 6e 64 69 64 61 74 65 28 24 6e 61 6d 65 2c 20 24 70 61 63 6b ->findBestCandidate($name,.$pack
12d20 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 ageVersion);..if.(!$package).{.t
12d40 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
12d60 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 24 6e 61 6d 65 on("Could.not.find.package.$name
12d80 22 20 2e 20 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 74 68 20 76 65 "...($packageVersion.?.".with.ve
12da0 72 73 69 6f 6e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 20 3a 20 22 20 77 69 74 68 rsion.$packageVersion.".:.".with
12dc0 20 73 74 61 62 69 6c 69 74 79 20 24 73 74 61 62 69 6c 69 74 79 2e 22 29 29 3b 0a 7d 0a 0a 69 66 .stability.$stability."));.}..if
12de0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 70 61 72 74 73 20 .(null.===.$directory).{.$parts.
12e00 3d 20 65 78 70 6c 6f 64 65 28 22 2f 22 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 =.explode("/",.$name,.2);.$direc
12e20 74 6f 72 79 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 tory.=.getcwd()...DIRECTORY_SEPA
12e40 52 41 54 4f 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 24 69 RATOR...array_pop($parts);.}..$i
12e60 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 o->writeError('<info>Installing.
12e80 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e '...$package->getName()...'.('..
12ea0 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 .VersionParser::formatVersion($p
12ec0 61 63 6b 61 67 65 2c 20 66 61 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 ackage,.false)...')</info>');..i
12ee0 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 f.($disablePlugins).{.$io->write
12f00 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 50 6c 75 67 69 6e 73 20 68 61 76 65 20 62 65 65 6e 20 64 Error('<info>Plugins.have.been.d
12f20 69 73 61 62 6c 65 64 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 isabled.</info>');.}..if.(0.===.
12f40 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f strpos($package->getPrettyVersio
12f60 6e 28 29 2c 20 27 64 65 76 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 n(),.'dev-').&&.in_array($packag
12f80 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c e->getSourceType(),.array('git',
12fa0 20 27 68 67 27 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 .'hg'))).{.$package->setSourceRe
12fc0 66 65 72 65 6e 63 65 28 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 ference(substr($package->getPret
12fe0 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 24 74 68 69 73 tyVersion(),.4));.}..$dm.=.$this
13000 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f ->createDownloadManager($io,.$co
13020 6e 66 69 67 29 3b 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 nfig);.$dm->setPreferSource($pre
13040 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 ferSource).->setPreferDist($pref
13060 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 6e 6f erDist).->setOutputProgress(!$no
13080 50 72 6f 67 72 65 73 73 29 3b 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 3d 20 Progress);..$projectInstaller.=.
130a0 6e 65 77 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 64 69 72 65 63 74 6f 72 79 2c new.ProjectInstaller($directory,
130c0 20 24 64 6d 29 3b 0a 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c .$dm);.$im.=.$this->createInstal
130e0 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c lationManager();.$im->addInstall
13100 65 72 28 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 69 6d 2d 3e 69 6e 73 74 er($projectInstaller);.$im->inst
13120 61 6c 6c 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 all(new.InstalledFilesystemRepos
13140 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 itory(new.JsonFile('php://memory
13160 27 29 29 2c 20 6e 65 77 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 ')),.new.InstallOperation($packa
13180 67 65 29 29 3b 0a 24 69 6d 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 24 69 ge));.$im->notifyInstalls();..$i
131a0 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 nstalledFromVcs.=.'source'.===.$
131c0 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 package->getInstallationSource()
131e0 3b 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 ;..$io->writeError('<info>Create
13200 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c d.project.in.'...$directory...'<
13220 2f 69 6e 66 6f 3e 27 29 3b 0a 63 68 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 24 5f /info>');.chdir($directory);..$_
13240 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 5d 20 SERVER['COMPOSER_ROOT_VERSION'].
13260 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a =.$package->getPrettyVersion();.
13280 70 75 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e putenv('COMPOSER_ROOT_VERSION='.
132a0 24 5f 53 45 52 56 45 52 5b 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 $_SERVER['COMPOSER_ROOT_VERSION'
132c0 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 3b 0a 7d ]);..return.$installedFromVcs;.}
132e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c ..protected.function.createDownl
13300 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 oadManager(IOInterface.$io,.Conf
13320 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 ig.$config).{.$factory.=.new.Fac
13340 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 tory();..return.$factory->create
13360 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d DownloadManager($io,.$config);.}
13380 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 ..protected.function.createInsta
133a0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e llationManager().{.return.new.In
133c0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 stallationManager();.}.........p
133e0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 50 72 65 66 65 72 72 65 rotected.function.updatePreferre
13400 64 4f 70 74 69 6f 6e 73 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 6e 70 75 74 49 6e dOptions(Config.$config,.InputIn
13420 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 26 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 terface.$input,.&$preferSource,.
13440 26 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d &$preferDist).{.switch.($config-
13460 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 >get('preferred-install')).{.cas
13480 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 e.'source':.$preferSource.=.true
134a0 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 ;.$preferDist.=.false;.break;.ca
134c0 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 se.'dist':.$preferSource.=.false
134e0 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 ;.$preferDist.=.true;.break;.cas
13500 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 0a 69 e.'auto':.default:...break;.}..i
13520 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 f.($input->getOption('prefer-sou
13540 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 rce').||.$input->getOption('pref
13560 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e er-dist')).{.$preferSource.=.$in
13580 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b put->getOption('prefer-source');
135a0 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e .$preferDist.=.$input->getOption
135c0 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ('prefer-dist');.}.}.}.<?php....
135e0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 ........namespace.Composer\Comma
13600 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f nd;..use.Symfony\Component\Conso
13620 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d le\Input\InputInterface;.use.Sym
13640 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
13660 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 62 6f 75 74 43 6f tputInterface;.....class.AboutCo
13680 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 mmand.extends.Command.{.protecte
136a0 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d d.function.configure().{.$this.-
136c0 3e 73 65 74 4e 61 6d 65 28 27 61 62 6f 75 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 >setName('about').->setDescripti
136e0 6f 6e 28 27 53 68 6f 72 74 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 43 6f 6d 70 on('Short.information.about.Comp
13700 6f 73 65 72 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 70 68 oser').->setHelp(<<<EOT.<info>ph
13720 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 62 6f 75 74 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 p.composer.phar.about</info>.EOT
13740 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 .).;.}..protected.function.execu
13760 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 te(InputInterface.$input,.Output
13780 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 Interface.$output).{.$this->getI
137a0 4f 28 29 2d 3e 77 72 69 74 65 28 3c 3c 3c 45 4f 54 0a 3c 69 6e 66 6f 3e 43 6f 6d 70 6f 73 65 72 O()->write(<<<EOT.<info>Composer
137c0 20 2d 20 50 61 63 6b 61 67 65 20 4d 61 6e 61 67 65 6d 65 6e 74 20 66 6f 72 20 50 48 50 3c 2f 69 .-.Package.Management.for.PHP</i
137e0 6e 66 6f 3e 0a 3c 63 6f 6d 6d 65 6e 74 3e 43 6f 6d 70 6f 73 65 72 20 69 73 20 61 20 64 65 70 65 nfo>.<comment>Composer.is.a.depe
13800 6e 64 65 6e 63 79 20 6d 61 6e 61 67 65 72 20 74 72 61 63 6b 69 6e 67 20 6c 6f 63 61 6c 20 64 65 ndency.manager.tracking.local.de
13820 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 73 20 61 6e 64 20 pendencies.of.your.projects.and.
13840 6c 69 62 72 61 72 69 65 73 2e 0a 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 libraries..See.http://getcompose
13860 72 2e 6f 72 67 2f 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 3c 2f 63 6f r.org/.for.more.information.</co
13880 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a mment>.EOT.);.}.}.<?php.........
138a0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a ...namespace.Composer\Command;..
138c0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
138e0 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
13900 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 Component\Console\Input\InputOpt
13920 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ion;.use.Symfony\Component\Conso
13940 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 le\Input\InputArgument;.use.Symf
13960 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
13980 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 41 6c putInterface;.....class.ScriptAl
139a0 69 61 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 iasCommand.extends.Command.{.pri
139c0 76 61 74 65 20 24 73 63 72 69 70 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f vate.$script;..public.function._
139e0 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 _construct($script).{.$this->scr
13a00 69 70 74 20 3d 20 24 73 63 72 69 70 74 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ipt.=.$script;..parent::__constr
13a20 75 63 74 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e uct();.}..protected.function.con
13a40 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 24 74 68 69 73 figure().{.$this.->setName($this
13a60 2d 3e 73 63 72 69 70 74 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e 20 ->script).->setDescription('Run.
13a80 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 73 63 72 69 70 74 2e 27 20 73 63 72 69 70 74 20 61 73 20 the.'.$this->script.'.script.as.
13aa0 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 defined.in.composer.json.').->se
13ac0 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 tDefinition(array(.new.InputOpti
13ae0 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('dev',.null,.InputOption::VAL
13b00 55 45 5f 4e 4f 4e 45 2c 20 27 53 65 74 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a UE_NONE,.'Sets.the.dev.mode.'),.
13b20 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 new.InputOption('no-dev',.null,.
13b40 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c InputOption::VALUE_NONE,.'Disabl
13b60 65 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 es.the.dev.mode.'),.new.InputArg
13b80 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f ument('args',.InputArgument::IS_
13ba0 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c ARRAY.|.InputArgument::OPTIONAL,
13bc0 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 .''),.)).->setHelp(<<<EOT.The.<i
13be0 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 75 nfo>run-script</info>.command.ru
13c00 6e 73 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a ns.scripts.defined.in.composer.j
13c20 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 72 75 son:..<info>php.composer.phar.ru
13c40 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e 66 6f 3e 0a n-script.post-update-cmd</info>.
13c60 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 EOT.).;.}..protected.function.ex
13c80 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ecute(InputInterface.$input,.Out
13ca0 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 putInterface.$output).{.$compose
13cc0 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 0a 20 24 62 69 r.=.$this->getComposer();....$bi
13ce0 6e 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 nDir.=.$composer->getConfig()->g
13d00 65 74 28 27 62 69 6e 2d 64 69 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 62 69 6e 44 69 et('bin-dir');.if.(is_dir($binDi
13d20 72 29 29 20 7b 0a 24 5f 53 45 52 56 45 52 5b 27 50 41 54 48 27 5d 20 3d 20 72 65 61 6c 70 61 74 r)).{.$_SERVER['PATH'].=.realpat
13d40 68 28 24 62 69 6e 44 69 72 29 2e 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2e 67 65 74 65 6e 76 h($binDir).PATH_SEPARATOR.getenv
13d60 28 27 50 41 54 48 27 29 3b 0a 70 75 74 65 6e 76 28 27 50 41 54 48 3d 27 2e 24 5f 53 45 52 56 45 ('PATH');.putenv('PATH='.$_SERVE
13d80 52 5b 27 50 41 54 48 27 5d 29 3b 0a 7d 0a 0a 24 61 72 67 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 R['PATH']);.}..$args.=.$input->g
13da0 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 etArguments();..return.$composer
13dc0 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 ->getEventDispatcher()->dispatch
13de0 53 63 72 69 70 74 28 24 74 68 69 73 2d 3e 73 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 Script($this->script,.$input->ge
13e00 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 7c 7c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 tOption('dev').||.!$input->getOp
13e20 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 2c 20 24 61 72 67 73 5b 27 61 72 67 73 27 5d 29 3b 0a tion('no-dev'),.$args['args']);.
13e40 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
13e60 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 omposer\Command;..use.Composer\D
13e80 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 ependencyResolver\Pool;.use.Comp
13ea0 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 oser\DependencyResolver\DefaultP
13ec0 6f 6c 69 63 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 olicy;.use.Composer\Factory;.use
13ee0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 .Composer\Package\CompletePackag
13f00 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
13f20 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 \Version\VersionParser;.use.Comp
13f40 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f oser\Plugin\CommandEvent;.use.Co
13f60 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 mposer\Plugin\PluginEvents;.use.
13f80 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
13fa0 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 InputInterface;.use.Symfony\Comp
13fc0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e onent\Console\Input\InputArgumen
13fe0 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 t;.use.Symfony\Component\Console
14000 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Input\InputOption;.use.Symfony\
14020 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 Component\Console\Output\OutputI
14040 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 nterface;.use.Composer\Repositor
14060 79 5c 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c y\ArrayRepository;.use.Composer\
14080 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a Repository\CompositeRepository;.
140a0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 use.Composer\Repository\Composer
140c0 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 Repository;.use.Composer\Reposit
140e0 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 ory\PlatformRepository;.use.Comp
14100 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser\Repository\RepositoryInterf
14120 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 6f 77 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ace;......class.ShowCommand.exte
14140 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e nds.Command.{.protected.$version
14160 50 61 72 73 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 Parser;..protected.function.conf
14180 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 68 6f 77 27 igure().{.$this.->setName('show'
141a0 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 69 6e 66 6f 27 29 29 0a 2d 3e ).->setAliases(array('info')).->
141c0 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e setDescription('Show.information
141e0 20 61 62 6f 75 74 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f .about.packages').->setDefinitio
14200 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b n(array(.new.InputArgument('pack
14220 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 age',.InputArgument::OPTIONAL,.'
14240 50 61 63 6b 61 67 65 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 Package.to.inspect'),.new.InputA
14260 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 rgument('version',.InputArgument
14280 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 ::OPTIONAL,.'Version.or.version.
142a0 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 constraint.to.inspect'),.new.Inp
142c0 75 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 utOption('installed',.'i',.Input
142e0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c Option::VALUE_NONE,.'List.instal
14300 6c 65 64 20 70 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 led.packages.only'),.new.InputOp
14320 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f tion('platform',.'p',.InputOptio
14340 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 n::VALUE_NONE,.'List.platform.pa
14360 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 ckages.only'),.new.InputOption('
14380 61 76 61 69 6c 61 62 6c 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 available',.'a',.InputOption::VA
143a0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 LUE_NONE,.'List.available.packag
143c0 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 es.only'),.new.InputOption('self
143e0 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ',.'s',.InputOption::VALUE_NONE,
14400 20 27 53 68 6f 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 .'Show.the.root.package.informat
14420 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c ion'),.new.InputOption('name-onl
14440 79 27 2c 20 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 y',.'N',.InputOption::VALUE_NONE
14460 2c 20 27 4c 69 73 74 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 ,.'List.package.names.only'),.ne
14480 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 2c 20 27 50 27 2c 20 49 6e 70 75 74 w.InputOption('path',.'P',.Input
144a0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 70 61 63 6b 61 67 Option::VALUE_NONE,.'Show.packag
144c0 65 20 70 61 74 68 73 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 e.paths'),.)).->setHelp(<<<EOT.T
144e0 68 65 20 73 68 6f 77 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 he.show.command.displays.detaile
14500 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 61 20 70 61 63 6b 61 67 65 2c 20 6f d.information.about.a.package,.o
14520 72 0a 6c 69 73 74 73 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 76 61 69 6c 61 62 6c 65 2e 0a r.lists.all.packages.available..
14540 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 .EOT.).;.}..protected.function.e
14560 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 xecute(InputInterface.$input,.Ou
14580 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e tputInterface.$output).{.$this->
145a0 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 versionParser.=.new.VersionParse
145c0 72 3b 0a 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f r;....$platformRepo.=.new.Platfo
145e0 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 rmRepository;..$composer.=.$this
14600 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 69 6e 70 75 74 ->getComposer(false);.if.($input
14620 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 ->getOption('self')).{.$package.
14640 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 =.$this->getComposer()->getPacka
14660 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 ge();.$repos.=.$installedRepo.=.
14680 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 new.ArrayRepository(array($packa
146a0 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ge));.}.elseif.($input->getOptio
146c0 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 n('platform')).{.$repos.=.$insta
146e0 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 7d 20 65 6c 73 65 lledRepo.=.$platformRepo;.}.else
14700 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 if.($input->getOption('installed
14720 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 ')).{.$repos.=.$installedRepo.=.
14740 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 $this->getComposer()->getReposit
14760 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 oryManager()->getLocalRepository
14780 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 ();.}.elseif.($input->getOption(
147a0 27 61 76 61 69 6c 61 62 6c 65 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 'available')).{.$installedRepo.=
147c0 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b .$platformRepo;.if.($composer).{
147e0 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 .$repos.=.new.CompositeRepositor
14800 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 y($composer->getRepositoryManage
14820 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 r()->getRepositories());.}.else.
14840 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 {.$defaultRepos.=.Factory::creat
14860 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 eDefaultRepositories($this->getI
14880 4f 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f O());.$repos.=.new.CompositeRepo
148a0 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 67 65 sitory($defaultRepos);.$this->ge
148c0 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a tIO()->writeError('No.composer.j
148e0 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f son.found.in.the.current.directo
14900 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 66 ry,.showing.available.packages.f
14920 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 rom.'...implode(',.',.array_keys
14940 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 ($defaultRepos)));.}.}.elseif.($
14960 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 composer).{.$localRepo.=.$compos
14980 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c er->getRepositoryManager()->getL
149a0 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f ocalRepository();.$installedRepo
149c0 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 .=.new.CompositeRepository(array
149e0 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a 24 72 ($localRepo,.$platformRepo));.$r
14a00 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 epos.=.new.CompositeRepository(a
14a20 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 rray_merge(array($installedRepo)
14a40 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 ,.$composer->getRepositoryManage
14a60 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c 73 65 r()->getRepositories()));.}.else
14a80 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 .{.$defaultRepos.=.Factory::crea
14aa0 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 teDefaultRepositories($this->get
14ac0 49 4f 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f IO());.$this->getIO()->writeErro
14ae0 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 r('No.composer.json.found.in.the
14b00 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 .current.directory,.showing.avai
14b20 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 lable.packages.from.'...implode(
14b40 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 ',.',.array_keys($defaultRepos))
14b60 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 );.$installedRepo.=.$platformRep
14b80 6f 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 o;.$repos.=.new.CompositeReposit
14ba0 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 ory(array_merge(array($installed
14bc0 52 65 70 6f 29 2c 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 Repo),.$defaultRepos));.}..if.($
14be0 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 composer).{.$commandEvent.=.new.
14c00 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 CommandEvent(PluginEvents::COMMA
14c20 4e 44 2c 20 27 73 68 6f 77 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 ND,.'show',.$input,.$output);.$c
14c40 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 omposer->getEventDispatcher()->d
14c60 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 ispatch($commandEvent->getName()
14c80 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 ,.$commandEvent);.}....if.($inpu
14ca0 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d t->getArgument('package').||.!em
14cc0 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 pty($package)).{.$versions.=.arr
14ce0 61 79 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 ay();.if.(empty($package)).{.lis
14d00 74 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e t($package,.$versions).=.$this->
14d20 67 65 74 50 61 63 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f getPackage($installedRepo,.$repo
14d40 73 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 s,.$input->getArgument('package'
14d60 29 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 ),.$input->getArgument('version'
14d80 29 29 3b 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ));..if.(!$package).{.throw.new.
14da0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 \InvalidArgumentException('Packa
14dc0 67 65 20 27 2e 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 ge.'.$input->getArgument('packag
14de0 65 27 29 2e 27 20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 e').'.not.found');.}.}.else.{.$v
14e00 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 ersions.=.array($package->getPre
14e20 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 ttyVersion().=>.$package->getVer
14e40 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e sion());.}..$this->printMeta($in
14e60 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e put,.$output,.$package,.$version
14e80 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 s,.$installedRepo,.$repos);.$thi
14ea0 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 s->printLinks($input,.$output,.$
14ec0 70 61 63 6b 61 67 65 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 69 package,.'requires');.$this->pri
14ee0 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 ntLinks($input,.$output,.$packag
14f00 65 2c 20 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 e,.'devRequires',.'requires.(dev
14f20 29 27 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 )');.if.($package->getSuggests()
14f40 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e ).{.$this->getIO()->write("\n<in
14f60 66 6f 3e 73 75 67 67 65 73 74 73 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 fo>suggests</info>");.foreach.($
14f80 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 73 75 67 67 65 package->getSuggests().as.$sugge
14fa0 73 74 65 64 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 sted.=>.$reason).{.$this->getIO(
14fc0 29 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 65 64 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 )->write($suggested...'.<comment
14fe0 3e 27 20 2e 20 24 72 65 61 73 6f 6e 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a >'...$reason...'</comment>');.}.
15000 7d 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 }.$this->printLinks($input,.$out
15020 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 27 70 72 6f 76 69 64 65 73 27 29 3b 0a 24 74 68 69 put,.$package,.'provides');.$thi
15040 73 2d 3e 70 72 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 s->printLinks($input,.$output,.$
15060 70 61 63 6b 61 67 65 2c 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 3b 0a 24 74 68 69 73 2d 3e 70 72 package,.'conflicts');.$this->pr
15080 69 6e 74 4c 69 6e 6b 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 intLinks($input,.$output,.$packa
150a0 67 65 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 ge,.'replaces');..return;.}....$
150c0 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 72 65 70 6f 73 20 packages.=.array();..if.($repos.
150e0 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 instanceof.CompositeRepository).
15100 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 {.$repos.=.$repos->getRepositori
15120 65 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 es();.}.elseif.(!is_array($repos
15140 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 24 72 65 70 6f 73 29 3b 0a 7d 0a 0a )).{.$repos.=.array($repos);.}..
15160 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 foreach.($repos.as.$repo).{.if.(
15180 24 72 65 70 6f 20 3d 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 20 7b 0a 24 74 79 70 65 $repo.===.$platformRepo).{.$type
151a0 20 3d 20 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 .=.'<info>platform</info>:';.}.e
151c0 6c 73 65 69 66 20 28 0a 24 72 65 70 6f 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f lseif.(.$repo.===.$installedRepo
151e0 0a 7c 7c 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 .||.($installedRepo.instanceof.C
15200 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 ompositeRepository.&&.in_array($
15220 72 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 repo,.$installedRepo->getReposit
15240 6f 72 69 65 73 28 29 2c 20 74 72 75 65 29 29 0a 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e ories(),.true)).).{.$type.=.'<in
15260 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a fo>installed</info>:';.}.else.{.
15280 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d $type.=.'<comment>available</com
152a0 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 ment>:';.}.if.($repo.instanceof.
152c0 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 ComposerRepository.&&.$repo->has
152e0 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 Providers()).{.foreach.($repo->g
15300 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 etProviderNames().as.$name).{.$p
15320 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d ackages[$type][$name].=.$name;.}
15340 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 .}.else.{.foreach.($repo->getPac
15360 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 kages().as.$package).{.if.(!isse
15380 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 t($packages[$type][$package->get
153a0 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 21 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 73 Name()]).||.!is_object($packages
153c0 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c [$type][$package->getName()]).||
153e0 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 .version_compare($packages[$type
15400 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 ][$package->getName()]->getVersi
15420 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c on(),.$package->getVersion(),.'<
15440 27 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 ').).{.$packages[$type][$package
15460 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d ->getName()].=.$package;.}.}.}.}
15480 0a 0a 24 74 72 65 65 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c ..$tree.=.!$input->getOption('pl
154a0 61 74 66 6f 72 6d 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 atform').&&.!$input->getOption('
154c0 69 6e 73 74 61 6c 6c 65 64 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f installed').&&.!$input->getOptio
154e0 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 3b 0a 24 69 6e 64 65 6e 74 20 3d 20 24 74 72 65 65 20 n('available');.$indent.=.$tree.
15500 3f 20 27 20 20 27 20 3a 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 6e ?.'..'.:.'';.foreach.(array('<in
15520 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 2c 20 27 3c fo>platform</info>:'.=>.true,.'<
15540 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 20 3d 3e comment>available</comment>:'.=>
15560 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a .false,.'<info>installed</info>:
15580 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 73 68 6f 77 56 65 72 73 '.=>.true).as.$type.=>.$showVers
155a0 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 ion).{.if.(isset($packages[$type
155c0 5d 29 29 20 7b 0a 69 66 20 28 24 74 72 65 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 ])).{.if.($tree).{.$this->getIO(
155e0 29 2d 3e 77 72 69 74 65 28 24 74 79 70 65 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 )->write($type);.}.ksort($packag
15600 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 24 76 65 72 73 es[$type]);..$nameLength.=.$vers
15620 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ionLength.=.0;.foreach.($package
15640 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 5f 6f s[$type].as.$package).{.if.(is_o
15660 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d bject($package)).{.$nameLength.=
15680 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 .max($nameLength,.strlen($packag
156a0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 29 29 3b 0a 24 76 65 72 73 69 6f 6e 4c 65 e->getPrettyName()));.$versionLe
156c0 6e 67 74 68 20 3d 20 6d 61 78 28 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 73 74 72 6c 65 ngth.=.max($versionLength,.strle
156e0 6e 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 n($this->versionParser->formatVe
15700 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d rsion($package)));.}.else.{.$nam
15720 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 24 70 61 63 6b eLength.=.max($nameLength,.$pack
15740 61 67 65 29 3b 0a 7d 0a 7d 0a 6c 69 73 74 28 24 77 69 64 74 68 29 20 3d 20 24 74 68 69 73 2d 3e age);.}.}.list($width).=.$this->
15760 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d getApplication()->getTerminalDim
15780 65 6e 73 69 6f 6e 73 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 77 69 64 74 68 29 20 ensions();.if.(null.===.$width).
157a0 7b 0a 0a 20 0a 20 24 77 69 64 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 7d 0a 69 66 {.....$width.=.PHP_INT_MAX;.}.if
157c0 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 .(defined('PHP_WINDOWS_VERSION_B
157e0 55 49 4c 44 27 29 29 20 7b 0a 24 77 69 64 74 68 2d 2d 3b 0a 7d 0a 0a 24 77 72 69 74 65 50 61 74 UILD')).{.$width--;.}..$writePat
15800 68 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c h.=.!$input->getOption('name-onl
15820 79 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 29 y').&&.$input->getOption('path')
15840 3b 0a 24 77 72 69 74 65 56 65 72 73 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 ;.$writeVersion.=.!$input->getOp
15860 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 tion('name-only').&&.!$input->ge
15880 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 27 29 20 26 26 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 20 tOption('path').&&.$showVersion.
158a0 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 &&.($nameLength.+.$versionLength
158c0 20 2b 20 33 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 .+.3.<=.$width);.$writeDescripti
158e0 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e on.=.!$input->getOption('name-on
15900 6c 79 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 61 74 68 ly').&&.!$input->getOption('path
15920 27 29 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 28 24 73 68 6f 77 56 65 72 73 69 ').&&.($nameLength.+.($showVersi
15940 6f 6e 20 3f 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3a 20 30 29 20 2b 20 32 34 20 3c 3d on.?.$versionLength.:.0).+.24.<=
15960 20 24 77 69 64 74 68 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 .$width);.foreach.($packages[$ty
15980 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 pe].as.$package).{.if.(is_object
159a0 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 69 6e ($package)).{.$output->write($in
159c0 64 65 6e 74 20 2e 20 73 74 72 5f 70 61 64 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 dent...str_pad($package->getPret
159e0 74 79 4e 61 6d 65 28 29 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c 20 66 61 6c tyName(),.$nameLength,.'.'),.fal
15a00 73 65 29 3b 0a 0a 69 66 20 28 24 77 72 69 74 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 6f 75 74 70 se);..if.($writeVersion).{.$outp
15a20 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 76 ut->write('.'...str_pad($this->v
15a40 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 ersionParser->formatVersion($pac
15a60 6b 61 67 65 29 2c 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c 20 66 61 6c kage),.$versionLength,.'.'),.fal
15a80 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 6f 6e 29 20 7b se);.}..if.($writeDescription).{
15aa0 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b 61 67 65 2d .$description.=.strtok($package-
15ac0 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 24 72 65 6d >getDescription(),."\r\n");.$rem
15ae0 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 20 2d 20 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2d 20 aining.=.$width.-.$nameLength.-.
15b00 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2d 20 34 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 $versionLength.-.4;.if.(strlen($
15b20 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 24 72 65 6d 61 69 6e 69 6e 67 29 20 7b 0a 24 64 65 description).>.$remaining).{.$de
15b40 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2c scription.=.substr($description,
15b60 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 2d 20 33 29 20 2e 20 27 2e 2e 2e 27 3b 0a 7d 0a 24 .0,.$remaining.-.3)...'...';.}.$
15b80 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 64 65 73 63 72 69 70 74 69 6f 6e output->write('.'...$description
15ba0 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 50 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 );.}..if.($writePath).{.$path.=.
15bc0 73 74 72 74 6f 6b 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e strtok(realpath($composer->getIn
15be0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 stallationManager()->getInstallP
15c00 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a 24 6f 75 74 70 75 74 ath($package)),."\r\n");.$output
15c20 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b ->write('.'...$path);.}.}.else.{
15c40 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 69 6e 64 65 6e 74 20 2e 20 24 70 61 63 6b 61 .$output->write($indent...$packa
15c60 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 27 29 ge);.}.$this->getIO()->write('')
15c80 3b 0a 7d 0a 69 66 20 28 24 74 72 65 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d ;.}.if.($tree).{.$this->getIO()-
15ca0 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 >write('');.}.}.}.}............p
15cc0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 52 65 70 rotected.function.getPackage(Rep
15ce0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c ositoryInterface.$installedRepo,
15d00 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 2c 20 24 6e 61 .RepositoryInterface.$repos,.$na
15d20 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 me,.$version.=.null).{.$name.=.s
15d40 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 trtolower($name);.$constraint.=.
15d60 6e 75 6c 6c 3b 0a 69 66 20 28 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e null;.if.($version).{.$constrain
15d80 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 t.=.$this->versionParser->parseC
15da0 6f 6e 73 74 72 61 69 6e 74 73 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 6f 6c 69 63 79 onstraints($version);.}..$policy
15dc0 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 .=.new.DefaultPolicy();.$pool.=.
15de0 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 new.Pool('dev');.$pool->addRepos
15e00 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 itory($repos);..$matchedPackage.
15e20 3d 20 6e 75 6c 6c 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6d 61 =.null;.$versions.=.array();.$ma
15e40 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d tches.=.$pool->whatProvides($nam
15e60 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 e,.$constraint);.foreach.($match
15e80 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 es.as.$index.=>.$package).{...if
15ea0 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 6e 61 6d 65 29 .($package->getName().!==.$name)
15ec0 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e 74 .{.unset($matches[$index]);.cont
15ee0 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e inue;.}....if.(null.===.$version
15f00 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 .&&.$installedRepo->hasPackage($
15f20 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 package)).{.$matchedPackage.=.$p
15f40 61 63 6b 61 67 65 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 ackage;.}..$versions[$package->g
15f60 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 etPrettyVersion()].=.$package->g
15f80 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 etVersion();.$matches[$index].=.
15fa0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 6d 61 $package->getId();.}....if.(!$ma
15fc0 74 63 68 65 64 50 61 63 6b 61 67 65 20 26 26 20 24 6d 61 74 63 68 65 73 20 26 26 20 24 70 72 65 tchedPackage.&&.$matches.&&.$pre
15fe0 66 65 72 65 64 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 fered.=.$policy->selectPreferedP
16000 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 24 6d 61 74 63 68 65 73 ackages($pool,.array(),.$matches
16020 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 )).{.$matchedPackage.=.$pool->li
16040 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 72 65 66 65 72 65 64 5b 30 5d 29 3b 0a 7d 0a teralToPackage($prefered[0]);.}.
16060 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 2c 20 24 .return.array($matchedPackage,.$
16080 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 versions);.}.....protected.funct
160a0 69 6f 6e 20 70 72 69 6e 74 4d 65 74 61 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e ion.printMeta(InputInterface.$in
160c0 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 43 6f put,.OutputInterface.$output,.Co
160e0 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c mpletePackageInterface.$package,
16100 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 .array.$versions,.RepositoryInte
16120 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 rface.$installedRepo,.Repository
16140 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f Interface.$repos).{.$this->getIO
16160 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 ()->write('<info>name</info>....
16180 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 .:.'...$package->getPrettyName()
161a0 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e );.$this->getIO()->write('<info>
161c0 64 65 73 63 72 69 70 2e 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e descrip.</info>.:.'...$package->
161e0 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 getDescription());.$this->getIO(
16200 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6b 65 79 77 6f 72 64 73 3c 2f 69 6e 66 6f 3e 20 )->write('<info>keywords</info>.
16220 3a 20 27 20 2e 20 6a 6f 69 6e 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 :.'...join(',.',.$package->getKe
16240 79 77 6f 72 64 73 28 29 20 3f 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 ywords().?:.array()));.$this->pr
16260 69 6e 74 56 65 72 73 69 6f 6e 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 intVersions($input,.$output,.$pa
16280 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f ckage,.$versions,.$installedRepo
162a0 2c 20 24 72 65 70 6f 73 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 ,.$repos);.$this->getIO()->write
162c0 28 27 3c 69 6e 66 6f 3e 74 79 70 65 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 24 70 ('<info>type</info>.....:.'...$p
162e0 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f ackage->getType());.$this->getIO
16300 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6c 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 ()->write('<info>license</info>.
16320 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 .:.'...implode(',.',.$package->g
16340 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 etLicense()));.$this->getIO()->w
16360 72 69 74 65 28 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 6f 3e 20 20 20 3a 20 27 20 rite('<info>source</info>...:.'.
16380 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d ..sprintf('[%s].<comment>%s</com
163a0 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 ment>.%s',.$package->getSourceTy
163c0 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 pe(),.$package->getSourceUrl(),.
163e0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 29 $package->getSourceReference()))
16400 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 64 ;.$this->getIO()->write('<info>d
16420 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 28 27 5b 25 ist</info>.....:.'...sprintf('[%
16440 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 20 24 70 s].<comment>%s</comment>.%s',.$p
16460 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d ackage->getDistType(),.$package-
16480 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 >getDistUrl(),.$package->getDist
164a0 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 Reference()));.$this->getIO()->w
164c0 72 69 74 65 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 rite('<info>names</info>....:.'.
164e0 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ..implode(',.',.$package->getNam
16500 65 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e es()));..if.($package->isAbandon
16520 65 64 28 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 28 24 70 61 63 6b 61 67 65 ed()).{.$replacement.=.($package
16540 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 21 3d 3d 20 6e 75 ->getReplacementPackage().!==.nu
16560 6c 6c 29 0a 3f 20 27 20 54 68 65 20 61 75 74 68 6f 72 20 73 75 67 67 65 73 74 73 20 75 73 69 6e ll).?.'.The.author.suggests.usin
16580 67 20 74 68 65 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 g.the.'...$package->getReplaceme
165a0 6e 74 50 61 63 6b 61 67 65 28 29 2e 20 27 20 70 61 63 6b 61 67 65 20 69 6e 73 74 65 61 64 2e 27 ntPackage()..'.package.instead.'
165c0 0a 3a 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 .:.null;..$this->getIO()->writeE
165e0 72 72 6f 72 28 0a 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 41 74 74 65 6e 74 69 6f 6e 3a rror(.sprintf('<error>Attention:
16600 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 69 73 20 61 62 61 6e 64 6f 6e 65 64 20 61 6e 64 20 6e .This.package.is.abandoned.and.n
16620 6f 20 6c 6f 6e 67 65 72 20 6d 61 69 6e 74 61 69 6e 65 64 2e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c o.longer.maintained.%s</error>',
16640 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 .$replacement).);.}..if.($packag
16660 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 e->getSupport()).{.$this->getIO(
16680 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 73 75 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e )->write("\n<info>support</info>
166a0 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 ");.foreach.($package->getSuppor
166c0 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d t().as.$type.=>.$value).{.$this-
166e0 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 >getIO()->write('<comment>'...$t
16700 79 70 65 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3a 20 27 2e 24 76 61 6c 75 65 29 3b 0a 7d ype...'</comment>.:.'.$value);.}
16720 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 29 .}..if.($package->getAutoload())
16740 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 .{.$this->getIO()->write("\n<inf
16760 6f 3e 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 o>autoload</info>");.foreach.($p
16780 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 20 61 73 20 24 74 79 70 65 20 3d ackage->getAutoload().as.$type.=
167a0 3e 20 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e >.$autoloads).{.$this->getIO()->
167c0 77 72 69 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 write('<comment>'...$type...'</c
167e0 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 omment>');..if.($type.===.'psr-0
16800 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d ').{.foreach.($autoloads.as.$nam
16820 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 e.=>.$path).{.$this->getIO()->wr
16840 69 74 65 28 28 24 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 69 ite(($name.?:.'*')...'.=>.'...(i
16860 73 5f 61 72 72 61 79 28 24 70 61 74 68 29 20 3f 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 s_array($path).?.implode(',.',.$
16880 70 61 74 68 29 20 3a 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 29 3b 0a 7d 0a 7d 20 65 6c path).:.($path.?:.'.')));.}.}.el
168a0 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 seif.($type.===.'psr-4').{.forea
168c0 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 74 68 ch.($autoloads.as.$name.=>.$path
168e0 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 28 24 6e 61 6d 65 ).{.$this->getIO()->write(($name
16900 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 69 73 5f 61 72 72 61 79 28 24 70 .?:.'*')...'.=>.'...(is_array($p
16920 61 74 68 29 20 3f 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 74 68 29 20 3a 20 28 24 ath).?.implode(',.',.$path).:.($
16940 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 path.?:.'.')));.}.}.elseif.($typ
16960 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f e.===.'classmap').{.$this->getIO
16980 28 29 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 61 75 74 6f 6c 6f 61 ()->write(implode(',.',.$autoloa
169a0 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 ds));.}.}.if.($package->getInclu
169c0 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 dePaths()).{.$this->getIO()->wri
169e0 74 65 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d 70 61 74 68 3c 2f 63 6f 6d 6d 65 te('<comment>include-path</comme
16a00 6e 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 69 6d 70 nt>');.$this->getIO()->write(imp
16a20 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 lode(',.',.$package->getIncludeP
16a40 61 74 68 73 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 aths()));.}.}.}.....protected.fu
16a60 6e 63 74 69 6f 6e 20 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 49 6e 74 65 72 66 nction.printVersions(InputInterf
16a80 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
16aa0 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 put,.CompletePackageInterface.$p
16ac0 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 ackage,.array.$versions,.Reposit
16ae0 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 70 oryInterface.$installedRepo,.Rep
16b00 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 29 0a 7b 0a 75 61 73 6f 72 ositoryInterface.$repos).{.uasor
16b20 74 28 24 76 65 72 73 69 6f 6e 73 2c 20 27 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 27 29 3b t($versions,.'version_compare');
16b40 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 61 72 72 61 79 5f 72 65 .$versions.=.array_keys(array_re
16b60 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 29 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 verse($versions));....if.($insta
16b80 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 lledRepo->hasPackage($package)).
16ba0 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e {.$installedVersion.=.$package->
16bc0 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6b 65 79 20 3d 20 61 72 72 61 79 getPrettyVersion();.$key.=.array
16be0 5f 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 2c 20 24 76 65 72 73 _search($installedVersion,.$vers
16c00 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 6b 65 79 29 20 7b 0a 24 76 65 ions);.if.(false.!==.$key).{.$ve
16c20 72 73 69 6f 6e 73 5b 24 6b 65 79 5d 20 3d 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 2e 20 24 69 6e 73 rsions[$key].=.'<info>*.'...$ins
16c40 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 7d 0a 0a talledVersion...'</info>';.}.}..
16c60 24 76 65 72 73 69 6f 6e 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 65 72 73 69 $versions.=.implode(',.',.$versi
16c80 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 ons);..$this->getIO()->write('<i
16ca0 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 72 73 69 nfo>versions</info>.:.'...$versi
16cc0 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 ons);.}...........protected.func
16ce0 74 69 6f 6e 20 70 72 69 6e 74 4c 69 6e 6b 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 tion.printLinks(InputInterface.$
16d00 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 input,.OutputInterface.$output,.
16d20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 CompletePackageInterface.$packag
16d40 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 e,.$linkType,.$title.=.null).{.$
16d60 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 20 title.=.$title.?:.$linkType;.if.
16d80 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 ($links.=.$package->{'get'.ucfir
16da0 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f st($linkType)}()).{.$this->getIO
16dc0 28 29 2d 3e 77 72 69 74 65 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 ()->write("\n<info>"...$title...
16de0 22 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 "</info>");..foreach.($links.as.
16e00 24 6c 69 6e 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 $link).{.$this->getIO()->write($
16e20 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 link->getTarget()...'.<comment>'
16e40 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 ...$link->getPrettyConstraint().
16e60 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ..'</comment>');.}.}.}.}.<?php..
16e80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d ..........namespace.Composer\Com
16ea0 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 mand;..use.Composer\Installer;.u
16ec0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b se.Composer\Plugin\CommandEvent;
16ee0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 .use.Composer\Plugin\PluginEvent
16f00 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 s;.use.Symfony\Component\Console
16f20 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
16f40 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
16f60 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
16f80 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 nsole\Input\InputArgument;.use.S
16fa0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
16fc0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 OutputInterface;......class.Upda
16fe0 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 teCommand.extends.Command.{.prot
17000 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 ected.function.configure().{.$th
17020 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 is.->setName('update').->setDesc
17040 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 ription('Updates.your.dependenci
17060 65 73 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 es.to.the.latest.version.accordi
17080 6e 67 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 ng.to.composer.json,.and.updates
170a0 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 .the.composer.lock.file.').->set
170c0 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d Definition(array(.new.InputArgum
170e0 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 ent('packages',.InputArgument::I
17100 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 S_ARRAY.|.InputArgument::OPTIONA
17120 4c 2c 20 27 50 61 63 6b 61 67 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 75 70 64 61 L,.'Packages.that.should.be.upda
17140 74 65 64 2c 20 69 66 20 6e 6f 74 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 ted,.if.not.provided.all.package
17160 73 20 61 72 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 s.are.'),.new.InputOption('prefe
17180 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 r-source',.null,.InputOption::VA
171a0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 LUE_NONE,.'Forces.installation.f
171c0 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c rom.package.sources.when.possibl
171e0 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c e,.including.VCS.information.'),
17200 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 .new.InputOption('prefer-dist',.
17220 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 null,.InputOption::VALUE_NONE,.'
17240 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 Forces.installation.from.package
17260 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a .dist.even.for.dev.versions.'),.
17280 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c new.InputOption('dry-run',.null,
172a0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 .InputOption::VALUE_NONE,.'Outpu
172c0 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 ts.the.operations.but.will.not.e
172e0 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 xecute.anything.(implicitly.enab
17300 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 les.--verbose).'),.new.InputOpti
17320 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('dev',.null,.InputOption::VAL
17340 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f UE_NONE,.'Enables.installation.o
17360 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 f.require-dev.packages.(enabled.
17380 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 by.default,.only.present.for.BC)
173a0 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e .'),.new.InputOption('no-dev',.n
173c0 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 ull,.InputOption::VALUE_NONE,.'D
173e0 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d isables.installation.of.require-
17400 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.packages.'),.new.InputOption
17420 28 27 6c 6f 63 6b 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 ('lock',.null,.InputOption::VALU
17440 45 5f 4e 4f 4e 45 2c 20 27 4f 6e 6c 79 20 75 70 64 61 74 65 73 20 74 68 65 20 6c 6f 63 6b 20 66 E_NONE,.'Only.updates.the.lock.f
17460 69 6c 65 20 68 61 73 68 20 74 6f 20 73 75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67 20 61 62 6f ile.hash.to.suppress.warning.abo
17480 75 74 20 74 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 62 65 69 6e 67 20 6f 75 74 20 6f 66 20 64 61 ut.the.lock.file.being.out.of.da
174a0 74 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 te.'),.new.InputOption('no-plugi
174c0 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ns',.null,.InputOption::VALUE_NO
174e0 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 NE,.'Disables.all.plugins.'),.ne
17500 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c w.InputOption('no-custom-install
17520 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ers',.null,.InputOption::VALUE_N
17540 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 ONE,.'DEPRECATED:.Use.no-plugins
17560 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f .instead.'),.new.InputOption('no
17580 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a -autoloader',.null,.InputOption:
175a0 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 61 75 74 6f 6c 6f 61 64 65 72 20 67 :VALUE_NONE,.'Skips.autoloader.g
175c0 65 6e 65 72 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f eneration'),.new.InputOption('no
175e0 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 -scripts',.null,.InputOption::VA
17600 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f LUE_NONE,.'Skips.the.execution.o
17620 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 f.all.scripts.defined.in.compose
17640 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 r.json.file.'),.new.InputOption(
17660 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 'no-progress',.null,.InputOption
17680 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 ::VALUE_NONE,.'Do.not.output.dow
176a0 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 nload.progress.'),.new.InputOpti
176c0 6f 6e 28 27 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e on('with-dependencies',.null,.In
176e0 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 61 6c 73 6f putOption::VALUE_NONE,.'Add.also
17700 20 61 6c 6c 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 77 68 69 74 65 6c 69 73 74 65 64 .all.dependencies.of.whitelisted
17720 20 70 61 63 6b 61 67 65 73 20 74 6f 20 74 68 65 20 77 68 69 74 65 6c 69 73 74 2e 27 29 2c 0a 6e .packages.to.the.whitelist.'),.n
17740 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c ew.InputOption('verbose',.'v|vv|
17760 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 vvv',.InputOption::VALUE_NONE,.'
17780 53 68 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 Shows.more.details.including.new
177a0 20 63 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 .commits.pulled.in.when.updating
177c0 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f .packages.'),.new.InputOption('o
177e0 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f ptimize-autoloader',.'o',.InputO
17800 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 ption::VALUE_NONE,.'Optimize.aut
17820 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 2e 27 oloader.during.autoloader.dump.'
17840 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 ),.new.InputOption('ignore-platf
17860 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 orm-reqs',.null,.InputOption::VA
17880 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 LUE_NONE,.'Ignore.platform.requi
178a0 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 29 rements.(php.&.ext-.packages).')
178c0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 ,.new.InputOption('prefer-stable
178e0 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
17900 2c 20 27 50 72 65 66 65 72 20 73 74 61 62 6c 65 20 76 65 72 73 69 6f 6e 73 20 6f 66 20 64 65 70 ,.'Prefer.stable.versions.of.dep
17920 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 endencies.'),.new.InputOption('p
17940 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e refer-lowest',.null,.InputOption
17960 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 50 72 65 66 65 72 20 6c 6f 77 65 73 74 20 76 65 72 ::VALUE_NONE,.'Prefer.lowest.ver
17980 73 69 6f 6e 73 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 sions.of.dependencies.'),.)).->s
179a0 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f etHelp(<<<EOT.The.<info>update</
179c0 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 info>.command.reads.the.composer
179e0 2e 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 .json.file.from.the.current.dire
17a00 63 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 ctory,.processes.it,.and.updates
17a20 2c 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 ,.removes.or.installs.all.the.de
17a40 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e pendencies...<info>php.composer.
17a60 70 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 phar.update</info>..To.limit.the
17a80 20 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 .update.operation.to.a.few.packa
17aa0 67 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 ges,.you.can.list.the.package(s)
17ac0 0a 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 .you.want.to.update.as.such:..<i
17ae0 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e nfo>php.composer.phar.update.ven
17b00 64 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d dor/package1.foo/mypackage.[...]
17b20 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 6d 61 79 20 61 6c 73 6f 20 75 73 65 20 61 6e 20 61 73 74 </info>..You.may.also.use.an.ast
17b40 65 72 69 73 6b 20 28 2a 29 20 70 61 74 74 65 72 6e 20 74 6f 20 6c 69 6d 69 74 20 74 68 65 20 75 erisk.(*).pattern.to.limit.the.u
17b60 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 70 61 63 6b 61 67 65 28 73 29 0a 66 72 pdate.operation.to.package(s).fr
17b80 6f 6d 20 61 20 73 70 65 63 69 66 69 63 20 76 65 6e 64 6f 72 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 om.a.specific.vendor:..<info>php
17ba0 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 6f 72 2f 70 61 63 .composer.phar.update.vendor/pac
17bc0 6b 61 67 65 31 20 66 6f 6f 2f 2a 20 5b 2e 2e 2e 5d 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b kage1.foo/*.[...]</info>.EOT.).;
17be0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 .}..protected.function.execute(I
17c00 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 nputInterface.$input,.OutputInte
17c20 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 rface.$output).{.if.($input->get
17c40 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 Option('no-custom-installers')).
17c60 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 {.$this->getIO()->writeError('<w
17c80 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 arning>You.are.using.the.depreca
17ca0 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 ted.option."no-custom-installers
17cc0 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 "..Use."no-plugins".instead.</wa
17ce0 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d rning>');.$input->setOption('no-
17d00 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e plugins',.true);.}..if.($input->
17d20 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f getOption('dev')).{.$this->getIO
17d40 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 ()->writeError('<warning>You.are
17d60 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 64 65 .using.the.deprecated.option."de
17d80 76 22 2e 20 44 65 76 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 62 v"..Dev.packages.are.installed.b
17da0 79 20 64 65 66 61 75 6c 74 20 6e 6f 77 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 24 y.default.now.</warning>');.}..$
17dc0 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 composer.=.$this->getComposer(tr
17de0 75 65 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e ue,.$input->getOption('no-plugin
17e00 73 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 s'));.$composer->getDownloadMana
17e20 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 ger()->setOutputProgress(!$input
17e40 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f ->getOption('no-progress'));.$io
17e60 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e .=.$this->getIO();..$commandEven
17e80 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 t.=.new.CommandEvent(PluginEvent
17ea0 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 75 70 64 61 74 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f s::COMMAND,.'update',.$input,.$o
17ec0 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 utput);.$composer->getEventDispa
17ee0 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d tcher()->dispatch($commandEvent-
17f00 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e >getName(),.$commandEvent);..$in
17f20 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 stall.=.Installer::create($io,.$
17f40 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 composer);..$preferSource.=.fals
17f60 65 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 63 6f 6e 66 69 67 e;.$preferDist.=.false;..$config
17f80 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 73 77 69 74 .=.$composer->getConfig();..swit
17fa0 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 ch.($config->get('preferred-inst
17fc0 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 all')).{.case.'source':.$preferS
17fe0 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 ource.=.true;.break;.case.'dist'
18000 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 :.$preferDist.=.true;.break;.cas
18020 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 e.'auto':.default:...break;.}.if
18040 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 .($input->getOption('prefer-sour
18060 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 ce').||.$input->getOption('prefe
18080 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 r-dist')).{.$preferSource.=.$inp
180a0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a ut->getOption('prefer-source');.
180c0 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 $preferDist.=.$input->getOption(
180e0 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 'prefer-dist');.}..$optimize.=.$
18100 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c input->getOption('optimize-autol
18120 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6f 70 74 69 6d 69 7a oader').||.$config->get('optimiz
18140 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 e-autoloader').||.$config->get('
18160 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 0a 24 69 6e 73 74 classmap-authoritative');..$inst
18180 61 6c 6c 0a 2d 3e 73 65 74 44 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f all.->setDryRun($input->getOptio
181a0 6e 28 27 64 72 79 2d 72 75 6e 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 n('dry-run')).->setVerbose($inpu
181c0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 t->getOption('verbose')).->setPr
181e0 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 eferSource($preferSource).->setP
18200 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d referDist($preferDist).->setDevM
18220 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 ode(!$input->getOption('no-dev')
18240 29 0a 2d 3e 73 65 74 44 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 28 21 24 69 6e 70 75 74 2d 3e 67 ).->setDumpAutoloader(!$input->g
18260 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 etOption('no-autoloader')).->set
18280 52 75 6e 53 63 72 69 70 74 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e RunScripts(!$input->getOption('n
182a0 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f o-scripts')).->setOptimizeAutolo
182c0 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 ader($optimize).->setUpdate(true
182e0 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d 3e 67 ).->setUpdateWhitelist($input->g
18300 65 74 4f 70 74 69 6f 6e 28 27 6c 6f 63 6b 27 29 20 3f 20 61 72 72 61 79 28 27 6c 6f 63 6b 27 29 etOption('lock').?.array('lock')
18320 20 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 .:.$input->getArgument('packages
18340 27 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 ')).->setWhitelistDependencies($
18360 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 input->getOption('with-dependenc
18380 69 65 73 27 29 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 ies')).->setIgnorePlatformRequir
183a0 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 ements($input->getOption('ignore
183c0 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 74 61 -platform-reqs')).->setPreferSta
183e0 62 6c 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 74 ble($input->getOption('prefer-st
18400 61 62 6c 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 4c 6f 77 65 73 74 28 24 69 6e 70 75 74 able')).->setPreferLowest($input
18420 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 29 29 0a 3b 0a ->getOption('prefer-lowest')).;.
18440 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 .if.($input->getOption('no-plugi
18460 6e 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 ns')).{.$install->disablePlugins
18480 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 7d ();.}..return.$install->run();.}
184a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
184c0 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d mposer\Command;..use.Symfony\Com
184e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 ponent\Console\Input\InputInterf
18500 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
18520 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 le\Input\InputArgument;.use.Symf
18540 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 ony\Component\Console\Input\Inpu
18560 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 tOption;.use.Symfony\Component\C
18580 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 onsole\Output\OutputInterface;.u
185a0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 se.Composer\Config;.use.Composer
185c0 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f \Config\JsonConfigSource;.use.Co
185e0 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f mposer\Factory;.use.Composer\Jso
18600 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 43 6f 6d n\JsonFile;......class.ConfigCom
18620 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 mand.extends.Command.{....protec
18640 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 ted.$config;.....protected.$conf
18660 69 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 53 6f 75 igFile;.....protected.$configSou
18680 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 46 69 rce;.....protected.$authConfigFi
186a0 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 le;.....protected.$authConfigSou
186c0 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 rce;.....protected.function.conf
186e0 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 63 6f 6e 66 69 igure().{.$this.->setName('confi
18700 67 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 74 20 63 6f 6e 66 69 67 g').->setDescription('Set.config
18720 20 6f 70 74 69 6f 6e 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 .options').->setDefinition(array
18740 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 2c 20 27 67 27 2c (.new.InputOption('global',.'g',
18760 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 70 70 6c 79 .InputOption::VALUE_NONE,.'Apply
18780 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 20 66 69 .command.to.the.global.config.fi
187a0 6c 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 2c 20 le'),.new.InputOption('editor',.
187c0 27 65 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 'e',.InputOption::VALUE_NONE,.'O
187e0 70 65 6e 20 65 64 69 74 6f 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 pen.editor'),.new.InputOption('a
18800 75 74 68 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f uth',.'a',.InputOption::VALUE_NO
18820 4e 45 2c 20 27 41 66 66 65 63 74 20 61 75 74 68 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 28 6f 6e NE,.'Affect.auth.config.file.(on
18840 6c 79 20 75 73 65 64 20 66 6f 72 20 2d 2d 65 64 69 74 6f 72 29 27 29 2c 0a 6e 65 77 20 49 6e 70 ly.used.for.--editor)'),.new.Inp
18860 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 utOption('unset',.null,.InputOpt
18880 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 55 6e 73 65 74 20 74 68 65 20 67 69 76 65 ion::VALUE_NONE,.'Unset.the.give
188a0 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e n.setting-key'),.new.InputOption
188c0 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ('list',.'l',.InputOption::VALUE
188e0 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 _NONE,.'List.configuration.setti
18900 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 27 ngs'),.new.InputOption('file',.'
18920 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c f',.InputOption::VALUE_REQUIRED,
18940 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 6f 6f 73 65 20 61 20 64 69 66 66 65 72 .'If.you.want.to.choose.a.differ
18960 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e ent.composer.json.or.config.json
18980 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 ',.'composer.json'),.new.InputOp
189a0 74 69 6f 6e 28 27 61 62 73 6f 6c 75 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 tion('absolute',.null,.InputOpti
189c0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 65 74 75 72 6e 73 20 61 62 73 6f 6c 75 74 on::VALUE_NONE,.'Returns.absolut
189e0 65 20 70 61 74 68 73 20 77 68 65 6e 20 66 65 74 63 68 69 6e 67 20 2a 2d 64 69 72 20 63 6f 6e 66 e.paths.when.fetching.*-dir.conf
18a00 69 67 20 76 61 6c 75 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 72 65 6c 61 74 69 76 65 27 29 2c ig.values.instead.of.relative'),
18a20 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 .new.InputArgument('setting-key'
18a40 2c 20 6e 75 6c 6c 2c 20 27 53 65 74 74 69 6e 67 20 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 ,.null,.'Setting.key'),.new.Inpu
18a60 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 2c 20 49 6e 70 75 74 tArgument('setting-value',.Input
18a80 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 2c 20 27 53 65 74 74 69 6e 67 20 76 61 6c Argument::IS_ARRAY,.'Setting.val
18aa0 75 65 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 69 73 20 63 ue'),.)).->setHelp(<<<EOT.This.c
18ac0 6f 6d 6d 61 6e 64 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 65 64 69 74 20 73 6f 6d 65 20 62 ommand.allows.you.to.edit.some.b
18ae0 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 65 69 74 68 65 72 asic.composer.settings.in.either
18b00 20 74 68 65 0a 6c 6f 63 61 6c 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 .the.local.composer.json.file.or
18b20 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 54 .the.global.config.json.file...T
18b40 6f 20 73 65 74 20 61 20 63 6f 6e 66 69 67 20 73 65 74 74 69 6e 67 3a 0a 0a 20 20 20 20 3c 63 6f o.set.a.config.setting:......<co
18b60 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 62 69 6e 2d 64 69 mment>%command.full_name%.bin-di
18b80 72 20 62 69 6e 2f 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 72 65 61 64 20 61 20 63 6f 6e 66 r.bin/</comment>..To.read.a.conf
18ba0 69 67 20 73 65 74 74 69 6e 67 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 ig.setting:......<comment>%comma
18bc0 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 62 69 6e 2d 64 69 72 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a nd.full_name%.bin-dir</comment>.
18be0 20 20 20 20 4f 75 74 70 75 74 73 3a 20 3c 69 6e 66 6f 3e 62 69 6e 3c 2f 69 6e 66 6f 3e 0a 0a 54 ....Outputs:.<info>bin</info>..T
18c00 6f 20 65 64 69 74 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 o.edit.the.global.config.json.fi
18c20 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f le:......<comment>%command.full_
18c40 6e 61 6d 65 25 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 61 64 64 name%.--global</comment>..To.add
18c60 20 61 20 72 65 70 6f 73 69 74 6f 72 79 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f .a.repository:......<comment>%co
18c80 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f mmand.full_name%.repositories.fo
18ca0 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a o.vcs.http://bar.com</comment>..
18cc0 54 6f 20 72 65 6d 6f 76 65 20 61 20 72 65 70 6f 73 69 74 6f 72 79 20 28 72 65 70 6f 20 69 73 20 To.remove.a.repository.(repo.is.
18ce0 61 20 73 68 6f 72 74 20 61 6c 69 61 73 20 66 6f 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 29 3a a.short.alias.for.repositories):
18d00 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d ......<comment>%command.full_nam
18d20 65 25 20 2d 2d 75 6e 73 65 74 20 72 65 70 6f 2e 66 6f 6f 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 e%.--unset.repo.foo</comment>..T
18d40 6f 20 64 69 73 61 62 6c 65 20 70 61 63 6b 61 67 69 73 74 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 o.disable.packagist:......<comme
18d60 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 72 65 70 6f 2e 70 61 63 6b nt>%command.full_name%.repo.pack
18d80 61 67 69 73 74 20 66 61 6c 73 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 agist.false</comment>..You.can.a
18da0 6c 74 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 lter.repositories.in.the.global.
18dc0 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 20 62 79 20 70 61 73 73 69 6e 67 20 69 6e 20 74 config.json.file.by.passing.in.t
18de0 68 65 0a 3c 69 6e 66 6f 3e 2d 2d 67 6c 6f 62 61 6c 3c 2f 69 6e 66 6f 3e 20 6f 70 74 69 6f 6e 2e he.<info>--global</info>.option.
18e00 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 66 69 6c 65 20 69 6e 20 61 6e 20 65 78 74 65 72 6e 61 ..To.edit.the.file.in.an.externa
18e20 6c 20 65 64 69 74 6f 72 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 l.editor:......<comment>%command
18e40 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a .full_name%.--editor</comment>..
18e60 54 6f 20 63 68 6f 6f 73 65 20 79 6f 75 72 20 65 64 69 74 6f 72 20 79 6f 75 20 63 61 6e 20 73 65 To.choose.your.editor.you.can.se
18e80 74 20 74 68 65 20 22 45 44 49 54 4f 52 22 20 65 6e 76 20 76 61 72 69 61 62 6c 65 2e 0a 0a 54 6f t.the."EDITOR".env.variable...To
18ea0 20 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76 61 6c .get.a.list.of.configuration.val
18ec0 75 65 73 20 69 6e 20 74 68 65 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 ues.in.the.file:......<comment>%
18ee0 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 6c 69 73 74 3c 2f 63 6f 6d 6d 65 command.full_name%.--list</comme
18f00 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 70 61 73 73 20 6d 6f 72 65 20 74 68 nt>..You.can.always.pass.more.th
18f20 61 6e 20 6f 6e 65 20 6f 70 74 69 6f 6e 2e 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 69 66 an.one.option..As.an.example,.if
18f40 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 65 64 69 74 20 74 68 65 0a 67 6c 6f 62 61 6c 20 63 6f 6e .you.want.to.edit.the.global.con
18f60 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f fig.json.file.......<comment>%co
18f80 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 20 2d 2d 67 6c 6f 62 mmand.full_name%.--editor.--glob
18fa0 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 al</comment>.EOT.).;.}.....prote
18fc0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e cted.function.initialize(InputIn
18fe0 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
19000 24 6f 75 74 70 75 74 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 24 69 $output).{.parent::initialize($i
19020 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 nput,.$output);..if.($input->get
19040 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 Option('global').&&.'composer.js
19060 6f 6e 27 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 on'.!==.$input->getOption('file'
19080 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
190a0 28 27 2d 2d 66 69 6c 65 20 61 6e 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 ('--file.and.--global.can.not.be
190c0 20 63 6f 6d 62 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 .combined');.}..$this->config.=.
190e0 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 24 74 68 69 73 2d 3e 67 65 74 Factory::createConfig($this->get
19100 49 4f 28 29 29 3b 0a 0a 0a 20 0a 20 24 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 24 69 6e 70 75 74 IO());......$configFile.=.$input
19120 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 24 74 68 69 73 2d 3e ->getOption('global').?.($this->
19140 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f 6e 66 69 67 2e 6a config->get('home')...'/config.j
19160 73 6f 6e 27 29 0a 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 son').:.$input->getOption('file'
19180 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e );..$this->configFile.=.new.Json
191a0 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 File($configFile);.$this->config
191c0 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 74 Source.=.new.JsonConfigSource($t
191e0 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 0a 24 61 75 74 68 43 6f 6e 66 69 67 46 69 his->configFile);..$authConfigFi
19200 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 le.=.$input->getOption('global')
19220 0a 3f 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e .?.($this->config->get('home')..
19240 20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 0a 3a 20 64 69 72 6e 61 6d 65 28 72 65 61 6c 70 61 74 .'/auth.json').:.dirname(realpat
19260 68 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 29 29 20 2e 20 h($input->getOption('file')))...
19280 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 3b 0a 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 '/auth.json';..$this->authConfig
192a0 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 61 75 74 68 43 6f 6e 66 69 67 46 File.=.new.JsonFile($authConfigF
192c0 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 ile);.$this->authConfigSource.=.
192e0 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 61 75 74 68 new.JsonConfigSource($this->auth
19300 43 6f 6e 66 69 67 46 69 6c 65 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 ConfigFile,.true);....if.($input
19320 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 21 24 74 68 69 73 2d ->getOption('global').&&.!$this-
19340 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 6f 75 63 68 28 24 >configFile->exists()).{.touch($
19360 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 24 74 this->configFile->getPath());.$t
19380 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 27 63 6f his->configFile->write(array('co
193a0 6e 66 69 67 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 29 29 3b 0a 40 63 68 nfig'.=>.new.\ArrayObject));.@ch
193c0 6d 6f 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 mod($this->configFile->getPath()
193e0 2c 20 30 36 30 30 29 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ,.0600);.}.if.($input->getOption
19400 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 21 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 ('global').&&.!$this->authConfig
19420 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 61 File->exists()).{.touch($this->a
19440 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 24 74 68 69 73 uthConfigFile->getPath());.$this
19460 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 27 68 ->authConfigFile->write(array('h
19480 74 74 70 2d 62 61 73 69 63 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 2c 20 ttp-basic'.=>.new.\ArrayObject,.
194a0 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 'github-oauth'.=>.new.\ArrayObje
194c0 63 74 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 ct));.@chmod($this->authConfigFi
194e0 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 le->getPath(),.0600);.}..if.(!$t
19500 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 his->configFile->exists()).{.thr
19520 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 ow.new.\RuntimeException(sprintf
19540 28 27 46 69 6c 65 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 74 ('File."%s".cannot.be.found.in.t
19560 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 27 2c 20 24 63 6f 6e 66 69 67 46 69 he.current.directory',.$configFi
19580 6c 65 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e le));.}.}.....protected.function
195a0 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 .execute(InputInterface.$input,.
195c0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 69 66 20 OutputInterface.$output).{...if.
195e0 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 29 29 20 7b 0a ($input->getOption('editor')).{.
19600 24 65 64 69 74 6f 72 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 67 65 74 65 6e 76 28 $editor.=.escapeshellcmd(getenv(
19620 27 45 44 49 54 4f 52 27 29 29 3b 0a 69 66 20 28 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 'EDITOR'));.if.(!$editor).{.if.(
19640 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
19660 4c 44 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 LD')).{.$editor.=.'notepad';.}.e
19680 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 lse.{.foreach.(array('vim',.'vi'
196a0 2c 20 27 6e 61 6e 6f 27 2c 20 27 70 69 63 6f 27 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 ,.'nano',.'pico',.'ed').as.$cand
196c0 69 64 61 74 65 29 20 7b 0a 69 66 20 28 65 78 65 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 idate).{.if.(exec('which.'.$cand
196e0 69 64 61 74 65 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a idate)).{.$editor.=.$candidate;.
19700 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e break;.}.}.}.}..$file.=.$input->
19720 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 27 29 20 3f 20 24 74 68 69 73 2d 3e 61 75 74 68 43 getOption('auth').?.$this->authC
19740 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 6f onfigFile->getPath().:.$this->co
19760 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 3b 0a 73 79 73 74 65 6d 28 24 65 64 69 nfigFile->getPath();.system($edi
19780 74 6f 72 20 2e 20 27 20 27 20 2e 20 24 66 69 6c 65 20 2e 20 28 64 65 66 69 6e 65 64 28 27 50 48 tor...'.'...$file...(defined('PH
197a0 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 27 27 20 3a P_WINDOWS_VERSION_BUILD').?.''.:
197c0 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 20 .'.>.`tty`'));..return.0;.}..if.
197e0 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 29 20 7b (!$input->getOption('global')).{
19800 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e .$this->config->merge($this->con
19820 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d figFile->read());.$this->config-
19840 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d 3e >merge(array('config'.=>.$this->
19860 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 20 3f 20 24 74 68 69 73 authConfigFile->exists().?.$this
19880 2d 3e 61 75 74 68 43 6f 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 20 3a 20 61 72 72 61 79 ->authConfigFile->read().:.array
198a0 28 29 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e ()));.}....if.($input->getOption
198c0 28 27 6c 69 73 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 ('list')).{.$this->listConfigura
198e0 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 2c 20 24 74 68 69 73 tion($this->config->all(),.$this
19900 2d 3e 63 6f 6e 66 69 67 2d 3e 72 61 77 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 ->config->raw(),.$output);..retu
19920 72 6e 20 30 3b 0a 7d 0a 0a 24 73 65 74 74 69 6e 67 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 rn.0;.}..$settingKey.=.$input->g
19940 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 3b 0a 69 66 20 28 21 etArgument('setting-key');.if.(!
19960 24 73 65 74 74 69 6e 67 4b 65 79 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 $settingKey).{.return.0;.}....if
19980 20 28 61 72 72 61 79 28 29 20 21 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e .(array().!==.$input->getArgumen
199a0 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 t('setting-value').&&.$input->ge
199c0 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 tOption('unset')).{.throw.new.\R
199e0 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d untimeException('You.can.not.com
19a00 62 69 6e 65 20 61 20 73 65 74 74 69 6e 67 20 76 61 6c 75 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 bine.a.setting.value.with.--unse
19a20 74 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 69 6e 70 75 74 t');.}....if.(array().===.$input
19a40 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 ->getArgument('setting-value').&
19a60 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b &.!$input->getOption('unset')).{
19a80 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 61 6c 6c 28 29 3b 0a 69 .$data.=.$this->config->all();.i
19aa0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 f.(preg_match('/^repos?(?:itorie
19ac0 73 29 3f 28 3f 3a 5c 2e 28 2e 2b 29 29 3f 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 s)?(?:\.(.+))?/',.$settingKey,.$
19ae0 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 matches)).{.if.(empty($matches[1
19b00 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f ])).{.$value.=.isset($data['repo
19b20 73 69 74 6f 72 69 65 73 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 sitories']).?.$data['repositorie
19b40 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 69 73 73 s'].:.array();.}.else.{.if.(!iss
19b60 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 et($data['repositories'][$matche
19b80 73 5b 31 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 s[1]])).{.throw.new.\InvalidArgu
19ba0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 72 65 20 69 73 20 6e 6f 20 27 2e 24 6d 61 mentException('There.is.no.'.$ma
19bc0 74 63 68 65 73 5b 31 5d 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 20 64 65 66 69 6e 65 64 27 29 3b tches[1].'.repository.defined');
19be0 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 .}..$value.=.$data['repositories
19c00 27 5d 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 '][$matches[1]];.}.}.elseif.(str
19c20 70 6f 73 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 27 2e 27 29 29 20 7b 0a 24 62 69 74 73 20 3d pos($settingKey,.'.')).{.$bits.=
19c40 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 24 64 61 74 .explode('.',.$settingKey);.$dat
19c60 61 20 3d 20 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 a.=.$data['config'];.foreach.($b
19c80 69 74 73 20 61 73 20 24 62 69 74 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 24 its.as.$bit).{.if.(isset($data[$
19ca0 62 69 74 5d 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 24 62 69 74 5d 3b 0a 7d 20 bit])).{.$data.=.$data[$bit];.}.
19cc0 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c elseif.(isset($data[implode('.',
19ce0 20 24 62 69 74 73 29 5d 29 29 20 7b 0a 0a 20 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 69 6d 70 .$bits)])).{...$data.=.$data[imp
19d00 6c 6f 64 65 28 27 2e 27 2c 20 24 62 69 74 73 29 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 lode('.',.$bits)];.break;.}.else
19d20 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 .{.throw.new.\RuntimeException($
19d40 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d settingKey.'.is.not.defined');.}
19d60 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 62 69 74 73 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d .array_shift($bits);.}..$value.=
19d80 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 63 .$data;.}.elseif.(isset($data['c
19da0 6f 6e 66 69 67 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 onfig'][$settingKey])).{.$value.
19dc0 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 73 65 74 74 69 6e 67 4b 65 79 =.$this->config->get($settingKey
19de0 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 62 73 6f 6c 75 74 65 27 29 20 ,.$input->getOption('absolute').
19e00 3f 20 30 20 3a 20 43 6f 6e 66 69 67 3a 3a 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 29 3b 0a 7d ?.0.:.Config::RELATIVE_PATHS);.}
19e20 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 .else.{.throw.new.\RuntimeExcept
19e40 69 6f 6e 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 ion($settingKey.'.is.not.defined
19e60 27 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 ');.}..if.(is_array($value)).{.$
19e80 76 61 6c 75 65 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a value.=.json_encode($value);.}..
19ea0 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 76 61 6c 75 65 29 3b 0a 0a $this->getIO()->write($value);..
19ec0 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 76 61 6c 75 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 return.0;.}..$values.=.$input->g
19ee0 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 3b 20 0a 0a 24 etArgument('setting-value');...$
19f00 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 booleanValidator.=.function.($va
19f20 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 l).{.return.in_array($val,.array
19f40 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 75 ('true',.'false',.'1',.'0'),.tru
19f60 65 29 3b 20 7d 3b 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 66 75 6e 63 e);.};.$booleanNormalizer.=.func
19f80 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 tion.($val).{.return.$val.!==.'f
19fa0 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 20 7d 3b 0a 0a 0a 20 24 75 6e 69 alse'.&&.(bool).$val;.};....$uni
19fc0 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 queConfigValues.=.array(.'proces
19fe0 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 s-timeout'.=>.array('is_numeric'
1a000 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 ,.'intval'),.'use-include-path'.
1a020 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f =>.array($booleanValidator,.$boo
1a040 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 leanNormalizer),.'preferred-inst
1a060 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b all'.=>.array(.function.($val).{
1a080 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 61 75 .return.in_array($val,.array('au
1a0a0 74 6f 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 64 69 73 74 27 29 2c 20 74 72 75 65 29 3b 20 7d to',.'source',.'dist'),.true);.}
1a0c0 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b ,.function.($val).{.return.$val;
1a0e0 20 7d 0a 29 2c 0a 27 73 74 6f 72 65 2d 61 75 74 68 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 .}.),.'store-auths'.=>.array(.fu
1a100 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 nction.($val).{.return.in_array(
1a120 24 76 61 6c 2c 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 70 72 $val,.array('true',.'false',.'pr
1a140 6f 6d 70 74 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c ompt'),.true);.},.function.($val
1a160 29 20 7b 0a 69 66 20 28 27 70 72 6f 6d 70 74 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 ).{.if.('prompt'.===.$val).{.ret
1a180 75 72 6e 20 27 70 72 6f 6d 70 74 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d urn.'prompt';.}..return.$val.!==
1a1a0 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 0a 7d 0a 29 2c 0a 27 6e .'false'.&&.(bool).$val;.}.),.'n
1a1c0 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c otify-on-install'.=>.array($bool
1a1e0 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 eanValidator,.$booleanNormalizer
1a200 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 ),.'vendor-dir'.=>.array('is_str
1a220 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 ing',.function.($val).{.return.$
1a240 76 61 6c 3b 20 7d 29 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f val;.}),.'bin-dir'.=>.array('is_
1a260 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 string',.function.($val).{.retur
1a280 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 n.$val;.}),.'cache-dir'.=>.array
1a2a0 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 ('is_string',.function.($val).{.
1a2c0 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 return.$val;.}),.'cache-files-di
1a2e0 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f r'.=>.array('is_string',.functio
1a300 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 n.($val).{.return.$val;.}),.'cac
1a320 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 he-repo-dir'.=>.array('is_string
1a340 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c ',.function.($val).{.return.$val
1a360 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 ;.}),.'cache-vcs-dir'.=>.array('
1a380 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 is_string',.function.($val).{.re
1a3a0 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 61 72 turn.$val;.}),.'cache-ttl'.=>.ar
1a3c0 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 ray('is_numeric',.'intval'),.'ca
1a3e0 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 che-files-ttl'.=>.array('is_nume
1a400 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 ric',.'intval'),.'cache-files-ma
1a420 78 73 69 7a 65 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 xsize'.=>.array(.function.($val)
1a440 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d 39 .{.return.preg_match('/^\s*([0-9
1a460 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f .]+)\s*(?:([kmg])(?:i?b)?)?\s*$/
1a480 69 27 2c 20 24 76 61 6c 29 20 3e 20 30 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c i',.$val).>.0;.},.function.($val
1a4a0 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 64 69 73 63 61 72 64 2d 63 ).{.return.$val;.}.),.'discard-c
1a4c0 68 61 6e 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c hanges'.=>.array(.function.($val
1a4e0 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 ).{.return.in_array($val,.array(
1a500 27 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 'stash',.'true',.'false',.'1',.'
1a520 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0'),.true);.},.function.($val).{
1a540 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 .if.('stash'.===.$val).{.return.
1a560 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 'stash';.}..return.$val.!==.'fal
1a580 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 0a 7d 0a 29 2c 0a 27 61 75 74 6f 6c 6f se'.&&.(bool).$val;.}.),.'autolo
1a5a0 61 64 65 72 2d 73 75 66 66 69 78 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 ader-suffix'.=>.array('is_string
1a5c0 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c ',.function.($val).{.return.$val
1a5e0 20 3d 3d 3d 20 27 6e 75 6c 6c 27 20 3f 20 6e 75 6c 6c 20 3a 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 .===.'null'.?.null.:.$val;.}),.'
1a600 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 24 62 optimize-autoloader'.=>.array($b
1a620 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 ooleanValidator,.$booleanNormali
1a640 7a 65 72 29 2c 0a 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 20 3d zer),.'classmap-authoritative'.=
1a660 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c >.array($booleanValidator,.$bool
1a680 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 eanNormalizer),.'prepend-autoloa
1a6a0 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c der'.=>.array($booleanValidator,
1a6c0 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 67 69 74 68 75 62 2d 65 78 .$booleanNormalizer),.'github-ex
1a6e0 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e pose-hostname'.=>.array($boolean
1a700 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a Validator,.$booleanNormalizer),.
1a720 29 3b 0a 24 6d 75 6c 74 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 );.$multiConfigValues.=.array(.'
1a740 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 github-protocols'.=>.array(.func
1a760 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 tion.($vals).{.if.(!is_array($va
1a780 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a ls)).{.return.'array.expected';.
1a7a0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 73 20 61 73 20 24 76 61 6c 29 20 7b 0a 69 66 20 }..foreach.($vals.as.$val).{.if.
1a7c0 28 21 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 (!in_array($val,.array('git',.'h
1a7e0 74 74 70 73 27 2c 20 27 73 73 68 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 76 61 6c 69 64 20 ttps',.'ssh'))).{.return.'valid.
1a800 70 72 6f 74 6f 63 6f 6c 73 20 69 6e 63 6c 75 64 65 3a 20 67 69 74 2c 20 68 74 74 70 73 2c 20 73 protocols.include:.git,.https,.s
1a820 73 68 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 sh';.}.}..return.true;.},.functi
1a840 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a on.($vals).{.return.$vals;.}.),.
1a860 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 'github-domains'.=>.array(.funct
1a880 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c ion.($vals).{.if.(!is_array($val
1a8a0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d s)).{.return.'array.expected';.}
1a8c0 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c ..return.true;.},.function.($val
1a8e0 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a 29 3b 0a 0a 66 6f 72 65 s).{.return.$vals;.}.),.);..fore
1a900 61 63 68 20 28 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d ach.($uniqueConfigValues.as.$nam
1a920 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b e.=>.$callbacks).{.if.($settingK
1a940 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f ey.===.$name).{.if.($input->getO
1a960 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ption('unset')).{.return.$this->
1a980 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e configSource->removeConfigSettin
1a9a0 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 g($settingKey);.}..list($validat
1a9c0 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 or,.$normalizer).=.$callbacks;.i
1a9e0 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 f.(1.!==.count($values)).{.throw
1aa00 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 20 .new.\RuntimeException('You.can.
1aa20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e 65 20 76 61 6c 75 65 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 only.pass.one.value..Example:.ph
1aa40 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 70 72 6f 63 65 73 73 2d 74 p.composer.phar.config.process-t
1aa60 69 6d 65 6f 75 74 20 33 30 30 27 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 imeout.300');.}..if.(true.!==.$v
1aa80 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 5b 30 alidation.=.$validator($values[0
1aaa0 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ])).{.throw.new.\RuntimeExceptio
1aac0 6e 28 73 70 72 69 6e 74 66 28 0a 27 22 25 73 22 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 n(sprintf(.'"%s".is.an.invalid.v
1aae0 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 alue'.($validation.?.'.('.$valid
1ab00 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 24 76 61 6c 75 65 73 5b 30 5d 0a 29 29 3b 0a ation.')'.:.''),.$values[0].));.
1ab20 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 }..return.$this->configSource->a
1ab40 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f ddConfigSetting($settingKey,.$no
1ab60 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 rmalizer($values[0]));.}.}..fore
1ab80 61 63 68 20 28 24 6d 75 6c 74 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 73 20 24 6e 61 6d 65 ach.($multiConfigValues.as.$name
1aba0 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 74 74 69 6e 67 4b 65 .=>.$callbacks).{.if.($settingKe
1abc0 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 y.===.$name).{.if.($input->getOp
1abe0 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 tion('unset')).{.return.$this->c
1ac00 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 onfigSource->removeConfigSetting
1ac20 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 61 6c 69 64 61 74 6f ($settingKey);.}..list($validato
1ac40 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 63 6b 73 3b 0a 69 66 r,.$normalizer).=.$callbacks;.if
1ac60 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 .(true.!==.$validation.=.$valida
1ac80 74 6f 72 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 tor($values)).{.throw.new.\Runti
1aca0 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 25 73 20 69 73 20 61 6e 20 69 meException(sprintf(.'%s.is.an.i
1acc0 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 nvalid.value'.($validation.?.'.(
1ace0 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 6a 73 6f 6e 5f 65 6e '.$validation.')'.:.''),.json_en
1ad00 63 6f 64 65 28 24 76 61 6c 75 65 73 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 code($values).));.}..return.$thi
1ad20 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e s->configSource->addConfigSettin
1ad40 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 g($settingKey,.$normalizer($valu
1ad60 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 es));.}.}....if.(preg_match('/^r
1ad80 65 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 epos?(?:itories)?\.(.+)/',.$sett
1ada0 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d ingKey,.$matches)).{.if.($input-
1adc0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 >getOption('unset')).{.return.$t
1ade0 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 his->configSource->removeReposit
1ae00 6f 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 69 66 20 28 32 20 3d 3d 3d 20 63 ory($matches[1]);.}..if.(2.===.c
1ae20 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 ount($values)).{.return.$this->c
1ae40 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 onfigSource->addRepository($matc
1ae60 68 65 73 5b 31 5d 2c 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 24 76 61 6c 75 65 73 hes[1],.array(.'type'.=>.$values
1ae80 5b 30 5d 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d 2c 0a 29 29 3b 0a 7d 0a [0],.'url'.=>.$values[1],.));.}.
1aea0 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 24 62 6f .if.(1.===.count($values)).{.$bo
1aec0 6f 6c 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a 69 66 20 ol.=.strtolower($values[0]);.if.
1aee0 28 74 72 75 65 20 3d 3d 3d 20 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 28 24 62 6f 6f (true.===.$booleanValidator($boo
1af00 6c 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a l).&&.false.===.$booleanNormaliz
1af20 65 72 28 24 62 6f 6f 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 er($bool)).{.return.$this->confi
1af40 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6d 61 74 63 68 65 73 5b gSource->addRepository($matches[
1af60 31 5d 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 1],.false);.}.}..throw.new.\Runt
1af80 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 70 61 73 73 20 74 68 65 20 imeException('You.must.pass.the.
1afa0 74 79 70 65 20 61 6e 64 20 61 20 75 72 6c 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d type.and.a.url..Example:.php.com
1afc0 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 poser.phar.config.repositories.f
1afe0 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 27 29 3b 0a 7d 0a 0a 0a 20 69 66 oo.vcs.http://bar.com');.}....if
1b000 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 67 69 74 68 75 62 2d 6f 61 75 74 68 7c 68 74 .(preg_match('/^(github-oauth|ht
1b020 74 70 2d 62 61 73 69 63 29 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 tp-basic)\.(.+)/',.$settingKey,.
1b040 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 $matches)).{.if.($input->getOpti
1b060 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 on('unset')).{.$this->authConfig
1b080 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 Source->removeConfigSetting($mat
1b0a0 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d ches[1].'.'.$matches[2]);.$this-
1b0c0 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 >configSource->removeConfigSetti
1b0e0 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b ng($matches[1].'.'.$matches[2]);
1b100 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d ..return;.}..if.($matches[1].===
1b120 20 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 20 7b 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 .'github-oauth').{.if.(1.!==.cou
1b140 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d nt($values)).{.throw.new.\Runtim
1b160 65 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e 79 20 61 72 67 75 6d 65 6e 74 73 2c 20 eException('Too.many.arguments,.
1b180 65 78 70 65 63 74 65 64 20 6f 6e 6c 79 20 6f 6e 65 20 74 6f 6b 65 6e 27 29 3b 0a 7d 0a 24 74 68 expected.only.one.token');.}.$th
1b1a0 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 is->configSource->removeConfigSe
1b1c0 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 65 73 5b 32 tting($matches[1].'.'.$matches[2
1b1e0 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 ]);.$this->authConfigSource->add
1b200 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d ConfigSetting($matches[1].'.'.$m
1b220 61 74 63 68 65 73 5b 32 5d 2c 20 24 76 61 6c 75 65 73 5b 30 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 atches[2],.$values[0]);.}.elseif
1b240 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 20 .($matches[1].===.'http-basic').
1b260 7b 0a 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 {.if.(2.!==.count($values)).{.th
1b280 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 78 70 65 63 row.new.\RuntimeException('Expec
1b2a0 74 65 64 20 74 77 6f 20 61 72 67 75 6d 65 6e 74 73 20 28 75 73 65 72 6e 61 6d 65 2c 20 70 61 73 ted.two.arguments.(username,.pas
1b2c0 73 77 6f 72 64 29 2c 20 67 6f 74 20 27 2e 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d sword),.got.'.count($values));.}
1b2e0 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 .$this->configSource->removeConf
1b300 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e 27 2e 24 6d 61 74 63 68 igSetting($matches[1].'.'.$match
1b320 65 73 5b 32 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 2d es[2]);.$this->authConfigSource-
1b340 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 2e >addConfigSetting($matches[1].'.
1b360 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 '.$matches[2],.array('username'.
1b380 3d 3e 20 24 76 61 6c 75 65 73 5b 30 5d 2c 20 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 76 61 =>.$values[0],.'password'.=>.$va
1b3a0 6c 75 65 73 5b 31 5d 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e lues[1]));.}..return;.}..throw.n
1b3c0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 53 65 ew.\InvalidArgumentException('Se
1b3e0 74 74 69 6e 67 20 27 2e 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 tting.'.$settingKey.'.does.not.e
1b400 78 69 73 74 20 6f 72 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 xist.or.is.not.supported.by.this
1b420 20 63 6f 6d 6d 61 6e 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .command');.}..........protected
1b440 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 61 72 72 61 .function.listConfiguration(arra
1b460 79 20 24 63 6f 6e 74 65 6e 74 73 2c 20 61 72 72 61 79 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 2c y.$contents,.array.$rawContents,
1b480 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e .OutputInterface.$output,.$k.=.n
1b4a0 75 6c 6c 29 0a 7b 0a 24 6f 72 69 67 4b 20 3d 20 24 6b 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f ull).{.$origK.=.$k;.foreach.($co
1b4c0 6e 74 65 6e 74 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 ntents.as.$key.=>.$value).{.if.(
1b4e0 24 6b 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 $k.===.null.&&.!in_array($key,.a
1b500 72 72 61 79 28 27 63 6f 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 rray('config',.'repositories')))
1b520 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 .{.continue;.}..$rawVal.=.isset(
1b540 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e $rawContents[$key]).?.$rawConten
1b560 74 73 5b 24 6b 65 79 5d 20 3a 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 ts[$key].:.null;..if.(is_array($
1b580 76 61 6c 75 65 29 20 26 26 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 value).&&.(!is_numeric(key($valu
1b5a0 65 29 29 20 7c 7c 20 28 24 6b 65 79 20 3d 3d 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 e)).||.($key.===.'repositories'.
1b5c0 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6b 29 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 &&.null.===.$k))).{.$k..=.preg_r
1b5e0 65 70 6c 61 63 65 28 27 7b 5e 63 6f 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e eplace('{^config\.}',.'',.$key..
1b600 20 27 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 .'.');.$this->listConfiguration(
1b620 24 76 61 6c 75 65 2c 20 24 72 61 77 56 61 6c 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a $value,.$rawVal,.$output,.$k);..
1b640 69 66 20 28 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 6b 2c 20 27 2e 27 29 20 3e 20 31 29 20 7b if.(substr_count($k,.'.').>.1).{
1b660 0a 24 6b 20 3d 20 73 74 72 5f 73 70 6c 69 74 28 24 6b 2c 20 73 74 72 72 70 6f 73 28 24 6b 2c 20 .$k.=.str_split($k,.strrpos($k,.
1b680 27 2e 27 2c 20 2d 32 29 29 3b 0a 24 6b 20 3d 20 24 6b 5b 30 5d 20 2e 20 27 2e 27 3b 0a 7d 20 65 '.',.-2));.$k.=.$k[0]...'.';.}.e
1b6a0 6c 73 65 20 7b 0a 24 6b 20 3d 20 24 6f 72 69 67 4b 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a lse.{.$k.=.$origK;.}..continue;.
1b6c0 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 }..if.(is_array($value)).{.$valu
1b6e0 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a e.=.array_map(function.($val).{.
1b700 72 65 74 75 72 6e 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 return.is_array($val).?.json_enc
1b720 6f 64 65 28 24 76 61 6c 29 20 3a 20 24 76 61 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 ode($val).:.$val;.},.$value);..$
1b740 76 61 6c 75 65 20 3d 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 value.=.'['.implode(',.',.$value
1b760 29 2e 27 5d 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b ).']';.}..if.(is_bool($value)).{
1b780 0a 24 76 61 6c 75 65 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 .$value.=.var_export($value,.tru
1b7a0 65 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 e);.}..if.(is_string($rawVal).&&
1b7c0 20 24 72 61 77 56 61 6c 20 21 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 .$rawVal.!=.$value).{.$this->get
1b7e0 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 IO()->write('[<comment>'...$k...
1b800 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 72 $key...'</comment>].<info>'...$r
1b820 61 77 56 61 6c 20 2e 20 27 20 28 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 29 3c 2f 69 6e 66 6f awVal...'.('...$value...')</info
1b840 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 >');.}.else.{.$this->getIO()->wr
1b860 69 74 65 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 ite('[<comment>'...$k...$key...'
1b880 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 </comment>].<info>'...$value...'
1b8a0 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a </info>');.}.}.}.}.<?php........
1b8c0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a ....namespace.Composer\Command;.
1b8e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d .use.Composer\Installer;.use.Com
1b900 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 poser\Plugin\CommandEvent;.use.C
1b920 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 omposer\Plugin\PluginEvents;.use
1b940 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
1b960 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \InputInterface;.use.Symfony\Com
1b980 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e ponent\Console\Input\InputOption
1b9a0 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
1b9c0 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Input\InputArgument;.use.Symfony
1b9e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 \Component\Console\Output\Output
1ba00 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 Interface;........class.InstallC
1ba20 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 ommand.extends.Command.{.protect
1ba40 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a ed.function.configure().{.$this.
1ba60 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 ->setName('install').->setDescri
1ba80 70 74 69 6f 6e 28 27 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 ption('Installs.the.project.depe
1baa0 6e 64 65 6e 63 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 ndencies.from.the.composer.lock.
1bac0 66 69 6c 65 20 69 66 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f file.if.present,.or.falls.back.o
1bae0 6e 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 n.the.composer.json.').->setDefi
1bb00 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 nition(array(.new.InputOption('p
1bb20 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e refer-source',.null,.InputOption
1bb40 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 ::VALUE_NONE,.'Forces.installati
1bb60 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 on.from.package.sources.when.pos
1bb80 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e sible,.including.VCS.information
1bba0 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 .'),.new.InputOption('prefer-dis
1bbc0 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e t',.null,.InputOption::VALUE_NON
1bbe0 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 E,.'Forces.installation.from.pac
1bc00 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e kage.dist.even.for.dev.versions.
1bc20 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e '),.new.InputOption('dry-run',.n
1bc40 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f ull,.InputOption::VALUE_NONE,.'O
1bc60 75 74 70 75 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e utputs.the.operations.but.will.n
1bc80 6f 74 20 65 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 ot.execute.anything.(implicitly.
1bca0 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 enables.--verbose).'),.new.Input
1bcc0 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a Option('dev',.null,.InputOption:
1bce0 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 :VALUE_NONE,.'Enables.installati
1bd00 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 on.of.require-dev.packages.(enab
1bd20 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 led.by.default,.only.present.for
1bd40 20 42 43 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 .BC).'),.new.InputOption('no-dev
1bd60 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
1bd80 2c 20 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 ,.'Disables.installation.of.requ
1bda0 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 ire-dev.packages.'),.new.InputOp
1bdc0 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 tion('no-plugins',.null,.InputOp
1bde0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 tion::VALUE_NONE,.'Disables.all.
1be00 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d plugins.'),.new.InputOption('no-
1be20 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f custom-installers',.null,.InputO
1be40 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 ption::VALUE_NONE,.'DEPRECATED:.
1be60 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 Use.no-plugins.instead.'),.new.I
1be80 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 6e 75 6c 6c nputOption('no-autoloader',.null
1bea0 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 ,.InputOption::VALUE_NONE,.'Skip
1bec0 73 20 61 75 74 6f 6c 6f 61 64 65 72 20 67 65 6e 65 72 61 74 69 6f 6e 27 29 2c 0a 6e 65 77 20 49 s.autoloader.generation'),.new.I
1bee0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 nputOption('no-scripts',.null,.I
1bf00 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 nputOption::VALUE_NONE,.'Skips.t
1bf20 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 he.execution.of.all.scripts.defi
1bf40 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 ned.in.composer.json.file.'),.ne
1bf60 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c w.InputOption('no-progress',.nul
1bf80 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 l,.InputOption::VALUE_NONE,.'Do.
1bfa0 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c not.output.download.progress.'),
1bfc0 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 .new.InputOption('verbose',.'v|v
1bfe0 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c v|vvv',.InputOption::VALUE_NONE,
1c000 20 27 53 68 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e .'Shows.more.details.including.n
1c020 65 77 20 63 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 ew.commits.pulled.in.when.updati
1c040 6e 67 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ng.packages.'),.new.InputOption(
1c060 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 'optimize-autoloader',.'o',.Inpu
1c080 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 tOption::VALUE_NONE,.'Optimize.a
1c0a0 75 74 6f 6c 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 utoloader.during.autoloader.dump
1c0c0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 '),.new.InputOption('ignore-plat
1c0e0 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 form-reqs',.null,.InputOption::V
1c100 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d 20 72 65 71 75 ALUE_NONE,.'Ignore.platform.requ
1c120 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 65 73 29 2e 27 irements.(php.&.ext-.packages).'
1c140 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c ),.new.InputArgument('packages',
1c160 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 .InputArgument::IS_ARRAY.|.Input
1c180 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 53 68 6f 75 6c 64 20 6e 6f 74 20 Argument::OPTIONAL,.'Should.not.
1c1a0 62 65 20 70 72 6f 76 69 64 65 64 2c 20 75 73 65 20 63 6f 6d 70 6f 73 65 72 20 72 65 71 75 69 72 be.provided,.use.composer.requir
1c1c0 65 20 69 6e 73 74 65 61 64 20 74 6f 20 61 64 64 20 61 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 e.instead.to.add.a.given.package
1c1e0 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 .to.composer.json.'),.)).->setHe
1c200 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 lp(<<<EOT.The.<info>install</inf
1c220 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f o>.command.reads.the.composer.lo
1c240 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f ck.file.from.the.current.directo
1c260 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 64 6f 77 6e 6c 6f 61 64 73 20 ry,.processes.it,.and.downloads.
1c280 61 6e 64 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 6c 69 62 72 61 72 69 65 73 20 61 and.installs.all.the.libraries.a
1c2a0 6e 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 75 74 6c 69 6e 65 64 20 69 6e 20 74 68 61 74 nd.dependencies.outlined.in.that
1c2c0 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 0a 65 78 69 73 .file..If.the.file.does.not.exis
1c2e0 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e t.it.will.look.for.composer.json
1c300 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d 65 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d .and.do.the.same...<info>php.com
1c320 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 poser.phar.install</info>..EOT.)
1c340 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .;.}..protected.function.execute
1c360 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
1c380 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 61 72 67 73 20 3d 20 24 terface.$output).{.if.($args.=.$
1c3a0 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 29 29 20 input->getArgument('packages')).
1c3c0 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 {.$this->getIO()->writeError('<e
1c3e0 72 72 6f 72 3e 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 27 2e 69 6d 70 6c 6f 64 65 28 rror>Invalid.argument.'.implode(
1c400 27 20 27 2c 20 24 61 72 67 73 29 2e 27 2e 20 55 73 65 20 22 63 6f 6d 70 6f 73 65 72 20 72 65 71 '.',.$args).'..Use."composer.req
1c420 75 69 72 65 20 27 2e 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 61 72 67 73 29 2e 27 22 20 69 6e uire.'.implode('.',.$args).'".in
1c440 73 74 65 61 64 20 74 6f 20 61 64 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f stead.to.add.packages.to.your.co
1c460 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 mposer.json.</error>');..return.
1c480 31 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 1;.}..if.($input->getOption('no-
1c4a0 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 custom-installers')).{.$this->ge
1c4c0 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 tIO()->writeError('<warning>You.
1c4e0 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 are.using.the.deprecated.option.
1c500 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d "no-custom-installers"..Use."no-
1c520 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 plugins".instead.</warning>');.$
1c540 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 input->setOption('no-plugins',.t
1c560 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 rue);.}..if.($input->getOption('
1c580 64 65 76 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 dev')).{.$this->getIO()->writeEr
1c5a0 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 ror('<warning>You.are.using.the.
1c5c0 64 65 70 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 64 65 76 22 2e 20 44 65 76 20 70 61 63 deprecated.option."dev"..Dev.pac
1c5e0 6b 61 67 65 73 20 61 72 65 20 69 6e 73 74 61 6c 6c 65 64 20 62 79 20 64 65 66 61 75 6c 74 20 6e kages.are.installed.by.default.n
1c600 6f 77 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 ow.</warning>');.}..$composer.=.
1c620 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 75 65 2c 20 24 69 6e 70 75 74 2d $this->getComposer(true,.$input-
1c640 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 3b 0a 24 63 6f 6d 70 >getOption('no-plugins'));.$comp
1c660 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f oser->getDownloadManager()->setO
1c680 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e utputProgress(!$input->getOption
1c6a0 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 ('no-progress'));.$io.=.$this->g
1c6c0 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d etIO();..$commandEvent.=.new.Com
1c6e0 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c mandEvent(PluginEvents::COMMAND,
1c700 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 .'install',.$input,.$output);.$c
1c720 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 omposer->getEventDispatcher()->d
1c740 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 ispatch($commandEvent->getName()
1c760 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e ,.$commandEvent);..$install.=.In
1c780 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b staller::create($io,.$composer);
1c7a0 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 72 65 66 65 72 ..$preferSource.=.false;.$prefer
1c7c0 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 Dist.=.false;..$config.=.$compos
1c7e0 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 er->getConfig();..switch.($confi
1c800 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 g->get('preferred-install')).{.c
1c820 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 ase.'source':.$preferSource.=.tr
1c840 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 ue;.break;.case.'dist':.$preferD
1c860 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a ist.=.true;.break;.case.'auto':.
1c880 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e default:...break;.}.if.($input->
1c8a0 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 getOption('prefer-source').||.$i
1c8c0 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 nput->getOption('prefer-dist')).
1c8e0 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 {.$preferSource.=.$input->getOpt
1c900 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 ion('prefer-source');.$preferDis
1c920 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 t.=.$input->getOption('prefer-di
1c940 73 74 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 st');.}..$optimize.=.$input->get
1c960 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c Option('optimize-autoloader').||
1c980 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 .$config->get('optimize-autoload
1c9a0 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 6c 61 73 73 6d 61 70 2d 61 er').||.$config->get('classmap-a
1c9c0 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 44 uthoritative');..$install.->setD
1c9e0 72 79 52 75 6e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e ryRun($input->getOption('dry-run
1ca00 27 29 29 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ')).->setVerbose($input->getOpti
1ca20 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 on('verbose')).->setPreferSource
1ca40 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 ($preferSource).->setPreferDist(
1ca60 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 75 $preferDist).->setDevMode(!$inpu
1ca80 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 0a 2d 3e 73 65 74 44 75 6d t->getOption('no-dev')).->setDum
1caa0 70 41 75 74 6f 6c 6f 61 64 65 72 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 pAutoloader(!$input->getOption('
1cac0 6e 6f 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 no-autoloader')).->setRunScripts
1cae0 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 (!$input->getOption('no-scripts'
1cb00 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 )).->setOptimizeAutoloader($opti
1cb20 6d 69 7a 65 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 mize).->setIgnorePlatformRequire
1cb40 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d ments($input->getOption('ignore-
1cb60 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e platform-reqs')).;..if.($input->
1cb80 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b 0a 24 69 6e 73 74 getOption('no-plugins')).{.$inst
1cba0 61 6c 6c 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e all->disablePlugins();.}..return
1cbc0 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$install->run();.}.}.<?php.....
1cbe0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e .......namespace.Composer\Comman
1cc00 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c d;..use.Composer\Package\Loader\
1cc20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f ValidatingArrayLoader;.use.Compo
1cc40 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 79 ser\Util\ConfigValidator;.use.Sy
1cc60 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e mfony\Component\Console\Input\In
1cc80 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 putArgument;.use.Symfony\Compone
1cca0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b nt\Console\Input\InputInterface;
1ccc0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
1cce0 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f nput\InputOption;.use.Symfony\Co
1cd00 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 mponent\Console\Output\OutputInt
1cd20 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d erface;........class.ValidateCom
1cd40 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 mand.extends.Command.{....protec
1cd60 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 ted.function.configure().{.$this
1cd80 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 76 61 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 .->setName('validate').->setDesc
1cda0 72 69 70 74 69 6f 6e 28 27 56 61 6c 69 64 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 ription('Validates.a.composer.js
1cdc0 6f 6e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 on').->setDefinition(array(.new.
1cde0 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 61 6c 6c 27 2c 20 6e 75 6c 6c InputOption('no-check-all',.null
1ce00 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e ,.InputOption::VALUE_NONE,.'Do.n
1ce20 6f 74 20 6d 61 6b 65 20 61 20 63 6f 6d 70 6c 65 74 65 20 76 61 6c 69 64 61 74 69 6f 6e 27 29 2c ot.make.a.complete.validation'),
1ce40 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 70 75 62 6c 69 .new.InputOption('no-check-publi
1ce60 73 68 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f sh',.null,.InputOption::VALUE_NO
1ce80 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 63 68 65 63 6b 20 66 6f 72 20 70 75 62 6c 69 73 68 20 65 72 NE,.'Do.not.check.for.publish.er
1cea0 72 6f 72 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 rors'),.new.InputArgument('file'
1cec0 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 70 61 74 68 ,.InputArgument::OPTIONAL,.'path
1cee0 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 27 2c 20 27 2e 2f 63 6f 6d 70 .to.composer.json.file',.'./comp
1cf00 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a oser.json').)).->setHelp(<<<EOT.
1cf20 54 68 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 76 61 6c 69 64 61 74 65 73 20 61 The.validate.command.validates.a
1cf40 20 67 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a .given.composer.json..EOT.);.}..
1cf60 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 ......protected.function.execute
1cf80 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
1cfa0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 terface.$output).{.$file.=.$inpu
1cfc0 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 29 3b 0a 0a 69 66 20 28 21 66 69 t->getArgument('file');..if.(!fi
1cfe0 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f le_exists($file)).{.$this->getIO
1d000 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 ()->writeError('<error>'...$file
1d020 20 2e 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 ...'.not.found.</error>');..retu
1d040 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 29 rn.1;.}.if.(!is_readable($file))
1d060 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c .{.$this->getIO()->writeError('<
1d080 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 error>'...$file...'.is.not.reada
1d0a0 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 76 ble.</error>');..return.1;.}..$v
1d0c0 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 28 24 alidator.=.new.ConfigValidator($
1d0e0 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 63 68 65 63 6b 41 6c 6c 20 3d 20 24 69 6e 70 this->getIO());.$checkAll.=.$inp
1d100 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 61 6c 6c 27 29 20 3f 20 ut->getOption('no-check-all').?.
1d120 30 20 3a 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3a 3a 43 48 45 43 4b 0.:.ValidatingArrayLoader::CHECK
1d140 5f 41 4c 4c 3b 0a 24 63 68 65 63 6b 50 75 62 6c 69 73 68 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 _ALL;.$checkPublish.=.!$input->g
1d160 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 68 65 63 6b 2d 70 75 62 6c 69 73 68 27 29 3b 0a 6c 69 etOption('no-check-publish');.li
1d180 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 st($errors,.$publishErrors,.$war
1d1a0 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 nings).=.$validator->validate($f
1d1c0 69 6c 65 2c 20 24 63 68 65 63 6b 41 6c 6c 29 3b 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f 72 73 ile,.$checkAll);....if.(!$errors
1d1e0 20 26 26 20 21 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 21 24 77 61 72 6e 69 6e 67 .&&.!$publishErrors.&&.!$warning
1d200 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 s).{.$this->getIO()->write('<inf
1d220 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 3c 2f 69 6e 66 6f 3e 27 o>'...$file...'.is.valid</info>'
1d240 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 20 26 26 20 21 24 70 75 62 6c 69 );.}.elseif.(!$errors.&&.!$publi
1d260 73 68 45 72 72 6f 72 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 shErrors).{.$this->getIO()->writ
1d280 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 76 eError('<info>'...$file...'.is.v
1d2a0 61 6c 69 64 2c 20 62 75 74 20 77 69 74 68 20 61 20 66 65 77 20 77 61 72 6e 69 6e 67 73 3c 2f 69 alid,.but.with.a.few.warnings</i
1d2c0 6e 66 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 nfo>');.$this->getIO()->writeErr
1d2e0 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f or('<warning>See.http://getcompo
1d300 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 20 64 65 74 ser.org/doc/04-schema.md.for.det
1d320 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a ails.on.the.schema</warning>');.
1d340 7d 20 65 6c 73 65 69 66 20 28 21 24 65 72 72 6f 72 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 }.elseif.(!$errors).{.$this->get
1d360 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c IO()->writeError('<info>'...$fil
1d380 65 20 2e 20 27 20 69 73 20 76 61 6c 69 64 20 66 6f 72 20 73 69 6d 70 6c 65 20 75 73 61 67 65 20 e...'.is.valid.for.simple.usage.
1d3a0 77 69 74 68 20 63 6f 6d 70 6f 73 65 72 20 62 75 74 20 68 61 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a with.composer.but.has</info>');.
1d3c0 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 $this->getIO()->writeError('<inf
1d3e0 6f 3e 73 74 72 69 63 74 20 65 72 72 6f 72 73 20 74 68 61 74 20 6d 61 6b 65 20 69 74 20 75 6e 61 o>strict.errors.that.make.it.una
1d400 62 6c 65 20 74 6f 20 62 65 20 70 75 62 6c 69 73 68 65 64 20 61 73 20 61 20 70 61 63 6b 61 67 65 ble.to.be.published.as.a.package
1d420 3a 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 :</info>');.$this->getIO()->writ
1d440 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 eError('<warning>See.http://getc
1d460 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 20 66 6f 72 omposer.org/doc/04-schema.md.for
1d480 20 64 65 74 61 69 6c 73 20 6f 6e 20 74 68 65 20 73 63 68 65 6d 61 3c 2f 77 61 72 6e 69 6e 67 3e .details.on.the.schema</warning>
1d4a0 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 ');.}.else.{.$this->getIO()->wri
1d4c0 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 teError('<error>'...$file...'.is
1d4e0 20 69 6e 76 61 6c 69 64 2c 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 72 72 6f 72 73 2f 77 .invalid,.the.following.errors/w
1d500 61 72 6e 69 6e 67 73 20 77 65 72 65 20 66 6f 75 6e 64 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d arnings.were.found:</error>');.}
1d520 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e 20 ..$messages.=.array(.'error'.=>.
1d540 24 65 72 72 6f 72 73 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 24 77 61 72 6e 69 6e 67 73 2c $errors,.'warning'.=>.$warnings,
1d560 0a 29 3b 0a 0a 0a 20 69 66 20 28 24 63 68 65 63 6b 50 75 62 6c 69 73 68 29 20 7b 0a 24 6d 65 73 .);....if.($checkPublish).{.$mes
1d580 73 61 67 65 73 5b 27 65 72 72 6f 72 27 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 65 sages['error'].=.array_merge($me
1d5a0 73 73 61 67 65 73 5b 27 65 72 72 6f 72 27 5d 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 ssages['error'],.$publishErrors)
1d5c0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 27 77 61 72 6e 69 6e 67 27 5d 20 ;.}.else.{.$messages['warning'].
1d5e0 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 65 73 73 61 67 65 73 5b 27 77 61 72 6e 69 6e 67 =.array_merge($messages['warning
1d600 27 5d 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 '],.$publishErrors);.}..foreach.
1d620 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b ($messages.as.$style.=>.$msgs).{
1d640 0a 66 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 74 68 69 73 .foreach.($msgs.as.$msg).{.$this
1d660 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 27 20 2e 20 24 73 74 79 ->getIO()->writeError('<'...$sty
1d680 6c 65 20 2e 20 27 3e 27 20 2e 20 24 6d 73 67 20 2e 20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 le...'>'...$msg...'</'...$style.
1d6a0 2e 20 27 3e 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 7c 7c 20 28 ..'>');.}.}..return.$errors.||.(
1d6c0 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 26 26 20 24 63 68 65 63 6b 50 75 62 6c 69 73 68 29 $publishErrors.&&.$checkPublish)
1d6e0 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .?.1.:.0;.}.}.<?php............n
1d700 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 amespace.Composer\Command;..use.
1d720 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c Composer\DependencyResolver\Pool
1d740 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 ;.use.Composer\Plugin\CommandEve
1d760 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 nt;.use.Composer\Plugin\PluginEv
1d780 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 ents;.use.Symfony\Component\Cons
1d7a0 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 ole\Input\InputInterface;.use.Sy
1d7c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e mfony\Component\Console\Input\In
1d7e0 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 putArgument;.use.Symfony\Compone
1d800 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 nt\Console\Input\InputOption;.us
1d820 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
1d840 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 ut\OutputInterface;......class.D
1d860 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a ependsCommand.extends.Command.{.
1d880 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 protected.$linkTypes.=.array(.'r
1d8a0 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 72 65 equire'.=>.array('requires',.'re
1d8c0 71 75 69 72 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 quires'),.'require-dev'.=>.array
1d8e0 28 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 20 28 64 65 76 29 27 ('devRequires',.'requires.(dev)'
1d900 29 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 ),.);..protected.function.config
1d920 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 ure().{.$this.->setName('depends
1d940 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 ').->setDescription('Shows.which
1d960 20 70 61 63 6b 61 67 65 73 20 64 65 70 65 6e 64 20 6f 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 .packages.depend.on.the.given.pa
1d980 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e ckage').->setDefinition(array(.n
1d9a0 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 ew.InputArgument('package',.Inpu
1d9c0 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f tArgument::REQUIRED,.'Package.to
1d9e0 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e .inspect'),.new.InputOption('lin
1da00 6b 2d 74 79 70 65 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f k-type',.'',.InputOption::VALUE_
1da20 52 45 51 55 49 52 45 44 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 REQUIRED.|.InputOption::VALUE_IS
1da40 5f 41 52 52 41 59 2c 20 27 4c 69 6e 6b 20 74 79 70 65 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 _ARRAY,.'Link.types.to.show.(req
1da60 75 69 72 65 2c 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 uire,.require-dev)',.array_keys(
1da80 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 $this->linkTypes)),.)).->setHelp
1daa0 28 3c 3c 3c 45 4f 54 0a 44 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d (<<<EOT.Displays.detailed.inform
1dac0 61 74 69 6f 6e 20 61 62 6f 75 74 20 77 68 65 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 72 ation.about.where.a.package.is.r
1dae0 65 66 65 72 65 6e 63 65 64 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 eferenced...<info>php.composer.p
1db00 68 61 72 20 64 65 70 65 6e 64 73 20 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 3c 2f 69 har.depends.composer/composer</i
1db20 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 nfo>..EOT.).;.}..protected.funct
1db40 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 ion.execute(InputInterface.$inpu
1db60 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 t,.OutputInterface.$output).{.$c
1db80 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a omposer.=.$this->getComposer();.
1dba0 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e .$commandEvent.=.new.CommandEven
1dbc0 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 65 70 65 6e 64 t(PluginEvents::COMMAND,.'depend
1dbe0 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d s',.$input,.$output);.$composer-
1dc00 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 >getEventDispatcher()->dispatch(
1dc20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 $commandEvent->getName(),.$comma
1dc40 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 72 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 ndEvent);..$repo.=.$composer->ge
1dc60 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 tRepositoryManager()->getLocalRe
1dc80 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 6e 65 65 64 6c 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 pository();.$needle.=.$input->ge
1dca0 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e tArgument('package');..$pool.=.n
1dcc0 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 ew.Pool();.$pool->addRepository(
1dce0 24 72 65 70 6f 29 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 $repo);..$packages.=.$pool->what
1dd00 50 72 6f 76 69 64 65 73 28 24 6e 65 65 64 6c 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 Provides($needle);.if.(empty($pa
1dd20 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 ckages)).{.throw.new.\InvalidArg
1dd40 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 umentException('Could.not.find.p
1dd60 61 63 6b 61 67 65 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 20 69 6e 20 79 6f 75 72 20 70 72 6f ackage."'.$needle.'".in.your.pro
1dd80 6a 65 63 74 2e 27 29 3b 0a 7d 0a 0a 24 6c 69 6e 6b 54 79 70 65 73 20 3d 20 24 74 68 69 73 2d 3e ject.');.}..$linkTypes.=.$this->
1dda0 6c 69 6e 6b 54 79 70 65 73 3b 0a 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 linkTypes;..$types.=.array_map(f
1ddc0 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 29 20 75 73 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 unction.($type).use.($linkTypes)
1dde0 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 .{.$type.=.rtrim($type,.'s');.if
1de00 20 28 21 69 73 73 65 74 28 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 .(!isset($linkTypes[$type])).{.t
1de20 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
1de40 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6c 69 6e 6b 20 74 79 70 65 3a 20 27 2e 24 74 79 70 on('Unexpected.link.type:.'.$typ
1de60 65 2e 27 2c 20 76 61 6c 69 64 20 74 79 70 65 73 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 e.',.valid.types:.'.implode(',.'
1de80 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6c 69 6e 6b 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 ,.array_keys($linkTypes)));.}..r
1dea0 65 74 75 72 6e 20 24 74 79 70 65 3b 0a 7d 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f eturn.$type;.},.$input->getOptio
1dec0 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 n('link-type'));..$messages.=.ar
1dee0 72 61 79 28 29 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 ray();.$outputPackages.=.array()
1df00 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 ;.foreach.($repo->getPackages().
1df20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 as.$package).{.foreach.($types.a
1df40 73 20 24 74 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 s.$type).{.foreach.($package->{'
1df60 67 65 74 27 2e 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 30 5d 7d 28 29 20 61 73 20 get'.$linkTypes[$type][0]}().as.
1df80 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 $link).{.if.($link->getTarget().
1dfa0 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 ===.$needle).{.if.(!isset($outpu
1dfc0 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 tPackages[$package->getName()]))
1dfe0 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 63 6b 61 .{.$messages[].=.'<info>'.$packa
1e000 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 ge->getPrettyName()...'</info>.'
1e020 20 2e 20 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 65 5d 5b 31 5d 20 2e 20 27 20 27 20 2e 20 ...$linkTypes[$type][1]...'.'...
1e040 24 6e 65 65 64 6c 65 20 2e 27 20 28 3c 69 6e 66 6f 3e 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 $needle..'.(<info>'...$link->get
1e060 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 29 27 3b PrettyConstraint()...'</info>)';
1e080 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 .$outputPackages[$package->getNa
1e0a0 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 65 me()].=.true;.}.}.}.}.}..if.($me
1e0c0 73 73 61 67 65 73 29 20 7b 0a 73 6f 72 74 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 24 74 68 69 73 ssages).{.sort($messages);.$this
1e0e0 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 20 65 ->getIO()->write($messages);.}.e
1e100 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 lse.{.$this->getIO()->writeError
1e120 28 27 3c 69 6e 66 6f 3e 54 68 65 72 65 20 69 73 20 6e 6f 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 ('<info>There.is.no.installed.pa
1e140 63 6b 61 67 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 ckage.depending.on."'.$needle.'"
1e160 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a .</info>');.}.}.}.<?php.........
1e180 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a ...namespace.Composer\Command;..
1e1a0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
1e1c0 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c put\InputInterface;.use.Symfony\
1e1e0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 Component\Console\Input\InputArg
1e200 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ument;.use.Symfony\Component\Con
1e220 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 sole\Input\InputOption;.use.Symf
1e240 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
1e260 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 putInterface;.use.Composer\Repos
1e280 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 itory\CompositeRepository;.use.C
1e2a0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 omposer\Repository\PlatformRepos
1e2c0 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 itory;.use.Composer\Repository\R
1e2e0 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 epositoryInterface;.use.Composer
1e300 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f \Factory;.use.Composer\Plugin\Co
1e320 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c mmandEvent;.use.Composer\Plugin\
1e340 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f PluginEvents;.....class.SearchCo
1e360 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 mmand.extends.Command.{.protecte
1e380 64 20 24 6d 61 74 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 d.$matches;.protected.$lowMatche
1e3a0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a s.=.array();.protected.$tokens;.
1e3c0 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e protected.$output;.protected.$on
1e3e0 6c 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 lyName;..protected.function.conf
1e400 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 61 72 63 igure().{.$this.->setName('searc
1e420 68 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 65 61 72 63 68 20 66 6f 72 h').->setDescription('Search.for
1e440 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 .packages').->setDefinition(arra
1e460 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 y(.new.InputOption('only-name',.
1e480 27 4e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 'N',.InputOption::VALUE_NONE,.'S
1e4a0 65 61 72 63 68 20 6f 6e 6c 79 20 69 6e 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 earch.only.in.name'),.new.InputA
1e4c0 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a rgument('tokens',.InputArgument:
1e4e0 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 :IS_ARRAY.|.InputArgument::REQUI
1e500 52 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 RED,.'tokens.to.search.for'),.))
1e520 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d .->setHelp(<<<EOT.The.search.com
1e540 6d 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 mand.searches.for.packages.by.it
1e560 73 20 6e 61 6d 65 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 s.name.<info>php.composer.phar.s
1e580 65 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 earch.symfony.composer</info>..E
1e5a0 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 OT.).;.}..protected.function.exe
1e5c0 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 cute(InputInterface.$input,.Outp
1e5e0 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f utInterface.$output).{...$platfo
1e600 72 6d 52 65 70 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b rmRepo.=.new.PlatformRepository;
1e620 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f .if.($composer.=.$this->getCompo
1e640 73 65 72 28 66 61 6c 73 65 29 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f 6d 70 ser(false)).{.$localRepo.=.$comp
1e660 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 oser->getRepositoryManager()->ge
1e680 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 tLocalRepository();.$installedRe
1e6a0 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 po.=.new.CompositeRepository(arr
1e6c0 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 29 3b 0a ay($localRepo,.$platformRepo));.
1e6e0 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 $repos.=.new.CompositeRepository
1e700 28 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 (array_merge(array($installedRep
1e720 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 o),.$composer->getRepositoryMana
1e740 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 29 3b 0a 7d 20 65 6c ger()->getRepositories()));.}.el
1e760 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 se.{.$defaultRepos.=.Factory::cr
1e780 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 eateDefaultRepositories($this->g
1e7a0 65 74 49 4f 28 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 etIO());.$this->getIO()->writeEr
1e7c0 72 6f 72 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 ror('No.composer.json.found.in.t
1e7e0 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 70 61 he.current.directory,.showing.pa
1e800 63 6b 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 ckages.from.'...implode(',.',.ar
1e820 72 61 79 5f 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 24 69 6e 73 74 ray_keys($defaultRepos)));.$inst
1e840 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 3b 0a 24 72 65 70 6f alledRepo.=.$platformRepo;.$repo
1e860 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 s.=.new.CompositeRepository(arra
1e880 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 2c 20 24 y_merge(array($installedRepo),.$
1e8a0 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 defaultRepos));.}..if.($composer
1e8c0 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 ).{.$commandEvent.=.new.CommandE
1e8e0 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 65 61 vent(PluginEvents::COMMAND,.'sea
1e900 72 63 68 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 rch',.$input,.$output);.$compose
1e920 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 r->getEventDispatcher()->dispatc
1e940 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d h($commandEvent->getName(),.$com
1e960 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 24 6f 6e 6c 79 4e 61 6d 65 20 3d 20 24 69 6e 70 75 mandEvent);.}..$onlyName.=.$inpu
1e980 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 29 3b 0a 0a 24 66 6c 61 t->getOption('only-name');..$fla
1e9a0 67 73 20 3d 20 24 6f 6e 6c 79 4e 61 6d 65 20 3f 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 gs.=.$onlyName.?.RepositoryInter
1e9c0 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 4e 41 4d 45 20 3a 20 52 65 70 6f 73 69 74 6f 72 79 49 6e face::SEARCH_NAME.:.RepositoryIn
1e9e0 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 3b 0a 24 72 65 73 75 6c terface::SEARCH_FULLTEXT;.$resul
1ea00 74 73 20 3d 20 24 72 65 70 6f 73 2d 3e 73 65 61 72 63 68 28 69 6d 70 6c 6f 64 65 28 27 20 27 2c ts.=.$repos->search(implode('.',
1ea20 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 29 29 2c .$input->getArgument('tokens')),
1ea40 20 24 66 6c 61 67 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 75 6c 74 73 20 61 73 20 .$flags);..foreach.($results.as.
1ea60 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 $result).{.$this->getIO()->write
1ea80 28 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 28 69 73 73 65 74 28 24 72 65 73 75 6c ($result['name']...(isset($resul
1eaa0 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 3f 20 27 20 27 2e 20 24 72 65 73 75 6c 74 t['description']).?.'.'..$result
1eac0 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 20 3a 20 27 27 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f ['description'].:.''));.}.}.}.<?
1eae0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
1eb00 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 r\Command;..use.Composer\Compose
1eb20 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d r;.use.Composer\Factory;.use.Com
1eb40 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f poser\Util\Filesystem;.use.Compo
1eb60 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 ser\Util\RemoteFilesystem;.use.C
1eb80 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 73 79 73 74 65 6d 45 78 63 omposer\Downloader\FilesystemExc
1eba0 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f eption;.use.Symfony\Component\Co
1ebc0 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 nsole\Input\InputInterface;.use.
1ebe0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
1ec00 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 InputOption;.use.Symfony\Compone
1ec20 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a nt\Console\Input\InputArgument;.
1ec40 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 use.Symfony\Component\Console\Ou
1ec60 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e tput\OutputInterface;.use.Symfon
1ec80 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a y\Component\Finder\Finder;......
1eca0 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 .class.SelfUpdateCommand.extends
1ecc0 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 63 6f 6e 73 74 20 48 4f 4d 45 50 41 47 45 20 3d 20 27 67 65 74 .Command.{.const.HOMEPAGE.=.'get
1ece0 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 3b 0a 63 6f 6e 73 74 20 4f 4c 44 5f 49 4e 53 54 41 4c 4c composer.org';.const.OLD_INSTALL
1ed00 5f 45 58 54 20 3d 20 27 2d 6f 6c 64 2e 70 68 61 72 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 _EXT.=.'-old.phar';..protected.f
1ed20 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 unction.configure().{.$this.->se
1ed40 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 tName('self-update').->setAliase
1ed60 73 28 61 72 72 61 79 28 27 73 65 6c 66 75 70 64 61 74 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 s(array('selfupdate')).->setDesc
1ed80 72 69 70 74 69 6f 6e 28 27 55 70 64 61 74 65 73 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 74 ription('Updates.composer.phar.t
1eda0 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 o.the.latest.version.').->setDef
1edc0 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 inition(array(.new.InputOption('
1ede0 72 6f 6c 6c 62 61 63 6b 27 2c 20 27 72 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c rollback',.'r',.InputOption::VAL
1ee00 55 45 5f 4e 4f 4e 45 2c 20 27 52 65 76 65 72 74 20 74 6f 20 61 6e 20 6f 6c 64 65 72 20 69 6e 73 UE_NONE,.'Revert.to.an.older.ins
1ee20 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 65 72 27 29 2c 0a 6e 65 77 20 49 6e 70 tallation.of.composer'),.new.Inp
1ee40 75 74 4f 70 74 69 6f 6e 28 27 63 6c 65 61 6e 2d 62 61 63 6b 75 70 73 27 2c 20 6e 75 6c 6c 2c 20 utOption('clean-backups',.null,.
1ee60 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 65 6c 65 74 65 InputOption::VALUE_NONE,.'Delete
1ee80 20 6f 6c 64 20 62 61 63 6b 75 70 73 20 64 75 72 69 6e 67 20 61 6e 20 75 70 64 61 74 65 2e 20 54 .old.backups.during.an.update..T
1eea0 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 his.makes.the.current.version.of
1eec0 20 63 6f 6d 70 6f 73 65 72 20 74 68 65 20 6f 6e 6c 79 20 62 61 63 6b 75 70 20 61 76 61 69 6c 61 .composer.the.only.backup.availa
1eee0 62 6c 65 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 ble.after.the.update'),.new.Inpu
1ef00 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 tArgument('version',.InputArgume
1ef20 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 76 65 72 73 69 6f 6e 20 74 6f 20 75 70 nt::OPTIONAL,.'The.version.to.up
1ef40 64 61 74 65 20 74 6f 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 date.to'),.new.InputOption('no-p
1ef60 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c rogress',.null,.InputOption::VAL
1ef80 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 UE_NONE,.'Do.not.output.download
1efa0 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f .progress.'),.)).->setHelp(<<<EO
1efc0 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 73 65 6c 66 2d 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 20 63 T.The.<info>self-update</info>.c
1efe0 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 20 66 6f ommand.checks.getcomposer.org.fo
1f000 72 20 6e 65 77 65 72 0a 76 65 72 73 69 6f 6e 73 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 61 6e 64 r.newer.versions.of.composer.and
1f020 20 69 66 20 66 6f 75 6e 64 2c 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 20 6c 61 74 65 73 74 2e 0a .if.found,.installs.the.latest..
1f040 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 73 65 6c 66 2d 75 70 .<info>php.composer.phar.self-up
1f060 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 date</info>..EOT.).;.}..protecte
1f080 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 d.function.execute(InputInterfac
1f0a0 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 e.$input,.OutputInterface.$outpu
1f0c0 74 29 0a 7b 0a 24 62 61 73 65 55 72 6c 20 3d 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 t).{.$baseUrl.=.(extension_loade
1f0e0 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 29 d('openssl').?.'https'.:.'http')
1f100 20 2e 20 27 3a 2f 2f 27 20 2e 20 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 3b 0a 24 63 6f 6e 66 ...'://'...self::HOMEPAGE;.$conf
1f120 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 72 ig.=.Factory::createConfig();.$r
1f140 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 emoteFilesystem.=.new.RemoteFile
1f160 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 20 24 63 6f 6e 66 69 67 29 3b system($this->getIO(),.$config);
1f180 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 .$cacheDir.=.$config->get('cache
1f1a0 2d 64 69 72 27 29 3b 0a 24 72 6f 6c 6c 62 61 63 6b 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e -dir');.$rollbackDir.=.$config->
1f1c0 67 65 74 28 27 68 6f 6d 65 27 29 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 72 65 get('home');.$localFilename.=.re
1f1e0 61 6c 70 61 74 68 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 20 3f 3a 20 24 alpath($_SERVER['argv'][0]).?:.$
1f200 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 3b 0a 0a 0a 20 24 74 6d 70 44 69 72 20 3d _SERVER['argv'][0];....$tmpDir.=
1f220 20 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e .is_writable(dirname($localFilen
1f240 61 6d 65 29 29 20 3f 20 64 69 72 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 20 ame)).?.dirname($localFilename).
1f260 3a 20 24 63 61 63 68 65 44 69 72 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 :.$cacheDir;....if.(!is_writable
1f280 28 24 74 6d 70 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 ($tmpDir)).{.throw.new.Filesyste
1f2a0 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c mException('Composer.update.fail
1f2c0 65 64 3a 20 74 68 65 20 22 27 2e 24 74 6d 70 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 ed:.the."'.$tmpDir.'".directory.
1f2e0 75 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 74 65 6d 70 20 66 69 6c 65 20 63 used.to.download.the.temp.file.c
1f300 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 ould.not.be.written');.}.if.(!is
1f320 5f 77 72 69 74 61 62 6c 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 74 68 72 _writable($localFilename)).{.thr
1f340 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 ow.new.FilesystemException('Comp
1f360 6f 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 6c 6f 63 61 oser.update.failed:.the."'.$loca
1f380 6c 46 69 6c 65 6e 61 6d 65 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 lFilename.'".file.could.not.be.w
1f3a0 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 ritten');.}..if.($input->getOpti
1f3c0 6f 6e 28 27 72 6f 6c 6c 62 61 63 6b 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on('rollback')).{.return.$this->
1f3e0 72 6f 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 74 2c 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2c 20 rollback($output,.$rollbackDir,.
1f400 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 6c 61 74 65 73 74 56 65 72 73 69 $localFilename);.}..$latestVersi
1f420 6f 6e 20 3d 20 74 72 69 6d 28 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 on.=.trim($remoteFilesystem->get
1f440 43 6f 6e 74 65 6e 74 73 28 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 2c 20 24 62 61 73 65 55 72 Contents(self::HOMEPAGE,.$baseUr
1f460 6c 2e 20 27 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 24 75 70 64 61 74 65 56 l..'/version',.false));.$updateV
1f480 65 72 73 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 ersion.=.$input->getArgument('ve
1f4a0 72 73 69 6f 6e 27 29 20 3f 3a 20 24 6c 61 74 65 73 74 56 65 72 73 69 6f 6e 3b 0a 0a 69 66 20 28 rsion').?:.$latestVersion;..if.(
1f4c0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 30 2d 39 61 2d 66 5d 7b 34 30 7d 24 7d 27 2c 20 24 preg_match('{^[0-9a-f]{40}$}',.$
1f4e0 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 20 26 26 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e updateVersion).&&.$updateVersion
1f500 20 21 3d 3d 20 24 6c 61 74 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 .!==.$latestVersion).{.$this->ge
1f520 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 63 61 tIO()->writeError('<error>You.ca
1f540 6e 20 6e 6f 74 20 75 70 64 61 74 65 20 74 6f 20 61 20 73 70 65 63 69 66 69 63 20 53 48 41 2d 31 n.not.update.to.a.specific.SHA-1
1f560 20 61 73 20 74 68 6f 73 65 20 70 68 61 72 73 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c .as.those.phars.are.not.availabl
1f580 65 20 66 6f 72 20 64 6f 77 6e 6c 6f 61 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 e.for.download</error>');..retur
1f5a0 6e 20 31 3b 0a 7d 0a 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d n.1;.}..if.(Composer::VERSION.==
1f5c0 3d 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f =.$updateVersion).{.$this->getIO
1f5e0 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 59 6f 75 20 61 72 65 20 61 6c ()->writeError('<info>You.are.al
1f600 72 65 61 64 79 20 75 73 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 27 2e 24 ready.using.composer.version.'.$
1f620 75 70 64 61 74 65 56 65 72 73 69 6f 6e 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 72 65 74 75 updateVersion.'.</info>');..retu
1f640 72 6e 20 30 3b 0a 7d 0a 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 20 3d 20 24 74 6d 70 44 69 72 rn.0;.}..$tempFilename.=.$tmpDir
1f660 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 ...'/'...basename($localFilename
1f680 2c 20 27 2e 70 68 61 72 27 29 2e 27 2d 74 65 6d 70 2e 70 68 61 72 27 3b 0a 24 62 61 63 6b 75 70 ,.'.phar').'-temp.phar';.$backup
1f6a0 46 69 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 25 73 2f 25 73 2d 25 73 25 73 27 2c 0a 24 72 File.=.sprintf(.'%s/%s-%s%s',.$r
1f6c0 6f 6c 6c 62 61 63 6b 44 69 72 2c 0a 73 74 72 74 72 28 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 ollbackDir,.strtr(Composer::RELE
1f6e0 41 53 45 5f 44 41 54 45 2c 20 27 20 3a 27 2c 20 27 5f 2d 27 29 2c 0a 70 72 65 67 5f 72 65 70 6c ASE_DATE,.'.:',.'_-'),.preg_repl
1f700 61 63 65 28 27 7b 5e 28 5b 30 2d 39 61 2d 66 5d 7b 37 7d 29 5b 30 2d 39 61 2d 66 5d 7b 33 33 7d ace('{^([0-9a-f]{7})[0-9a-f]{33}
1f720 24 7d 27 2c 20 27 24 31 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 2c 0a 73 $}',.'$1',.Composer::VERSION),.s
1f740 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e elf::OLD_INSTALL_EXT.);..$this->
1f760 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 22 55 70 64 getIO()->writeError(sprintf("Upd
1f780 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e ating.to.version.<info>%s</info>
1f7a0 2e 22 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c .",.$updateVersion));.$remoteFil
1f7c0 65 6e 61 6d 65 20 3d 20 24 62 61 73 65 55 72 6c 20 2e 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ename.=.$baseUrl...(preg_match('
1f7e0 7b 5e 5b 30 2d 39 61 2d 66 5d 7b 34 30 7d 24 7d 27 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 6f {^[0-9a-f]{40}$}',.$updateVersio
1f800 6e 29 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 20 3a 20 22 2f 64 6f 77 6e 6c 6f n).?.'/composer.phar'.:."/downlo
1f820 61 64 2f 7b 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 7d 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 ad/{$updateVersion}/composer.pha
1f840 72 22 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 63 6f 70 79 28 73 65 6c r");.$remoteFilesystem->copy(sel
1f860 66 3a 3a 48 4f 4d 45 50 41 47 45 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c 20 24 74 f::HOMEPAGE,.$remoteFilename,.$t
1f880 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 empFilename,.!$input->getOption(
1f8a0 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 'no-progress'));.if.(!file_exist
1f8c0 73 28 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f s($tempFilename)).{.$this->getIO
1f8e0 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 6f 77 6e 6c ()->writeError('<error>The.downl
1f900 6f 61 64 20 6f 66 20 74 68 65 20 6e 65 77 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 oad.of.the.new.composer.version.
1f920 66 61 69 6c 65 64 20 66 6f 72 20 61 6e 20 75 6e 65 78 70 65 63 74 65 64 20 72 65 61 73 6f 6e 3c failed.for.an.unexpected.reason<
1f940 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 /error>');..return.1;.}....if.($
1f960 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 6c 65 61 6e 2d 62 61 63 6b 75 70 73 27 input->getOption('clean-backups'
1f980 29 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 6c 64 49 6e 73 74 )).{.$finder.=.$this->getOldInst
1f9a0 61 6c 6c 61 74 69 6f 6e 46 69 6e 64 65 72 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 0a 24 allationFinder($rollbackDir);..$
1f9c0 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 fs.=.new.Filesystem;.foreach.($f
1f9e0 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 20 3d 20 28 73 74 72 69 6e inder.as.$file).{.$file.=.(strin
1fa00 67 29 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 g).$file;.$this->getIO()->writeE
1fa20 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 52 65 6d 6f 76 69 6e 67 3a 20 27 2e 24 66 69 6c 65 2e 27 3c rror('<info>Removing:.'.$file.'<
1fa40 2f 69 6e 66 6f 3e 27 29 3b 0a 24 66 73 2d 3e 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 3b 0a 7d 0a /info>');.$fs->remove($file);.}.
1fa60 7d 0a 0a 69 66 20 28 24 65 72 72 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 4c 6f 63 61 6c 50 68 61 }..if.($err.=.$this->setLocalPha
1fa80 72 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 2c r($localFilename,.$tempFilename,
1faa0 20 24 62 61 63 6b 75 70 46 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d .$backupFile)).{.$this->getIO()-
1fac0 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 66 69 6c 65 20 69 73 20 >writeError('<error>The.file.is.
1fae0 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 72 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e corrupted.('.$err->getMessage().
1fb00 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 ').</error>');.$this->getIO()->w
1fb20 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 75 6e 20 riteError('<error>Please.re-run.
1fb40 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 79 20 61 the.self-update.command.to.try.a
1fb60 67 61 69 6e 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 gain.</error>');..return.1;.}..i
1fb80 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 61 63 6b 75 70 46 69 6c 65 29 29 20 7b 0a 24 f.(file_exists($backupFile)).{.$
1fba0 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 55 73 65 20 3c this->getIO()->writeError('Use.<
1fbc0 69 6e 66 6f 3e 63 6f 6d 70 6f 73 65 72 20 73 65 6c 66 2d 75 70 64 61 74 65 20 2d 2d 72 6f 6c 6c info>composer.self-update.--roll
1fbe0 62 61 63 6b 3c 2f 69 6e 66 6f 3e 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 76 65 72 73 69 6f 6e back</info>.to.return.to.version
1fc00 20 27 2e 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a .'.Composer::VERSION);.}.else.{.
1fc20 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 $this->getIO()->writeError('<war
1fc40 6e 69 6e 67 3e 41 20 62 61 63 6b 75 70 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 ning>A.backup.of.the.current.ver
1fc60 73 69 6f 6e 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 sion.could.not.be.written.to.'.$
1fc80 62 61 63 6b 75 70 46 69 6c 65 2e 27 2c 20 6e 6f 20 72 6f 6c 6c 62 61 63 6b 20 70 6f 73 73 69 62 backupFile.',.no.rollback.possib
1fca0 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 le</warning>');.}.}..protected.f
1fcc0 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 unction.rollback(OutputInterface
1fce0 20 24 6f 75 74 70 75 74 2c 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2c 20 24 6c 6f 63 61 6c 46 69 .$output,.$rollbackDir,.$localFi
1fd00 6c 65 6e 61 6d 65 29 0a 7b 0a 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 lename).{.$rollbackVersion.=.$th
1fd20 69 73 2d 3e 67 65 74 4c 61 73 74 42 61 63 6b 75 70 56 65 72 73 69 6f 6e 28 24 72 6f 6c 6c 62 61 is->getLastBackupVersion($rollba
1fd40 63 6b 44 69 72 29 3b 0a 69 66 20 28 21 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f 6e 29 20 7b ckDir);.if.(!$rollbackVersion).{
1fd60 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 .throw.new.\UnexpectedValueExcep
1fd80 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 69 6c 65 64 3a 20 tion('Composer.rollback.failed:.
1fda0 6e 6f 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 74 6f 20 72 6f 6c 6c 20 62 61 63 6b 20 74 6f 20 no.installation.to.roll.back.to.
1fdc0 69 6e 20 22 27 2e 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2e 27 22 27 29 3b 0a 7d 0a 0a 69 66 20 28 in."'.$rollbackDir.'"');.}..if.(
1fde0 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 29 20 7b 0a 74 68 !is_writable($rollbackDir)).{.th
1fe00 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d row.new.FilesystemException('Com
1fe20 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 69 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 72 poser.rollback.failed:.the."'.$r
1fe40 6f 6c 6c 62 61 63 6b 44 69 72 2e 27 22 20 64 69 72 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 ollbackDir.'".dir.could.not.be.w
1fe60 72 69 74 74 65 6e 20 74 6f 27 29 3b 0a 7d 0a 0a 24 6f 6c 64 20 3d 20 24 72 6f 6c 6c 62 61 63 6b ritten.to');.}..$old.=.$rollback
1fe80 44 69 72 20 2e 20 27 2f 27 20 2e 20 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f 6e 20 2e 20 73 Dir...'/'...$rollbackVersion...s
1fea0 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 3b 0a 0a 69 66 20 28 21 69 73 5f 66 elf::OLD_INSTALL_EXT;..if.(!is_f
1fec0 69 6c 65 28 24 6f 6c 64 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 ile($old)).{.throw.new.Filesyste
1fee0 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 mException('Composer.rollback.fa
1ff00 69 6c 65 64 3a 20 22 27 2e 24 6f 6c 64 2e 27 22 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f iled:."'.$old.'".could.not.be.fo
1ff20 75 6e 64 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 6f 6c 64 29 29 und');.}.if.(!is_readable($old))
1ff40 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e .{.throw.new.FilesystemException
1ff60 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 ('Composer.rollback.failed:."'.$
1ff80 6f 6c 64 2e 27 22 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 61 64 27 29 3b 0a 7d 0a 0a 24 old.'".could.not.be.read');.}..$
1ffa0 6f 6c 64 46 69 6c 65 20 3d 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 20 2e 20 22 2f 7b 24 72 6f 6c oldFile.=.$rollbackDir..."/{$rol
1ffc0 6c 62 61 63 6b 56 65 72 73 69 6f 6e 7d 22 20 2e 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 lbackVersion}"...self::OLD_INSTA
1ffe0 4c 4c 5f 45 58 54 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 LL_EXT;.$this->getIO()->writeErr
20000 6f 72 28 73 70 72 69 6e 74 66 28 22 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 74 6f 20 76 65 72 73 or(sprintf("Rolling.back.to.vers
20020 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 2e 22 2c 20 24 72 6f 6c 6c 62 61 63 6b ion.<info>%s</info>.",.$rollback
20040 56 65 72 73 69 6f 6e 29 29 3b 0a 69 66 20 28 24 65 72 72 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 Version));.if.($err.=.$this->set
20060 4c 6f 63 61 6c 50 68 61 72 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 6f 6c 64 46 69 LocalPhar($localFilename,.$oldFi
20080 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f le)).{.$this->getIO()->writeErro
200a0 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 62 61 63 6b 75 70 20 66 69 6c 65 20 77 61 73 20 63 6f r('<error>The.backup.file.was.co
200c0 72 72 75 70 74 65 64 20 28 27 2e 24 65 72 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 rrupted.('.$err->getMessage().')
200e0 20 61 6e 64 20 68 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 .and.has.been.removed.</error>')
20100 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f ;..return.1;.}..return.0;.}..pro
20120 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 50 68 61 72 28 24 6c 6f tected.function.setLocalPhar($lo
20140 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b calFilename,.$newFilename,.$back
20160 75 70 54 61 72 67 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 74 72 79 20 7b 0a 40 63 68 6d 6f 64 28 upTarget.=.null).{.try.{.@chmod(
20180 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 66 69 6c 65 70 65 72 6d 73 28 24 6c 6f 63 61 6c 46 69 $newFilename,.fileperms($localFi
201a0 6c 65 6e 61 6d 65 29 29 3b 0a 69 66 20 28 21 69 6e 69 5f 67 65 74 28 27 70 68 61 72 2e 72 65 61 lename));.if.(!ini_get('phar.rea
201c0 64 6f 6e 6c 79 27 29 29 20 7b 0a 0a 20 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 donly')).{...$phar.=.new.\Phar($
201e0 6e 65 77 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 20 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 7d 0a newFilename);...unset($phar);.}.
20200 0a 0a 20 69 66 20 28 24 62 61 63 6b 75 70 54 61 72 67 65 74 20 26 26 20 66 69 6c 65 5f 65 78 69 ...if.($backupTarget.&&.file_exi
20220 73 74 73 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 40 63 6f 70 79 28 24 6c 6f sts($localFilename)).{.@copy($lo
20240 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b 75 70 54 61 72 67 65 74 29 3b 0a 7d 0a 0a calFilename,.$backupTarget);.}..
20260 72 65 6e 61 6d 65 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e rename($newFilename,.$localFilen
20280 61 6d 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ame);.}.catch.(\Exception.$e).{.
202a0 69 66 20 28 24 62 61 63 6b 75 70 54 61 72 67 65 74 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 6e 65 if.($backupTarget).{.@unlink($ne
202c0 77 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 wFilename);.}.if.(!$e.instanceof
202e0 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 .\UnexpectedValueException.&&.!$
20300 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 e.instanceof.\PharException).{.t
20320 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 hrow.$e;.}..return.$e;.}.}..prot
20340 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 73 74 42 61 63 6b 75 70 56 65 72 73 ected.function.getLastBackupVers
20360 69 6f 6e 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 24 74 ion($rollbackDir).{.$finder.=.$t
20380 68 69 73 2d 3e 67 65 74 4f 6c 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6e 64 65 72 28 24 72 his->getOldInstallationFinder($r
203a0 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 24 66 69 6e 64 65 72 2d 3e 73 6f 72 74 42 79 4e 61 6d 65 ollbackDir);.$finder->sortByName
203c0 28 29 3b 0a 24 66 69 6c 65 73 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 ();.$files.=.iterator_to_array($
203e0 66 69 6e 64 65 72 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 66 69 6c 65 73 29 29 20 7b 0a 72 finder);..if.(count($files)).{.r
20400 65 74 75 72 6e 20 62 61 73 65 6e 61 6d 65 28 65 6e 64 28 24 66 69 6c 65 73 29 2c 20 73 65 6c 66 eturn.basename(end($files),.self
20420 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 ::OLD_INSTALL_EXT);.}..return.fa
20440 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 6c lse;.}..protected.function.getOl
20460 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6e 64 65 72 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 dInstallationFinder($rollbackDir
20480 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d ).{.$finder.=.Finder::create().-
204a0 3e 64 65 70 74 68 28 30 29 0a 2d 3e 66 69 6c 65 73 28 29 0a 2d 3e 6e 61 6d 65 28 27 2a 27 20 2e >depth(0).->files().->name('*'..
204c0 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 29 0a 2d 3e 69 6e 28 24 72 6f .self::OLD_INSTALL_EXT).->in($ro
204e0 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6e 64 65 72 3b 0a 7d 0a 7d llbackDir);..return.$finder;.}.}
20500 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
20520 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e oser\Command;..use.Composer\Json
20540 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c \JsonFile;.use.Composer\Package\
20560 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f Version\VersionParser;.use.Compo
20580 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d ser\Plugin\CommandEvent;.use.Com
205a0 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 poser\Plugin\PluginEvents;.use.C
205c0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
205e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
20600 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f toryInterface;.use.Symfony\Compo
20620 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 3b 0a 75 73 65 20 53 nent\Console\Helper\Table;.use.S
20640 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c ymfony\Component\Console\Helper\
20660 54 61 62 6c 65 53 74 79 6c 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e TableStyle;.use.Symfony\Componen
20680 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a t\Console\Input\InputInterface;.
206a0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
206c0 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d put\InputOption;.use.Symfony\Com
206e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 ponent\Console\Output\OutputInte
20700 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 rface;.....class.LicensesCommand
20720 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .extends.Command.{.protected.fun
20740 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e ction.configure().{.$this.->setN
20760 61 6d 65 28 27 6c 69 63 65 6e 73 65 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e ame('licenses').->setDescription
20780 28 27 53 68 6f 77 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6c 69 63 65 6e 73 65 ('Show.information.about.license
207a0 73 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 s.of.dependencies').->setDefinit
207c0 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d ion(array(.new.InputOption('form
207e0 61 74 27 2c 20 27 66 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 at',.'f',.InputOption::VALUE_REQ
20800 55 49 52 45 44 2c 20 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 6f 75 74 70 75 74 3a 20 74 65 UIRED,.'Format.of.the.output:.te
20820 78 74 20 6f 72 20 6a 73 6f 6e 27 2c 20 27 74 65 78 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f xt.or.json',.'text'),.new.InputO
20840 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f ption('no-dev',.null,.InputOptio
20860 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 73 65 61 72 63 68 20 n::VALUE_NONE,.'Disables.search.
20880 69 6e 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 29 29 0a 2d in.require-dev.packages.'),.)).-
208a0 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 6c 69 63 65 6e 73 65 20 63 6f 6d 6d >setHelp(<<<EOT.The.license.comm
208c0 61 6e 64 20 64 69 73 70 6c 61 79 73 20 64 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f and.displays.detailed.informatio
208e0 6e 20 61 62 6f 75 74 20 74 68 65 20 6c 69 63 65 6e 73 65 73 20 6f 66 0a 74 68 65 20 69 6e 73 74 n.about.the.licenses.of.the.inst
20900 61 6c 6c 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a alled.dependencies...EOT.).;.}..
20920 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 protected.function.execute(Input
20940 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
20960 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e e.$output).{.$composer.=.$this->
20980 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 getComposer();..$commandEvent.=.
209a0 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 new.CommandEvent(PluginEvents::C
209c0 4f 4d 4d 41 4e 44 2c 20 27 6c 69 63 65 6e 73 65 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 OMMAND,.'licenses',.$input,.$out
209e0 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 put);.$composer->getEventDispatc
20a00 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 her()->dispatch($commandEvent->g
20a20 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 72 6f 6f 74 etName(),.$commandEvent);..$root
20a40 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 .=.$composer->getPackage();.$rep
20a60 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 o.=.$composer->getRepositoryMana
20a80 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 76 ger()->getLocalRepository();..$v
20aa0 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 ersionParser.=.new.VersionParser
20ac0 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 ;..if.($input->getOption('no-dev
20ae0 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 ')).{.$packages.=.$this->filterR
20b00 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 73 28 24 72 65 70 6f 2c 20 24 72 6f 6f 74 29 3b 0a 7d equiredPackages($repo,.$root);.}
20b20 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 65 6e .else.{.$packages.=.$this->appen
20b40 64 50 61 63 6b 61 67 65 73 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 2c 20 dPackages($repo->getPackages(),.
20b60 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a array());.}..ksort($packages);..
20b80 73 77 69 74 63 68 20 28 24 66 6f 72 6d 61 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 switch.($format.=.$input->getOpt
20ba0 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 29 20 7b 0a 63 61 73 65 20 27 74 65 78 74 27 3a 0a 24 74 ion('format')).{.case.'text':.$t
20bc0 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 4e 61 6d 65 3a 20 3c 63 6f 6d 6d his->getIO()->write('Name:.<comm
20be0 65 6e 74 3e 27 2e 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 3c 2f ent>'.$root->getPrettyName().'</
20c00 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 comment>');.$this->getIO()->writ
20c20 65 28 27 56 65 72 73 69 6f 6e 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 76 65 72 73 69 6f 6e 50 e('Version:.<comment>'.$versionP
20c40 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 72 6f 6f 74 29 2e 27 3c 2f 63 arser->formatVersion($root).'</c
20c60 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 omment>');.$this->getIO()->write
20c80 28 27 4c 69 63 65 6e 73 65 73 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 28 69 6d 70 6c 6f 64 65 28 ('Licenses:.<comment>'.(implode(
20ca0 27 2c 20 27 2c 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 20 3f 3a 20 27 6e ',.',.$root->getLicense()).?:.'n
20cc0 6f 6e 65 27 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 one').'</comment>');.$this->getI
20ce0 4f 28 29 2d 3e 77 72 69 74 65 28 27 44 65 70 65 6e 64 65 6e 63 69 65 73 3a 27 29 3b 0a 24 74 68 O()->write('Dependencies:');.$th
20d00 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 24 74 61 62 6c 65 20 is->getIO()->write('');..$table.
20d20 3d 20 6e 65 77 20 54 61 62 6c 65 28 24 6f 75 74 70 75 74 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 =.new.Table($output);.$table->se
20d40 74 53 74 79 6c 65 28 27 63 6f 6d 70 61 63 74 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 67 65 74 53 74 tStyle('compact');.$table->getSt
20d60 79 6c 65 28 29 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 27 29 yle()->setVerticalBorderChar('')
20d80 3b 0a 24 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 ;.$table->getStyle()->setCellRow
20da0 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 27 25 73 20 20 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 ContentFormat('%s..');.$table->s
20dc0 65 74 48 65 61 64 65 72 73 28 61 72 72 61 79 28 27 4e 61 6d 65 27 2c 20 27 56 65 72 73 69 6f 6e etHeaders(array('Name',.'Version
20de0 27 2c 20 27 4c 69 63 65 6e 73 65 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 ',.'License'));.foreach.($packag
20e00 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 61 62 6c 65 2d 3e 61 64 64 52 6f 77 es.as.$package).{.$table->addRow
20e20 28 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 (array(.$package->getPrettyName(
20e40 29 2c 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e ),.$versionParser->formatVersion
20e60 28 24 70 61 63 6b 61 67 65 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 ($package),.implode(',.',.$packa
20e80 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 2c 0a 29 29 3b ge->getLicense()).?:.'none',.));
20ea0 0a 7d 0a 24 74 61 62 6c 65 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 .}.$table->render();.break;..cas
20ec0 65 20 27 6a 73 6f 6e 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 e.'json':.foreach.($packages.as.
20ee0 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 70 61 63 6b 61 $package).{.$dependencies[$packa
20f00 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 76 ge->getPrettyName()].=.array(.'v
20f20 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 ersion'.=>.$versionParser->forma
20f40 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e tVersion($package),.'license'.=>
20f60 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 .$package->getLicense(),.);.}..$
20f80 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 this->getIO()->write(JsonFile::e
20fa0 6e 63 6f 64 65 28 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 ncode(array(.'name'.=>.$root->ge
20fc0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 tPrettyName(),.'version'.=>.$ver
20fe0 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 72 6f 6f 74 29 sionParser->formatVersion($root)
21000 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 ,.'license'.=>.$root->getLicense
21020 28 29 2c 0a 27 64 65 70 65 6e 64 65 6e 63 69 65 73 27 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 (),.'dependencies'.=>.$dependenc
21040 69 65 73 2c 0a 29 29 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 ies,.)));.break;..default:.throw
21060 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 .new.\RuntimeException(sprintf('
21080 55 6e 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 20 22 25 73 22 2e 20 20 53 65 65 20 68 65 Unsupported.format."%s"...See.he
210a0 6c 70 20 66 6f 72 20 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 27 2c 20 24 66 6f 72 lp.for.supported.formats.',.$for
210c0 6d 61 74 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 mat));.}.}........private.functi
210e0 6f 6e 20 66 69 6c 74 65 72 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 73 28 52 65 70 6f 73 69 on.filterRequiredPackages(Reposi
21100 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
21120 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 62 75 63 6b 65 74 20 3d 20 61 72 72 61 79 28 rface.$package,.$bucket.=.array(
21140 29 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 70 61 63 )).{.$requires.=.array_keys($pac
21160 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 0a 24 70 61 63 6b 61 67 65 4c kage->getRequires());..$packageL
21180 69 73 74 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 62 75 63 6b 65 74 29 3b 0a istNames.=.array_keys($bucket);.
211a0 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 24 72 65 70 6f 2d $packages.=.array_filter(.$repo-
211c0 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 63 6b 61 >getPackages(),.function.($packa
211e0 67 65 29 20 75 73 65 20 28 24 72 65 71 75 69 72 65 73 2c 20 24 70 61 63 6b 61 67 65 4c 69 73 74 ge).use.($requires,.$packageList
21200 4e 61 6d 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 Names).{.return.in_array($packag
21220 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 72 65 71 75 69 72 65 73 29 20 26 26 20 21 69 6e 5f e->getName(),.$requires).&&.!in_
21240 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b array($package->getName(),.$pack
21260 61 67 65 4c 69 73 74 4e 61 6d 65 73 29 3b 0a 7d 0a 29 3b 0a 0a 24 62 75 63 6b 65 74 20 3d 20 24 ageListNames);.}.);..$bucket.=.$
21280 74 68 69 73 2d 3e 61 70 70 65 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 73 2c 20 this->appendPackages($packages,.
212a0 24 62 75 63 6b 65 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 $bucket);..foreach.($packages.as
212c0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 62 75 63 6b 65 74 20 3d 20 24 74 68 69 73 2d 3e 66 69 .$package).{.$bucket.=.$this->fi
212e0 6c 74 65 72 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 73 28 24 72 65 70 6f 2c 20 24 70 61 63 lterRequiredPackages($repo,.$pac
21300 6b 61 67 65 2c 20 24 62 75 63 6b 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 75 63 6b 65 kage,.$bucket);.}..return.$bucke
21320 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 t;.}.........public.function.app
21340 65 6e 64 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 61 72 72 endPackages(array.$packages,.arr
21360 61 79 20 24 62 75 63 6b 65 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 ay.$bucket).{.foreach.($packages
21380 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 62 75 63 6b 65 74 5b 24 70 61 63 6b 61 67 65 .as.$package).{.$bucket[$package
213a0 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 ->getName()].=.$package;.}..retu
213c0 72 6e 20 24 62 75 63 6b 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$bucket;.}.}.<?php...........
213e0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 .namespace.Composer\Command;..us
21400 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f e.Composer\DependencyResolver\Po
21420 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f ol;.use.Composer\Factory;.use.Co
21440 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e mposer\Package\CompletePackageIn
21460 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 terface;.use.Composer\Repository
21480 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 \CompositeRepository;.use.Compos
214a0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 er\Repository\RepositoryInterfac
214c0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 e;.use.Composer\Util\ProcessExec
214e0 75 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 utor;.use.Symfony\Component\Cons
21500 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d ole\Input\InputArgument;.use.Sym
21520 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
21540 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c utOption;.use.Symfony\Component\
21560 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 Console\Input\InputInterface;.us
21580 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
215a0 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 6f ut\OutputInterface;.....class.Ho
215c0 6d 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 meCommand.extends.Command.{....p
215e0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a rotected.function.configure().{.
21600 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 62 72 6f 77 73 65 27 29 0a 2d 3e 73 65 74 41 $this.->setName('browse').->setA
21620 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 68 6f 6d 65 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 liases(array('home')).->setDescr
21640 69 70 74 69 6f 6e 28 27 4f 70 65 6e 73 20 74 68 65 20 70 61 63 6b 61 67 65 5c 27 73 20 72 65 70 iption('Opens.the.package\'s.rep
21660 6f 73 69 74 6f 72 79 20 55 52 4c 20 6f 72 20 68 6f 6d 65 70 61 67 65 20 69 6e 20 79 6f 75 72 20 ository.URL.or.homepage.in.your.
21680 62 72 6f 77 73 65 72 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 browser.').->setDefinition(array
216a0 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 (.new.InputArgument('packages',.
216c0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 InputArgument::IS_ARRAY.|.InputA
216e0 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 28 73 29 20 74 rgument::REQUIRED,.'Package(s).t
21700 6f 20 62 72 6f 77 73 65 20 74 6f 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 o.browse.to.'),.new.InputOption(
21720 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 48 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 'homepage',.'H',.InputOption::VA
21740 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 74 68 65 20 68 6f 6d 65 70 61 67 65 20 69 6e 73 LUE_NONE,.'Open.the.homepage.ins
21760 74 65 61 64 20 6f 66 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 2e 27 29 2c 0a 6e tead.of.the.repository.URL.'),.n
21780 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 68 6f 77 27 2c 20 27 73 27 2c 20 49 6e 70 75 ew.InputOption('show',.'s',.Inpu
217a0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 6e 6c 79 20 73 68 6f 77 20 tOption::VALUE_NONE,.'Only.show.
217c0 74 68 65 20 68 6f 6d 65 70 61 67 65 20 6f 72 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 2e 27 the.homepage.or.repository.URL.'
217e0 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 68 6f 6d 65 20 ),.)).->setHelp(<<<EOT.The.home.
21800 63 6f 6d 6d 61 6e 64 20 6f 70 65 6e 73 20 6f 72 20 73 68 6f 77 73 20 61 20 70 61 63 6b 61 67 65 command.opens.or.shows.a.package
21820 27 73 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 20 6f 72 0a 68 6f 6d 65 70 61 67 65 20 69 6e 's.repository.URL.or.homepage.in
21840 20 79 6f 75 72 20 64 65 66 61 75 6c 74 20 62 72 6f 77 73 65 72 2e 0a 0a 54 6f 20 6f 70 65 6e 20 .your.default.browser...To.open.
21860 74 68 65 20 68 6f 6d 65 70 61 67 65 20 62 79 20 64 65 66 61 75 6c 74 2c 20 75 73 65 20 2d 48 20 the.homepage.by.default,.use.-H.
21880 6f 72 20 2d 2d 68 6f 6d 65 70 61 67 65 2e 0a 54 6f 20 73 68 6f 77 20 69 6e 73 74 65 61 64 20 6f or.--homepage..To.show.instead.o
218a0 66 20 6f 70 65 6e 20 74 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 72 20 68 6f 6d 65 70 61 67 f.open.the.repository.or.homepag
218c0 65 20 55 52 4c 2c 20 75 73 65 20 2d 73 20 6f 72 20 2d 2d 73 68 6f 77 2e 0a 45 4f 54 0a 29 3b 0a e.URL,.use.-s.or.--show..EOT.);.
218e0 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 }.....protected.function.execute
21900 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e (InputInterface.$input,.OutputIn
21920 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 72 65 70 6f 73 20 3d 20 24 74 68 69 terface.$output).{.$repos.=.$thi
21940 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 52 65 70 6f 73 28 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 s->initializeRepos();.$return.=.
21960 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 0;..foreach.($input->getArgument
21980 28 27 70 61 63 6b 61 67 65 73 27 29 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a ('packages').as.$packageName).{.
219a0 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 70 61 63 foreach.($repos.as.$repo).{.$pac
219c0 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 24 72 65 70 6f 2c 20 kage.=.$this->getPackage($repo,.
219e0 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 $packageName);.if.($package.inst
21a00 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 anceof.CompletePackageInterface)
21a20 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e .{.break;.}.}.$package.=.$this->
21a40 67 65 74 50 61 63 6b 61 67 65 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b getPackage($repo,.$packageName);
21a60 0a 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c ..if.(!$package.instanceof.Compl
21a80 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 72 65 74 75 72 6e 20 3d etePackageInterface).{.$return.=
21aa0 20 31 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 .1;.$this->getIO()->writeError('
21ac0 3c 77 61 72 6e 69 6e 67 3e 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e <warning>Package.'.$packageName.
21ae0 27 20 6e 6f 74 20 66 6f 75 6e 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 63 6f 6e 74 69 6e '.not.found</warning>');..contin
21b00 75 65 3b 0a 7d 0a 0a 24 73 75 70 70 6f 72 74 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 ue;.}..$support.=.$package->getS
21b20 75 70 70 6f 72 74 28 29 3b 0a 24 75 72 6c 20 3d 20 69 73 73 65 74 28 24 73 75 70 70 6f 72 74 5b upport();.$url.=.isset($support[
21b40 27 73 6f 75 72 63 65 27 5d 29 20 3f 20 24 73 75 70 70 6f 72 74 5b 27 73 6f 75 72 63 65 27 5d 20 'source']).?.$support['source'].
21b60 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 69 66 20 28 :.$package->getSourceUrl();.if.(
21b80 21 24 75 72 6c 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 !$url.||.$input->getOption('home
21ba0 70 61 67 65 27 29 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 48 6f page')).{.$url.=.$package->getHo
21bc0 6d 65 70 61 67 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 66 69 6c 74 65 72 5f 76 61 72 28 24 75 72 mepage();.}..if.(!filter_var($ur
21be0 6c 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 55 52 4c 29 29 20 7b 0a 24 72 65 74 75 l,.FILTER_VALIDATE_URL)).{.$retu
21c00 72 6e 20 3d 20 31 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 rn.=.1;.$this->getIO()->writeErr
21c20 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f or('<warning>'.($input->getOptio
21c40 6e 28 27 68 6f 6d 65 70 61 67 65 27 29 20 3f 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 69 73 73 n('homepage').?.'Invalid.or.miss
21c60 69 6e 67 20 68 6f 6d 65 70 61 67 65 27 20 3a 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 69 73 73 ing.homepage'.:.'Invalid.or.miss
21c80 69 6e 67 20 72 65 70 6f 73 69 74 6f 72 79 20 55 52 4c 27 29 2e 27 20 66 6f 72 20 27 2e 24 70 61 ing.repository.URL').'.for.'.$pa
21ca0 63 6b 61 67 65 4e 61 6d 65 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 0a 63 6f 6e 74 69 6e ckageName.'</warning>');..contin
21cc0 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 68 ue;.}..if.($input->getOption('sh
21ce0 6f 77 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 73 70 ow')).{.$this->getIO()->write(sp
21d00 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 24 75 72 6c 29 29 3b rintf('<info>%s</info>',.$url));
21d20 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 65 6e 42 72 6f 77 73 65 72 28 24 75 72 .}.else.{.$this->openBrowser($ur
21d40 6c 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a l);.}.}..return.$return;.}......
21d60 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 ...protected.function.getPackage
21d80 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 2c 20 24 6e 61 (RepositoryInterface.$repos,.$na
21da0 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b me).{.$name.=.strtolower($name);
21dc0 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d .$pool.=.new.Pool('dev');.$pool-
21de0 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 24 6d 61 74 63 68 65 73 >addRepository($repos);.$matches
21e00 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 29 3b 0a 0a .=.$pool->whatProvides($name);..
21e20 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 foreach.($matches.as.$index.=>.$
21e40 70 61 63 6b 61 67 65 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 package).{...if.($package->getNa
21e60 6d 65 28 29 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 me().!==.$name).{.unset($matches
21e80 5b 24 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 [$index]);.continue;.}..return.$
21ea0 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 package;.}.}.......private.funct
21ec0 69 6f 6e 20 6f 70 65 6e 42 72 6f 77 73 65 72 28 24 75 72 6c 29 0a 7b 0a 24 75 72 6c 20 3d 20 50 ion.openBrowser($url).{.$url.=.P
21ee0 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 3b 0a 0a 69 rocessExecutor::escape($url);..i
21f00 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f f.(defined('PHP_WINDOWS_VERSION_
21f20 4d 41 4a 4f 52 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 73 73 74 68 72 75 28 27 73 74 61 72 MAJOR')).{.return.passthru('star
21f40 74 20 22 77 65 62 22 20 65 78 70 6c 6f 72 65 72 20 22 27 20 2e 20 24 75 72 6c 20 2e 20 27 22 27 t."web".explorer."'...$url...'"'
21f60 29 3b 0a 7d 0a 0a 70 61 73 73 74 68 72 75 28 27 77 68 69 63 68 20 78 64 67 2d 6f 70 65 6e 27 2c );.}..passthru('which.xdg-open',
21f80 20 24 6c 69 6e 75 78 29 3b 0a 70 61 73 73 74 68 72 75 28 27 77 68 69 63 68 20 6f 70 65 6e 27 2c .$linux);.passthru('which.open',
21fa0 20 24 6f 73 78 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 69 6e 75 78 29 20 7b 0a 70 61 73 .$osx);..if.(0.===.$linux).{.pas
21fc0 73 74 68 72 75 28 27 78 64 67 2d 6f 70 65 6e 20 27 20 2e 20 24 75 72 6c 29 3b 0a 7d 20 65 6c 73 sthru('xdg-open.'...$url);.}.els
21fe0 65 69 66 20 28 30 20 3d 3d 3d 20 24 6f 73 78 29 20 7b 0a 70 61 73 73 74 68 72 75 28 27 6f 70 65 eif.(0.===.$osx).{.passthru('ope
22000 6e 20 27 20 2e 20 24 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 n.'...$url);.}.else.{.$this->get
22020 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 6e 6f 20 73 75 69 74 61 62 6c 65 20 62 72 IO()->writeError('no.suitable.br
22040 6f 77 73 65 72 20 6f 70 65 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 66 6f 75 6e 64 2c 20 6f 70 65 owser.opening.command.found,.ope
22060 6e 20 79 6f 75 72 73 65 6c 66 3a 20 27 20 2e 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a n.yourself:.'...$url);.}.}......
22080 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 52 65 ...private.function.initializeRe
220a0 70 6f 73 28 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f pos().{.$composer.=.$this->getCo
220c0 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b mposer(false);..if.($composer).{
220e0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 .return.array(.$composer->getRep
22100 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 ositoryManager()->getLocalReposi
22120 74 6f 72 79 28 29 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 tory(),.new.CompositeRepository(
22140 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 $composer->getRepositoryManager(
22160 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 0a 29 3b 0a 7d 0a 0a 24 64 65 66 )->getRepositories()).);.}..$def
22180 61 75 6c 74 52 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 aultRepos.=.Factory::createDefau
221a0 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a ltRepositories($this->getIO());.
221c0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 .return.array(new.CompositeRepos
221e0 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 itory($defaultRepos));.}.}.<?php
22200 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 ............namespace.Composer\C
22220 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ommand;..use.Symfony\Component\C
22240 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 onsole\Input\InputInterface;.use
22260 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
22280 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 \InputArgument;.use.Symfony\Comp
222a0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b onent\Console\Input\InputOption;
222c0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
222e0 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f utput\OutputInterface;.use.Compo
22300 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c ser\Factory;.use.Composer\Instal
22320 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b ler;.use.Composer\Json\JsonFile;
22340 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 .use.Composer\Json\JsonManipulat
22360 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e or;.use.Composer\Package\Version
22380 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 \VersionParser;.use.Composer\Plu
223a0 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 gin\CommandEvent;.use.Composer\P
223c0 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 lugin\PluginEvents;.use.Composer
223e0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b \Repository\CompositeRepository;
22400 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 .use.Composer\Repository\Platfor
22420 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 mRepository;......class.RequireC
22440 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f ommand.extends.InitCommand.{.pro
22460 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 tected.function.configure().{.$t
22480 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 his.->setName('require').->setDe
224a0 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 scription('Adds.required.package
224c0 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 69 6e 73 74 s.to.your.composer.json.and.inst
224e0 61 6c 6c 73 20 74 68 65 6d 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 alls.them').->setDefinition(arra
22500 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c y(.new.InputArgument('packages',
22520 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 .InputArgument::IS_ARRAY.|.Input
22540 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 Argument::OPTIONAL,.'Required.pa
22560 63 6b 61 67 65 20 6e 61 6d 65 20 6f 70 74 69 6f 6e 61 6c 6c 79 20 69 6e 63 6c 75 64 69 6e 67 20 ckage.name.optionally.including.
22580 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 a.version.constraint,.e.g..foo/b
225a0 61 72 20 6f 72 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 ar.or.foo/bar:1.0.0.or.foo/bar=1
225c0 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 .0.0.or."foo/bar.1.0.0"'),.new.I
225e0 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 nputOption('dev',.null,.InputOpt
22600 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e ion::VALUE_NONE,.'Add.requiremen
22620 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 65 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 t.to.require-dev.'),.new.InputOp
22640 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 tion('prefer-source',.null,.Inpu
22660 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 tOption::VALUE_NONE,.'Forces.ins
22680 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 tallation.from.package.sources.w
226a0 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f hen.possible,.including.VCS.info
226c0 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 rmation.'),.new.InputOption('pre
226e0 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 fer-dist',.null,.InputOption::VA
22700 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 LUE_NONE,.'Forces.installation.f
22720 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 rom.package.dist.even.for.dev.ve
22740 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 rsions.'),.new.InputOption('no-p
22760 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c rogress',.null,.InputOption::VAL
22780 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 UE_NONE,.'Do.not.output.download
227a0 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e .progress.'),.new.InputOption('n
227c0 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 o-update',.null,.InputOption::VA
227e0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 LUE_NONE,.'Disables.the.automati
22800 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c c.update.of.the.dependencies.'),
22820 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 .new.InputOption('update-no-dev'
22840 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c ,.null,.InputOption::VALUE_NONE,
22860 20 27 52 75 6e 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 79 20 75 70 64 61 74 65 20 77 69 74 68 .'Run.the.dependency.update.with
22880 20 74 68 65 20 2d 2d 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 .the.--no-dev.option.'),.new.Inp
228a0 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 utOption('update-with-dependenci
228c0 65 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f es',.null,.InputOption::VALUE_NO
228e0 4e 45 2c 20 27 41 6c 6c 6f 77 73 20 69 6e 68 65 72 69 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 NE,.'Allows.inherited.dependenci
22900 65 73 20 74 6f 20 62 65 20 75 70 64 61 74 65 64 20 77 69 74 68 20 65 78 70 6c 69 63 69 74 20 64 es.to.be.updated.with.explicit.d
22920 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ependencies.'),.new.InputOption(
22940 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 'ignore-platform-reqs',.null,.In
22960 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 putOption::VALUE_NONE,.'Ignore.p
22980 6c 61 74 66 6f 72 6d 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d latform.requirements.(php.&.ext-
229a0 20 70 61 63 6b 61 67 65 73 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 .packages).'),.new.InputOption('
229c0 73 6f 72 74 2d 70 61 63 6b 61 67 65 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f sort-packages',.null,.InputOptio
229e0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6f 72 74 73 20 70 61 63 6b 61 67 65 73 20 77 n::VALUE_NONE,.'Sorts.packages.w
22a00 68 65 6e 20 61 64 64 69 6e 67 2f 75 70 64 61 74 69 6e 67 20 61 20 6e 65 77 20 64 65 70 65 6e 64 hen.adding/updating.a.new.depend
22a20 65 6e 63 79 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 ency'),.)).->setHelp(<<<EOT.The.
22a40 72 65 71 75 69 72 65 20 63 6f 6d 6d 61 6e 64 20 61 64 64 73 20 72 65 71 75 69 72 65 64 20 70 61 require.command.adds.required.pa
22a60 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 ckages.to.your.composer.json.and
22a80 20 69 6e 73 74 61 6c 6c 73 20 74 68 65 6d 2e 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 73 .installs.them...If.you.do.not.s
22aa0 70 65 63 69 66 79 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 63 6f 6d pecify.a.version.constraint,.com
22ac0 70 6f 73 65 72 20 77 69 6c 6c 20 63 68 6f 6f 73 65 20 61 20 73 75 69 74 61 62 6c 65 20 6f 6e 65 poser.will.choose.a.suitable.one
22ae0 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 20 .based.on.the.available.package.
22b00 76 65 72 73 69 6f 6e 73 2e 0a 0a 49 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f versions...If.you.do.not.want.to
22b20 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6d .install.the.new.dependencies.im
22b40 6d 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 2d mediately.you.can.call.it.with.-
22b60 2d 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 -no-update..EOT.).;.}..protected
22b80 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
22ba0 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
22bc0 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 ).{.$file.=.Factory::getComposer
22be0 46 69 6c 65 28 29 3b 0a 0a 24 6e 65 77 6c 79 43 72 65 61 74 65 64 20 3d 20 21 66 69 6c 65 5f 65 File();..$newlyCreated.=.!file_e
22c00 78 69 73 74 73 28 24 66 69 6c 65 29 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 xists($file);.if.(!file_exists($
22c20 66 69 6c 65 29 20 26 26 20 21 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c file).&&.!file_put_contents($fil
22c40 65 2c 20 22 7b 5c 6e 7d 5c 6e 22 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e e,."{\n}\n")).{.$this->getIO()->
22c60 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 63 6f 75 writeError('<error>'.$file.'.cou
22c80 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 ld.not.be.created.</error>');..r
22ca0 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c eturn.1;.}.if.(!is_readable($fil
22cc0 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 e)).{.$this->getIO()->writeError
22ce0 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 ('<error>'.$file.'.is.not.readab
22d00 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 le.</error>');..return.1;.}.if.(
22d20 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 !is_writable($file)).{.$this->ge
22d40 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c tIO()->writeError('<error>'.$fil
22d60 65 2e 27 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a e.'.is.not.writable.</error>');.
22d80 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 .return.1;.}..$json.=.new.JsonFi
22da0 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 20 3d le($file);.$composerDefinition.=
22dc0 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 20 .$json->read();.$composerBackup.
22de0 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 =.file_get_contents($json->getPa
22e00 74 68 28 29 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f th());..$composer.=.$this->getCo
22e20 6d 70 6f 73 65 72 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 mposer();.$repos.=.$composer->ge
22e40 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 tRepositoryManager()->getReposit
22e60 6f 72 69 65 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d ories();..$this->repos.=.new.Com
22e80 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 positeRepository(array_merge(.ar
22ea0 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 29 2c 0a 24 72 65 ray(new.PlatformRepository),.$re
22ec0 70 6f 73 0a 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e pos.));..$requirements.=.$this->
22ee0 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f determineRequirements($input,.$o
22f00 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b utput,.$input->getArgument('pack
22f20 61 67 65 73 27 29 29 3b 0a 0a 24 72 65 71 75 69 72 65 4b 65 79 20 3d 20 24 69 6e 70 75 74 2d 3e ages'));..$requireKey.=.$input->
22f40 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 getOption('dev').?.'require-dev'
22f60 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 24 72 65 6d 6f 76 65 4b 65 79 20 3d 20 24 69 6e 70 75 .:.'require';.$removeKey.=.$inpu
22f80 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 27 20 t->getOption('dev').?.'require'.
22fa0 3a 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 3b 0a 24 62 61 73 65 52 65 71 75 69 72 65 6d 65 6e :.'require-dev';.$baseRequiremen
22fc0 74 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 72 65 71 75 69 72 65 4b 65 ts.=.array_key_exists($requireKe
22fe0 79 2c 20 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 29 20 3f 20 24 63 6f 6d 70 6f y,.$composerDefinition).?.$compo
23000 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3a 20 61 72 72 serDefinition[$requireKey].:.arr
23020 61 79 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 ay();.$requirements.=.$this->for
23040 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a matRequirements($requirements);.
23060 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 ...$versionParser.=.new.VersionP
23080 61 72 73 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 arser();.foreach.($requirements.
230a0 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 as.$constraint).{.$versionParser
230c0 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b ->parseConstraints($constraint);
230e0 0a 7d 0a 0a 24 73 6f 72 74 50 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f .}..$sortPackages.=.$input->getO
23100 70 74 69 6f 6e 28 27 73 6f 72 74 2d 70 61 63 6b 61 67 65 73 27 29 3b 0a 0a 69 66 20 28 21 24 74 ption('sort-packages');..if.(!$t
23120 68 69 73 2d 3e 75 70 64 61 74 65 46 69 6c 65 43 6c 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 24 62 his->updateFileCleanly($json,.$b
23140 61 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 aseRequirements,.$requirements,.
23160 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 73 6f 72 74 50 61 $requireKey,.$removeKey,.$sortPa
23180 63 6b 61 67 65 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 ckages)).{.foreach.($requirement
231a0 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 62 61 s.as.$package.=>.$version).{.$ba
231c0 73 65 52 65 71 75 69 72 65 6d 65 6e 74 73 5b 24 70 61 63 6b 61 67 65 5d 20 3d 20 24 76 65 72 73 seRequirements[$package].=.$vers
231e0 69 6f 6e 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 ion;..if.(isset($composerDefinit
23200 69 6f 6e 5b 24 72 65 6d 6f 76 65 4b 65 79 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 75 6e ion[$removeKey][$package])).{.un
23220 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 44 65 66 69 6e 69 74 69 6f 6e 5b 24 72 65 6d 6f 76 65 4b set($composerDefinition[$removeK
23240 65 79 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 44 65 ey][$package]);.}.}..$composerDe
23260 66 69 6e 69 74 69 6f 6e 5b 24 72 65 71 75 69 72 65 4b 65 79 5d 20 3d 20 24 62 61 73 65 52 65 71 finition[$requireKey].=.$baseReq
23280 75 69 72 65 6d 65 6e 74 73 3b 0a 24 6a 73 6f 6e 2d 3e 77 72 69 74 65 28 24 63 6f 6d 70 6f 73 65 uirements;.$json->write($compose
232a0 72 44 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d rDefinition);.}..$this->getIO()-
232c0 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 27 2e 24 66 69 6c 65 2e 27 20 68 61 73 >writeError('<info>'.$file.'.has
232e0 20 62 65 65 6e 20 27 2e 28 24 6e 65 77 6c 79 43 72 65 61 74 65 64 20 3f 20 27 63 72 65 61 74 65 .been.'.($newlyCreated.?.'create
23300 64 27 20 3a 20 27 75 70 64 61 74 65 64 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 d'.:.'updated').'</info>');..if.
23320 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 29 29 ($input->getOption('no-update'))
23340 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 20 3d 20 .{.return.0;.}.$updateDevMode.=.
23360 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 !$input->getOption('update-no-de
23380 76 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a v');....$this->resetComposer();.
233a0 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 $composer.=.$this->getComposer()
233c0 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 ;.$composer->getDownloadManager(
233e0 29 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 )->setOutputProgress(!$input->ge
23400 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 tOption('no-progress'));.$io.=.$
23420 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 this->getIO();..$commandEvent.=.
23440 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 new.CommandEvent(PluginEvents::C
23460 4f 4d 4d 41 4e 44 2c 20 27 72 65 71 75 69 72 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 OMMAND,.'require',.$input,.$outp
23480 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 ut);.$composer->getEventDispatch
234a0 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 er()->dispatch($commandEvent->ge
234c0 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 tName(),.$commandEvent);..$insta
234e0 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d ll.=.Installer::create($io,.$com
23500 70 6f 73 65 72 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 74 56 65 72 62 6f 73 65 28 24 poser);..$install.->setVerbose($
23520 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 0a 2d 3e 73 input->getOption('verbose')).->s
23540 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e etPreferSource($input->getOption
23560 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 ('prefer-source')).->setPreferDi
23580 73 74 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 st($input->getOption('prefer-dis
235a0 74 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 75 70 64 61 74 65 44 65 76 4d 6f 64 65 t')).->setDevMode($updateDevMode
235c0 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 ).->setUpdate(true).->setUpdateW
235e0 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 hitelist(array_keys($requirement
23600 73 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 s)).->setWhitelistDependencies($
23620 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d 64 65 input->getOption('update-with-de
23640 70 65 6e 64 65 6e 63 69 65 73 27 29 29 0a 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 pendencies')).->setIgnorePlatfor
23660 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 mRequirements($input->getOption(
23680 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 24 73 74 61 'ignore-platform-reqs')).;..$sta
236a0 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 24 73 74 61 74 tus.=.$install->run();.if.($stat
236c0 75 73 20 21 3d 3d 20 30 29 20 7b 0a 69 66 20 28 24 6e 65 77 6c 79 43 72 65 61 74 65 64 29 20 7b us.!==.0).{.if.($newlyCreated).{
236e0 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 .$this->getIO()->writeError("\n"
23700 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 64 65 .'<error>Installation.failed,.de
23720 6c 65 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e 27 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 75 6e 6c leting.'.$file.'.</error>');.unl
23740 69 6e 6b 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ink($json->getPath());.}.else.{.
23760 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 2e $this->getIO()->writeError("\n".
23780 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 72 65 76 '<error>Installation.failed,.rev
237a0 65 72 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 73 20 6f 72 69 67 69 6e 61 6c erting.'.$file.'.to.its.original
237c0 20 63 6f 6e 74 65 6e 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f .content.</error>');.file_put_co
237e0 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 63 6f 6d 70 6f 73 ntents($json->getPath(),.$compos
23800 65 72 42 61 63 6b 75 70 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a erBackup);.}.}..return.$status;.
23820 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 43 6c }..private.function.updateFileCl
23840 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 79 20 eanly($json,.array.$base,.array.
23860 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b 65 79 2c 20 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 $new,.$requireKey,.$removeKey,.$
23880 73 6f 72 74 50 61 63 6b 61 67 65 73 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 66 69 6c 65 sortPackages).{.$contents.=.file
238a0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 29 3b _get_contents($json->getPath());
238c0 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c ..$manipulator.=.new.JsonManipul
238e0 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 20 ator($contents);..foreach.($new.
23900 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 as.$package.=>.$constraint).{.if
23920 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 65 71 75 69 72 .(!$manipulator->addLink($requir
23940 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 73 6f eKey,.$package,.$constraint,.$so
23960 72 74 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 69 rtPackages)).{.return.false;.}.i
23980 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 f.(!$manipulator->removeSubNode(
239a0 24 72 65 6d 6f 76 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 $removeKey,.$package)).{.return.
239c0 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a false;.}.}..file_put_contents($j
239e0 73 6f 6e 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 son->getPath(),.$manipulator->ge
23a00 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 tContents());..return.true;.}..p
23a20 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 rotected.function.interact(Input
23a40 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
23a60 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a e.$output).{.return;.}.}.<?php..
23a80 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d ..........namespace.Composer\Com
23aa0 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 mand;..use.Composer\Plugin\Comma
23ac0 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 ndEvent;.use.Composer\Plugin\Plu
23ae0 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ginEvents;.use.Symfony\Component
23b00 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
23b20 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
23b40 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\InputOption;.use.Symfony\Comp
23b60 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
23b80 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d face;.....class.DumpAutoloadComm
23ba0 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 and.extends.Command.{.protected.
23bc0 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 function.configure().{.$this.->s
23be0 65 74 4e 61 6d 65 28 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 29 0a 2d 3e 73 65 74 41 6c 69 etName('dump-autoload').->setAli
23c00 61 73 65 73 28 61 72 72 61 79 28 27 64 75 6d 70 61 75 74 6f 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 ases(array('dumpautoload')).->se
23c20 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 75 6d 70 73 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 tDescription('Dumps.the.autoload
23c40 65 72 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 er').->setDefinition(array(.new.
23c60 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 27 2c 20 27 6f 27 2c 20 49 6e 70 InputOption('optimize',.'o',.Inp
23c80 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 73 utOption::VALUE_NONE,.'Optimizes
23ca0 20 50 53 52 30 20 61 6e 64 20 50 53 52 34 20 70 61 63 6b 61 67 65 73 20 74 6f 20 62 65 20 6c 6f .PSR0.and.PSR4.packages.to.be.lo
23cc0 61 64 65 64 20 77 69 74 68 20 63 6c 61 73 73 6d 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 20 66 6f aded.with.classmaps.too,.good.fo
23ce0 72 20 70 72 6f 64 75 63 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e r.production.'),.new.InputOption
23d00 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 ('no-dev',.null,.InputOption::VA
23d20 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 75 74 6f 6c 6f 61 64 2d 64 65 76 LUE_NONE,.'Disables.autoload-dev
23d40 20 72 75 6c 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 3c .rules.'),.)).->setHelp(<<<EOT.<
23d60 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 64 75 6d 70 2d 61 75 74 6f info>php.composer.phar.dump-auto
23d80 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 load</info>.EOT.).;.}..protected
23da0 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 .function.execute(InputInterface
23dc0 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 .$input,.OutputInterface.$output
23de0 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 ).{.$composer.=.$this->getCompos
23e00 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 er();..$commandEvent.=.new.Comma
23e20 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 ndEvent(PluginEvents::COMMAND,.'
23e40 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 dump-autoload',.$input,.$output)
23e60 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 ;.$composer->getEventDispatcher(
23e80 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 )->dispatch($commandEvent->getNa
23ea0 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 61 me(),.$commandEvent);..$installa
23ec0 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 tionManager.=.$composer->getInst
23ee0 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 allationManager();.$localRepo.=.
23f00 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 $composer->getRepositoryManager(
23f20 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 61 63 6b 61 67 )->getLocalRepository();.$packag
23f40 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f e.=.$composer->getPackage();.$co
23f60 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a nfig.=.$composer->getConfig();..
23f80 24 6f 70 74 69 6d 69 7a 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f $optimize.=.$input->getOption('o
23fa0 70 74 69 6d 69 7a 65 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 6f 70 74 69 6d ptimize').||.$config->get('optim
23fc0 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 7c 7c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 ize-autoloader').||.$config->get
23fe0 28 27 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 0a 69 66 20 ('classmap-authoritative');..if.
24000 28 24 6f 70 74 69 6d 69 7a 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 ($optimize).{.$this->getIO()->wr
24020 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 6f 70 74 69 6d iteError('<info>Generating.optim
24040 69 7a 65 64 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 ized.autoload.files</info>');.}.
24060 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f else.{.$this->getIO()->writeErro
24080 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c r('<info>Generating.autoload.fil
240a0 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 63 6f es</info>');.}..$generator.=.$co
240c0 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a mposer->getAutoloadGenerator();.
240e0 24 67 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 21 24 69 6e 70 75 74 2d 3e $generator->setDevMode(!$input->
24100 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 3b 0a 24 67 65 6e 65 72 61 74 6f 72 getOption('no-dev'));.$generator
24120 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 61 63 ->dump($config,.$localRepo,.$pac
24140 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d kage,.$installationManager,.'com
24160 70 6f 73 65 72 27 2c 20 24 6f 70 74 69 6d 69 7a 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a poser',.$optimize);.}.}.<?php...
24180 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d .........namespace.Composer\Comm
241a0 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 and;..use.Composer\Factory;.use.
241c0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
241e0 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 InputInterface;.use.Symfony\Comp
24200 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e onent\Console\Input\InputArgumen
24220 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 t;.use.Symfony\Component\Console
24240 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Input\StringInput;.use.Symfony\
24260 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 Component\Console\Output\OutputI
24280 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e nterface;.....class.GlobalComman
242a0 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 d.extends.Command.{.protected.fu
242c0 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
242e0 4e 61 6d 65 28 27 67 6c 6f 62 61 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 Name('global').->setDescription(
24300 27 41 6c 6c 6f 77 73 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 'Allows.running.commands.in.the.
24320 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 65 72 20 64 69 72 20 28 24 43 4f 4d 50 4f 53 45 52 5f 48 global.composer.dir.($COMPOSER_H
24340 4f 4d 45 29 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e OME).').->setDefinition(array(.n
24360 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2c ew.InputArgument('command-name',
24380 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 27 29 2c 0a 6e .InputArgument::REQUIRED,.''),.n
243a0 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 ew.InputArgument('args',.InputAr
243c0 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 gument::IS_ARRAY.|.InputArgument
243e0 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c ::OPTIONAL,.''),.)).->setHelp(<<
24400 3c 45 4f 54 0a 55 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 73 20 61 20 77 72 61 70 70 <EOT.Use.this.command.as.a.wrapp
24420 65 72 20 74 6f 20 72 75 6e 20 6f 74 68 65 72 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 er.to.run.other.Composer.command
24440 73 0a 77 69 74 68 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 43 s.within.the.global.context.of.C
24460 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 OMPOSER_HOME...You.can.use.this.
24480 74 6f 20 69 6e 73 74 61 6c 6c 20 43 4c 49 20 75 74 69 6c 69 74 69 65 73 20 67 6c 6f 62 61 6c 6c to.install.CLI.utilities.globall
244a0 79 2c 20 61 6c 6c 20 79 6f 75 20 6e 65 65 64 0a 69 73 20 74 6f 20 61 64 64 20 74 68 65 20 43 4f y,.all.you.need.is.to.add.the.CO
244c0 4d 50 4f 53 45 52 5f 48 4f 4d 45 2f 76 65 6e 64 6f 72 2f 62 69 6e 20 64 69 72 20 74 6f 20 79 6f MPOSER_HOME/vendor/bin.dir.to.yo
244e0 75 72 20 50 41 54 48 20 65 6e 76 20 76 61 72 2e 0a 0a 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 ur.PATH.env.var...COMPOSER_HOME.
24500 69 73 20 63 3a 5c 55 73 65 72 73 5c 3c 75 73 65 72 3e 5c 41 70 70 44 61 74 61 5c 52 6f 61 6d 69 is.c:\Users\<user>\AppData\Roami
24520 6e 67 5c 43 6f 6d 70 6f 73 65 72 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 61 6e 64 20 2f 68 6f 6d 65 ng\Composer.on.Windows.and./home
24540 2f 3c 75 73 65 72 3e 2f 2e 63 6f 6d 70 6f 73 65 72 20 6f 6e 20 75 6e 69 78 20 73 79 73 74 65 6d /<user>/.composer.on.unix.system
24560 73 2e 0a 0a 4e 6f 74 65 3a 20 54 68 69 73 20 70 61 74 68 20 6d 61 79 20 76 61 72 79 20 64 65 70 s...Note:.This.path.may.vary.dep
24580 65 6e 64 69 6e 67 20 6f 6e 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 62 69 6e 2d ending.on.customizations.to.bin-
245a0 64 69 72 20 69 6e 0a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 74 68 65 20 65 6e 76 69 dir.in.composer.json.or.the.envi
245c0 72 6f 6e 6d 65 6e 74 61 6c 20 76 61 72 69 61 62 6c 65 20 43 4f 4d 50 4f 53 45 52 5f 42 49 4e 5f ronmental.variable.COMPOSER_BIN_
245e0 44 49 52 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e DIR...EOT.).;.}..public.function
24600 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 .run(InputInterface.$input,.Outp
24620 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 6f 6b 65 6e 73 utInterface.$output).{...$tokens
24640 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 69 6e 70 75 74 2d 3e 5f .=.preg_split('{\s+}',.$input->_
24660 5f 74 6f 53 74 72 69 6e 67 28 29 29 3b 0a 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 _toString());.$args.=.array();.f
24680 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 oreach.($tokens.as.$token).{.if.
246a0 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b 0a ($token.&&.$token[0].!==.'-').{.
246c0 24 61 72 67 73 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 $args[].=.$token;.if.(count($arg
246e0 73 29 20 3e 3d 20 32 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 s).>=.2).{.break;.}.}.}....if.(c
24700 6f 75 6e 74 28 24 61 72 67 73 29 20 3c 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 ount($args).<.2).{.return.parent
24720 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f ::run($input,.$output);.}....$co
24740 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a nfig.=.Factory::createConfig();.
24760 63 68 64 69 72 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 3b 0a 24 74 68 chdir($config->get('home'));.$th
24780 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 43 is->getIO()->writeError('<info>C
247a0 68 61 6e 67 65 64 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 20 74 6f 20 27 2e 24 63 hanged.current.directory.to.'.$c
247c0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a onfig->get('home').'</info>');..
247e0 0a 20 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 70 72 65 67 5f ..$input.=.new.StringInput(preg_
24800 72 65 70 6c 61 63 65 28 27 7b 5c 62 67 28 3f 3a 6c 28 3f 3a 6f 28 3f 3a 62 28 3f 3a 61 28 3f 3a replace('{\bg(?:l(?:o(?:b(?:a(?:
24820 6c 29 3f 29 3f 29 3f 29 3f 29 3f 5c 62 7d 27 2c 20 27 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 l)?)?)?)?)?\b}',.'',.$input->__t
24840 6f 53 74 72 69 6e 67 28 29 2c 20 31 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 oString(),.1));..return.$this->g
24860 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 etApplication()->run($input,.$ou
24880 74 70 75 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 tput);.}.}.<?php............name
248a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d space.Composer\Command;..use.Com
248c0 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 poser\Config\JsonConfigSource;.u
248e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f se.Composer\Installer;.use.Compo
24900 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d ser\Plugin\CommandEvent;.use.Com
24920 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 poser\Plugin\PluginEvents;.use.C
24940 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f omposer\Json\JsonFile;.use.Compo
24960 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ser\Factory;.use.Symfony\Compone
24980 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b nt\Console\Input\InputInterface;
249a0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
249c0 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f nput\InputOption;.use.Symfony\Co
249e0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d mponent\Console\Input\InputArgum
24a00 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ent;.use.Symfony\Component\Conso
24a20 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a le\Output\OutputInterface;......
24a40 63 6c 61 73 73 20 52 65 6d 6f 76 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d class.RemoveCommand.extends.Comm
24a60 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 and.{.protected.function.configu
24a80 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 72 65 6d 6f 76 65 27 29 re().{.$this.->setName('remove')
24aa0 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 65 6d 6f 76 65 73 20 61 20 70 61 63 .->setDescription('Removes.a.pac
24ac0 6b 61 67 65 20 66 72 6f 6d 20 74 68 65 20 72 65 71 75 69 72 65 20 6f 72 20 72 65 71 75 69 72 65 kage.from.the.require.or.require
24ae0 2d 64 65 76 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 -dev').->setDefinition(array(.ne
24b00 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 w.InputArgument('packages',.Inpu
24b20 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 5f 41 52 52 41 59 2c 20 27 50 61 63 6b 61 67 65 73 20 74 tArgument::IS_ARRAY,.'Packages.t
24b40 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 72 65 6d 6f 76 65 64 2e 27 29 2c 0a 6e 65 77 20 49 6e hat.should.be.removed.'),.new.In
24b60 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 putOption('dev',.null,.InputOpti
24b80 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 65 6d 6f 76 65 73 20 61 20 70 61 63 6b 61 on::VALUE_NONE,.'Removes.a.packa
24ba0 67 65 20 66 72 6f 6d 20 74 68 65 20 72 65 71 75 69 72 65 2d 64 65 76 20 73 65 63 74 69 6f 6e 2e ge.from.the.require-dev.section.
24bc0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 '),.new.InputOption('no-progress
24be0 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
24c00 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 ,.'Do.not.output.download.progre
24c20 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 ss.'),.new.InputOption('no-updat
24c40 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e e',.null,.InputOption::VALUE_NON
24c60 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 E,.'Disables.the.automatic.updat
24c80 65 20 6f 66 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e e.of.the.dependencies.'),.new.In
24ca0 70 75 74 4f 70 74 69 6f 6e 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c putOption('update-no-dev',.null,
24cc0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 75 6e 20 74 .InputOption::VALUE_NONE,.'Run.t
24ce0 68 65 20 64 65 70 65 6e 64 65 6e 63 79 20 75 70 64 61 74 65 20 77 69 74 68 20 74 68 65 20 2d 2d he.dependency.update.with.the.--
24d00 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f no-dev.option.'),.new.InputOptio
24d20 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 6e 75 n('update-with-dependencies',.nu
24d40 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 6c ll,.InputOption::VALUE_NONE,.'Al
24d60 6c 6f 77 73 20 69 6e 68 65 72 69 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 62 lows.inherited.dependencies.to.b
24d80 65 20 75 70 64 61 74 65 64 20 77 69 74 68 20 65 78 70 6c 69 63 69 74 20 64 65 70 65 6e 64 65 6e e.updated.with.explicit.dependen
24da0 63 69 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 cies.'),.new.InputOption('ignore
24dc0 2d 70 6c 61 74 66 6f 72 6d 2d 72 65 71 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 -platform-reqs',.null,.InputOpti
24de0 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 67 6e 6f 72 65 20 70 6c 61 74 66 6f 72 6d on::VALUE_NONE,.'Ignore.platform
24e00 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 28 70 68 70 20 26 20 65 78 74 2d 20 70 61 63 6b 61 67 .requirements.(php.&.ext-.packag
24e20 65 73 29 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 es).'),.)).->setHelp(<<<EOT.The.
24e40 3c 69 6e 66 6f 3e 72 65 6d 6f 76 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 6d 6f <info>remove</info>.command.remo
24e60 76 65 73 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 65 20 63 75 72 72 65 6e 74 0a 6c ves.a.package.from.the.current.l
24e80 69 73 74 20 6f 66 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 6b 61 67 65 73 0a 0a 3c 69 6e 66 6f ist.of.installed.packages..<info
24ea0 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 72 65 6d 6f 76 65 3c 2f 69 6e 66 6f 3e >php.composer.phar.remove</info>
24ec0 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ..EOT.).;.}..protected.function.
24ee0 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f execute(InputInterface.$input,.O
24f00 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 70 61 63 6b 61 utputInterface.$output).{.$packa
24f20 67 65 73 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 ges.=.$input->getArgument('packa
24f40 67 65 73 27 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 ges');..$file.=.Factory::getComp
24f60 6f 73 65 72 46 69 6c 65 28 29 3b 0a 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f oserFile();..$jsonFile.=.new.Jso
24f80 6e 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 6a 73 6f 6e 46 nFile($file);.$composer.=.$jsonF
24fa0 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b 75 70 20 3d 20 66 ile->read();.$composerBackup.=.f
24fc0 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 46 69 6c 65 2d 3e 67 65 74 50 ile_get_contents($jsonFile->getP
24fe0 61 74 68 28 29 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 ath());..$json.=.new.JsonConfigS
25000 6f 75 72 63 65 28 24 6a 73 6f 6e 46 69 6c 65 29 3b 0a 0a 24 74 79 70 65 20 3d 20 24 69 6e 70 75 ource($jsonFile);..$type.=.$inpu
25020 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 2d 64 t->getOption('dev').?.'require-d
25040 65 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 24 61 6c 74 54 79 70 65 20 3d 20 21 24 69 6e ev'.:.'require';.$altType.=.!$in
25060 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 3f 20 27 72 65 71 75 69 72 65 put->getOption('dev').?.'require
25080 2d 64 65 76 27 20 3a 20 27 72 65 71 75 69 72 65 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 -dev'.:.'require';..foreach.($pa
250a0 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 ckages.as.$package).{.if.(isset(
250c0 24 63 6f 6d 70 6f 73 65 72 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 24 $composer[$type][$package])).{.$
250e0 6a 73 6f 6e 2d 3e 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 json->removeLink($type,.$package
25100 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 24 61 6c );.}.elseif.(isset($composer[$al
25120 74 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 tType][$package])).{.$this->getI
25140 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 70 61 63 O()->writeError('<warning>'.$pac
25160 6b 61 67 65 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 27 2e 24 kage.'.could.not.be.found.in.'.$
25180 74 79 70 65 2e 27 20 62 75 74 20 69 74 20 69 73 20 70 72 65 73 65 6e 74 20 69 6e 20 27 2e 24 61 type.'.but.it.is.present.in.'.$a
251a0 6c 74 54 79 70 65 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 64 69 61 6c 6f 67 20 3d 20 ltType.'</warning>');.$dialog.=.
251c0 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c $this->getHelperSet()->get('dial
251e0 6f 67 27 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 69 73 49 6e 74 65 og');.if.($this->getIO()->isInte
25200 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e ractive()).{.if.($dialog->askCon
25220 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 firmation($output,.$dialog->getQ
25240 75 65 73 74 69 6f 6e 28 27 44 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 69 uestion('Do.you.want.to.remove.i
25260 74 20 66 72 6f 6d 20 27 2e 24 61 6c 74 54 79 70 65 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 t.from.'.$altType,.'yes',.'?'),.
25280 74 72 75 65 29 29 20 7b 0a 24 6a 73 6f 6e 2d 3e 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 61 6c 74 54 true)).{.$json->removeLink($altT
252a0 79 70 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ype,.$package);.}.}.}.else.{.$th
252c0 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e is->getIO()->writeError('<warnin
252e0 67 3e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 71 75 69 72 65 64 20 69 g>'.$package.'.is.not.required.i
25300 6e 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 68 61 73 20 6e 6f 74 n.your.composer.json.and.has.not
25320 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 7d 0a 0a .been.removed</warning>');.}.}..
25340 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 if.($input->getOption('no-update
25360 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d ')).{.return.0;.}....$composer.=
25380 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 .$this->getComposer();.$composer
253a0 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 4f 75 74 70 75 ->getDownloadManager()->setOutpu
253c0 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f tProgress(!$input->getOption('no
253e0 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 4f -progress'));.$io.=.$this->getIO
25400 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 ();..$commandEvent.=.new.Command
25420 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 72 65 Event(PluginEvents::COMMAND,.'re
25440 6d 6f 76 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 move',.$input,.$output);.$compos
25460 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 er->getEventDispatcher()->dispat
25480 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f ch($commandEvent->getName(),.$co
254a0 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 6e 73 74 61 6c 6c mmandEvent);..$install.=.Install
254c0 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 3b 0a 0a 24 75 70 er::create($io,.$composer);..$up
254e0 64 61 74 65 44 65 76 4d 6f 64 65 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e dateDevMode.=.!$input->getOption
25500 28 27 75 70 64 61 74 65 2d 6e 6f 2d 64 65 76 27 29 3b 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e 73 65 ('update-no-dev');.$install.->se
25520 74 56 65 72 62 6f 73 65 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 tVerbose($input->getOption('verb
25540 6f 73 65 27 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 75 70 64 61 74 65 44 65 76 4d 6f ose')).->setDevMode($updateDevMo
25560 64 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 de).->setUpdate(true).->setUpdat
25580 65 57 68 69 74 65 6c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 2d 3e 73 65 74 57 68 69 74 65 eWhitelist($packages).->setWhite
255a0 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 listDependencies($input->getOpti
255c0 6f 6e 28 27 75 70 64 61 74 65 2d 77 69 74 68 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 27 29 29 0a on('update-with-dependencies')).
255e0 2d 3e 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 ->setIgnorePlatformRequirements(
25600 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 69 67 6e 6f 72 65 2d 70 6c 61 74 66 6f $input->getOption('ignore-platfo
25620 72 6d 2d 72 65 71 73 27 29 29 0a 3b 0a 0a 24 73 74 61 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c rm-reqs')).;..$status.=.$install
25640 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 24 73 74 61 74 75 73 20 21 3d 3d 20 30 29 20 7b 0a 24 74 ->run();.if.($status.!==.0).{.$t
25660 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 5c 6e 22 2e 27 3c his->getIO()->writeError("\n".'<
25680 65 72 72 6f 72 3e 52 65 6d 6f 76 61 6c 20 66 61 69 6c 65 64 2c 20 72 65 76 65 72 74 69 6e 67 20 error>Removal.failed,.reverting.
256a0 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 73 20 6f 72 69 67 69 6e 61 6c 20 63 6f 6e 74 65 6e '.$file.'.to.its.original.conten
256c0 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 t.</error>');.file_put_contents(
256e0 24 6a 73 6f 6e 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 63 6f 6d 70 6f 73 65 72 42 $jsonFile->getPath(),.$composerB
25700 61 63 6b 75 70 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a 7d 0a 7d 0a 3c ackup);.}..return.$status;.}.}.<
25720 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
25740 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c er\Command\Helper;..use.Symfony\
25760 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 Component\Console\Helper\DialogH
25780 65 6c 70 65 72 20 61 73 20 42 61 73 65 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 0a 63 6c 61 73 elper.as.BaseDialogHelper;..clas
257a0 73 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 44 69 61 6c 6f s.DialogHelper.extends.BaseDialo
257c0 67 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 gHelper.{............public.func
257e0 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f 6e 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 tion.getQuestion($question,.$def
25800 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 73 65 70 20 3d 20 27 3a 27 29 0a 7b 0a 72 65 74 75 72 ault.=.null,.$sep.=.':').{.retur
25820 6e 20 24 64 65 66 61 75 6c 74 20 21 3d 3d 20 6e 75 6c 6c 20 3f 0a 73 70 72 69 6e 74 66 28 27 3c n.$default.!==.null.?.sprintf('<
25840 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d info>%s</info>.[<comment>%s</com
25860 6d 65 6e 74 3e 5d 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c ment>]%s.',.$question,.$default,
25880 20 24 73 65 70 29 20 3a 0a 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f .$sep).:.sprintf('<info>%s</info
258a0 3e 25 73 20 27 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 73 65 70 29 3b 0a 7d 0a 7d 0a 3c 3f 70 >%s.',.$question,.$sep);.}.}.<?p
258c0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
258e0 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Command;..use.Symfony\Component
25900 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
25920 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
25940 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ut\InputOption;.use.Symfony\Comp
25960 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
25980 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 43 68 face;.use.Composer\Downloader\Ch
259a0 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 angeReportInterface;.use.Compose
259c0 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f r\Plugin\CommandEvent;.use.Compo
259e0 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d ser\Plugin\PluginEvents;.use.Com
25a00 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a poser\Script\ScriptEvents;......
25a20 63 6c 61 73 73 20 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d class.StatusCommand.extends.Comm
25a40 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 and.{.protected.function.configu
25a60 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 74 61 74 75 73 27 29 re().{.$this.->setName('status')
25a80 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 61 20 6c 69 73 74 20 6f .->setDescription('Show.a.list.o
25aa0 66 20 6c 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e f.locally.modified.packages').->
25ac0 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 setDefinition(array(.new.InputOp
25ae0 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 tion('verbose',.'v|vv|vvv',.Inpu
25b00 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 66 tOption::VALUE_NONE,.'Show.modif
25b20 69 65 64 20 66 69 6c 65 73 20 66 6f 72 20 65 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 ied.files.for.each.directory.tha
25b40 74 20 63 6f 6e 74 61 69 6e 73 20 63 68 61 6e 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 t.contains.changes.'),.)).->setH
25b60 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 69 elp(<<<EOT.The.status.command.di
25b80 73 70 6c 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 splays.a.list.of.dependencies.th
25ba0 61 74 20 68 61 76 65 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a 0a at.have.been.modified.locally...
25bc0 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 EOT.).;.}..protected.function.ex
25be0 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 ecute(InputInterface.$input,.Out
25c00 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 6f putInterface.$output).{...$compo
25c20 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f ser.=.$this->getComposer();..$co
25c40 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c mmandEvent.=.new.CommandEvent(Pl
25c60 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 74 61 74 75 73 27 2c 20 24 uginEvents::COMMAND,.'status',.$
25c80 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 input,.$output);.$composer->getE
25ca0 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d ventDispatcher()->dispatch($comm
25cc0 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 andEvent->getName(),.$commandEve
25ce0 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 nt);..$installedRepo.=.$composer
25d00 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 ->getRepositoryManager()->getLoc
25d20 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 alRepository();..$dm.=.$composer
25d40 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 ->getDownloadManager();.$im.=.$c
25d60 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 omposer->getInstallationManager(
25d80 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 );....$composer->getEventDispatc
25da0 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e her()->dispatchScript(ScriptEven
25dc0 74 73 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 24 65 72 72 ts::PRE_STATUS_CMD,.true);..$err
25de0 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 ors.=.array();....foreach.($inst
25e00 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 alledRepo->getPackages().as.$pac
25e20 6b 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 65 74 44 6f kage).{.$downloader.=.$dm->getDo
25e40 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 wnloaderForInstalledPackage($pac
25e60 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 kage);..if.($downloader.instance
25e80 6f 66 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 61 72 of.ChangeReportInterface).{.$tar
25ea0 67 65 74 44 69 72 20 3d 20 24 69 6d 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 getDir.=.$im->getInstallPath($pa
25ec0 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 63 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e 6c 6f 61 ckage);..if.($changes.=.$downloa
25ee0 64 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 der->getLocalChanges($package,.$
25f00 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 24 74 61 72 67 65 74 44 69 72 targetDir)).{.$errors[$targetDir
25f20 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 ].=.$changes;.}.}.}....if.(!$err
25f40 6f 72 73 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f ors).{.$this->getIO()->writeErro
25f60 72 28 27 3c 69 6e 66 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 3c 2f 69 6e 66 6f 3e r('<info>No.local.changes</info>
25f80 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 ');.}.else.{.$this->getIO()->wri
25fa0 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 68 61 76 65 20 63 68 61 6e 67 65 73 teError('<error>You.have.changes
25fc0 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 3c .in.the.following.dependencies:<
25fe0 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 /error>');.}..foreach.($errors.a
26000 73 20 24 70 61 74 68 20 3d 3e 20 24 63 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 s.$path.=>.$changes).{.if.($inpu
26020 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 69 6e 64 65 t->getOption('verbose')).{.$inde
26040 6e 74 65 64 43 68 61 6e 67 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 ntedChanges.=.implode("\n",.arra
26060 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 y_map(function.($line).{.return.
26080 27 20 20 20 20 27 20 2e 20 6c 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 7d 2c 20 65 78 70 6c 6f 64 '....'...ltrim($line);.},.explod
260a0 65 28 22 5c 6e 22 2c 20 24 63 68 61 6e 67 65 73 29 29 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 e("\n",.$changes)));.$this->getI
260c0 4f 28 29 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 74 68 2e 27 3c 2f 69 6e 66 O()->write('<info>'.$path.'</inf
260e0 6f 3e 3a 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 69 6e o>:');.$this->getIO()->write($in
26100 64 65 6e 74 65 64 43 68 61 6e 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e dentedChanges);.}.else.{.$this->
26120 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 getIO()->write($path);.}.}..if.(
26140 24 65 72 72 6f 72 73 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 $errors.&&.!$input->getOption('v
26160 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 erbose')).{.$this->getIO()->writ
26180 65 45 72 72 6f 72 28 27 55 73 65 20 2d 2d 76 65 72 62 6f 73 65 20 28 2d 76 29 20 74 6f 20 73 65 eError('Use.--verbose.(-v).to.se
261a0 65 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 e.modified.files');.}....$compos
261c0 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 er->getEventDispatcher()->dispat
261e0 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 54 chScript(ScriptEvents::POST_STAT
26200 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 3f US_CMD,.true);..return.$errors.?
26220 20 31 20 3a 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .1.:.0;.}.}.<?php............nam
26240 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f espace.Composer\Command;..use.Co
26260 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a mposer\DependencyResolver\Pool;.
26280 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 use.Composer\Json\JsonFile;.use.
262a0 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 Composer\Factory;.use.Composer\P
262c0 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ackage\BasePackage;.use.Composer
262e0 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 \Package\Version\VersionSelector
26300 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 ;.use.Composer\Repository\Compos
26320 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f iteRepository;.use.Composer\Repo
26340 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 sitory\PlatformRepository;.use.C
26360 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 omposer\Package\Version\VersionP
26380 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 arser;.use.Composer\Util\Process
263a0 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Executor;.use.Symfony\Component\
263c0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 Console\Input\InputInterface;.us
263e0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
26400 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f t\InputOption;.use.Symfony\Compo
26420 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 nent\Console\Output\OutputInterf
26440 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 ace;.use.Symfony\Component\Proce
26460 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ss\Process;.use.Symfony\Componen
26480 74 5c 50 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a t\Process\ExecutableFinder;.....
264a0 0a 63 6c 61 73 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.InitCommand.extends.Comma
264c0 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 3b 0a 0a 70 72 69 76 61 74 65 20 nd.{.protected.$repos;..private.
264e0 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c $gitConfig;.private.$pool;..publ
26500 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 ic.function.parseAuthorString($a
26520 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 3f 50 3c 6e uthor).{.if.(preg_match('/^(?P<n
26540 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 70 7b 4c 7d 5c 27 e2 80 99 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 ame>[-.\.,\p{L}\'...]+).<(?P<ema
26560 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 61 75 74 68 6f 72 2c 20 24 6d 61 74 63 68 29 29 20 il>.+?)>$/u',.$author,.$match)).
26580 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 45 6d 61 69 6c 28 24 6d 61 74 63 68 {.if.($this->isValidEmail($match
265a0 5b 27 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d ['email'])).{.return.array(.'nam
265c0 65 27 20 3d 3e 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 27 6e 61 6d 65 27 5d 29 2c 0a 27 65 6d 61 e'.=>.trim($match['name']),.'ema
265e0 69 6c 27 20 3d 3e 20 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 0a 29 3b 0a 7d 0a 7d 0a 0a 74 il'.=>.$match['email'].);.}.}..t
26600 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
26620 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 61 75 74 68 6f 72 20 73 74 72 69 6e 67 2e 20 20 4d 75 73 on(.'Invalid.author.string...Mus
26640 74 20 62 65 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 3a 20 27 2e 0a 27 4a 6f 68 6e 20 53 6d 69 t.be.in.the.format:.'..'John.Smi
26660 74 68 20 3c 6a 6f 68 6e 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3e 27 0a 29 3b 0a 7d 0a 0a 70 72 6f th.<john@example.com>'.);.}..pro
26680 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 tected.function.configure().{.$t
266a0 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 69 6e 69 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 his.->setName('init').->setDescr
266c0 69 70 74 69 6f 6e 28 27 43 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 iption('Creates.a.basic.composer
266e0 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e .json.file.in.current.directory.
26700 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ').->setDefinition(array(.new.In
26720 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 putOption('name',.null,.InputOpt
26740 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4e 61 6d 65 20 6f 66 20 74 68 ion::VALUE_REQUIRED,.'Name.of.th
26760 65 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 e.package'),.new.InputOption('de
26780 73 63 72 69 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 scription',.null,.InputOption::V
267a0 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 70 ALUE_REQUIRED,.'Description.of.p
267c0 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f ackage'),.new.InputOption('autho
267e0 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 r',.null,.InputOption::VALUE_REQ
26800 55 49 52 45 44 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 UIRED,.'Author.name.of.package')
26820 2c 0a 0a 20 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 ,...new.InputOption('homepage',.
26840 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 null,.InputOption::VALUE_REQUIRE
26860 44 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 D,.'Homepage.of.package'),.new.I
26880 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 nputOption('require',.null,.Inpu
268a0 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 4f tOption::VALUE_IS_ARRAY.|.InputO
268c0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 61 63 6b 61 67 65 20 ption::VALUE_REQUIRED,.'Package.
268e0 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 to.require.with.a.version.constr
26900 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f aint,.e.g..foo/bar:1.0.0.or.foo/
26920 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a bar=1.0.0.or."foo/bar.1.0.0"'),.
26940 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 6e new.InputOption('require-dev',.n
26960 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 ull,.InputOption::VALUE_IS_ARRAY
26980 20 7c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 .|.InputOption::VALUE_REQUIRED,.
269a0 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 'Package.to.require.for.developm
269c0 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 ent.with.a.version.constraint,.e
269e0 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 .g..foo/bar:1.0.0.or.foo/bar=1.0
26a00 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 .0.or."foo/bar.1.0.0"'),.new.Inp
26a20 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 2c 20 49 6e 70 75 74 utOption('stability',.'s',.Input
26a40 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4d 69 6e 69 6d 75 6d Option::VALUE_REQUIRED,.'Minimum
26a60 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 27 2e 69 .stability.(empty.or.one.of:.'.i
26a80 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b mplode(',.',.array_keys(BasePack
26aa0 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 27 29 2c 0a 6e 65 77 20 49 6e age::$stabilities)).')'),.new.In
26ac0 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f putOption('license',.'l',.InputO
26ae0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 4c 69 63 65 6e 73 65 20 ption::VALUE_REQUIRED,.'License.
26b00 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f of.package'),.)).->setHelp(<<<EO
26b20 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 T.The.<info>init</info>.command.
26b40 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 creates.a.basic.composer.json.fi
26b60 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 le.in.the.current.directory...<i
26b80 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 69 74 3c 2f 69 6e 66 6f nfo>php.composer.phar.init</info
26ba0 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e >..EOT.).;.}..protected.function
26bc0 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 .execute(InputInterface.$input,.
26be0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 64 69 61 6c OutputInterface.$output).{.$dial
26c00 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 og.=.$this->getHelperSet()->get(
26c20 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 65 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 'dialog');..$whitelist.=.array('
26c40 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 27 61 75 74 68 6f 72 27 2c 20 name',.'description',.'author',.
26c60 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 'homepage',.'require',.'require-
26c80 64 65 76 27 2c 20 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 6c 69 63 65 6e 73 65 27 29 3b 0a 0a dev',.'stability',.'license');..
26ca0 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 61 72 72 61 79 5f 69 6e $options.=.array_filter(array_in
26cc0 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 tersect_key($input->getOptions()
26ce0 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c 69 73 74 29 29 29 3b 0a 0a 69 66 20 ,.array_flip($whitelist)));..if.
26d00 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 29 20 7b 0a 24 6f (isset($options['author'])).{.$o
26d20 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 ptions['authors'].=.$this->forma
26d40 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 75 6e tAuthors($options['author']);.un
26d60 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 set($options['author']);.}..if.(
26d80 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a isset($options['stability'])).{.
26da0 24 6f 70 74 69 6f 6e 73 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 20 $options['minimum-stability'].=.
26dc0 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 $options['stability'];.unset($op
26de0 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 tions['stability']);.}..$options
26e00 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 ['require'].=.isset($options['re
26e20 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d quire']).?.$this->formatRequirem
26e40 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3a 20 6e 65 77 20 ents($options['require']).:.new.
26e60 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 \stdClass;.if.(array().===.$opti
26e80 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 ons['require']).{.$options['requ
26ea0 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 ire'].=.new.\stdClass;.}..if.(is
26ec0 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 7b 0a set($options['require-dev'])).{.
26ee0 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 2d $options['require-dev'].=.$this-
26f00 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 >formatRequirements($options['re
26f20 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f quire-dev']);.if.(array().===.$o
26f40 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e ptions['require-dev']).{.$option
26f60 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 s['require-dev'].=.new.\stdClass
26f80 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d ;.}.}..$file.=.new.JsonFile('com
26fa0 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 24 66 69 6c 65 2d 3e 65 6e poser.json');..$json.=.$file->en
26fc0 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 code($options);..if.($input->isI
26fe0 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e nteractive()).{.$this->getIO()->
27000 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 6a 73 6f 6e 2c 0a 27 27 0a writeError(array(.'',.$json,.''.
27020 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f ));.if.(!$dialog->askConfirmatio
27040 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 n($output,.$dialog->getQuestion(
27060 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 27 79 65 'Do.you.confirm.generation',.'ye
27080 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 s',.'?'),.true)).{.$this->getIO(
270a0 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 )->writeError('<error>Command.ab
270c0 6f 72 74 65 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a orted</error>');..return.1;.}.}.
270e0 0a 24 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 .$file->write($options);..if.($i
27100 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 69 73 5f 64 69 72 28 nput->isInteractive().&&.is_dir(
27120 27 2e 67 69 74 27 29 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 '.git')).{.$ignoreFile.=.realpat
27140 68 28 27 2e 67 69 74 69 67 6e 6f 72 65 27 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 h('.gitignore');..if.(false.===.
27160 24 69 67 6e 6f 72 65 46 69 6c 65 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 $ignoreFile).{.$ignoreFile.=.rea
27180 6c 70 61 74 68 28 27 2e 27 29 20 2e 20 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 lpath('.')...'/.gitignore';.}..i
271a0 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f f.(!$this->hasVendorIgnore($igno
271c0 72 65 46 69 6c 65 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f reFile)).{.$question.=.'Would.yo
271e0 75 20 6c 69 6b 65 20 74 68 65 20 3c 69 6e 66 6f 3e 76 65 6e 64 6f 72 3c 2f 69 6e 66 6f 3e 20 64 u.like.the.<info>vendor</info>.d
27200 69 72 65 63 74 6f 72 79 20 61 64 64 65 64 20 74 6f 20 79 6f 75 72 20 3c 69 6e 66 6f 3e 2e 67 69 irectory.added.to.your.<info>.gi
27220 74 69 67 6e 6f 72 65 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f tignore</info>.[<comment>yes</co
27240 6d 6d 65 6e 74 3e 5d 3f 27 3b 0a 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 mment>]?';..if.($dialog->askConf
27260 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 irmation($output,.$question,.tru
27280 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 e)).{.$this->addVendorIgnore($ig
272a0 6e 6f 72 65 46 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 noreFile);.}.}.}.}..protected.fu
272c0 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 nction.interact(InputInterface.$
272e0 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a input,.OutputInterface.$output).
27300 7b 0a 24 67 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 3b 0a {.$git.=.$this->getGitConfig();.
27320 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 .$dialog.=.$this->getHelperSet()
27340 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 ->get('dialog');.$formatter.=.$t
27360 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 his->getHelperSet()->get('format
27380 74 65 72 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f ter');.$this->getIO()->writeErro
273a0 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 42 r(array(.'',.$formatter->formatB
273c0 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 63 6f lock('Welcome.to.the.Composer.co
273e0 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 27 2c 20 27 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 nfig.generator',.'bg=blue;fg=whi
27400 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 67 65 74 te',.true),.''.));....$this->get
27420 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 54 68 69 IO()->writeError(array(.'',.'Thi
27440 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 72 6f 75 67 68 s.command.will.guide.you.through
27460 20 63 72 65 61 74 69 6e 67 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 63 6f 6e .creating.your.composer.json.con
27480 66 69 67 2e 27 2c 0a 27 27 2c 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 fig.',.'',.));..$cwd.=.realpath(
274a0 22 2e 22 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f ".");..if.(!$name.=.$input->getO
274c0 70 74 69 6f 6e 28 27 6e 61 6d 65 27 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 62 61 73 65 6e 61 6d ption('name')).{.$name.=.basenam
274e0 65 28 24 63 77 64 29 3b 0a 24 6e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b e($cwd);.$name.=.preg_replace('{
27500 28 3f 3a 28 5b 61 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b (?:([a-z])([A-Z])|([A-Z])([A-Z][
27520 61 2d 7a 5d 29 29 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6e 61 6d 65 a-z]))}',.'\\1\\3-\\2\\4',.$name
27540 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 69 66 );.$name.=.strtolower($name);.if
27560 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 29 29 20 7b 0a .(isset($git['github.user'])).{.
27580 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d 20 2e 20 27 2f $name.=.$git['github.user']...'/
275a0 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 '...$name;.}.elseif.(!empty($_SE
275c0 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 5f 53 RVER['USERNAME'])).{.$name.=.$_S
275e0 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b ERVER['USERNAME']...'/'...$name;
27600 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 29 20 7b .}.elseif.(get_current_user()).{
27620 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 20 2e 20 27 2f .$name.=.get_current_user()...'/
27640 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 6e '...$name;.}.else.{...$name.=.$n
27660 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 ame...'/'...$name;.}.}.else.{.if
27680 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 .(!preg_match('{^[a-z0-9_.-]+/[a
276a0 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e -z0-9_.-]+$}',.$name)).{.throw.n
276c0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 ew.\InvalidArgumentException(.'T
276e0 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 6e 61 6d 65 2e 27 20 69 73 20 69 6e 76 he.package.name.'.$name.'.is.inv
27700 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 alid,.it.should.be.lowercase.and
27720 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 .have.a.vendor.name,.a.forward.s
27740 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 lash,.and.a.package.name,.matchi
27760 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 ng:.[a-z0-9_.-]+/[a-z0-9_.-]+'.)
27780 3b 0a 7d 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 ;.}.}..$name.=.$dialog->askAndVa
277a0 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 lidate(.$output,.$dialog->getQue
277c0 73 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 3c 76 65 6e 64 6f 72 3e 2f 3c 6e stion('Package.name.(<vendor>/<n
277e0 61 6d 65 3e 29 27 2c 20 24 6e 61 6d 65 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 ame>)',.$name),.function.($value
27800 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 ).use.($name).{.if.(null.===.$va
27820 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 lue).{.return.$name;.}..if.(!pre
27840 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f g_match('{^[a-z0-9_.-]+/[a-z0-9_
27860 2e 2d 5d 2b 24 7d 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 .-]+$}',.$value)).{.throw.new.\I
27880 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 68 65 20 70 61 nvalidArgumentException(.'The.pa
278a0 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 76 61 6c 75 65 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 ckage.name.'.$value.'.is.invalid
278c0 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e 64 20 68 61 76 ,.it.should.be.lowercase.and.hav
278e0 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 e.a.vendor.name,.a.forward.slash
27900 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 69 6e 67 3a 20 ,.and.a.package.name,.matching:.
27920 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a 29 3b 0a 7d 0a [a-z0-9_.-]+/[a-z0-9_.-]+'.);.}.
27940 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 .return.$value;.}.);.$input->set
27960 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 73 63 72 69 70 Option('name',.$name);..$descrip
27980 74 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 tion.=.$input->getOption('descri
279a0 70 74 69 6f 6e 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d ption').?:.false;.$description.=
279c0 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d .$dialog->ask(.$output,.$dialog-
279e0 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 >getQuestion('Description',.$des
27a00 63 72 69 70 74 69 6f 6e 29 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 0a 29 3b 0a 24 69 6e 70 75 cription),.$description.);.$inpu
27a20 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 24 64 65 73 t->setOption('description',.$des
27a40 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 68 6f 72 cription);..if.(null.===.$author
27a60 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 29 29 20 .=.$input->getOption('author')).
27a80 7b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 29 20 26 {.if.(isset($git['user.name']).&
27aa0 26 20 69 73 73 65 74 28 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 24 &.isset($git['user.email'])).{.$
27ac0 61 75 74 68 6f 72 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 67 69 74 author.=.sprintf('%s.<%s>',.$git
27ae0 5b 27 75 73 65 72 2e 6e 61 6d 65 27 5d 2c 20 24 67 69 74 5b 27 75 73 65 72 2e 65 6d 61 69 6c 27 ['user.name'],.$git['user.email'
27b00 5d 29 3b 0a 7d 0a 7d 0a 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 61 75 74 68 6f 72 20 ]);.}.}..$self.=.$this;.$author.
27b20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 =.$dialog->askAndValidate(.$outp
27b40 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 41 75 74 68 6f 72 ut,.$dialog->getQuestion('Author
27b60 27 2c 20 24 61 75 74 68 6f 72 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 ',.$author),.function.($value).u
27b80 73 65 20 28 24 73 65 6c 66 2c 20 24 61 75 74 68 6f 72 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 se.($self,.$author).{.$value.=.$
27ba0 76 61 6c 75 65 20 3f 3a 20 24 61 75 74 68 6f 72 3b 0a 24 61 75 74 68 6f 72 20 3d 20 24 73 65 6c value.?:.$author;.$author.=.$sel
27bc0 66 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 76 61 6c 75 65 29 3b 0a 0a 72 f->parseAuthorString($value);..r
27be0 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 73 20 3c 25 73 3e 27 2c 20 24 61 75 74 68 6f 72 eturn.sprintf('%s.<%s>',.$author
27c00 5b 27 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 29 ['name'],.$author['email']);.}.)
27c20 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 24 61 ;.$input->setOption('author',.$a
27c40 75 74 68 6f 72 29 3b 0a 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 69 6e uthor);..$minimumStability.=.$in
27c60 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 3f 3a 20 27 put->getOption('stability').?:.'
27c80 27 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 64 69 61 6c 6f 67 2d 3e ';.$minimumStability.=.$dialog->
27ca0 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 askAndValidate(.$output,.$dialog
27cc0 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 4d 69 6e 69 6d 75 6d 20 53 74 61 62 69 6c 69 74 79 ->getQuestion('Minimum.Stability
27ce0 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 ',.$minimumStability),.function.
27d00 28 24 76 61 6c 75 65 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 ($value).use.($self,.$minimumSta
27d20 62 69 6c 69 74 79 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b bility).{.if.(null.===.$value).{
27d40 0a 72 65 74 75 72 6e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 69 66 .return.$minimumStability;.}..if
27d60 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 .(!isset(BasePackage::$stabiliti
27d80 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 es[$value])).{.throw.new.\Invali
27da0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 6d 69 6e dArgumentException(.'Invalid.min
27dc0 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 22 27 2e 24 76 61 6c 75 65 2e 27 22 2e 20 4d 75 73 imum.stability."'.$value.'"..Mus
27de0 74 20 62 65 20 65 6d 70 74 79 20 6f 72 20 6f 6e 65 20 6f 66 3a 20 27 2e 0a 69 6d 70 6c 6f 64 65 t.be.empty.or.one.of:.'..implode
27e00 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 (',.',.array_keys(BasePackage::$
27e20 73 74 61 62 69 6c 69 74 69 65 73 29 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 stabilities)).);.}..return.$valu
27e40 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 e;.}.);.$input->setOption('stabi
27e60 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 3b 0a 0a 24 6c 69 63 lity',.$minimumStability);..$lic
27e80 65 6e 73 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 ense.=.$input->getOption('licens
27ea0 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 64 69 61 6c 6f 67 e').?:.false;.$license.=.$dialog
27ec0 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 ->ask(.$output,.$dialog->getQues
27ee0 74 69 6f 6e 28 27 4c 69 63 65 6e 73 65 27 2c 20 24 6c 69 63 65 6e 73 65 29 2c 0a 24 6c 69 63 65 tion('License',.$license),.$lice
27f00 6e 73 65 0a 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 nse.);.$input->setOption('licens
27f20 65 27 2c 20 24 6c 69 63 65 6e 73 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e e',.$license);..$this->getIO()->
27f40 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 44 65 66 69 6e 65 20 79 6f writeError(array(.'',.'Define.yo
27f60 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 2c 0a 27 27 0a 29 29 3b 0a 0a 24 72 65 71 75 ur.dependencies.',.''.));..$requ
27f80 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d irements.=.array();.if.($dialog-
27fa0 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f >askConfirmation($output,.$dialo
27fc0 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 g->getQuestion('Would.you.like.t
27fe0 6f 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 65 71 75 o.define.your.dependencies.(requ
28000 69 72 65 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 ire).interactively',.'yes',.'?')
28020 2c 20 74 72 75 65 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 ,.true)).{.$requirements.=.$this
28040 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 ->determineRequirements($input,.
28060 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 $output,.$input->getOption('requ
28080 69 72 65 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 ire'));.}.$input->setOption('req
280a0 75 69 72 65 27 2c 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 24 64 65 76 52 65 71 75 69 uire',.$requirements);.$devRequi
280c0 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e rements.=.array();.if.($dialog->
280e0 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 askConfirmation($output,.$dialog
28100 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 74 6f ->getQuestion('Would.you.like.to
28120 20 64 65 66 69 6e 65 20 79 6f 75 72 20 64 65 76 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 28 72 .define.your.dev.dependencies.(r
28140 65 71 75 69 72 65 2d 64 65 76 29 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 27 2c 20 27 79 65 73 equire-dev).interactively',.'yes
28160 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e ',.'?'),.true)).{.$devRequiremen
28180 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 65 6d 65 6e 74 ts.=.$this->determineRequirement
281a0 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 s($input,.$output,.$input->getOp
281c0 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 29 3b 0a 7d 0a 24 69 6e 70 75 74 2d 3e tion('require-dev'));.}.$input->
281e0 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 24 64 65 76 52 65 71 setOption('require-dev',.$devReq
28200 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f uirements);.}..protected.functio
28220 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 n.findPackages($name).{.return.$
28240 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 28 29 2d 3e 73 65 61 72 63 68 28 24 6e 61 6d 65 29 3b this->getRepos()->search($name);
28260 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 28 .}..protected.function.getRepos(
28280 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 70 6f 73 29 20 7b 0a 24 74 68 69 73 2d 3e ).{.if.(!$this->repos).{.$this->
282a0 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 repos.=.new.CompositeRepository(
282c0 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 61 72 72 61 79 28 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 array_merge(.array(new.PlatformR
282e0 65 70 6f 73 69 74 6f 72 79 29 2c 0a 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 44 65 66 61 75 epository),.Factory::createDefau
28300 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a 29 ltRepositories($this->getIO()).)
28320 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 3b 0a 7d 0a 0a 70 72 );.}..return.$this->repos;.}..pr
28340 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 72 6d 69 6e 65 52 65 71 75 69 72 otected.function.determineRequir
28360 65 6d 65 6e 74 73 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 ements(InputInterface.$input,.Ou
28380 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 65 71 75 69 72 65 73 tputInterface.$output,.$requires
283a0 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 .=.array()).{.$dialog.=.$this->g
283c0 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 24 70 etHelperSet()->get('dialog');.$p
283e0 72 6f 6d 70 74 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 53 65 rompt.=.$dialog->getQuestion('Se
28400 61 72 63 68 20 66 6f 72 20 61 20 70 61 63 6b 61 67 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 arch.for.a.package',.false,.':')
28420 3b 0a 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 ;..if.($requires).{.$requires.=.
28440 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 72 65 $this->normalizeRequirements($re
28460 71 75 69 72 65 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 quires);.$result.=.array();..for
28480 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 each.($requires.as.$requirement)
284a0 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 .{.if.(!isset($requirement['vers
284c0 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 66 69 ion'])).{...$version.=.$this->fi
284e0 6e 64 42 65 73 74 56 65 72 73 69 6f 6e 46 6f 72 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c 20 ndBestVersionForPackage($input,.
28500 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 72 65 71 75 69 72 65 6d $requirement['name']);.$requirem
28520 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 ent['version'].=.$version;..$thi
28540 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 0a s->getIO()->writeError(sprintf(.
28560 27 55 73 69 6e 67 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 66 'Using.version.<info>%s</info>.f
28580 6f 72 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 72 65 71 75 69 72 65 6d 65 6e or.<info>%s</info>',.$requiremen
285a0 74 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 t['version'],.$requirement['name
285c0 27 5d 0a 29 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 '].));.}..$result[].=.$requireme
285e0 6e 74 5b 27 6e 61 6d 65 27 5d 20 2e 20 27 20 27 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b nt['name']...'.'...$requirement[
28600 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 'version'];.}..return.$result;.}
28620 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 ..$versionParser.=.new.VersionPa
28640 72 73 65 72 28 29 3b 0a 77 68 69 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 rser();.while.(null.!==.$package
28660 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 6d 70 74 .=.$dialog->ask($output,.$prompt
28680 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 )).{.$matches.=.$this->findPacka
286a0 67 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 ges($package);..if.(count($match
286c0 65 73 29 29 20 7b 0a 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 68 6f 69 es)).{.$exactMatch.=.null;.$choi
286e0 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 ces.=.array();.foreach.($matches
28700 20 61 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 66 6f 75 6e 64 50 61 63 6b 61 67 65 29 20 .as.$position.=>.$foundPackage).
28720 7b 0a 24 63 68 6f 69 63 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 {.$choices[].=.sprintf('.<info>%
28740 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 27 2c 20 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 66 5s</info>.%s',."[$position]",.$f
28760 6f 75 6e 64 50 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 66 6f 75 6e 64 oundPackage['name']);.if.($found
28780 50 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a Package['name'].===.$package).{.
287a0 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a $exactMatch.=.true;.break;.}.}..
287c0 0a 20 69 66 20 28 21 24 65 78 61 63 74 4d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 ..if.(!$exactMatch).{.$this->get
287e0 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 70 72 69 IO()->writeError(array(.'',.spri
28800 6e 74 66 28 27 46 6f 75 6e 64 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 63 6b 61 ntf('Found.<info>%s</info>.packa
28820 67 65 73 20 6d 61 74 63 68 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 63 ges.matching.<info>%s</info>',.c
28840 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 ount($matches),.$package),.''.))
28860 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 ;..$this->getIO()->writeError($c
28880 68 6f 69 63 65 73 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 hoices);.$this->getIO()->writeEr
288a0 72 6f 72 28 27 27 29 3b 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 ror('');..$validator.=.function.
288c0 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 73 65 20 28 24 6d 61 74 63 68 65 73 2c 20 24 76 65 72 ($selection).use.($matches,.$ver
288e0 73 69 6f 6e 50 61 72 73 65 72 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 sionParser).{.if.(''.===.$select
28900 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 6e ion).{.return.false;.}..if.(is_n
28920 75 6d 65 72 69 63 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 umeric($selection).&&.isset($mat
28940 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 29 29 20 7b 0a 24 70 61 63 6b ches[(int).$selection])).{.$pack
28960 61 67 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d age.=.$matches[(int).$selection]
28980 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 ;..return.$package['name'];.}..i
289a0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 3f 50 3c 6e 61 6d 65 3e 5b 5c 53 f.(preg_match('{^\s*(?P<name>[\S
289c0 2f 5d 2b 29 28 3f 3a 5c 73 2b 28 3f 50 3c 76 65 72 73 69 6f 6e 3e 5c 53 2b 29 29 3f 5c 73 2a 24 /]+)(?:\s+(?P<version>\S+))?\s*$
289e0 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e 2c 20 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 29 }',.$selection,.$packageMatches)
28a00 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 73 5b 27 76 ).{.if.(isset($packageMatches['v
28a20 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d ersion'])).{.....$versionParser-
28a40 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 70 61 63 6b 61 67 65 4d 61 74 63 68 65 >parseConstraints($packageMatche
28a60 73 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 4d s['version']);..return.$packageM
28a80 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 4d 61 74 63 68 atches['name'].'.'.$packageMatch
28aa0 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 70 61 63 6b es['version'];.}....return.$pack
28ac0 61 67 65 4d 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 ageMatches['name'];.}..throw.new
28ae0 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 61 20 76 61 6c 69 64 20 73 65 6c 65 63 74 69 .\Exception('Not.a.valid.selecti
28b00 6f 6e 27 29 3b 0a 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 on');.};..$package.=.$dialog->as
28b20 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 kAndValidate($output,.$dialog->g
28b40 65 74 51 75 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 70 61 63 6b 61 67 65 20 23 20 74 6f 20 61 etQuestion('Enter.package.#.to.a
28b60 64 64 2c 20 6f 72 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 dd,.or.the.complete.package.name
28b80 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 65 64 27 2c 20 66 61 6c 73 65 2c 20 27 3a .if.it.is.not.listed',.false,.':
28ba0 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c '),.$validator,.3);.}....if.(fal
28bc0 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 se.!==.$package.&&.false.===.str
28be0 70 6f 73 28 24 70 61 63 6b 61 67 65 2c 20 27 20 27 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 pos($package,.'.')).{.$validator
28c00 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 .=.function.($input).{.$input.=.
28c20 74 72 69 6d 28 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 20 3f 3a 20 trim($input);..return.$input.?:.
28c40 66 61 6c 73 65 3b 0a 7d 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 64 69 61 6c 6f 67 false;.};..$constraint.=.$dialog
28c60 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c ->askAndValidate(.$output,.$dial
28c80 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 45 6e 74 65 72 20 74 68 65 20 76 65 72 73 69 og->getQuestion('Enter.the.versi
28ca0 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 72 65 71 75 69 72 65 20 28 6f 72 20 6c 65 61 on.constraint.to.require.(or.lea
28cc0 76 65 20 62 6c 61 6e 6b 20 74 6f 20 75 73 65 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 ve.blank.to.use.the.latest.versi
28ce0 6f 6e 29 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 0a 24 76 61 6c 69 64 61 74 6f 72 2c 0a 33 on)',.false,.':'),.$validator,.3
28d00 29 0a 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b ).;.if.(false.===.$constraint).{
28d20 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 42 65 73 74 56 65 .$constraint.=.$this->findBestVe
28d40 72 73 69 6f 6e 46 6f 72 50 61 63 6b 61 67 65 28 24 69 6e 70 75 74 2c 20 24 70 61 63 6b 61 67 65 rsionForPackage($input,.$package
28d60 29 3b 0a 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 );..$this->getIO()->writeError(s
28d80 70 72 69 6e 74 66 28 0a 27 55 73 69 6e 67 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c printf(.'Using.version.<info>%s<
28da0 2f 69 6e 66 6f 3e 20 66 6f 72 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 63 6f /info>.for.<info>%s</info>',.$co
28dc0 6e 73 74 72 61 69 6e 74 2c 0a 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 nstraint,.$package.));.}..$packa
28de0 67 65 20 2e 3d 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 ge..=.'.'.$constraint;.}..if.(fa
28e00 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 lse.!==.$package).{.$requires[].
28e20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 =.$package;.}.}.}..return.$requi
28e40 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 res;.}..protected.function.forma
28e60 74 41 75 74 68 6f 72 73 28 24 61 75 74 68 6f 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 tAuthors($author).{.return.array
28e80 28 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f ($this->parseAuthorString($autho
28ea0 72 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 r));.}..protected.function.forma
28ec0 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e 74 tRequirements(array.$requirement
28ee0 73 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 71 75 69 s).{.$requires.=.array();.$requi
28f00 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 rements.=.$this->normalizeRequir
28f20 65 6d 65 6e 74 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 ements($requirements);.foreach.(
28f40 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b $requirements.as.$requirement).{
28f60 0a 24 72 65 71 75 69 72 65 73 5b 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 5d .$requires[$requirement['name']]
28f80 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 .=.$requirement['version'];.}..r
28fa0 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 eturn.$requires;.}..protected.fu
28fc0 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c nction.getGitConfig().{.if.(null
28fe0 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 .!==.$this->gitConfig).{.return.
29000 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e $this->gitConfig;.}..$finder.=.n
29020 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d ew.ExecutableFinder();.$gitBin.=
29040 20 24 66 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e .$finder->find('git');..$cmd.=.n
29060 65 77 20 50 72 6f 63 65 73 73 28 73 70 72 69 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c ew.Process(sprintf('%s.config.-l
29080 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 67 69 74 42 ',.ProcessExecutor::escape($gitB
290a0 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a 69 66 20 28 24 63 6d 64 2d 3e 69 in)));.$cmd->run();..if.($cmd->i
290c0 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 sSuccessful()).{.$this->gitConfi
290e0 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 5e 28 g.=.array();.preg_match_all('{^(
29100 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 2d 3e 67 65 74 4f 75 74 70 75 74 [^=]+)=(.*)$}m',.$cmd->getOutput
29120 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 3b 0a 66 (),.$matches,.PREG_SET_ORDER);.f
29140 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 24 74 oreach.($matches.as.$match).{.$t
29160 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 his->gitConfig[$match[1]].=.$mat
29180 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 ch[2];.}..return.$this->gitConfi
291a0 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 g;.}..return.$this->gitConfig.=.
291c0 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 array();.}..................prot
291e0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 ected.function.hasVendorIgnore($
29200 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 76 65 6e 64 6f 72 27 29 0a ignoreFile,.$vendor.=.'vendor').
29220 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 {.if.(!file_exists($ignoreFile))
29240 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 .{.return.false;.}..$pattern.=.s
29260 70 72 69 6e 74 66 28 27 7b 5e 2f 3f 25 73 28 2f 5c 2a 3f 29 3f 24 7d 27 2c 20 70 72 65 67 5f 71 printf('{^/?%s(/\*?)?$}',.preg_q
29280 75 6f 74 65 28 24 76 65 6e 64 6f 72 29 29 3b 0a 0a 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 uote($vendor));..$lines.=.file($
292a0 69 67 6e 6f 72 65 46 69 6c 65 2c 20 46 49 4c 45 5f 49 47 4e 4f 52 45 5f 4e 45 57 5f 4c 49 4e 45 ignoreFile,.FILE_IGNORE_NEW_LINE
292c0 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a S);.foreach.($lines.as.$line).{.
292e0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 6c 69 6e 65 29 29 if.(preg_match($pattern,.$line))
29300 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 .{.return.true;.}.}..return.fals
29320 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 e;.}..protected.function.normali
29340 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 6d 65 6e zeRequirements(array.$requiremen
29360 74 73 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 ts).{.$parser.=.new.VersionParse
29380 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 6d 65 56 r();..return.$parser->parseNameV
293a0 65 72 73 69 6f 6e 50 61 69 72 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 70 ersionPairs($requirements);.}..p
293c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 65 6e 64 6f 72 49 67 6e 6f 72 rotected.function.addVendorIgnor
293e0 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 20 3d 20 27 2f 76 65 6e 64 6f e($ignoreFile,.$vendor.=.'/vendo
29400 72 2f 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 22 3b 0a 69 66 20 28 66 69 6c 65 5f r/').{.$contents.=."";.if.(file_
29420 65 78 69 73 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 exists($ignoreFile)).{.$contents
29440 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 6c 65 .=.file_get_contents($ignoreFile
29460 29 3b 0a 0a 69 66 20 28 22 5c 6e 22 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 );..if.("\n".!==.substr($content
29480 73 2c 20 30 2c 20 2d 31 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 2e 3d 20 22 5c 6e 22 3b 0a s,.0,.-1)).{.$contents..=."\n";.
294a0 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 69 67 6e 6f 72 65 46 69 }.}..file_put_contents($ignoreFi
294c0 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 20 2e 20 24 76 65 6e 64 6f 72 2e 20 22 5c 6e 22 29 3b 0a le,.$contents...$vendor.."\n");.
294e0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 45 6d 61 }..protected.function.isValidEma
29500 69 6c 28 24 65 6d 61 69 6c 29 0a 7b 0a 0a 20 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 il($email).{...if.(!function_exi
29520 73 74 73 28 27 66 69 6c 74 65 72 5f 76 61 72 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 sts('filter_var')).{.return.true
29540 3b 0a 7d 0a 0a 0a 20 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 ;.}....if.(version_compare(PHP_V
29560 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 33 27 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 ERSION,.'5.3.3',.'<')).{.return.
29580 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 66 69 6c 74 65 72 true;.}..return.false.!==.filter
295a0 5f 76 61 72 28 24 65 6d 61 69 6c 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 _var($email,.FILTER_VALIDATE_EMA
295c0 49 4c 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 6f 6c IL);.}..private.function.getPool
295e0 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 69 66 20 28 21 24 (InputInterface.$input).{.if.(!$
29600 74 68 69 73 2d 3e 70 6f 6f 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 6e 65 77 20 this->pool).{.$this->pool.=.new.
29620 50 6f 6f 6c 28 24 74 68 69 73 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 Pool($this->getMinimumStability(
29640 24 69 6e 70 75 74 29 29 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 $input));.$this->pool->addReposi
29660 74 6f 72 79 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 tory($this->getRepos());.}..retu
29680 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 rn.$this->pool;.}..private.funct
296a0 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 49 6e 70 75 74 49 6e 74 ion.getMinimumStability(InputInt
296c0 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 erface.$input).{.if.($input->has
296e0 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 Option('stability')).{.return.$i
29700 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 3f 3a 20 nput->getOption('stability').?:.
29720 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 'stable';.}..$file.=.Factory::ge
29740 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 tComposerFile();.if.(is_file($fi
29760 6c 65 29 20 26 26 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 73 5f le).&&.is_readable($file).&&.is_
29780 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 66 69 array($composer.=.json_decode(fi
297a0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 29 2c 20 74 72 75 65 29 29 29 20 le_get_contents($file),.true))).
297c0 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 6d 69 6e 69 6d 75 6d 2d {.if.(!empty($composer['minimum-
297e0 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 stability'])).{.return.$composer
29800 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 ['minimum-stability'];.}.}..retu
29820 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 rn.'stable';.}............privat
29840 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 42 65 73 74 56 65 72 73 69 6f 6e 46 6f 72 50 61 63 e.function.findBestVersionForPac
29860 6b 61 67 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 24 6e 61 6d kage(InputInterface.$input,.$nam
29880 65 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 56 65 e).{...$versionSelector.=.new.Ve
298a0 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 50 6f 6f 6c 28 24 69 6e rsionSelector($this->getPool($in
298c0 70 75 74 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 76 65 72 73 69 6f 6e 53 65 6c 65 63 74 put));.$package.=.$versionSelect
298e0 6f 72 2d 3e 66 69 6e 64 42 65 73 74 43 61 6e 64 69 64 61 74 65 28 24 6e 61 6d 65 29 3b 0a 0a 69 or->findBestCandidate($name);..i
29900 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c f.(!$package).{.throw.new.\Inval
29920 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 43 6f idArgumentException(sprintf(.'Co
29940 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 25 73 20 61 74 20 61 6e 79 20 76 uld.not.find.package.%s.at.any.v
29960 65 72 73 69 6f 6e 20 66 6f 72 20 79 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 ersion.for.your.minimum-stabilit
29980 79 20 28 25 73 29 2e 20 43 68 65 63 6b 20 74 68 65 20 70 61 63 6b 61 67 65 20 73 70 65 6c 6c 69 y.(%s)..Check.the.package.spelli
299a0 6e 67 20 6f 72 20 79 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 2c 0a 24 ng.or.your.minimum-stability',.$
299c0 6e 61 6d 65 2c 0a 24 74 68 69 73 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 name,.$this->getMinimumStability
299e0 28 24 69 6e 70 75 74 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 53 ($input).));.}..return.$versionS
29a00 65 6c 65 63 74 6f 72 2d 3e 66 69 6e 64 52 65 63 6f 6d 6d 65 6e 64 65 64 52 65 71 75 69 72 65 56 elector->findRecommendedRequireV
29a20 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ersion($package);.}.}.<?php.....
29a40 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f .......namespace.Composer\Downlo
29a60 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 ader;..use.Composer\Config;.use.
29a80 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Composer\Package\PackageInterfac
29aa0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c e;.use.Composer\Package\Version\
29ac0 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c VersionParser;.use.Composer\Util
29ae0 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 \ProcessExecutor;.use.Composer\I
29b00 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c O\IOInterface;.use.Composer\Util
29b20 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 \Filesystem;.....abstract.class.
29b40 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 VcsDownloader.implements.Downloa
29b60 64 65 72 49 6e 74 65 72 66 61 63 65 2c 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 derInterface,.ChangeReportInterf
29b80 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ace.{.protected.$io;.protected.$
29ba0 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 config;.protected.$process;.prot
29bc0 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ected.$filesystem;..public.funct
29be0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c ion.__construct(IOInterface.$io,
29c00 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .Config.$config,.ProcessExecutor
29c20 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 .$process.=.null,.Filesystem.$fs
29c40 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 .=.null).{.$this->io.=.$io;.$thi
29c60 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 s->config.=.$config;.$this->proc
29c80 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 ess.=.$process.?:.new.ProcessExe
29ca0 63 75 74 6f 72 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 cutor($io);.$this->filesystem.=.
29cc0 24 66 73 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 $fs.?:.new.Filesystem;.}.....pub
29ce0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 lic.function.getInstallationSour
29d00 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ce().{.return.'source';.}.....pu
29d20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e blic.function.download(PackageIn
29d40 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 terface.$package,.$path).{.if.(!
29d60 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 $package->getSourceReference()).
29d80 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
29da0 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 ption('Package.'.$package->getPr
29dc0 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 72 65 6e 63 ettyName().'.is.missing.referenc
29de0 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 e.information');.}..$this->io->w
29e00 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e riteError("..-.Installing.<info>
29e20 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 "...$package->getName()..."</inf
29e40 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a o>.(<comment>"...VersionParser::
29e60 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d formatVersion($package)..."</com
29e80 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6d 70 ment>)");.$this->filesystem->emp
29ea0 74 79 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 0a 24 75 72 6c 73 20 3d 20 24 70 61 tyDirectory($path);..$urls.=.$pa
29ec0 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 3b 0a 77 68 69 6c 65 20 28 24 ckage->getSourceUrls();.while.($
29ee0 75 72 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 72 79 20 url.=.array_shift($urls)).{.try.
29f00 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 {.if.(Filesystem::isLocalPath($u
29f20 72 6c 29 29 20 7b 0a 24 75 72 6c 20 3d 20 72 65 61 6c 70 61 74 68 28 24 75 72 6c 29 3b 0a 7d 0a rl)).{.$url.=.realpath($url);.}.
29f40 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 $this->doDownload($package,.$pat
29f60 68 2c 20 24 75 72 6c 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 h,.$url);.break;.}.catch.(\Excep
29f80 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 tion.$e).{.if.($this->io->isDebu
29fa0 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 g()).{.$this->io->writeError('Fa
29fc0 69 6c 65 64 3a 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e iled:.['.get_class($e).'].'.$e->
29fe0 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 6f 75 6e 74 28 24 getMessage());.}.elseif.(count($
2a000 75 72 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 urls)).{.$this->io->writeError('
2a020 20 20 20 20 46 61 69 6c 65 64 2c 20 74 72 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c 27 ....Failed,.trying.the.next.URL'
2a040 29 3b 0a 7d 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 );.}.if.(!count($urls)).{.throw.
2a060 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 $e;.}.}.}..$this->io->writeError
2a080 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 ('');.}.....public.function.upda
2a0a0 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 te(PackageInterface.$initial,.Pa
2a0c0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b ckageInterface.$target,.$path).{
2a0e0 0a 69 66 20 28 21 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 .if.(!$target->getSourceReferenc
2a100 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e e()).{.throw.new.\InvalidArgumen
2a120 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 74 61 72 67 65 74 2d 3e 67 tException('Package.'.$target->g
2a140 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 69 73 20 6d 69 73 73 69 6e 67 20 72 65 66 65 etPrettyName().'.is.missing.refe
2a160 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 rence.information');.}..$name.=.
2a180 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c $target->getName();.if.($initial
2a1a0 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 74 2d ->getPrettyVersion().==.$target-
2a1c0 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 >getPrettyVersion()).{.if.($targ
2a1e0 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 20 7b et->getSourceType().===.'svn').{
2a200 0a 24 66 72 6f 6d 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 .$from.=.$initial->getSourceRefe
2a220 72 65 6e 63 65 28 29 3b 0a 24 74 6f 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 rence();.$to.=.$target->getSourc
2a240 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 73 eReference();.}.else.{.$from.=.s
2a260 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e ubstr($initial->getSourceReferen
2a280 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 24 74 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 ce(),.0,.7);.$to.=.substr($targe
2a2a0 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a t->getSourceReference(),.0,.7);.
2a2c0 7d 0a 24 6e 61 6d 65 20 2e 3d 20 27 20 27 2e 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 65 74 }.$name..=.'.'.$initial->getPret
2a2e0 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 56 65 tyVersion();.}.else.{.$from.=.Ve
2a300 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 69 6e 69 74 rsionParser::formatVersion($init
2a320 69 61 6c 29 3b 0a 24 74 6f 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 ial);.$to.=.VersionParser::forma
2a340 74 56 65 72 73 69 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d tVersion($target);.}..$this->io-
2a360 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 55 70 64 61 74 69 6e 67 20 3c 69 6e 66 6f 3e >writeError("..-.Updating.<info>
2a380 22 20 2e 20 24 6e 61 6d 65 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 "...$name..."</info>.(<comment>"
2a3a0 20 2e 20 24 66 72 6f 6d 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3d 3e 20 3c 63 6f 6d 6d 65 ...$from..."</comment>.=>.<comme
2a3c0 6e 74 3e 22 20 2e 20 24 74 6f 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 74 nt>"...$to..."</comment>)");..$t
2a3e0 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 his->cleanChanges($initial,.$pat
2a400 68 2c 20 74 72 75 65 29 3b 0a 24 75 72 6c 73 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f h,.true);.$urls.=.$target->getSo
2a420 75 72 63 65 55 72 6c 73 28 29 3b 0a 77 68 69 6c 65 20 28 24 75 72 6c 20 3d 20 61 72 72 61 79 5f urceUrls();.while.($url.=.array_
2a440 73 68 69 66 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 72 79 20 7b 0a 69 66 20 28 46 69 6c 65 73 79 shift($urls)).{.try.{.if.(Filesy
2a460 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 6c 20 stem::isLocalPath($url)).{.$url.
2a480 3d 20 72 65 61 6c 70 61 74 68 28 24 75 72 6c 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 =.realpath($url);.}.$this->doUpd
2a4a0 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 ate($initial,.$target,.$path,.$u
2a4c0 72 6c 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 rl);.break;.}.catch.(\Exception.
2a4e0 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 $e).{.if.($this->io->isDebug()).
2a500 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 3a {.$this->io->writeError('Failed:
2a520 20 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 .['.get_class($e).'].'.$e->getMe
2a540 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 6f 75 6e 74 28 24 75 72 6c 73 29 ssage());.}.elseif.(count($urls)
2a560 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 46 ).{.$this->io->writeError('....F
2a580 61 69 6c 65 64 2c 20 74 72 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c 27 29 3b 0a 7d 20 ailed,.trying.the.next.URL');.}.
2a5a0 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 else.{...$this->reapplyChanges($
2a5c0 70 61 74 68 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e path);..throw.$e;.}.}.}..$this->
2a5e0 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 74 reapplyChanges($path);....if.($t
2a600 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 his->io->isVerbose()).{.$message
2a620 20 3d 20 27 50 75 6c 6c 69 6e 67 20 69 6e 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 .=.'Pulling.in.changes:';.$logs.
2a640 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 69 6e 69 74 69 61 6c 2d =.$this->getCommitLogs($initial-
2a660 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 74 61 72 67 65 74 2d 3e >getSourceReference(),.$target->
2a680 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 0a 69 getSourceReference(),.$path);..i
2a6a0 66 20 28 21 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 52 f.(!trim($logs)).{.$message.=.'R
2a6c0 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f 67 73 20 3d 20 24 olling.back.changes:';.$logs.=.$
2a6e0 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 74 61 72 67 65 74 2d 3e 67 65 74 this->getCommitLogs($target->get
2a700 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 SourceReference(),.$initial->get
2a720 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 69 66 SourceReference(),.$path);.}..if
2a740 20 28 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6c 6f 67 73 20 3d 20 69 6d 70 6c 6f 64 65 .(trim($logs)).{.$logs.=.implode
2a760 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 ("\n",.array_map(function.($line
2a780 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d 2c 20 ).{.return.'......'...$line;.},.
2a7a0 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6c 6f 67 73 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e explode("\n",.$logs)));..$this->
2a7c0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 27 2e 24 6d 65 73 73 61 67 65 29 3b io->writeError('....'.$message);
2a7e0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6c 6f 67 73 29 3b 0a 7d .$this->io->writeError($logs);.}
2a800 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d .}..$this->io->writeError('');.}
2a820 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b .....public.function.remove(Pack
2a840 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a ageInterface.$package,.$path).{.
2a860 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 52 65 6d 6f 76 $this->io->writeError("..-.Remov
2a880 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ing.<info>"...$package->getName(
2a8a0 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 24 70 61 63 6b )..."</info>.(<comment>"...$pack
2a8c0 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 22 3c 2f 63 6f 6d age->getPrettyVersion()..."</com
2a8e0 6d 65 6e 74 3e 29 22 29 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 ment>)");.$this->cleanChanges($p
2a900 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 74 68 69 ackage,.$path,.false);.if.(!$thi
2a920 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 s->filesystem->removeDirectory($
2a940 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 path)).{.throw.new.\RuntimeExcep
2a960 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 tion('Could.not.completely.delet
2a980 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a e.'.$path.',.aborting.');.}.}...
2a9a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 ...public.function.setOutputProg
2a9c0 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ress($outputProgress).{.return.$
2a9e0 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 this;.}...........protected.func
2aa00 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 tion.cleanChanges(PackageInterfa
2aa20 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 0a ce.$package,.$path,.$update).{..
2aa40 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 .if.(null.!==.$this->getLocalCha
2aa60 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e nges($package,.$path)).{.throw.n
2aa80 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 69 72 ew.\RuntimeException('Source.dir
2aaa0 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d 6d 69 ectory.'...$path...'.has.uncommi
2aac0 74 74 65 64 20 63 68 61 6e 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 tted.changes.');.}.}........prot
2aae0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 ected.function.reapplyChanges($p
2ab00 61 74 68 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 ath).{.}.........abstract.protec
2ab20 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 ted.function.doDownload(PackageI
2ab40 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b nterface.$package,.$path,.$url);
2ab60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
2ab80 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ction.doUpdate(PackageInterface.
2aba0 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 $initial,.PackageInterface.$targ
2abc0 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 et,.$path,.$url);..........abstr
2abe0 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 act.protected.function.getCommit
2ac00 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 Logs($fromReference,.$toReferenc
2ac20 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 e,.$path);.}.<?php............na
2ac40 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 mespace.Composer\Downloader;..us
2ac60 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c e.Composer\Config;.use.Composer\
2ac80 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 Cache;.use.Composer\EventDispatc
2aca0 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 her\EventDispatcher;.use.Compose
2acc0 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 r\Util\ProcessExecutor;.use.Comp
2ace0 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 52 61 72 41 72 63 68 oser\IO\IOInterface;.use.RarArch
2ad00 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 ive;.........class.RarDownloader
2ad20 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f .extends.ArchiveDownloader.{.pro
2ad40 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tected.$process;..public.functio
2ad60 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 n.__construct(IOInterface.$io,.C
2ad80 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 onfig.$config,.EventDispatcher.$
2ada0 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 eventDispatcher.=.null,.Cache.$c
2adc0 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 ache.=.null,.ProcessExecutor.$pr
2ade0 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d ocess.=.null).{.$this->process.=
2ae00 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .$process.?:.new.ProcessExecutor
2ae20 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 ($io);.parent::__construct($io,.
2ae40 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 $config,.$eventDispatcher,.$cach
2ae60 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 e);.}..protected.function.extrac
2ae80 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 t($file,.$path).{.$processError.
2aea0 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e =.null;....if.(!defined('PHP_WIN
2aec0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 DOWS_VERSION_BUILD')).{.$command
2aee0 20 3d 20 27 75 6e 72 61 72 20 78 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a .=.'unrar.x.'...ProcessExecutor:
2af00 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 20 2e 20 27 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 :escape($file)...'.'...ProcessEx
2af20 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 68 6d ecutor::escape($path)...'.&&.chm
2af40 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 od.-R.u+w.'...ProcessExecutor::e
2af60 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e scape($path);..if.(0.===.$this->
2af80 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f process->execute($command,.$igno
2afa0 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 redOutput)).{.return;.}..$proces
2afc0 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 sError.=.'Failed.to.execute.'...
2afe0 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 $command..."\n\n"...$this->proce
2b000 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c ss->getErrorOutput();.}..if.(!cl
2b020 61 73 73 5f 65 78 69 73 74 73 28 27 52 61 72 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 ass_exists('RarArchive')).{...$i
2b040 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a niPath.=.php_ini_loaded_file();.
2b060 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 .if.($iniPath).{.$iniMessage.=.'
2b080 54 68 65 20 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 The.php.ini.used.by.your.command
2b0a0 2d 6c 69 6e 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c -line.PHP.is:.'...$iniPath;.}.el
2b0c0 73 65 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 se.{.$iniMessage.=.'A.php.ini.fi
2b0e0 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 le.does.not.exist..You.will.have
2b100 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 .to.create.one.';.}..$error.=."C
2b120 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c ould.not.decompress.the.archive,
2b140 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 .enable.the.PHP.rar.extension.or
2b160 20 69 6e 73 74 61 6c 6c 20 75 6e 72 61 72 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 .install.unrar.\n"...$iniMessage
2b180 20 2e 20 22 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 ..."\n"...$processError;..if.(!d
2b1a0 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c efined('PHP_WINDOWS_VERSION_BUIL
2b1c0 44 27 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d D')).{.$error.=."Could.not.decom
2b1e0 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 press.the.archive,.enable.the.PH
2b200 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 P.rar.extension.\n"...$iniMessag
2b220 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f e;.}..throw.new.\RuntimeExceptio
2b240 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 20 3d 20 52 61 72 41 n($error);.}..$rarArchive.=.RarA
2b260 72 63 68 69 76 65 3a 3a 6f 70 65 6e 28 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 rchive::open($file);..if.(false.
2b280 3d 3d 3d 20 24 72 61 72 41 72 63 68 69 76 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e ===.$rarArchive).{.throw.new.\Un
2b2a0 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f expectedValueException('Could.no
2b2c0 74 20 6f 70 65 6e 20 52 41 52 20 61 72 63 68 69 76 65 3a 20 27 20 2e 20 24 66 69 6c 65 29 3b 0a t.open.RAR.archive:.'...$file);.
2b2e0 7d 0a 0a 24 65 6e 74 72 69 65 73 20 3d 20 24 72 61 72 41 72 63 68 69 76 65 2d 3e 67 65 74 45 6e }..$entries.=.$rarArchive->getEn
2b300 74 72 69 65 73 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 69 65 73 tries();..if.(false.===.$entries
2b320 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
2b340 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 52 41 52 20 61 72 63 68 69 76 65 20 'Could.not.retrieve.RAR.archive.
2b360 65 6e 74 72 69 65 73 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 74 72 69 65 73 20 entries');.}..foreach.($entries.
2b380 61 73 20 24 65 6e 74 72 79 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 as.$entry).{.if.(false.===.$entr
2b3a0 79 2d 3e 65 78 74 72 61 63 74 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c y->extract($path)).{.throw.new.\
2b3c0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 65 78 74 72 RuntimeException('Could.not.extr
2b3e0 61 63 74 20 65 6e 74 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 2d 3e 63 act.entry');.}.}..$rarArchive->c
2b400 6c 6f 73 65 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d lose();.}.}.<?php............nam
2b420 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 espace.Composer\Downloader;..use
2b440 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 .Composer\Config;.use.Composer\C
2b460 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 ache;.use.Composer\IO\IOInterfac
2b480 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 e;.use.Composer\Package\PackageI
2b4a0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 nterface;.use.Composer\Package\V
2b4c0 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 ersion\VersionParser;.use.Compos
2b4e0 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 er\Plugin\PluginEvents;.use.Comp
2b500 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 oser\Plugin\PreFileDownloadEvent
2b520 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 ;.use.Composer\EventDispatcher\E
2b540 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 ventDispatcher;.use.Composer\Uti
2b560 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c l\Filesystem;.use.Composer\Util\
2b580 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 RemoteFilesystem;..........class
2b5a0 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c .FileDownloader.implements.Downl
2b5c0 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a oaderInterface.{.protected.$io;.
2b5e0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 protected.$config;.protected.$rf
2b600 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 6f 74 65 63 s;.protected.$filesystem;.protec
2b620 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 50 72 6f ted.$cache;.protected.$outputPro
2b640 67 72 65 73 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 gress.=.true;............public.
2b660 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 function.__construct(IOInterface
2b680 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 .$io,.Config.$config,.EventDispa
2b6a0 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 tcher.$eventDispatcher.=.null,.C
2b6c0 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 ache.$cache.=.null,.RemoteFilesy
2b6e0 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 stem.$rfs.=.null,.Filesystem.$fi
2b700 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 lesystem.=.null).{.$this->io.=.$
2b720 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 io;.$this->config.=.$config;.$th
2b740 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 is->eventDispatcher.=.$eventDisp
2b760 61 74 63 68 65 72 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 atcher;.$this->rfs.=.$rfs.?:.new
2b780 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b .RemoteFilesystem($io,.$config);
2b7a0 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d .$this->filesystem.=.$filesystem
2b7c0 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 .?:.new.Filesystem();.$this->cac
2b7e0 68 65 20 3d 20 24 63 61 63 68 65 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 20 26 he.=.$cache;..if.($this->cache.&
2b800 26 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 49 73 4e 65 63 65 73 73 61 72 79 28 29 29 &.$this->cache->gcIsNecessary())
2b820 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 .{.$this->cache->gc($config->get
2b840 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 ('cache-files-ttl'),.$config->ge
2b860 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a 0a t('cache-files-maxsize'));.}.}..
2b880 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 ...public.function.getInstallati
2b8a0 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 69 73 74 27 3b 0a 7d 0a 0a 0a onSource().{.return.'dist';.}...
2b8c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 ..public.function.download(Packa
2b8e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 geInterface.$package,.$path).{.i
2b900 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 29 20 7b 0a 74 68 f.(!$package->getDistUrl()).{.th
2b920 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
2b940 6e 28 27 54 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 n('The.given.package.is.missing.
2b960 75 72 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d url.information');.}..$this->io-
2b980 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 >writeError("..-.Installing.<inf
2b9a0 6f 3e 22 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 o>"...$package->getName()..."</i
2b9c0 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 nfo>.(<comment>"...VersionParser
2b9e0 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 ::formatVersion($package)..."</c
2ba00 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 75 72 6c 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 omment>)");..$urls.=.$package->g
2ba20 65 74 44 69 73 74 55 72 6c 73 28 29 3b 0a 77 68 69 6c 65 20 28 24 75 72 6c 20 3d 20 61 72 72 61 etDistUrls();.while.($url.=.arra
2ba40 79 5f 73 68 69 66 74 28 24 75 72 6c 73 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 y_shift($urls)).{.try.{.return.$
2ba60 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 this->doDownload($package,.$path
2ba80 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 ,.$url);.}.catch.(\Exception.$e)
2baa0 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 .{.if.($this->io->isDebug()).{.$
2bac0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 24 74 68 69 73 2d this->io->writeError('');.$this-
2bae0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 3a 20 5b 27 2e 67 65 74 5f >io->writeError('Failed:.['.get_
2bb00 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2e 27 3a 20 class($e).'].'.$e->getCode().':.
2bb20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 '.$e->getMessage());.}.elseif.(c
2bb40 6f 75 6e 74 28 24 75 72 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 ount($urls)).{.$this->io->writeE
2bb60 72 72 6f 72 28 27 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 rror('');.$this->io->writeError(
2bb80 27 20 20 20 20 46 61 69 6c 65 64 2c 20 74 72 79 69 6e 67 20 74 68 65 20 6e 65 78 74 20 55 52 4c '....Failed,.trying.the.next.URL
2bba0 20 28 27 2e 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 .('.$e->getCode().':.'.$e->getMe
2bbc0 73 73 61 67 65 28 29 2e 27 29 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 75 72 6c ssage().')');.}..if.(!count($url
2bbe0 73 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f s)).{.throw.$e;.}.}.}..$this->io
2bc00 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ->writeError('');.}..protected.f
2bc20 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 unction.doDownload(PackageInterf
2bc40 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 74 68 ace.$package,.$path,.$url).{.$th
2bc60 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6d 70 74 79 44 69 72 65 63 74 6f 72 79 28 24 is->filesystem->emptyDirectory($
2bc80 70 61 74 68 29 3b 0a 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 path);..$fileName.=.$this->getFi
2bca0 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 24 70 72 6f 63 65 leName($package,.$path);..$proce
2bcc0 73 73 65 64 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 ssedUrl.=.$this->processUrl($pac
2bce0 6b 61 67 65 2c 20 24 75 72 6c 29 3b 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 kage,.$url);.$hostname.=.parse_u
2bd00 72 6c 28 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b rl($processedUrl,.PHP_URL_HOST);
2bd20 0a 0a 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 ..$preFileDownloadEvent.=.new.Pr
2bd40 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a eFileDownloadEvent(PluginEvents:
2bd60 3a 50 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 :PRE_FILE_DOWNLOAD,.$this->rfs,.
2bd80 24 70 72 6f 63 65 73 73 65 64 55 72 6c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 $processedUrl);.if.($this->event
2bda0 44 69 73 70 61 74 63 68 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 Dispatcher).{.$this->eventDispat
2bdc0 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 cher->dispatch($preFileDownloadE
2bde0 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 vent->getName(),.$preFileDownloa
2be00 64 45 76 65 6e 74 29 3b 0a 7d 0a 24 72 66 73 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f dEvent);.}.$rfs.=.$preFileDownlo
2be20 61 64 45 76 65 6e 74 2d 3e 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a adEvent->getRemoteFilesystem();.
2be40 0a 74 72 79 20 7b 0a 24 63 68 65 63 6b 73 75 6d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 .try.{.$checksum.=.$package->get
2be60 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 DistSha1Checksum();.$cacheKey.=.
2be80 24 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a $this->getCacheKey($package);...
2bea0 20 69 66 20 28 21 24 74 68 69 73 2d 3e 63 61 63 68 65 20 7c 7c 20 28 24 63 68 65 63 6b 73 75 6d .if.(!$this->cache.||.($checksum
2bec0 20 26 26 20 24 63 68 65 63 6b 73 75 6d 20 21 3d 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e .&&.$checksum.!==.$this->cache->
2bee0 73 68 61 31 28 24 63 61 63 68 65 4b 65 79 29 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 61 63 68 sha1($cacheKey)).||.!$this->cach
2bf00 65 2d 3e 63 6f 70 79 54 6f 28 24 63 61 63 68 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 e->copyTo($cacheKey,.$fileName))
2bf20 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 20 7b .{.if.(!$this->outputProgress).{
2bf40 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 44 6f 77 6e .$this->io->writeError('....Down
2bf60 6c 6f 61 64 69 6e 67 27 29 3b 0a 7d 0a 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 loading');.}....$retries.=.3;.wh
2bf80 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 72 66 73 2d 3e 63 ile.($retries--).{.try.{.$rfs->c
2bfa0 6f 70 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 opy($hostname,.$processedUrl,.$f
2bfc0 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 2c 20 ileName,.$this->outputProgress,.
2bfe0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 29 $package->getTransportOptions())
2c000 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 ;.break;.}.catch.(TransportExcep
2c020 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 28 30 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 tion.$e).{...if.((0.!==.$e->getC
2c040 6f 64 65 28 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 ode().&&.!in_array($e->getCode()
2c060 2c 61 72 72 61 79 28 35 30 30 2c 20 35 30 32 2c 20 35 30 33 2c 20 35 30 34 29 29 29 20 7c 7c 20 ,array(500,.502,.503,.504))).||.
2c080 21 24 72 65 74 72 69 65 73 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 24 74 68 !$retries).{.throw.$e;.}.if.($th
2c0a0 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f is->io->isVerbose()).{.$this->io
2c0c0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 20 66 61 69 6c 65 ->writeError('....Download.faile
2c0e0 64 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e 27 29 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 d,.retrying...');.}.usleep(50000
2c100 30 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 74 68 0);.}.}..if.($this->cache).{.$th
2c120 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 79 46 72 6f 6d 28 24 63 61 63 68 65 4b 65 79 2c 20 24 is->cache->copyFrom($cacheKey,.$
2c140 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d fileName);.}.}.else.{.$this->io-
2c160 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 4c 6f 61 64 69 6e 67 20 66 72 6f 6d 20 63 61 >writeError('....Loading.from.ca
2c180 63 68 65 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 che');.}..if.(!file_exists($file
2c1a0 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 Name)).{.throw.new.\UnexpectedVa
2c1c0 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 lueException($url.'.could.not.be
2c1e0 20 73 61 76 65 64 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c 20 6d 61 6b 65 20 73 75 .saved.to.'.$fileName.',.make.su
2c200 72 65 20 74 68 65 27 0a 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 77 72 69 74 61 62 6c 65 re.the'..'.directory.is.writable
2c220 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 6f 6e 6e 65 63 74 69 76 .and.you.have.internet.connectiv
2c240 69 74 79 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 20 68 61 73 68 5f ity');.}..if.($checksum.&&.hash_
2c260 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 69 6c 65 4e 61 6d 65 29 20 21 3d 3d 20 24 63 68 65 file('sha1',.$fileName).!==.$che
2c280 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 cksum).{.throw.new.\UnexpectedVa
2c2a0 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 68 65 63 6b 73 75 6d 20 76 65 72 69 66 lueException('The.checksum.verif
2c2c0 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 61 69 6c 65 64 20 28 64 6f 77 6e ication.of.the.file.failed.(down
2c2e0 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 75 72 6c 2e 27 29 27 29 3b 0a 7d 0a 7d 20 63 61 74 loaded.from.'.$url.')');.}.}.cat
2c300 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 ch.(\Exception.$e).{...$this->fi
2c320 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 lesystem->removeDirectory($path)
2c340 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 ;.$this->clearCache($package,.$p
2c360 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 4e ath);.throw.$e;.}..return.$fileN
2c380 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 75 ame;.}.....public.function.setOu
2c3a0 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a tputProgress($outputProgress).{.
2c3c0 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 3d 20 24 6f 75 74 70 75 74 50 $this->outputProgress.=.$outputP
2c3e0 72 6f 67 72 65 73 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 72 6f 74 65 rogress;..return.$this;.}..prote
2c400 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 43 61 63 68 65 28 50 61 63 6b 61 67 65 cted.function.clearCache(Package
2c420 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 Interface.$package,.$path).{.if.
2c440 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 74 68 ($this->cache).{.$fileName.=.$th
2c460 69 73 2d 3e 67 65 74 46 69 6c 65 4e 61 6d 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 is->getFileName($package,.$path)
2c480 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 6d 6f 76 65 28 24 74 68 69 73 2d 3e 67 65 ;.$this->cache->remove($this->ge
2c4a0 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 tCacheKey($package));.}.}.....pu
2c4c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 blic.function.update(PackageInte
2c4e0 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
2c500 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 .$target,.$path).{.$this->remove
2c520 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f ($initial,.$path);.$this->downlo
2c540 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ad($target,.$path);.}.....public
2c560 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 .function.remove(PackageInterfac
2c580 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e e.$package,.$path).{.$this->io->
2c5a0 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 writeError("..-.Removing.<info>"
2c5c0 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f ...$package->getName()..."</info
2c5e0 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 >.(<comment>"...VersionParser::f
2c600 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d ormatVersion($package)..."</comm
2c620 65 6e 74 3e 29 22 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d ent>)");.if.(!$this->filesystem-
2c640 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 >removeDirectory($path)).{.throw
2c660 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f .new.\RuntimeException('Could.no
2c680 74 20 63 6f 6d 70 6c 65 74 65 6c 79 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 2c 20 61 t.completely.delete.'.$path.',.a
2c6a0 62 6f 72 74 69 6e 67 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 borting.');.}.}.........protecte
2c6c0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e d.function.getFileName(PackageIn
2c6e0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 terface.$package,.$path).{.retur
2c700 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 n.$path.'/'.pathinfo(parse_url($
2c720 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 package->getDistUrl(),.PHP_URL_P
2c740 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a ATH),.PATHINFO_BASENAME);.}.....
2c760 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 ......protected.function.process
2c780 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 Url(PackageInterface.$package,.$
2c7a0 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 url).{.if.(!extension_loaded('op
2c7c0 65 6e 73 73 6c 27 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 enssl').&&.0.===.strpos($url,.'h
2c7e0 74 74 70 73 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ttps:')).{.throw.new.\RuntimeExc
2c800 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e eption('You.must.enable.the.open
2c820 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 ssl.extension.to.download.files.
2c840 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a via.https');.}..return.$url;.}..
2c860 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 63 68 65 4b 65 79 28 50 61 63 private.function.getCacheKey(Pac
2c880 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 70 72 kageInterface.$package).{.if.(pr
2c8a0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 eg_match('{^[a-f0-9]{40}$}',.$pa
2c8c0 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 72 65 ckage->getDistReference())).{.re
2c8e0 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 turn.$package->getName().'/'.$pa
2c900 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 ckage->getDistReference().'.'.$p
2c920 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ackage->getDistType();.}..return
2c940 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 .$package->getName().'/'.$packag
2c960 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 2d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 e->getVersion().'-'.$package->ge
2c980 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 tDistReference().'.'.$package->g
2c9a0 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a etDistType();.}.}.<?php.........
2c9c0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 ...namespace.Composer\Downloader
2c9e0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
2ca00 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 nterface;.use.Composer\Util\Svn.
2ca20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 6f 77 6e 6c 6f as.SvnUtil;......class.SvnDownlo
2ca40 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a ader.extends.VcsDownloader.{....
2ca60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 public.function.doDownload(Packa
2ca80 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 geInterface.$package,.$path,.$ur
2caa0 6c 29 0a 7b 0a 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 72 65 66 20 3d l).{.SvnUtil::cleanEnv();.$ref.=
2cac0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b .$package->getSourceReference();
2cae0 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 68 65 ..$this->io->writeError("....Che
2cb00 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 cking.out.".$package->getSourceR
2cb20 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c eference());.$this->execute($url
2cb40 2c 20 22 73 76 6e 20 63 6f 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 ,."svn.co",.sprintf("%s/%s",.$ur
2cb60 6c 2c 20 24 72 65 66 29 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 l,.$ref),.null,.$path);.}.....pu
2cb80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e blic.function.doUpdate(PackageIn
2cba0 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 terface.$initial,.PackageInterfa
2cbc0 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 53 76 6e 55 74 ce.$target,.$path,.$url).{.SvnUt
2cbe0 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e il::cleanEnv();.$ref.=.$target->
2cc00 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 getSourceReference();..if.(!is_d
2cc20 69 72 28 24 70 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ir($path.'/.svn')).{.throw.new.\
2cc40 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 73 76 6e 20 64 69 72 65 63 RuntimeException('The..svn.direc
2cc60 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 tory.is.missing.from.'.$path.',.
2cc80 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 see.http://getcomposer.org/commi
2cca0 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d t-deps.for.more.information');.}
2ccc0 0a 0a 24 66 6c 61 67 73 20 3d 20 22 22 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e ..$flags.=."";.if.(0.===.$this->
2cce0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 process->execute('svn.--version'
2cd00 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 ,.$output)).{.if.(preg_match('{(
2cd20 5c 64 2b 28 3f 3a 5c 2e 5c 64 2b 29 2b 29 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 \d+(?:\.\d+)+)}',.$output,.$matc
2cd40 68 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 6d 61 74 63 68 5b 31 5d 2c h).&&.version_compare($match[1],
2cd60 20 27 31 2e 37 2e 30 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 66 6c 61 67 73 20 2e 3d 20 27 20 2d .'1.7.0',.'>=')).{.$flags..=.'.-
2cd80 2d 69 67 6e 6f 72 65 2d 61 6e 63 65 73 74 72 79 27 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 -ignore-ancestry';.}.}..$this->i
2cda0 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 o->writeError("....Checking.out.
2cdc0 22 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 "...$ref);.$this->execute($url,.
2cde0 22 73 76 6e 20 73 77 69 74 63 68 22 20 2e 20 24 66 6c 61 67 73 2c 20 73 70 72 69 6e 74 66 28 22 "svn.switch"...$flags,.sprintf("
2ce00 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a %s/%s",.$url,.$ref),.$path);.}..
2ce20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 ...public.function.getLocalChang
2ce40 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 es(PackageInterface.$package,.$p
2ce60 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 73 76 6e 27 ath).{.if.(!is_dir($path.'/.svn'
2ce80 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e )).{.return;.}..$this->process->
2cea0 65 78 65 63 75 74 65 28 27 73 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 execute('svn.status.--ignore-ext
2cec0 65 72 6e 61 6c 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 ernals',.$output,.$path);..retur
2cee0 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f n.preg_match('{^.*[^X.].+}m',.$o
2cf00 75 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a utput).?.$output.:.null;.}......
2cf20 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 ........protected.function.execu
2cf40 74 65 28 24 62 61 73 65 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 te($baseUrl,.$command,.$url,.$cw
2cf60 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 d.=.null,.$path.=.null).{.$util.
2cf80 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 =.new.SvnUtil($baseUrl,.$this->i
2cfa0 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 o,.$this->config);.try.{.return.
2cfc0 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 $util->execute($command,.$url,.$
2cfe0 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 cwd,.$path,.$this->io->isVerbose
2d000 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 ());.}.catch.(\RuntimeException.
2d020 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f $e).{.throw.new.\RuntimeExceptio
2d040 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 n(.'Package.could.not.be.downloa
2d060 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a ded,.'.$e->getMessage().);.}.}..
2d080 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 ...protected.function.cleanChang
2d0a0 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 es(PackageInterface.$package,.$p
2d0c0 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d 20 ath,.$update).{.if.(!$changes.=.
2d0e0 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c $this->getLocalChanges($package,
2d100 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 .$path)).{.return;.}..if.(!$this
2d120 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 74 72 75 ->io->isInteractive()).{.if.(tru
2d140 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 64 69 73 63 61 72 e.===.$this->config->get('discar
2d160 64 2d 63 68 61 6e 67 65 73 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 d-changes')).{.return.$this->dis
2d180 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 cardChanges($path);.}..return.pa
2d1a0 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 rent::cleanChanges($package,.$pa
2d1c0 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 th,.$update);.}..$changes.=.arra
2d1e0 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 y_map(function.($elem).{.return.
2d200 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 '....'.$elem;.},.preg_split('{\s
2d220 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e *\r?\n\s*}',.$changes));.$this->
2d240 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 io->writeError('....<error>The.p
2d260 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f ackage.has.modified.files:</erro
2d280 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 r>');.$this->io->writeError(arra
2d2a0 79 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 y_slice($changes,.0,.10));.if.(c
2d2c0 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ount($changes).>.10).{.$this->io
2d2e0 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 ->writeError('....<info>'.count(
2d300 24 63 68 61 6e 67 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f $changes).-.10...'.more.files.mo
2d320 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 dified,.choose."v".to.view.the.f
2d340 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 ull.list</info>');.}..while.(tru
2d360 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 e).{.switch.($this->io->ask('...
2d380 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d .<info>Discard.changes.[y,n,v,?]
2d3a0 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 ?</info>.',.'?')).{.case.'y':.$t
2d3c0 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 his->discardChanges($path);.brea
2d3e0 6b 20 32 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 k.2;..case.'n':.throw.new.\Runti
2d400 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a meException('Update.aborted');..
2d420 63 61 73 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 case.'v':.$this->io->writeError(
2d440 24 63 68 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 $changes);.break;..case.'?':.def
2d460 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 ault:.$this->io->writeError(arra
2d480 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 y(.'....y.-.discard.changes.and.
2d4a0 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 apply.the.'.($update.?.'update'.
2d4c0 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 :.'uninstall'),.'....n.-.abort.t
2d4e0 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e he.'.($update.?.'update'.:.'unin
2d500 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 stall').'.and.let.you.manually.c
2d520 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d lean.things.up',.'....v.-.view.m
2d540 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 odified.files',.'....?.-.print.h
2d560 65 6c 70 27 2c 0a 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 elp',.));.break;.}.}.}.....prote
2d580 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f cted.function.getCommitLogs($fro
2d5a0 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 mReference,.$toReference,.$path)
2d5c0 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c .{.if.(preg_match('{.*@(\d+)$}',
2d5e0 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 .$fromReference).&&.preg_match('
2d600 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 20 29 20 7b 0a {.*@(\d+)$}',.$toReference).).{.
2d620 0a 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 ..$fromRevision.=.preg_replace('
2d640 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e {.*@(\d+)$}',.'$1',.$fromReferen
2d660 63 65 29 3b 0a 24 74 6f 52 65 76 69 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ce);.$toRevision.=.preg_replace(
2d680 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 '{.*@(\d+)$}',.'$1',.$toReferenc
2d6a0 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 73 76 6e 20 6c 6f 67 e);..$command.=.sprintf('svn.log
2d6c0 20 2d 72 25 73 3a 25 73 20 2d 2d 69 6e 63 72 65 6d 65 6e 74 61 6c 27 2c 20 24 66 72 6f 6d 52 65 .-r%s:%s.--incremental',.$fromRe
2d6e0 76 69 73 69 6f 6e 2c 20 24 74 6f 52 65 76 69 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d vision,.$toRevision);..if.(0.!==
2d700 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e .$this->process->execute($comman
2d720 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 d,.$output,.$path)).{.throw.new.
2d740 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 46 61 69 6c 65 64 20 74 6f 20 65 78 \RuntimeException(.'Failed.to.ex
2d760 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 ecute.'...$command..."\n\n"...$t
2d780 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 his->process->getErrorOutput().)
2d7a0 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 22 43 6f 75 6c 64 20 6e 6f ;.}.}.else.{.$output.=."Could.no
2d7c0 74 20 72 65 74 72 69 65 76 65 20 63 68 61 6e 67 65 73 20 62 65 74 77 65 65 6e 20 24 66 72 6f 6d t.retrieve.changes.between.$from
2d7e0 52 65 66 65 72 65 6e 63 65 20 61 6e 64 20 24 74 6f 52 65 66 65 72 65 6e 63 65 20 64 75 65 20 74 Reference.and.$toReference.due.t
2d800 6f 20 6d 69 73 73 69 6e 67 20 72 65 76 69 73 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 22 3b o.missing.revision.information";
2d820 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 .}..return.$output;.}..protected
2d840 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a .function.discardChanges($path).
2d860 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 {.if.(0.!==.$this->process->exec
2d880 75 74 65 28 27 73 76 6e 20 72 65 76 65 72 74 20 2d 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 ute('svn.revert.-R..',.$output,.
2d8a0 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 $path)).{.throw.new.\RuntimeExce
2d8c0 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e ption("Could.not.reset.changes\n
2d8e0 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 \n:".$this->process->getErrorOut
2d900 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e put());.}.}.}.<?php............n
2d920 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 amespace.Composer\Downloader;..u
2d940 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a se.Composer\Util\Filesystem;....
2d960 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f .......class.PearPackageExtracto
2d980 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 r.{.private.static.$rolesWithout
2d9a0 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c PackageNamePrefix.=.array('php',
2d9c0 20 27 73 63 72 69 70 74 27 2c 20 27 77 77 77 27 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c .'script',.'www');..private.$fil
2d9e0 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 esystem;.private.$file;..public.
2da00 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 function.__construct($file).{.if
2da20 20 28 21 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c .(!is_file($file)).{.throw.new.\
2da40 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 UnexpectedValueException('PEAR.p
2da60 61 63 6b 61 67 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 ackage.file.is.not.found.at.'.$f
2da80 69 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 ile);.}..$this->filesystem.=.new
2daa0 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 .Filesystem();.$this->file.=.$fi
2dac0 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e le;.}............public.function
2dae0 20 65 78 74 72 61 63 74 54 6f 28 24 74 61 72 67 65 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 .extractTo($target,.array.$roles
2db00 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 .=.array('php'.=>.'/',.'script'.
2db20 3d 3e 20 27 2f 62 69 6e 27 29 2c 20 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 =>.'/bin'),.$vars.=.array()).{.$
2db40 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 extractionPath.=.$target.'/tarba
2db60 6c 6c 27 3b 0a 0a 74 72 79 20 7b 0a 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 ll';..try.{.$archive.=.new.\Phar
2db80 44 61 74 61 28 24 74 68 69 73 2d 3e 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 Data($this->file);.$archive->ext
2dba0 72 61 63 74 54 6f 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 ractTo($extractionPath,.null,.tr
2dbc0 75 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e ue);..if.(!is_file($this->combin
2dbe0 65 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c e($extractionPath,.'/package.xml
2dc00 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 '))).{.throw.new.\RuntimeExcepti
2dc20 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 on('Invalid.PEAR.package..It.mus
2dc40 74 20 63 6f 6e 74 61 69 6e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d t.contain.package.xml.file.');.}
2dc60 0a 0a 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c ..$fileCopyActions.=.$this->buil
2dc80 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 dCopyActions($extractionPath,.$r
2dca0 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 oles,.$vars);.$this->copyFiles($
2dcc0 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e 73 2c 20 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 fileCopyActions,.$extractionPath
2dce0 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 ,.$target,.$roles,.$vars);.$this
2dd00 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 ->filesystem->removeDirectory($e
2dd20 78 74 72 61 63 74 69 6f 6e 50 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 xtractionPath);.}.catch.(\Except
2dd40 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 ion.$exception).{.throw.new.\Une
2dd60 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 xpectedValueException(sprintf('F
2dd80 61 69 6c 65 64 20 74 6f 20 65 78 74 72 61 63 74 20 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 ailed.to.extract.PEAR.package.%s
2dda0 20 74 6f 20 25 73 2e 20 52 65 61 73 6f 6e 3a 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 .to.%s..Reason:.%s',.$this->file
2ddc0 2c 20 24 74 61 72 67 65 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 ,.$target,.$exception->getMessag
2dde0 65 28 29 29 2c 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a e()),.0,.$exception);.}.}.......
2de00 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 ....private.function.copyFiles($
2de20 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c files,.$source,.$target,.$roles,
2de40 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 .$vars).{.foreach.($files.as.$fi
2de60 6c 65 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f le).{.$from.=.$this->combine($so
2de80 75 72 63 65 2c 20 24 66 69 6c 65 5b 27 66 72 6f 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 urce,.$file['from']);.$to.=.$thi
2dea0 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 s->combine($target,.$roles[$file
2dec0 5b 27 72 6f 6c 65 27 5d 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 ['role']]);.$to.=.$this->combine
2dee0 28 24 74 6f 2c 20 24 66 69 6c 65 5b 27 74 6f 27 5d 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 ($to,.$file['to']);.$tasks.=.$fi
2df00 6c 65 5b 27 74 61 73 6b 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 le['tasks'];.$this->copyFile($fr
2df20 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 om,.$to,.$tasks,.$vars);.}.}..pr
2df40 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 ivate.function.copyFile($from,.$
2df60 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 61 72 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c to,.$tasks,.$vars).{.if.(!is_fil
2df80 65 28 24 66 72 6f 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 e($from)).{.throw.new.\RuntimeEx
2dfa0 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 ception('Invalid.PEAR.package..p
2dfc0 61 63 6b 61 67 65 2e 78 6d 6c 20 64 65 66 69 6e 65 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 ackage.xml.defines.file.that.is.
2dfe0 6e 6f 74 20 6c 6f 63 61 74 65 64 20 69 6e 73 69 64 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d not.located.inside.tarball.');.}
2e000 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 ..$this->filesystem->ensureDirec
2e020 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 toryExists(dirname($to));..if.(0
2e040 20 3d 3d 20 63 6f 75 6e 74 28 24 74 61 73 6b 73 29 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 .==.count($tasks)).{.$copied.=.c
2e060 6f 70 79 28 24 66 72 6f 6d 2c 20 24 74 6f 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 opy($from,.$to);.}.else.{.$conte
2e080 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 nt.=.file_get_contents($from);.$
2e0a0 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 replacements.=.array();.foreach.
2e0c0 28 24 74 61 73 6b 73 20 61 73 20 24 74 61 73 6b 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 ($tasks.as.$task).{.$pattern.=.$
2e0e0 74 61 73 6b 5b 27 66 72 6f 6d 27 5d 3b 0a 24 76 61 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 task['from'];.$varName.=.$task['
2e100 74 6f 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 to'];.if.(isset($vars[$varName])
2e120 29 20 7b 0a 69 66 20 28 24 76 61 72 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 5f 62 69 6e 27 20 26 ).{.if.($varName.===.'php_bin'.&
2e140 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 2c 20 27 2e 62 61 74 27 29 29 &.false.===.strpos($to,.'.bat'))
2e160 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 70 72 65 .{.$replacements[$pattern].=.pre
2e180 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 2e 62 61 74 24 7d 27 2c 20 27 27 2c 20 24 76 61 72 73 5b g_replace('{\.bat$}',.'',.$vars[
2e1a0 24 76 61 72 4e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e $varName]);.}.else.{.$replacemen
2e1c0 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a ts[$pattern].=.$vars[$varName];.
2e1e0 7d 0a 7d 0a 7d 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c }.}.}.$content.=.strtr($content,
2e200 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 29 3b 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 .$replacements);..$copied.=.file
2e220 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a _put_contents($to,.$content);.}.
2e240 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 .if.(false.===.$copied).{.throw.
2e260 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 new.\RuntimeException(sprintf('F
2e280 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20 25 73 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 ailed.to.copy.%s.to.%s',.$from,.
2e2a0 24 74 6f 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 $to));.}.}............private.fu
2e2c0 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 73 6f 75 72 63 65 2c nction.buildCopyActions($source,
2e2e0 20 61 72 72 61 79 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 .array.$roles,.$vars).{..$packag
2e300 65 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 e.=.simplexml_load_file($this->c
2e320 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b ombine($source,.'package.xml'));
2e340 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 .if.(false.===.$package).{.throw
2e360 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 .new.\RuntimeException('Package.
2e380 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b definition.file.is.not.valid.');
2e3a0 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 .}..$packageSchemaVersion.=.$pac
2e3c0 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 69 66 20 28 27 31 2e 30 27 20 3d 3d 20 24 70 kage['version'];.if.('1.0'.==.$p
2e3e0 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e ackageSchemaVersion).{.$children
2e400 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e .=.$package->release->filelist->
2e420 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 children();.$packageName.=.(stri
2e440 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 ng).$package->name;.$packageVers
2e460 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 ion.=.(string).$package->release
2e480 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 ->version;.$sourceDir.=.$package
2e4a0 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 Name...'-'...$packageVersion;.$r
2e4c0 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 esult.=.$this->buildSourceList10
2e4e0 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 ($children,.$roles,.$sourceDir,.
2e500 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 69 '',.null,.$packageName);.}.elsei
2e520 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f f.('2.0'.==.$packageSchemaVersio
2e540 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 n.||.'2.1'.==.$packageSchemaVers
2e560 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 63 6f 6e ion).{.$children.=.$package->con
2e580 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 tents->children();.$packageName.
2e5a0 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b =.(string).$package->name;.$pack
2e5c0 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e ageVersion.=.(string).$package->
2e5e0 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 65 3b 0a 24 73 6f 75 72 63 65 44 69 72 20 3d 20 24 version->release;.$sourceDir.=.$
2e600 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 67 65 56 65 72 73 packageName...'-'...$packageVers
2e620 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 ion;.$result.=.$this->buildSourc
2e640 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 eList20($children,.$roles,.$sour
2e660 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a ceDir,.'',.null,.$packageName);.
2e680 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .$namespaces.=.$package->getName
2e6a0 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 spaces();.$package->registerXPat
2e6c0 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 5b 27 27 5d hNamespace('ns',.$namespaces['']
2e6e0 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 78 70 61 );.$releaseNodes.=.$package->xpa
2e700 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 73 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c th('ns:phprelease');.$this->appl
2e720 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c 74 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c yRelease($result,.$releaseNodes,
2e740 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e .$vars);.}.else.{.throw.new.\Run
2e760 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 73 75 70 70 6f 72 74 65 64 20 73 63 68 65 6d timeException('Unsupported.schem
2e780 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 a.version.of.package.definition.
2e7a0 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 file.');.}..return.$result;.}..p
2e7c0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 52 65 6c 65 61 73 65 28 26 24 61 rivate.function.applyRelease(&$a
2e7e0 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a ctions,.$releaseNodes,.$vars).{.
2e800 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 61 73 20 24 72 65 6c 65 61 foreach.($releaseNodes.as.$relea
2e820 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 4f 73 20 3d 20 24 72 65 6c 65 61 73 65 seNode).{.$requiredOs.=.$release
2e840 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 20 26 26 20 24 72 65 6c 65 Node->installconditions.&&.$rele
2e860 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 26 aseNode->installconditions->os.&
2e880 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e &.$releaseNode->installcondition
2e8a0 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 73 74 72 69 6e 67 29 20 24 72 65 6c 65 61 73 65 4e s->os->name.?.(string).$releaseN
2e8c0 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 ode->installconditions->os->name
2e8e0 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 4f 73 20 26 26 20 24 76 61 72 73 5b .:.'';.if.($requiredOs.&&.$vars[
2e900 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 72 65 64 4f 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 'os'].!=.$requiredOs).{.continue
2e920 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 29 ;.}..if.($releaseNode->filelist)
2e940 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 .{.foreach.($releaseNode->fileli
2e960 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 61 73 20 24 61 63 74 69 6f 6e 29 20 7b 0a 69 66 20 st->children().as.$action).{.if.
2e980 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ('install'.==.$action->getName()
2e9a0 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 ).{.$name.=.(string).$action['na
2e9c0 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 61 73 me'];.$as.=.(string).$action['as
2e9e0 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 20 '];.if.(isset($actions[$name])).
2ea00 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 27 74 6f 27 5d 20 3d 20 24 61 73 3b 0a 7d {.$actions[$name]['to'].=.$as;.}
2ea20 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e 6f 72 65 27 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e .}.elseif.('ignore'.==.$action->
2ea40 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 getName()).{.$name.=.(string).$a
2ea60 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 75 6e 73 65 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e ction['name'];.unset($actions[$n
2ea80 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 7d 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 7d ame]);.}.else.{...}.}.}.break;.}
2eaa0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 .}..private.function.buildSource
2eac0 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 List10($children,.$targetRoles,.
2eae0 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 67 $source,.$target,.$role,.$packag
2eb00 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 eName).{.$result.=.array();....f
2eb20 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a oreach.($children.as.$child).{..
2eb40 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 64 69 72 27 29 20 if.($child->getName().==.'dir').
2eb60 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 {.$dirSource.=.$this->combine($s
2eb80 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b ource,.(string).$child['name']);
2eba0 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c .$dirTarget.=.$child['baseinstal
2ebc0 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 ldir'].?:.$target;.$dirRole.=.$c
2ebe0 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a 20 24 72 6f 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 hild['role'].?:.$role;.$dirFiles
2ec00 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 .=.$this->buildSourceList10($chi
2ec20 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 ld->children(),.$targetRoles,.$d
2ec40 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 irSource,.$dirTarget,.$dirRole,.
2ec60 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d $packageName);.$result.=.array_m
2ec80 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 erge($result,.$dirFiles);.}.else
2eca0 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 20 27 66 69 6c 65 27 29 if.($child->getName().==.'file')
2ecc0 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 .{.$fileRole.=.(string).$child['
2ece0 72 6f 6c 65 27 5d 20 3f 3a 20 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 61 72 67 role'].?:.$role;.if.(isset($targ
2ed00 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 etRoles[$fileRole])).{.$fileName
2ed20 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 20 3f 3a 20 24 .=.(string).($child['name'].?:.$
2ed40 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 child[0]);...$fileSource.=.$this
2ed60 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 24 ->combine($source,.$fileName);.$
2ed80 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 fileTarget.=.$this->combine((str
2eda0 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a ing).$child['baseinstalldir'].?:
2edc0 20 24 74 61 72 67 65 74 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 .$target,.$fileName);.if.(!in_ar
2ede0 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 6f ray($fileRole,.self::$rolesWitho
2ee00 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 72 utPackageNamePrefix)).{.$fileTar
2ee20 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c 65 get.=.$packageName...'/'...$file
2ee40 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c Target;.}.$result[(string).$chil
2ee60 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 69 d['name']].=.array('from'.=>.$fi
2ee80 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 27 leSource,.'to'.=>.$fileTarget,.'
2eea0 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 61 role'.=>.$fileRole,.'tasks'.=>.a
2eec0 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a rray());.}.}.}..return.$result;.
2eee0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c }..private.function.buildSourceL
2ef00 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 ist20($children,.$targetRoles,.$
2ef20 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 source,.$target,.$role,.$package
2ef40 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f Name).{.$result.=.array();....fo
2ef60 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a 69 reach.($children.as.$child).{..i
2ef80 66 20 28 27 64 69 72 27 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b f.('dir'.==.$child->getName()).{
2efa0 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f .$dirSource.=.$this->combine($so
2efc0 75 72 63 65 2c 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 urce,.$child['name']);.$dirTarge
2efe0 74 20 3d 20 24 63 68 69 6c 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 t.=.$child['baseinstalldir'].?:.
2f000 24 74 61 72 67 65 74 3b 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 $target;.$dirRole.=.$child['role
2f020 27 5d 20 3f 3a 20 24 72 6f 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e '].?:.$role;.$dirFiles.=.$this->
2f040 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 buildSourceList20($child->childr
2f060 65 6e 28 29 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 en(),.$targetRoles,.$dirSource,.
2f080 24 64 69 72 54 61 72 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 $dirTarget,.$dirRole,.$packageNa
2f0a0 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 me);.$result.=.array_merge($resu
2f0c0 6c 74 2c 20 24 64 69 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 66 69 6c 65 27 lt,.$dirFiles);.}.elseif.('file'
2f0e0 20 3d 3d 20 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 66 69 6c 65 52 6f .==.$child->getName()).{.$fileRo
2f100 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 3a 20 le.=.(string).$child['role'].?:.
2f120 24 72 6f 6c 65 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 $role;.if.(isset($targetRoles[$f
2f140 69 6c 65 52 6f 6c 65 5d 29 29 20 7b 0a 24 66 69 6c 65 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 ileRole])).{.$fileSource.=.$this
2f160 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 69 ->combine($source,.(string).$chi
2f180 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 68 69 73 ld['name']);.$fileTarget.=.$this
2f1a0 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 28 24 63 68 69 6c 64 5b 27 62 61 73 65 ->combine((string).($child['base
2f1c0 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 3a 20 24 74 61 72 67 65 74 29 2c 20 28 73 74 72 69 6e installdir'].?:.$target),.(strin
2f1e0 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 66 69 6c 65 54 61 73 6b 73 20 3d g).$child['name']);.$fileTasks.=
2f200 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 .array();.foreach.($child->child
2f220 72 65 6e 28 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 74 61 73 ren('http://pear.php.net/dtd/tas
2f240 6b 73 2d 31 2e 30 27 29 20 61 73 20 24 74 61 73 6b 4e 6f 64 65 29 20 7b 0a 69 66 20 28 27 72 65 ks-1.0').as.$taskNode).{.if.('re
2f260 70 6c 61 63 65 27 20 3d 3d 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 place'.==.$taskNode->getName()).
2f280 7b 0a 24 66 69 6c 65 54 61 73 6b 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e {.$fileTasks[].=.array('from'.=>
2f2a0 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b 4e 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 .(string).$taskNode->attributes(
2f2c0 29 2d 3e 66 72 6f 6d 2c 20 27 74 6f 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 61 73 6b 4e )->from,.'to'.=>.(string).$taskN
2f2e0 6f 64 65 2d 3e 61 74 74 72 69 62 75 74 65 73 28 29 2d 3e 74 6f 29 3b 0a 7d 0a 7d 0a 69 66 20 28 ode->attributes()->to);.}.}.if.(
2f300 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 !in_array($fileRole,.self::$role
2f320 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 66 69 78 29 29 20 7b 0a 24 66 sWithoutPackageNamePrefix)).{.$f
2f340 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2f 27 20 2e ileTarget.=.$packageName...'/'..
2f360 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 75 6c 74 5b 28 73 74 72 69 6e 67 29 .$fileTarget;.}.$result[(string)
2f380 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 72 72 61 79 28 27 66 72 6f 6d 27 20 .$child['name']].=.array('from'.
2f3a0 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 20 3d 3e 20 24 66 69 6c 65 54 61 72 =>.$fileSource,.'to'.=>.$fileTar
2f3c0 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 52 6f 6c 65 2c 20 27 74 61 73 6b 73 get,.'role'.=>.$fileRole,.'tasks
2f3e0 27 20 3d 3e 20 24 66 69 6c 65 54 61 73 6b 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 '.=>.$fileTasks);.}.}.}..return.
2f400 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d $result;.}..private.function.com
2f420 62 69 6e 65 28 24 6c 65 66 74 2c 20 24 72 69 67 68 74 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 bine($left,.$right).{.return.rtr
2f440 69 6d 28 24 6c 65 66 74 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 72 69 im($left,.'/')...'/'...ltrim($ri
2f460 67 68 74 2c 20 27 2f 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ght,.'/');.}.}.<?php............
2f480 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a namespace.Composer\Downloader;..
2f4a0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 use.Composer\Package\PackageInte
2f4c0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 rface;.use.Composer\IO\IOInterfa
2f4e0 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d ce;.use.Composer\Util\Filesystem
2f500 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 0a 7b 0a ;.......class.DownloadManager.{.
2f520 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 44 69 73 74 private.$io;.private.$preferDist
2f540 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 .=.false;.private.$preferSource.
2f560 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 =.false;.private.$filesystem;.pr
2f580 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a ivate.$downloaders.=.array();...
2f5a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
2f5c0 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 t(IOInterface.$io,.$preferSource
2f5e0 20 3d 20 66 61 6c 73 65 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d .=.false,.Filesystem.$filesystem
2f600 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 .=.null).{.$this->io.=.$io;.$thi
2f620 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b s->preferSource.=.$preferSource;
2f640 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d .$this->filesystem.=.$filesystem
2f660 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 .?:.new.Filesystem();.}........p
2f680 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 ublic.function.setPreferSource($
2f6a0 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 preferSource).{.$this->preferSou
2f6c0 72 63 65 20 3d 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rce.=.$preferSource;..return.$th
2f6e0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 is;.}........public.function.set
2f700 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d PreferDist($preferDist).{.$this-
2f720 3e 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 >preferDist.=.$preferDist;..retu
2f740 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.$this;.}.........public.funct
2f760 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f ion.setOutputProgress($outputPro
2f780 67 72 65 73 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 gress).{.foreach.($this->downloa
2f7a0 64 65 72 73 20 61 73 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 ders.as.$downloader).{.$download
2f7c0 65 72 2d 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f er->setOutputProgress($outputPro
2f7e0 67 72 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a gress);.}..return.$this;.}......
2f800 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 ...public.function.setDownloader
2f820 28 24 74 79 70 65 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 6f 77 ($type,.DownloaderInterface.$dow
2f840 6e 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 nloader).{.$type.=.strtolower($t
2f860 79 70 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 20 ype);.$this->downloaders[$type].
2f880 3d 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a =.$downloader;..return.$this;.}.
2f8a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e .........public.function.getDown
2f8c0 6c 6f 61 64 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 loader($type).{.$type.=.strtolow
2f8e0 65 72 28 24 74 79 70 65 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 6f 77 er($type);.if.(!isset($this->dow
2f900 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 nloaders[$type])).{.throw.new.\I
2f920 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 nvalidArgumentException(sprintf(
2f940 27 55 6e 6b 6e 6f 77 6e 20 64 6f 77 6e 6c 6f 61 64 65 72 20 74 79 70 65 3a 20 25 73 2e 20 41 76 'Unknown.downloader.type:.%s..Av
2f960 61 69 6c 61 62 6c 65 20 74 79 70 65 73 3a 20 25 73 2e 27 2c 20 24 74 79 70 65 2c 20 69 6d 70 6c ailable.types:.%s.',.$type,.impl
2f980 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 64 6f 77 6e ode(',.',.array_keys($this->down
2f9a0 6c 6f 61 64 65 72 73 29 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f loaders))));.}..return.$this->do
2f9c0 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 wnloaders[$type];.}............p
2f9e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 ublic.function.getDownloaderForI
2fa00 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nstalledPackage(PackageInterface
2fa20 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 .$package).{.$installationSource
2fa40 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 .=.$package->getInstallationSour
2fa60 63 65 28 29 3b 0a 0a 69 66 20 28 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 3d 3d 3d 20 24 70 61 ce();..if.('metapackage'.===.$pa
2fa80 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 ckage->getType()).{.return;.}..i
2faa0 66 20 28 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 f.('dist'.===.$installationSourc
2fac0 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 e).{.$downloader.=.$this->getDow
2fae0 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 nloader($package->getDistType())
2fb00 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c ;.}.elseif.('source'.===.$instal
2fb20 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 lationSource).{.$downloader.=.$t
2fb40 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 his->getDownloader($package->get
2fb60 53 6f 75 72 63 65 54 79 70 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 SourceType());.}.else.{.throw.ne
2fb80 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 w.\InvalidArgumentException(.'Pa
2fba0 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 73 65 65 6d 73 20 6e 6f 74 20 62 65 65 ckage.'.$package.'.seems.not.bee
2fbc0 6e 20 69 6e 73 74 61 6c 6c 65 64 20 70 72 6f 70 65 72 6c 79 27 0a 29 3b 0a 7d 0a 0a 69 66 20 28 n.installed.properly'.);.}..if.(
2fbe0 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 21 3d 3d 20 24 64 6f 77 6e 6c 6f 61 $installationSource.!==.$downloa
2fc00 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 29 20 7b 0a der->getInstallationSource()).{.
2fc20 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 throw.new.\LogicException(sprint
2fc40 66 28 0a 27 44 6f 77 6e 6c 6f 61 64 65 72 20 22 25 73 22 20 69 73 20 61 20 25 73 20 74 79 70 65 f(.'Downloader."%s".is.a.%s.type
2fc60 20 64 6f 77 6e 6c 6f 61 64 65 72 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 75 73 65 64 20 .downloader.and.can.not.be.used.
2fc80 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 25 73 27 2c 0a 67 65 74 5f 63 6c 61 73 73 28 24 64 6f 77 6e to.download.%s',.get_class($down
2fca0 6c 6f 61 64 65 72 29 2c 20 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c loader),.$downloader->getInstall
2fcc0 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 ationSource(),.$installationSour
2fce0 63 65 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 77 6e 6c 6f 61 64 65 72 3b 0a 7d 0a ce.));.}..return.$downloader;.}.
2fd00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c ...........public.function.downl
2fd20 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 oad(PackageInterface.$package,.$
2fd40 74 61 72 67 65 74 44 69 72 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 29 targetDir,.$preferSource.=.null)
2fd60 0a 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 6e 75 6c 6c 20 21 3d 3d 20 24 70 72 65 .{.$preferSource.=.null.!==.$pre
2fd80 66 65 72 53 6f 75 72 63 65 20 3f 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3a 20 24 74 68 69 ferSource.?.$preferSource.:.$thi
2fda0 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 s->preferSource;.$sourceType.=.$
2fdc0 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 64 69 73 74 54 package->getSourceType();.$distT
2fde0 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 0a ype.=.$package->getDistType();..
2fe00 24 73 6f 75 72 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 6f 75 72 63 65 54 $sources.=.array();.if.($sourceT
2fe20 79 70 65 29 20 7b 0a 24 73 6f 75 72 63 65 73 5b 5d 20 3d 20 27 73 6f 75 72 63 65 27 3b 0a 7d 0a ype).{.$sources[].=.'source';.}.
2fe40 69 66 20 28 24 64 69 73 74 54 79 70 65 29 20 7b 0a 24 73 6f 75 72 63 65 73 5b 5d 20 3d 20 27 64 if.($distType).{.$sources[].=.'d
2fe60 69 73 74 27 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 6f 75 72 63 65 73 29 29 20 7b 0a ist';.}..if.(empty($sources)).{.
2fe80 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
2fea0 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 6d 75 73 74 20 68 ion('Package.'.$package.'.must.h
2fec0 61 76 65 20 61 20 73 6f 75 72 63 65 20 6f 72 20 64 69 73 74 20 73 70 65 63 69 66 69 65 64 27 29 ave.a.source.or.dist.specified')
2fee0 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 ;.}..if.((!$package->isDev().||.
2ff00 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 20 26 26 20 21 24 70 72 65 66 65 72 53 6f $this->preferDist).&&.!$preferSo
2ff20 75 72 63 65 29 20 7b 0a 24 73 6f 75 72 63 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 urce).{.$sources.=.array_reverse
2ff40 28 24 73 6f 75 72 63 65 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d ($sources);.}..$this->filesystem
2ff60 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 ->ensureDirectoryExists($targetD
2ff80 69 72 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 6f 75 72 63 65 73 20 61 73 20 24 69 20 3d 3e ir);..foreach.($sources.as.$i.=>
2ffa0 20 24 73 6f 75 72 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a 24 74 68 .$source).{.if.(isset($e)).{.$th
2ffc0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 is->io->writeError('....<warning
2ffe0 3e 4e 6f 77 20 74 72 79 69 6e 67 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 66 72 6f 6d 20 27 20 2e >Now.trying.to.download.from.'..
30000 20 24 73 6f 75 72 63 65 20 2e 20 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 24 70 61 63 .$source...'</warning>');.}.$pac
30020 6b 61 67 65 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 73 6f 75 kage->setInstallationSource($sou
30040 72 63 65 29 3b 0a 74 72 79 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d rce);.try.{.$downloader.=.$this-
30060 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 >getDownloaderForInstalledPackag
30080 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a e($package);.if.($downloader).{.
300a0 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 $downloader->download($package,.
300c0 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c $targetDir);.}.break;.}.catch.(\
300e0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d RuntimeException.$e).{.if.($i.==
30100 3d 20 63 6f 75 6e 74 28 24 73 6f 75 72 63 65 73 29 20 2d 20 31 29 20 7b 0a 74 68 72 6f 77 20 24 =.count($sources).-.1).{.throw.$
30120 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 27 20 20 e;.}..$this->io->writeError(.'..
30140 20 20 3c 77 61 72 6e 69 6e 67 3e 46 61 69 6c 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 27 2e ..<warning>Failed.to.download.'.
30160 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 0a 27 20 66 72 .$package->getPrettyName()..'.fr
30180 6f 6d 20 27 20 2e 20 24 73 6f 75 72 63 65 20 2e 20 27 3a 20 27 2e 0a 24 65 2d 3e 67 65 74 4d 65 om.'...$source...':.'..$e->getMe
301a0 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a ssage().'</warning>'.);.}.}.}...
301c0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 ........public.function.update(P
301e0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 ackageInterface.$initial,.Packag
30200 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a eInterface.$target,.$targetDir).
30220 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f {.$downloader.=.$this->getDownlo
30240 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c aderForInstalledPackage($initial
30260 29 3b 0a 69 66 20 28 21 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d );.if.(!$downloader).{.return;.}
30280 0a 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 69 6e 69 74 69 61 6c ..$installationSource.=.$initial
302a0 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 28 ->getInstallationSource();..if.(
302c0 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 'dist'.===.$installationSource).
302e0 7b 0a 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 44 69 {.$initialType.=.$initial->getDi
30300 73 74 54 79 70 65 28 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d stType();.$targetType.=.$target-
30320 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 74 69 61 >getDistType();.}.else.{.$initia
30340 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 lType.=.$initial->getSourceType(
30360 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 );.$targetType.=.$target->getSou
30380 72 63 65 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 61 72 67 65 74 2d 3e 69 73 44 rceType();.}....if.($target->isD
303a0 65 76 28 29 20 26 26 20 27 64 69 73 74 27 20 3d 3d 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e ev().&&.'dist'.===.$installation
303c0 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 Source).{.$downloader->remove($i
303e0 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e nitial,.$targetDir);.$this->down
30400 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 72 65 74 75 load($target,.$targetDir);..retu
30420 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 rn;.}..if.($initialType.===.$tar
30440 67 65 74 54 79 70 65 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 getType).{.$target->setInstallat
30460 69 6f 6e 53 6f 75 72 63 65 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a ionSource($installationSource);.
30480 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 $downloader->update($initial,.$t
304a0 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 6f arget,.$targetDir);.}.else.{.$do
304c0 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 wnloader->remove($initial,.$targ
304e0 65 74 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c etDir);.$this->download($target,
30500 20 24 74 61 72 67 65 74 44 69 72 2c 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 69 6e 73 74 61 .$targetDir,.'source'.===.$insta
30520 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 llationSource);.}.}........publi
30540 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 c.function.remove(PackageInterfa
30560 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e ce.$package,.$targetDir).{.$down
30580 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 loader.=.$this->getDownloaderFor
305a0 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 InstalledPackage($package);.if.(
305c0 24 64 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 72 65 6d 6f $downloader).{.$downloader->remo
305e0 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a ve($package,.$targetDir);.}.}.}.
30600 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
30620 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ser\Downloader;..use.Composer\Pa
30640 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 ckage\PackageInterface;........i
30660 6e 74 65 72 66 61 63 65 20 44 6f 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a nterface.DownloaderInterface.{..
30680 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 ....public.function.getInstallat
306a0 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ionSource();........public.funct
306c0 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 ion.download(PackageInterface.$p
306e0 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ackage,.$path);.........public.f
30700 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 unction.update(PackageInterface.
30720 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 $initial,.PackageInterface.$targ
30740 65 74 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 et,.$path);........public.functi
30760 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b on.remove(PackageInterface.$pack
30780 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 age,.$path);........public.funct
307a0 69 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f ion.setOutputProgress($outputPro
307c0 67 72 65 73 73 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 gress);.}.<?php............names
307e0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c pace.Composer\Downloader;.....cl
30800 61 73 73 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c ass.TransportException.extends.\
30820 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 RuntimeException.{.protected.$he
30840 61 64 65 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 73 70 6f 6e 73 65 3b 0a 0a 70 75 62 aders;.protected.$response;..pub
30860 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 lic.function.setHeaders($headers
30880 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b 0a 7d ).{.$this->headers.=.$headers;.}
308a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 0a 7b ..public.function.getHeaders().{
308c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 .return.$this->headers;.}..publi
308e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 70 6f 6e 73 65 c.function.setResponse($response
30900 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 70 6f 6e 73 65 20 3d 20 24 72 65 73 70 6f 6e 73 65 3b ).{.$this->response.=.$response;
30920 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 73 70 6f 6e 73 65 28 .}..public.function.getResponse(
30940 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 73 70 6f 6e 73 65 3b 0a 7d 0a 7d 0a ).{.return.$this->response;.}.}.
30960 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
30980 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 61 72 ser\Downloader;.......class.Phar
309a0 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f Downloader.extends.ArchiveDownlo
309c0 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 ader.{....protected.function.ext
309e0 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 ract($file,.$path).{...$archive.
30a00 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 =.new.\Phar($file);.$archive->ex
30a20 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a tractTo($path,.null,.true);.....
30a40 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
30a60 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Composer\Downloader;.......class
30a80 20 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f .TarDownloader.extends.ArchiveDo
30aa0 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e wnloader.{....protected.function
30ac0 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 .extract($file,.$path).{...$arch
30ae0 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 ive.=.new.\PharData($file);.$arc
30b00 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 hive->extractTo($path,.null,.tru
30b20 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 e);.}.}.<?php............namespa
30b40 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d ce.Composer\Downloader;..use.Com
30b60 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a poser\Package\PackageInterface;.
30b80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f use.Composer\Util\ProcessExecuto
30ba0 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 r;.....class.HgDownloader.extend
30bc0 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s.VcsDownloader.{....public.func
30be0 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 tion.doDownload(PackageInterface
30c00 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 75 72 6c 20 3d .$package,.$path,.$url).{.$url.=
30c20 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 3b 0a .ProcessExecutor::escape($url);.
30c40 24 72 65 66 20 3d 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 $ref.=.ProcessExecutor::escape($
30c60 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a package->getSourceReference());.
30c80 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 6c 6f 6e 69 $this->io->writeError("....Cloni
30ca0 6e 67 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 ng.".$package->getSourceReferenc
30cc0 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f e());.$command.=.sprintf('hg.clo
30ce0 6e 65 20 25 73 20 25 73 27 2c 20 24 75 72 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 ne.%s.%s',.$url,.ProcessExecutor
30d00 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 ::escape($path));.if.(0.!==.$thi
30d20 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 s->process->execute($command,.$i
30d40 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 gnoredOutput)).{.throw.new.\Runt
30d60 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 imeException('Failed.to.execute.
30d80 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 '...$command..."\n\n"...$this->p
30da0 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 63 6f rocess->getErrorOutput());.}.$co
30dc0 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 75 70 20 25 73 27 2c 20 24 72 65 66 mmand.=.sprintf('hg.up.%s',.$ref
30de0 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 );.if.(0.!==.$this->process->exe
30e00 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 72 cute($command,.$ignoredOutput,.r
30e20 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 ealpath($path))).{.throw.new.\Ru
30e40 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 ntimeException('Failed.to.execut
30e60 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d e.'...$command..."\n\n"...$this-
30e80 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d >process->getErrorOutput());.}.}
30ea0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 61 .....public.function.doUpdate(Pa
30ec0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 ckageInterface.$initial,.Package
30ee0 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a Interface.$target,.$path,.$url).
30f00 7b 0a 24 75 72 6c 20 3d 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 {.$url.=.ProcessExecutor::escape
30f20 28 24 75 72 6c 29 3b 0a 24 72 65 66 20 3d 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a ($url);.$ref.=.ProcessExecutor::
30f40 65 73 63 61 70 65 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e escape($target->getSourceReferen
30f60 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 ce());.$this->io->writeError("..
30f80 20 20 55 70 64 61 74 69 6e 67 20 74 6f 20 22 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 ..Updating.to.".$target->getSour
30fa0 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 ceReference());..if.(!is_dir($pa
30fc0 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 th.'/.hg')).{.throw.new.\Runtime
30fe0 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 68 67 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 Exception('The..hg.directory.is.
31000 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 missing.from.'.$path.',.see.http
31020 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 20 66 ://getcomposer.org/commit-deps.f
31040 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 or.more.information');.}..$comma
31060 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 nd.=.sprintf('hg.pull.%s.&&.hg.u
31080 70 20 25 73 27 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 p.%s',.$url,.$ref);.if.(0.!==.$t
310a0 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 his->process->execute($command,.
310c0 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 $ignoredOutput,.realpath($path))
310e0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
31100 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 'Failed.to.execute.'...$command.
31120 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 .."\n\n"...$this->process->getEr
31140 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e rorOutput());.}.}.....public.fun
31160 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 ction.getLocalChanges(PackageInt
31180 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 erface.$package,.$path).{.if.(!i
311a0 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d s_dir($path.'/.hg')).{.return;.}
311c0 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 74 ..$this->process->execute('hg.st
311e0 27 2c 20 24 6f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 3b 0a 0a 72 ',.$output,.realpath($path));..r
31200 65 74 75 72 6e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a eturn.trim($output).?:.null;.}..
31220 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c ...protected.function.getCommitL
31240 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 ogs($fromReference,.$toReference
31260 2c 20 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 ,.$path).{.$command.=.sprintf('h
31280 67 20 6c 6f 67 20 2d 72 20 25 73 3a 25 73 20 2d 2d 73 74 79 6c 65 20 63 6f 6d 70 61 63 74 27 2c g.log.-r.%s:%s.--style.compact',
312a0 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a .$fromReference,.$toReference);.
312c0 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .if.(0.!==.$this->process->execu
312e0 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 te($command,.$output,.realpath($
31300 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 path))).{.throw.new.\RuntimeExce
31320 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f ption('Failed.to.execute.'...$co
31340 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d mmand..."\n\n"...$this->process-
31360 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f >getErrorOutput());.}..return.$o
31380 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 utput;.}.}.<?php............name
313a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 space.Composer\Downloader;..use.
313c0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Composer\Package\PackageInterfac
313e0 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 e;.......interface.ChangeReportI
31400 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f nterface.{........public.functio
31420 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 n.getLocalChanges(PackageInterfa
31440 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ce.$package,.$path);.}.<?php....
31460 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c ........namespace.Composer\Downl
31480 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 oader;..use.Composer\Package\Pac
314a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f kageInterface;.use.Symfony\Compo
314c0 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 nent\Finder\Finder;.........abst
314e0 72 61 63 74 20 63 6c 61 73 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 ract.class.ArchiveDownloader.ext
31500 65 6e 64 73 20 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 ends.FileDownloader.{....public.
31520 66 75 6e 63 74 69 6f 6e 20 64 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 function.download(PackageInterfa
31540 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 65 6d 70 6f 72 61 72 79 ce.$package,.$path).{.$temporary
31560 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 Dir.=.$this->config->get('vendor
31580 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 2e 73 75 62 73 74 72 28 6d 64 35 28 75 -dir').'/composer/'.substr(md5(u
315a0 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 29 29 2c 20 30 2c 20 38 29 3b 0a 24 72 65 74 72 69 65 niqid('',.true)),.0,.8);.$retrie
315c0 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 24 66 69 6c s.=.3;.while.($retries--).{.$fil
315e0 65 4e 61 6d 65 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 eName.=.parent::download($packag
31600 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 e,.$path);..if.($this->io->isVer
31620 62 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 bose()).{.$this->io->writeError(
31640 27 20 20 20 20 45 78 74 72 61 63 74 69 6e 67 20 61 72 63 68 69 76 65 27 29 3b 0a 7d 0a 0a 74 72 '....Extracting.archive');.}..tr
31660 79 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 y.{.$this->filesystem->ensureDir
31680 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 74 72 79 ectoryExists($temporaryDir);.try
316a0 20 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 74 65 .{.$this->extract($fileName,.$te
316c0 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e mporaryDir);.}.catch.(\Exception
316e0 20 24 65 29 20 7b 0a 0a 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 .$e).{...parent::clearCache($pac
31700 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 kage,.$path);.throw.$e;.}..$this
31720 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b ->filesystem->unlink($fileName);
31740 0a 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 6f 6c 64 65 72 ..$contentDir.=.$this->getFolder
31760 43 6f 6e 74 65 6e 74 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 31 Content($temporaryDir);....if.(1
31780 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 20 26 26 20 69 73 5f 64 69 .===.count($contentDir).&&.is_di
317a0 72 28 72 65 73 65 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 29 20 7b 0a 24 63 6f 6e 74 65 6e r(reset($contentDir))).{.$conten
317c0 74 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 6f 6c 64 65 72 43 6f 6e 74 65 6e 74 28 28 tDir.=.$this->getFolderContent((
317e0 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 63 6f 6e 74 65 6e 74 44 69 72 29 29 3b 0a 7d 0a 0a string).reset($contentDir));.}..
31800 0a 20 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 61 73 20 24 66 69 6c 65 29 ..foreach.($contentDir.as.$file)
31820 20 7b 0a 24 66 69 6c 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 66 69 6c 65 3b 0a 24 74 68 69 73 .{.$file.=.(string).$file;.$this
31840 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 66 69 6c 65 2c 20 24 70 61 74 ->filesystem->rename($file,.$pat
31860 68 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 0a 24 h...'/'...basename($file));.}..$
31880 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 this->filesystem->removeDirector
318a0 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c y($temporaryDir);.if.($this->fil
318c0 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 esystem->isDirEmpty($this->confi
318e0 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f g->get('vendor-dir').'/composer/
31900 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 ')).{.$this->filesystem->removeD
31920 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e irectory($this->config->get('ven
31940 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 27 29 3b 0a 7d 0a 69 66 20 28 24 dor-dir').'/composer/');.}.if.($
31960 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 74 68 this->filesystem->isDirEmpty($th
31980 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 is->config->get('vendor-dir'))).
319a0 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 {.$this->filesystem->removeDirec
319c0 74 6f 72 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d tory($this->config->get('vendor-
319e0 64 69 72 27 29 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 dir'));.}.}.catch.(\Exception.$e
31a00 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 ).{...$this->filesystem->removeD
31a20 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 irectory($path);.$this->filesyst
31a40 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 em->removeDirectory($temporaryDi
31a60 72 29 3b 0a 0a 0a 20 69 66 20 28 24 72 65 74 72 69 65 73 20 26 26 20 24 65 20 69 6e 73 74 61 6e r);....if.($retries.&&.$e.instan
31a80 63 65 6f 66 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 ceof.\UnexpectedValueException.&
31aa0 26 20 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 20 26 26 20 &.class_exists('ZipArchive').&&.
31ac0 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 5c 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 $e->getCode().===.\ZipArchive::E
31ae0 52 5f 4e 4f 5a 49 50 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 R_NOZIP).{.$this->io->writeError
31b00 28 27 20 20 20 20 49 6e 76 61 6c 69 64 20 7a 69 70 20 66 69 6c 65 2c 20 72 65 74 72 79 69 6e 67 ('....Invalid.zip.file,.retrying
31b20 2e 2e 2e 27 29 3b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b ...');.usleep(500000);.continue;
31b40 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 .}..throw.$e;.}..break;.}..$this
31b60 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 ->io->writeError('');.}.....prot
31b80 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 ected.function.getFileName(Packa
31ba0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 geInterface.$package,.$path).{.r
31bc0 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 28 24 70 61 74 68 2e eturn.rtrim($path.'/'.md5($path.
31be0 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 29 2e 27 2e 27 2e 70 spl_object_hash($package)).'.'.p
31c00 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 athinfo(parse_url($package->getD
31c20 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 istUrl(),.PHP_URL_PATH),.PATHINF
31c40 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 O_EXTENSION),.'.');.}.....protec
31c60 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 50 61 63 6b 61 67 65 49 ted.function.processUrl(PackageI
31c80 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 24 nterface.$package,.$url).{.if.($
31ca0 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 73 package->getDistReference().&&.s
31cc0 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 20 7b 0a 69 66 20 trpos($url,.'github.com')).{.if.
31ce0 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e (preg_match('{^https?://(?:www\.
31d00 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a )?github\.com/([^/]+)/([^/]+)/(z
31d20 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 2e 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 ip|tar)ball/(.+)$}i',.$url,.$mat
31d40 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 ch)).{...$url.=.'https://api.git
31d60 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f hub.com/repos/'...$match[1]...'/
31d80 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e '..$match[2]...'/'...$match[3]..
31da0 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 .'ball/'...$package->getDistRefe
31dc0 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 rence();.}.elseif.($package->get
31de0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b DistReference().&&.preg_match('{
31e00 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f ^https?://(?:www\.)?github\.com/
31e20 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 65 2f 2e 2b 5c 2e 28 7a 69 70 ([^/]+)/([^/]+)/archive/.+\.(zip
31e40 7c 74 61 72 29 28 3f 3a 5c 2e 67 7a 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 |tar)(?:\.gz)?$}i',.$url,.$match
31e60 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 )).{...$url.=.'https://api.githu
31e80 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e b.com/repos/'...$match[1]...'/'.
31ea0 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 .$match[2]...'/'...$match[3]...'
31ec0 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 ball/'...$package->getDistRefere
31ee0 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 nce();.}.elseif.($package->getDi
31f00 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 stReference().&&.preg_match('{^h
31f20 74 74 70 73 3f 3a 2f 2f 61 70 69 5c 2e 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 72 65 70 6f 73 2f 28 ttps?://api\.github\.com/repos/(
31f40 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 28 3f 3a 2f [^/]+)/([^/]+)/(zip|tar)ball(?:/
31f60 2e 2b 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 .+)?$}i',.$url,.$match)).{...$ur
31f80 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f l.=.'https://api.github.com/repo
31fa0 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d s/'...$match[1]...'/'..$match[2]
31fc0 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 ...'/'...$match[3]...'ball/'...$
31fe0 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 7d package->getDistReference();.}.}
32000 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c ..if.(!extension_loaded('openssl
32020 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 73 ').&&.(0.===.strpos($url,.'https
32040 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 68 74 74 70 3a :').||.0.===.strpos($url,.'http:
32060 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 //github.com'))).{.throw.new.\Ru
32080 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 ntimeException('You.must.enable.
320a0 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f 77 6e 6c 6f 61 the.openssl.extension.to.downloa
320c0 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 d.files.via.https');.}..return.p
320e0 61 72 65 6e 74 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c arent::processUrl($package,.$url
32100 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 );.}..........abstract.protected
32120 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 3b .function.extract($file,.$path);
32140 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 6c 64 ........private.function.getFold
32160 65 72 43 6f 6e 74 65 6e 74 28 24 64 69 72 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 erContent($dir).{.$finder.=.Find
32180 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a er::create().->ignoreVCS(false).
321a0 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 ->ignoreDotFiles(false).->depth(
321c0 30 29 0a 2d 3e 69 6e 28 24 64 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 0).->in($dir);..return.iterator_
321e0 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a to_array($finder);.}.}.<?php....
32200 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c ........namespace.Composer\Downl
32220 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 oader;.......class.FilesystemExc
32240 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c eption.extends.\Exception.{.publ
32260 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 ic.function.__construct($message
32280 20 3d 20 6e 75 6c 6c 2c 20 24 63 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f .=.null,.$code.=.null,.\Exceptio
322a0 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f n.$previous.=.null).{.parent::__
322c0 63 6f 6e 73 74 72 75 63 74 28 22 46 69 6c 65 73 79 73 74 65 6d 20 65 78 63 65 70 74 69 6f 6e 3a construct("Filesystem.exception:
322e0 20 5c 6e 22 2e 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 2c 20 24 70 72 65 76 69 6f 75 73 29 .\n".$message,.$code,.$previous)
32300 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
32320 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f .Composer\Downloader;..use.Compo
32340 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 ser\Package\PackageInterface;.us
32360 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 e.Composer\Repository\VcsReposit
32380 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 65 72 66 6f 72 63 65 3b ory;.use.Composer\Util\Perforce;
323a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 .....class.PerforceDownloader.ex
323c0 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 tends.VcsDownloader.{.protected.
323e0 24 70 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 $perforce;.....public.function.d
32400 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b oDownload(PackageInterface.$pack
32420 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 24 72 65 66 20 3d 20 24 70 61 63 6b age,.$path,.$url).{.$ref.=.$pack
32440 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 6c 61 62 65 age->getSourceReference();.$labe
32460 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 61 62 65 6c 46 72 6f 6d 53 6f 75 72 63 65 52 65 66 l.=.$this->getLabelFromSourceRef
32480 65 72 65 6e 63 65 28 24 72 65 66 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 erence($ref);..$this->io->writeE
324a0 72 72 6f 72 28 27 20 20 20 20 43 6c 6f 6e 69 6e 67 20 27 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 rror('....Cloning.'...$ref);.$th
324c0 69 73 2d 3e 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 is->initPerforce($package,.$path
324e0 2c 20 24 75 72 6c 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 73 65 74 53 74 72 ,.$url);.$this->perforce->setStr
32500 65 61 6d 28 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 70 34 4c 6f eam($ref);.$this->perforce->p4Lo
32520 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d gin($this->io);.$this->perforce-
32540 3e 77 72 69 74 65 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 >writeP4ClientSpec();.$this->per
32560 66 6f 72 63 65 2d 3e 63 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 3b 0a 24 74 68 69 73 2d 3e 70 force->connectClient();.$this->p
32580 65 72 66 6f 72 63 65 2d 3e 73 79 6e 63 43 6f 64 65 42 61 73 65 28 24 6c 61 62 65 6c 29 3b 0a 24 erforce->syncCodeBase($label);.$
325a0 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 this->perforce->cleanupClientSpe
325c0 63 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 62 65 c();.}..private.function.getLabe
325e0 6c 46 72 6f 6d 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 29 0a 7b 0a 24 70 6f lFromSourceReference($ref).{.$po
32600 73 20 3d 20 73 74 72 70 6f 73 28 24 72 65 66 2c 27 40 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 s.=.strpos($ref,'@');.if.(false.
32620 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 72 65 66 2c 20 !==.$pos).{.return.substr($ref,.
32640 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 $pos.+.1);.}..return.null;.}..pu
32660 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 70 61 63 6b blic.function.initPerforce($pack
32680 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 age,.$path,.$url).{.if.(!empty($
326a0 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 this->perforce)).{.$this->perfor
326c0 63 65 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 ce->initializePath($path);..retu
326e0 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 rn;.}..$repository.=.$package->g
32700 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 6e 75 etRepository();.$repoConfig.=.nu
32720 6c 6c 3b 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 56 ll;.if.($repository.instanceof.V
32740 63 73 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 74 csRepository).{.$repoConfig.=.$t
32760 68 69 73 2d 3e 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 24 72 65 70 6f 73 69 74 6f 72 79 29 3b his->getRepoConfig($repository);
32780 0a 7d 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 50 65 72 66 6f 72 63 65 3a 3a 63 .}.$this->perforce.=.Perforce::c
327a0 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 reate($repoConfig,.$url,.$path,.
327c0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 70 $this->process,.$this->io);.}..p
327e0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 56 63 rivate.function.getRepoConfig(Vc
32800 73 52 65 70 6f 73 69 74 6f 72 79 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 72 65 74 75 72 sRepository.$repository).{.retur
32820 6e 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 3b 0a n.$repository->getRepoConfig();.
32840 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 50 }.....public.function.doUpdate(P
32860 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 ackageInterface.$initial,.Packag
32880 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 2c 20 24 75 72 6c 29 eInterface.$target,.$path,.$url)
328a0 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 .{.$this->doDownload($target,.$p
328c0 61 74 68 2c 20 24 75 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ath,.$url);.}.....public.functio
328e0 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 n.getLocalChanges(PackageInterfa
32900 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d ce.$package,.$path).{.$this->io-
32920 3e 77 72 69 74 65 45 72 72 6f 72 28 27 50 65 72 66 6f 72 63 65 20 64 72 69 76 65 72 20 64 6f 65 >writeError('Perforce.driver.doe
32940 73 20 6e 6f 74 20 63 68 65 63 6b 20 66 6f 72 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 20 62 65 s.not.check.for.local.changes.be
32960 66 6f 72 65 20 6f 76 65 72 72 69 64 69 6e 67 27 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e fore.overriding',.true);..return
32980 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f ;.}.....protected.function.getCo
329a0 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 mmitLogs($fromReference,.$toRefe
329c0 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 63 6f 6d 6d 69 74 4c 6f 67 73 20 3d 20 24 74 rence,.$path).{.$commitLogs.=.$t
329e0 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 his->perforce->getCommitLogs($fr
32a00 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 72 65 74 omReference,.$toReference);..ret
32a20 75 72 6e 20 24 63 6f 6d 6d 69 74 4c 6f 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urn.$commitLogs;.}..public.funct
32a40 69 6f 6e 20 73 65 74 50 65 72 66 6f 72 63 65 28 24 70 65 72 66 6f 72 63 65 29 0a 7b 0a 24 74 68 ion.setPerforce($perforce).{.$th
32a60 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 24 70 65 72 66 6f 72 63 65 3b 0a 7d 0a 7d 0a 3c 3f is->perforce.=.$perforce;.}.}.<?
32a80 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
32aa0 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 r\Downloader;..use.Composer\Conf
32ac0 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 ig;.use.Composer\Cache;.use.Comp
32ae0 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 oser\EventDispatcher\EventDispat
32b00 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 cher;.use.Composer\Util\ProcessE
32b20 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 xecutor;.use.Composer\IO\IOInter
32b40 66 61 63 65 3b 0a 75 73 65 20 5a 69 70 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 face;.use.ZipArchive;.....class.
32b60 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 ZipDownloader.extends.ArchiveDow
32b80 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 nloader.{.protected.$process;..p
32ba0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 ublic.function.__construct(IOInt
32bc0 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e erface.$io,.Config.$config,.Even
32be0 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e tDispatcher.$eventDispatcher.=.n
32c00 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 ull,.Cache.$cache.=.null,.Proces
32c20 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 sExecutor.$process.=.null).{.$th
32c40 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 is->process.=.$process.?:.new.Pr
32c60 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ocessExecutor($io);.parent::__co
32c80 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 nstruct($io,.$config,.$eventDisp
32ca0 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 atcher,.$cache);.}..protected.fu
32cc0 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 nction.extract($file,.$path).{.$
32ce0 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 processError.=.null;....if.(!def
32d00 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 ined('PHP_WINDOWS_VERSION_BUILD'
32d20 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 7a 69 70 20 27 2e 50 72 6f 63 65 73 73 )).{.$command.=.'unzip.'.Process
32d40 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 2e 27 20 2d 64 20 27 2e 50 Executor::escape($file).'.-d.'.P
32d60 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 20 2e 20 rocessExecutor::escape($path)...
32d80 27 20 26 26 20 63 68 6d 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 '.&&.chmod.-R.u+w.'...ProcessExe
32da0 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 74 72 79 20 7b 0a 69 66 20 28 cutor::escape($path);.try.{.if.(
32dc0 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 0.===.$this->process->execute($c
32de0 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 ommand,.$ignoredOutput)).{.retur
32e00 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 6f n;.}..$processError.=.'Failed.to
32e20 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e .execute.'...$command..."\n\n"..
32e40 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .$this->process->getErrorOutput(
32e60 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 );.}.catch.(\Exception.$e).{.$pr
32e80 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 ocessError.=.'Failed.to.execute.
32ea0 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 65 2d 3e 67 65 74 4d '...$command..."\n\n"...$e->getM
32ec0 65 73 73 61 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 73 74 73 essage();.}.}..if.(!class_exists
32ee0 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 3d 20 70 ('ZipArchive')).{...$iniPath.=.p
32f00 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 50 hp_ini_loaded_file();..if.($iniP
32f20 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 2e 69 6e ath).{.$iniMessage.=.'The.php.in
32f40 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 48 50 20 i.used.by.your.command-line.PHP.
32f60 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 69 4d is:.'...$iniPath;.}.else.{.$iniM
32f80 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f essage.=.'A.php.ini.file.does.no
32fa0 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 t.exist..You.will.have.to.create
32fc0 20 6f 6e 65 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 .one.';.}..$error.=."Could.not.d
32fe0 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 ecompress.the.archive,.enable.th
33000 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c 6c 20 75 e.PHP.zip.extension.or.install.u
33020 6e 7a 69 70 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 20 2e 20 nzip.\n"...$iniMessage..."\n"...
33040 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 $processError;..if.(!defined('PH
33060 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 72 P_WINDOWS_VERSION_BUILD')).{.$er
33080 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 68 65 20 ror.=."Could.not.decompress.the.
330a0 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 70 20 65 78 74 65 archive,.enable.the.PHP.zip.exte
330c0 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 68 72 6f nsion.\n"...$iniMessage;.}..thro
330e0 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 29 3b w.new.\RuntimeException($error);
33100 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 72 63 68 69 76 65 .}..$zipArchive.=.new.ZipArchive
33120 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c 20 3d 20 24 7a 69 ();..if.(true.!==.($retval.=.$zi
33140 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a 74 68 72 6f 77 20 pArchive->open($file))).{.throw.
33160 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 74 new.\UnexpectedValueException($t
33180 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 61 6c 2c 20 24 66 his->getErrorMessage($retval,.$f
331a0 69 6c 65 29 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 ile),.$retval);.}..if.(true.!==.
331c0 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 74 68 29 29 20 7b $zipArchive->extractTo($path)).{
331e0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 54 68 .throw.new.\RuntimeException("Th
33200 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 20 65 78 74 72 61 63 74 69 6e 67 20 74 68 65 20 ere.was.an.error.extracting.the.
33220 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 20 66 69 6c 65 3f 22 29 3b 0a 7d 0a 0a 24 7a ZIP.file..Corrupt.file?");.}..$z
33240 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ipArchive->close();.}.........pr
33260 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 otected.function.getErrorMessage
33280 28 24 72 65 74 76 61 6c 2c 20 24 66 69 6c 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 72 65 74 76 ($retval,.$file).{.switch.($retv
332a0 61 6c 29 20 7b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 45 58 49 53 54 53 al).{.case.ZipArchive::ER_EXISTS
332c0 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 46 69 6c 65 20 27 25 73 27 20 61 6c 72 65 :.return.sprintf("File.'%s'.alre
332e0 61 64 79 20 65 78 69 73 74 73 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 ady.exists.",.$file);.case.ZipAr
33300 63 68 69 76 65 3a 3a 45 52 5f 49 4e 43 4f 4e 53 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 chive::ER_INCONS:.return.sprintf
33320 28 22 5a 69 70 20 61 72 63 68 69 76 65 20 27 25 73 27 20 69 73 20 69 6e 63 6f 6e 73 69 73 74 65 ("Zip.archive.'%s'.is.inconsiste
33340 6e 74 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 nt.",.$file);.case.ZipArchive::E
33360 52 5f 49 4e 56 41 4c 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 49 6e 76 61 6c 69 64 R_INVAL:.return.sprintf("Invalid
33380 20 61 72 67 75 6d 65 6e 74 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 .argument.(%s)",.$file);.case.Zi
333a0 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4d 45 4d 4f 52 59 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 pArchive::ER_MEMORY:.return.spri
333c0 6e 74 66 28 22 4d 61 6c 6c 6f 63 20 66 61 69 6c 75 72 65 20 28 25 73 29 22 2c 20 24 66 69 6c 65 ntf("Malloc.failure.(%s)",.$file
333e0 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 45 4e 54 3a 0a 72 65 );.case.ZipArchive::ER_NOENT:.re
33400 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 4e 6f 20 73 75 63 68 20 7a 69 70 20 66 69 6c 65 3a 20 turn.sprintf("No.such.zip.file:.
33420 27 25 73 27 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a '%s'",.$file);.case.ZipArchive::
33440 45 52 5f 4e 4f 5a 49 50 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 ER_NOZIP:.return.sprintf("'%s'.i
33460 73 20 6e 6f 74 20 61 20 7a 69 70 20 61 72 63 68 69 76 65 2e 22 2c 20 24 66 69 6c 65 29 3b 0a 63 s.not.a.zip.archive.",.$file);.c
33480 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4f 50 45 4e 3a 0a 72 65 74 75 72 6e 20 ase.ZipArchive::ER_OPEN:.return.
334a0 73 70 72 69 6e 74 66 28 22 43 61 6e 27 74 20 6f 70 65 6e 20 7a 69 70 20 66 69 6c 65 3a 20 25 73 sprintf("Can't.open.zip.file:.%s
334c0 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 52 ",.$file);.case.ZipArchive::ER_R
334e0 45 41 44 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 20 72 65 61 64 20 65 72 EAD:.return.sprintf("Zip.read.er
33500 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 63 61 73 65 20 5a 69 70 41 72 63 68 69 ror.(%s)",.$file);.case.ZipArchi
33520 76 65 3a 3a 45 52 5f 53 45 45 4b 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5a 69 70 ve::ER_SEEK:.return.sprintf("Zip
33540 20 73 65 65 6b 20 65 72 72 6f 72 20 28 25 73 29 22 2c 20 24 66 69 6c 65 29 3b 0a 64 65 66 61 75 .seek.error.(%s)",.$file);.defau
33560 6c 74 3a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 73 27 20 69 73 20 6e 6f 74 20 lt:.return.sprintf("'%s'.is.not.
33580 61 20 76 61 6c 69 64 20 7a 69 70 20 61 72 63 68 69 76 65 2c 20 67 6f 74 20 65 72 72 6f 72 20 63 a.valid.zip.archive,.got.error.c
335a0 6f 64 65 3a 20 25 73 22 2c 20 24 66 69 6c 65 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 7d 0a 7d ode:.%s",.$file,.$retval);.}.}.}
335c0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
335e0 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 oser\Downloader;..use.Composer\C
33600 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 onfig;.use.Composer\Cache;.use.C
33620 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 omposer\EventDispatcher\EventDis
33640 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 patcher;.use.Composer\Package\Pa
33660 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 ckageInterface;.use.Composer\Uti
33680 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c l\ProcessExecutor;.use.Composer\
336a0 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 7a 69 70 IO\IOInterface;.......class.Gzip
336c0 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 68 69 76 65 44 6f 77 6e 6c 6f Downloader.extends.ArchiveDownlo
336e0 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c ader.{.protected.$process;..publ
33700 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 ic.function.__construct(IOInterf
33720 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 ace.$io,.Config.$config,.EventDi
33740 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c spatcher.$eventDispatcher.=.null
33760 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 ,.Cache.$cache.=.null,.ProcessEx
33780 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d ecutor.$process.=.null).{.$this-
337a0 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 >process.=.$process.?:.new.Proce
337c0 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 ssExecutor($io);.parent::__const
337e0 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 ruct($io,.$config,.$eventDispatc
33800 68 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 her,.$cache);.}..protected.funct
33820 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 61 72 ion.extract($file,.$path).{.$tar
33840 67 65 74 46 69 6c 65 70 61 74 68 20 3d 20 24 70 61 74 68 20 2e 20 44 49 52 45 43 54 4f 52 59 5f getFilepath.=.$path...DIRECTORY_
33860 53 45 50 41 52 41 54 4f 52 20 2e 20 62 61 73 65 6e 61 6d 65 28 73 75 62 73 74 72 28 24 66 69 6c SEPARATOR...basename(substr($fil
33880 65 2c 20 30 2c 20 2d 33 29 29 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 e,.0,.-3));....if.(!defined('PHP
338a0 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d _WINDOWS_VERSION_BUILD')).{.$com
338c0 6d 61 6e 64 20 3d 20 27 67 7a 69 70 20 2d 63 64 20 27 20 2e 20 50 72 6f 63 65 73 73 45 78 65 63 mand.=.'gzip.-cd.'...ProcessExec
338e0 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 66 69 6c 65 29 20 2e 20 27 20 3e 20 27 20 2e 20 50 72 utor::escape($file)...'.>.'...Pr
33900 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 46 69 6c ocessExecutor::escape($targetFil
33920 65 70 61 74 68 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 epath);..if.(0.===.$this->proces
33940 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 s->execute($command,.$ignoredOut
33960 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 put)).{.return;.}..$processError
33980 20 3d 20 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 .=.'Failed.to.execute.'...$comma
339a0 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 nd..."\n\n"...$this->process->ge
339c0 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 tErrorOutput();.throw.new.\Runti
339e0 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 45 72 72 6f 72 29 3b 0a 7d 0a 0a 0a meException($processError);.}...
33a00 20 24 61 72 63 68 69 76 65 46 69 6c 65 20 3d 20 67 7a 6f 70 65 6e 28 24 66 69 6c 65 2c 20 27 72 .$archiveFile.=.gzopen($file,.'r
33a20 62 27 29 3b 0a 24 74 61 72 67 65 74 46 69 6c 65 20 3d 20 66 6f 70 65 6e 28 24 74 61 72 67 65 74 b');.$targetFile.=.fopen($target
33a40 46 69 6c 65 70 61 74 68 2c 20 27 77 62 27 29 3b 0a 77 68 69 6c 65 20 28 24 73 74 72 69 6e 67 20 Filepath,.'wb');.while.($string.
33a60 3d 20 67 7a 72 65 61 64 28 24 61 72 63 68 69 76 65 46 69 6c 65 2c 20 34 30 39 36 29 29 20 7b 0a =.gzread($archiveFile,.4096)).{.
33a80 66 77 72 69 74 65 28 24 74 61 72 67 65 74 46 69 6c 65 2c 20 24 73 74 72 69 6e 67 2c 20 73 74 72 fwrite($targetFile,.$string,.str
33aa0 6c 65 6e 28 24 73 74 72 69 6e 67 29 29 3b 0a 7d 0a 67 7a 63 6c 6f 73 65 28 24 61 72 63 68 69 76 len($string));.}.gzclose($archiv
33ac0 65 46 69 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 46 69 6c 65 29 3b 0a 7d 0a 0a eFile);.fclose($targetFile);.}..
33ae0 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 4e 61 6d ...protected.function.getFileNam
33b00 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 e(PackageInterface.$package,.$pa
33b20 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 th).{.return.$path.'/'.pathinfo(
33b40 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 parse_url($package->getDistUrl()
33b60 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 ,.PHP_URL_PATH),.PATHINFO_BASENA
33b80 4d 45 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ME);.}.}.<?php............namesp
33ba0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Downloader;..use.Co
33bc0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b mposer\Package\PackageInterface;
33be0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 .use.Composer\Util\GitHub;.use.C
33c00 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 omposer\Util\Git.as.GitUtil;.use
33c20 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a .Composer\Util\ProcessExecutor;.
33c40 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 use.Composer\IO\IOInterface;.use
33c60 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 .Composer\Util\Filesystem;.use.C
33c80 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 6f 77 omposer\Config;.....class.GitDow
33ca0 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a nloader.extends.VcsDownloader.{.
33cc0 70 72 69 76 61 74 65 20 24 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c private.$hasStashedChanges.=.fal
33ce0 73 65 3b 0a 70 72 69 76 61 74 65 20 24 67 69 74 55 74 69 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 se;.private.$gitUtil;..public.fu
33d00 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 nction.__construct(IOInterface.$
33d20 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 io,.Config.$config,.ProcessExecu
33d40 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 tor.$process.=.null,.Filesystem.
33d60 24 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 $fs.=.null).{.parent::__construc
33d80 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 66 73 29 3b 0a t($io,.$config,.$process,.$fs);.
33da0 24 74 68 69 73 2d 3e 67 69 74 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 28 24 74 68 $this->gitUtil.=.new.GitUtil($th
33dc0 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 is->io,.$this->config,.$this->pr
33de0 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 29 3b 0a 7d 0a 0a 0a 0a ocess,.$this->filesystem);.}....
33e00 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b .public.function.doDownload(Pack
33e20 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 ageInterface.$package,.$path,.$u
33e40 72 6c 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 rl).{.GitUtil::cleanEnv();.$path
33e60 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a .=.$this->normalizePath($path);.
33e80 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 .$ref.=.$package->getSourceRefer
33ea0 65 6e 63 65 28 29 3b 0a 24 66 6c 61 67 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e ence();.$flag.=.defined('PHP_WIN
33ec0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 20 3f 20 27 2f 44 20 27 20 3a 20 27 DOWS_VERSION_MAJOR').?.'/D.'.:.'
33ee0 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 2d 63 68 ';.$command.=.'git.clone.--no-ch
33f00 65 63 6b 6f 75 74 20 25 73 20 25 73 20 26 26 20 63 64 20 27 2e 24 66 6c 61 67 2e 27 25 32 24 73 eckout.%s.%s.&&.cd.'.$flag.'%2$s
33f20 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 61 64 64 20 63 6f 6d 70 6f 73 65 72 20 25 31 24 73 .&&.git.remote.add.composer.%1$s
33f40 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f 6d 70 6f 73 65 72 27 3b 0a 24 74 68 69 73 2d 3e .&&.git.fetch.composer';.$this->
33f60 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 72 io->writeError("....Cloning.".$r
33f80 65 66 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f ef);..$commandCallable.=.functio
33fa0 6e 20 28 24 75 72 6c 29 20 75 73 65 20 28 24 72 65 66 2c 20 24 70 61 74 68 2c 20 24 63 6f 6d 6d n.($url).use.($ref,.$path,.$comm
33fc0 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 and).{.return.sprintf($command,.
33fe0 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 2c 20 50 ProcessExecutor::escape($url),.P
34000 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 2c 20 50 rocessExecutor::escape($path),.P
34020 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 72 65 66 29 29 3b 0a 7d rocessExecutor::escape($ref));.}
34040 3b 0a 0a 24 74 68 69 73 2d 3e 67 69 74 55 74 69 6c 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 ;..$this->gitUtil->runCommand($c
34060 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 2c 20 74 72 75 ommandCallable,.$url,.$path,.tru
34080 65 29 3b 0a 69 66 20 28 24 75 72 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f e);.if.($url.!==.$package->getSo
340a0 75 72 63 65 55 72 6c 28 29 29 20 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 urceUrl()).{.$url.=.$package->ge
340c0 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 tSourceUrl();.$this->process->ex
340e0 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 ecute(sprintf('git.remote.set-ur
34100 6c 20 6f 72 69 67 69 6e 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 l.origin.%s',.ProcessExecutor::e
34120 73 63 61 70 65 28 24 75 72 6c 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d scape($url)),.$output,.$path);.}
34140 0a 24 74 68 69 73 2d 3e 73 65 74 50 75 73 68 55 72 6c 28 24 70 61 74 68 2c 20 24 75 72 6c 29 3b .$this->setPushUrl($path,.$url);
34160 0a 0a 69 66 20 28 24 6e 65 77 52 65 66 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 ..if.($newRef.=.$this->updateToC
34180 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ommit($path,.$ref,.$package->get
341a0 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 PrettyVersion(),.$package->getRe
341c0 6c 65 61 73 65 44 61 74 65 28 29 29 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 leaseDate())).{.if.($package->ge
341e0 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 tDistReference().===.$package->g
34200 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d etSourceReference()).{.$package-
34220 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a 7d 0a 24 70 >setDistReference($newRef);.}.$p
34240 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 52 ackage->setSourceReference($newR
34260 65 66 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 ef);.}.}.....public.function.doU
34280 70 64 61 74 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c pdate(PackageInterface.$initial,
342a0 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 .PackageInterface.$target,.$path
342c0 2c 20 24 75 72 6c 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 ,.$url).{.GitUtil::cleanEnv();.$
342e0 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 path.=.$this->normalizePath($pat
34300 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 29 20 h);.if.(!is_dir($path.'/.git')).
34320 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 {.throw.new.\RuntimeException('T
34340 68 65 20 2e 67 69 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f he..git.directory.is.missing.fro
34360 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f m.'.$path.',.see.http://getcompo
34380 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 ser.org/commit-deps.for.more.inf
343a0 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 ormation');.}..$ref.=.$target->g
343c0 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e etSourceReference();.$this->io->
343e0 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 writeError("....Checking.out.".$
34400 72 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 ref);.$command.=.'git.remote.set
34420 2d 75 72 6c 20 63 6f 6d 70 6f 73 65 72 20 25 73 20 26 26 20 67 69 74 20 66 65 74 63 68 20 63 6f -url.composer.%s.&&.git.fetch.co
34440 6d 70 6f 73 65 72 20 26 26 20 67 69 74 20 66 65 74 63 68 20 2d 2d 74 61 67 73 20 63 6f 6d 70 6f mposer.&&.git.fetch.--tags.compo
34460 73 65 72 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 ser';..$commandCallable.=.functi
34480 6f 6e 20 28 24 75 72 6c 29 20 75 73 65 20 28 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 on.($url).use.($command).{.retur
344a0 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 n.sprintf($command,.ProcessExecu
344c0 74 6f 72 3a 3a 65 73 63 61 70 65 20 28 24 75 72 6c 29 29 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e tor::escape.($url));.};..$this->
344e0 67 69 74 55 74 69 6c 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c gitUtil->runCommand($commandCall
34500 61 62 6c 65 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 28 24 6e 65 77 52 65 66 20 able,.$url,.$path);.if.($newRef.
34520 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 =.$this->updateToCommit($path,.$
34540 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 ref,.$target->getPrettyVersion()
34560 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 29 20 7b 0a ,.$target->getReleaseDate())).{.
34580 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 if.($target->getDistReference().
345a0 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 ===.$target->getSourceReference(
345c0 29 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 )).{.$target->setDistReference($
345e0 6e 65 77 52 65 66 29 3b 0a 7d 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 newRef);.}.$target->setSourceRef
34600 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 erence($newRef);.}.}.....public.
34620 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 function.getLocalChanges(Package
34640 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 47 69 74 Interface.$package,.$path).{.Git
34660 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d Util::cleanEnv();.$path.=.$this-
34680 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 >normalizePath($path);.if.(!is_d
346a0 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a ir($path.'/.git')).{.return;.}..
346c0 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 73 74 61 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 $command.=.'git.status.--porcela
346e0 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 64 2d 66 69 6c 65 73 3d 6e 6f 27 3b 0a 69 66 20 28 30 20 in.--untracked-files=no';.if.(0.
34700 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d !==.$this->process->execute($com
34720 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e mand,.$output,.$path)).{.throw.n
34740 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 ew.\RuntimeException('Failed.to.
34760 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 execute.'...$command..."\n\n"...
34780 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
347a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 );.}..return.trim($output).?:.nu
347c0 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 ll;.}.....protected.function.cle
347e0 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b anChanges(PackageInterface.$pack
34800 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a age,.$path,.$update).{.GitUtil::
34820 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 cleanEnv();.$path.=.$this->norma
34840 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 24 63 68 61 6e 67 65 73 20 3d lizePath($path);.if.(!$changes.=
34860 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 .$this->getLocalChanges($package
34880 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 ,.$path)).{.return;.}..if.(!$thi
348a0 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 64 69 73 63 61 s->io->isInteractive()).{.$disca
348c0 72 64 43 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 rdChanges.=.$this->config->get('
348e0 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 29 3b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 discard-changes');.if.(true.===.
34900 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d $discardChanges).{.return.$this-
34920 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 69 66 20 28 27 73 >discardChanges($path);.}.if.('s
34940 74 61 73 68 27 20 3d 3d 3d 20 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 29 20 7b 0a 69 66 20 tash'.===.$discardChanges).{.if.
34960 28 21 24 75 70 64 61 74 65 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 (!$update).{.return.parent::clea
34980 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 nChanges($package,.$path,.$updat
349a0 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 e);.}..return.$this->stashChange
349c0 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 s($path);.}..return.parent::clea
349e0 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 nChanges($package,.$path,.$updat
34a00 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 e);.}..$changes.=.array_map(func
34a20 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c tion.($elem).{.return.'....'.$el
34a40 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d em;.},.preg_split('{\s*\r?\n\s*}
34a60 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 ',.$changes));.$this->io->writeE
34a80 72 72 6f 72 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 rror('....<error>The.package.has
34aa0 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 .modified.files:</error>');.$thi
34ac0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 63 s->io->writeError(array_slice($c
34ae0 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 61 6e hanges,.0,.10));.if.(count($chan
34b00 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 ges).>.10).{.$this->io->writeErr
34b20 6f 72 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 or('....<info>'.count($changes).
34b40 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 -.10...'.more.files.modified,.ch
34b60 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f oose."v".to.view.the.full.list</
34b80 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 info>');.}..while.(true).{.switc
34ba0 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 h.($this->io->ask('....<info>Dis
34bc0 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 27 2e 28 24 75 70 64 61 74 65 20 3f card.changes.[y,n,v,'.($update.?
34be0 20 27 73 2c 27 20 3a 20 27 27 29 2e 27 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 .'s,'.:.'').'?]?</info>.',.'?'))
34c00 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 .{.case.'y':.$this->discardChang
34c20 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 es($path);.break.2;..case.'s':.i
34c40 66 20 28 21 24 75 70 64 61 74 65 29 20 7b 0a 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 24 74 68 f.(!$update).{.goto.help;.}..$th
34c60 69 73 2d 3e 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 is->stashChanges($path);.break.2
34c80 3b 0a 0a 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 ;..case.'n':.throw.new.\RuntimeE
34ca0 78 63 65 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 xception('Update.aborted');..cas
34cc0 65 20 27 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 63 68 e.'v':.$this->io->writeError($ch
34ce0 61 6e 67 65 73 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c anges);.break;..case.'?':.defaul
34d00 74 3a 0a 68 65 6c 70 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 61 t:.help:.$this->io->writeError(a
34d20 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 rray(.'....y.-.discard.changes.a
34d40 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 nd.apply.the.'.($update.?.'updat
34d60 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 e'.:.'uninstall'),.'....n.-.abor
34d80 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 t.the.'.($update.?.'update'.:.'u
34da0 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c ninstall').'.and.let.you.manuall
34dc0 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 y.clean.things.up',.'....v.-.vie
34de0 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a 29 29 3b 0a 69 66 20 28 24 75 70 64 61 w.modified.files',.));.if.($upda
34e00 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 te).{.$this->io->writeError('...
34e20 20 73 20 2d 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 20 61 6e 64 20 74 72 79 20 74 6f 20 72 65 .s.-.stash.changes.and.try.to.re
34e40 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 29 3b 0a 7d apply.them.after.the.update');.}
34e60 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3f 20 2d 20 .$this->io->writeError('....?.-.
34e80 70 72 69 6e 74 20 68 65 6c 70 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 print.help');.break;.}.}.}.....p
34ea0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 rotected.function.reapplyChanges
34ec0 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 ($path).{.$path.=.$this->normali
34ee0 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 61 zePath($path);.if.($this->hasSta
34f00 73 68 65 64 43 68 61 6e 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 shedChanges).{.$this->hasStashed
34f20 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 Changes.=.false;.$this->io->writ
34f40 65 45 72 72 6f 72 28 27 20 20 20 20 3c 69 6e 66 6f 3e 52 65 2d 61 70 70 6c 79 69 6e 67 20 73 74 eError('....<info>Re-applying.st
34f60 61 73 68 65 64 20 63 68 61 6e 67 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 69 66 20 28 30 20 21 3d ashed.changes</info>');.if.(0.!=
34f80 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 =.$this->process->execute('git.s
34fa0 74 61 73 68 20 70 6f 70 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 tash.pop',.$output,.$path)).{.th
34fc0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 46 61 69 6c 65 row.new.\RuntimeException("Faile
34fe0 64 20 74 6f 20 61 70 70 6c 79 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 3a 5c 6e 5c 6e 22 d.to.apply.stashed.changes:\n\n"
35000 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .$this->process->getErrorOutput(
35020 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ));.}.}.}.............protected.
35040 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 54 6f 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 function.updateToCommit($path,.$
35060 72 65 66 65 72 65 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 74 65 reference,.$branch,.$date).{.$te
35080 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 69 74 mplate.=.'git.checkout.%s.&&.git
350a0 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 70 .reset.--hard.%1$s';.$branch.=.p
350c0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d reg_replace('{(?:^dev-|(?:\.x)?-
350e0 64 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 68 dev$)}i',.'',.$branch);..$branch
35100 65 73 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 es.=.null;.if.(0.===.$this->proc
35120 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 2c 20 24 6f ess->execute('git.branch.-r',.$o
35140 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f 75 utput,.$path)).{.$branches.=.$ou
35160 74 70 75 74 3b 0a 7d 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b tput;.}....$gitRef.=.$reference;
35180 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d .if.(!preg_match('{^[a-f0-9]{40}
351a0 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 26 $}',.$reference).&&.$branches.&&
351c0 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 .preg_match('{^\s+composer/'.pre
351e0 67 5f 71 75 6f 74 65 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e g_quote($reference).'$}m',.$bran
35200 63 68 65 73 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 ches).).{.$command.=.sprintf('gi
35220 74 20 63 68 65 63 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 t.checkout.-B.%s.%s.&&.git.reset
35240 20 2d 2d 68 61 72 64 20 25 32 24 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a .--hard.%2$s',.ProcessExecutor::
35260 65 73 63 61 70 65 28 24 62 72 61 6e 63 68 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 escape($branch),.ProcessExecutor
35280 3a 3a 65 73 63 61 70 65 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 72 65 66 65 72 65 6e 63 65 29 ::escape('composer/'.$reference)
352a0 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 );.if.(0.===.$this->process->exe
352c0 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 cute($command,.$output,.$path)).
352e0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 {.return;.}.}....if.(preg_match(
35300 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 '{^[a-f0-9]{40}$}',.$reference))
35320 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f .{...if.(!preg_match('{^\s+compo
35340 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c ser/'.preg_quote($branch).'$}m',
35360 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2b .$branches).&&.preg_match('{^\s+
35380 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e composer/v'.preg_quote($branch).
353a0 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 27 '$}m',.$branches)).{.$branch.=.'
353c0 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 v'...$branch;.}..$command.=.spri
353e0 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 ntf('git.checkout.%s',.ProcessEx
35400 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 62 72 61 6e 63 68 29 29 3b 0a 24 66 61 6c 6c 62 ecutor::escape($branch));.$fallb
35420 61 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f ackCommand.=.sprintf('git.checko
35440 75 74 20 2d 42 20 25 73 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 ut.-B.%s.%s',.ProcessExecutor::e
35460 73 63 61 70 65 28 24 62 72 61 6e 63 68 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a scape($branch),.ProcessExecutor:
35480 3a 65 73 63 61 70 65 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 :escape('composer/'.$branch));.i
354a0 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 f.(0.===.$this->process->execute
354c0 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 ($command,.$output,.$path).||.0.
354e0 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 66 61 6c ===.$this->process->execute($fal
35500 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 0a 29 20 lbackCommand,.$output,.$path).).
35520 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 73 65 74 20 {.$command.=.sprintf('git.reset.
35540 2d 2d 68 61 72 64 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 --hard.%s',.ProcessExecutor::esc
35560 61 70 65 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 ape($reference));.if.(0.===.$thi
35580 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f s->process->execute($command,.$o
355a0 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a utput,.$path)).{.return;.}.}.}..
355c0 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 50 72 $command.=.sprintf($template,.Pr
355e0 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 67 69 74 52 65 66 29 29 3b ocessExecutor::escape($gitRef));
35600 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 .if.(0.===.$this->process->execu
35620 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a te($command,.$output,.$path)).{.
35640 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f return;.}....if.(false.!==.strpo
35660 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 s($this->process->getErrorOutput
35680 28 29 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 (),.$reference)).{.$this->io->wr
356a0 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 72 65 66 65 72 65 iteError('....<warning>'.$refere
356c0 6e 63 65 2e 27 20 69 73 20 67 6f 6e 65 20 28 68 69 73 74 6f 72 79 20 77 61 73 20 72 65 77 72 69 nce.'.is.gone.(history.was.rewri
356e0 74 74 65 6e 3f 29 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 tten?)</warning>');.}..throw.new
35700 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 .\RuntimeException('Failed.to.ex
35720 65 63 75 74 65 20 27 20 2e 20 47 69 74 55 74 69 6c 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 ecute.'...GitUtil::sanitizeUrl($
35740 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 command)..."\n\n"...$this->proce
35760 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 ss->getErrorOutput());.}..protec
35780 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 75 73 68 55 72 6c 28 24 70 61 74 68 2c 20 24 ted.function.setPushUrl($path,.$
357a0 75 72 6c 29 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 68 74 url).{...if.(preg_match('{^(?:ht
357c0 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 47 69 74 55 74 69 6c 3a 3a 67 65 74 47 69 74 48 75 62 tps?|git)://'.GitUtil::getGitHub
357e0 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 2f 28 5b DomainsRegex($this->config).'/([
35800 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 7d 27 2c 20 24 75 72 ^/]+)/([^/]+?)(?:\.git)?$}',.$ur
35820 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 l,.$match)).{.$protocols.=.$this
35840 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 ->config->get('github-protocols'
35860 29 3b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 74 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 );.$pushUrl.=.'git@'.$match[1].'
35880 3a 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 2e 27 2e 67 69 74 :'.$match[2].'/'.$match[3].'.git
358a0 27 3b 0a 69 66 20 28 24 70 72 6f 74 6f 63 6f 6c 73 5b 30 5d 20 21 3d 3d 20 27 67 69 74 27 29 20 ';.if.($protocols[0].!==.'git').
358c0 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 6d 61 74 63 68 {.$pushUrl.=.'https://'...$match
358e0 5b 31 5d 20 2e 20 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 [1]...'/'.$match[2].'/'.$match[3
35900 5d 2e 27 2e 67 69 74 27 3b 0a 7d 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 ].'.git';.}.$cmd.=.sprintf('git.
35920 72 65 6d 6f 74 65 20 73 65 74 2d 75 72 6c 20 2d 2d 70 75 73 68 20 6f 72 69 67 69 6e 20 25 73 27 remote.set-url.--push.origin.%s'
35940 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 75 73 68 55 ,.ProcessExecutor::escape($pushU
35960 72 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 rl));.$this->process->execute($c
35980 6d 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a md,.$ignoredOutput,.$path);.}.}.
359a0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 ....protected.function.getCommit
359c0 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 Logs($fromReference,.$toReferenc
359e0 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 e,.$path).{.$path.=.$this->norma
35a00 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 lizePath($path);.$command.=.spri
35a20 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 25 73 2e 2e 25 73 20 2d 2d 70 72 65 74 74 79 3d 66 6f 72 ntf('git.log.%s..%s.--pretty=for
35a40 6d 61 74 3a 22 25 25 68 20 2d 20 25 25 61 6e 3a 20 25 25 73 22 27 2c 20 24 66 72 6f 6d 52 65 66 mat:"%%h.-.%%an:.%%s"',.$fromRef
35a60 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d erence,.$toReference);..if.(0.!=
35a80 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 =.$this->process->execute($comma
35aa0 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 nd,.$output,.$path)).{.throw.new
35ac0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 .\RuntimeException('Failed.to.ex
35ae0 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 ecute.'...$command..."\n\n"...$t
35b00 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b his->process->getErrorOutput());
35b20 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 .}..return.$output;.}......prote
35b40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 cted.function.discardChanges($pa
35b60 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 th).{.$path.=.$this->normalizePa
35b80 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 th($path);.if.(0.!==.$this->proc
35ba0 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 27 2c ess->execute('git.reset.--hard',
35bc0 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 .$output,.$path)).{.throw.new.\R
35be0 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 72 65 73 65 74 untimeException("Could.not.reset
35c00 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 .changes\n\n:".$this->process->g
35c20 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 etErrorOutput());.}.}......prote
35c40 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 cted.function.stashChanges($path
35c60 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 ).{.$path.=.$this->normalizePath
35c80 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ($path);.if.(0.!==.$this->proces
35ca0 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 27 2c 20 24 6f 75 74 70 75 74 2c s->execute('git.stash',.$output,
35cc0 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 .$path)).{.throw.new.\RuntimeExc
35ce0 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 5c eption("Could.not.stash.changes\
35d00 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 n\n:".$this->process->getErrorOu
35d20 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 tput());.}..$this->hasStashedCha
35d40 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 nges.=.true;.}..protected.functi
35d60 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 64 65 on.normalizePath($path).{.if.(de
35d80 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 fined('PHP_WINDOWS_VERSION_MAJOR
35da0 27 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 74 68 29 20 3e 20 30 29 20 7b 0a 24 62 61 73 65 ').&&.strlen($path).>.0).{.$base
35dc0 50 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 24 72 65 6d 6f 76 65 64 20 3d 20 61 72 72 61 79 28 29 Path.=.$path;.$removed.=.array()
35de0 3b 0a 0a 77 68 69 6c 65 20 28 21 69 73 5f 64 69 72 28 24 62 61 73 65 50 61 74 68 29 20 26 26 20 ;..while.(!is_dir($basePath).&&.
35e00 24 62 61 73 65 50 61 74 68 20 21 3d 3d 20 27 5c 5c 27 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 $basePath.!==.'\\').{.array_unsh
35e20 69 66 74 28 24 72 65 6d 6f 76 65 64 2c 20 62 61 73 65 6e 61 6d 65 28 24 62 61 73 65 50 61 74 68 ift($removed,.basename($basePath
35e40 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 24 62 61 73 65 50 61 74 ));.$basePath.=.dirname($basePat
35e60 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 62 61 73 65 50 61 74 68 20 3d 3d 3d 20 27 5c 5c 27 29 20 7b h);.}..if.($basePath.===.'\\').{
35e80 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 72 74 72 69 6d 28 .return.$path;.}..$path.=.rtrim(
35ea0 72 65 61 6c 70 61 74 68 28 24 62 61 73 65 50 61 74 68 29 20 2e 20 27 2f 27 20 2e 20 69 6d 70 6c realpath($basePath)...'/'...impl
35ec0 6f 64 65 28 27 2f 27 2c 20 24 72 65 6d 6f 76 65 64 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 ode('/',.$removed),.'/');.}..ret
35ee0 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$path;.}.}.<?php............
35f00 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a namespace.Composer\Repository;..
35f20 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 .....class.InvalidRepositoryExce
35f40 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 ption.extends.\Exception.{.}.<?p
35f60 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
35f80 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \Repository;..use.Composer\Packa
35fa0 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ge\AliasPackage;.use.Composer\Pa
35fc0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ckage\PackageInterface;.use.Comp
35fe0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 oser\Package\CompletePackageInte
36000 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 rface;.use.Composer\Package\Vers
36020 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 ion\VersionParser;.......class.A
36040 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 rrayRepository.implements.Reposi
36060 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 toryInterface.{.protected.$packa
36080 67 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ges;..public.function.__construc
360a0 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 t(array.$packages.=.array()).{.f
360c0 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b oreach.($packages.as.$package).{
360e0 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a .$this->addPackage($package);.}.
36100 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 }.....public.function.findPackag
36120 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 50 e($name,.$version).{...$versionP
36140 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 arser.=.new.VersionParser();.$ve
36160 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
36180 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 e($version);.$name.=.strtolower(
361a0 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b $name);..foreach.($this->getPack
361c0 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 ages().as.$package).{.if.($name.
361e0 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 ===.$package->getName().&&.$vers
36200 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 ion.===.$package->getVersion()).
36220 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 {.return.$package;.}.}.}.....pub
36240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c lic.function.findPackages($name,
36260 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 24 6e 61 6d 65 20 3d 20 73 74 .$version.=.null).{...$name.=.st
36280 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d rtolower($name);....if.(null.!==
362a0 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 .$version).{.$versionParser.=.ne
362c0 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 w.VersionParser();.$version.=.$v
362e0 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e ersionParser->normalize($version
36300 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 );.}..$packages.=.array();..fore
36320 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 ach.($this->getPackages().as.$pa
36340 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 ckage).{.if.($package->getName()
36360 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e .===.$name.&&.(null.===.$version
36380 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 .||.$version.===.$package->getVe
363a0 72 73 69 6f 6e 28 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 rsion())).{.$packages[].=.$packa
363c0 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a ge;.}.}..return.$packages;.}....
363e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 .public.function.search($query,.
36400 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 $mode.=.0).{.$regex.=.'{(?:'.imp
36420 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 lode('|',.preg_split('{\s+}',.$q
36440 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 uery)).')}i';..$matches.=.array(
36460 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 );.foreach.($this->getPackages()
36480 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 .as.$package).{.$name.=.$package
364a0 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b ->getName();.if.(isset($matches[
364c0 24 6e 61 6d 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 70 72 65 67 5f $name])).{.continue;.}.if.(preg_
364e0 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 0a 7c 7c 20 28 24 6d 6f 64 65 20 3d match($regex,.$name).||.($mode.=
36500 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 26 26 20 24 70 61 63 ==.self::SEARCH_FULLTEXT.&&.$pac
36520 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 kage.instanceof.CompletePackageI
36540 6e 74 65 72 66 61 63 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 69 nterface.&&.preg_match($regex,.i
36560 6d 70 6c 6f 64 65 28 27 20 27 2c 20 28 61 72 72 61 79 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 mplode('.',.(array).$package->ge
36580 74 4b 65 79 77 6f 72 64 73 28 29 29 20 2e 20 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 tKeywords())...'.'...$package->g
365a0 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 0a 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 etDescription())).).{.$matches[$
365c0 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 name].=.array(.'name'.=>.$packag
365e0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e e->getPrettyName(),.'description
36600 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c '.=>.$package->getDescription(),
36620 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6d 61 .);.}.}..return.array_values($ma
36640 74 63 68 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 tches);.}.....public.function.ha
36660 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 sPackage(PackageInterface.$packa
36680 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ge).{.$packageId.=.$package->get
366a0 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 UniqueName();..foreach.($this->g
366c0 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 20 7b 0a etPackages().as.$repoPackage).{.
366e0 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 65 70 6f 50 61 63 6b 61 67 65 2d if.($packageId.===.$repoPackage-
36700 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b >getUniqueName()).{.return.true;
36720 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .}.}..return.false;.}.......publ
36740 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e ic.function.addPackage(PackageIn
36760 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d terface.$package).{.if.(null.===
36780 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 .$this->packages).{.$this->initi
367a0 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f alize();.}.$package->setReposito
367c0 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 ry($this);.$this->packages[].=.$
367e0 70 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f package;..if.($package.instanceo
36800 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 f.AliasPackage).{.$aliasedPackag
36820 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 69 66 20 28 e.=.$package->getAliasOf();.if.(
36840 6e 75 6c 6c 20 3d 3d 3d 20 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 null.===.$aliasedPackage->getRep
36860 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 ository()).{.$this->addPackage($
36880 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 aliasedPackage);.}.}.}..protecte
368a0 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 50 61 d.function.createAliasPackage(Pa
368c0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c ckageInterface.$package,.$alias,
368e0 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 6c 69 61 .$prettyAlias).{.return.new.Alia
36900 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 sPackage($package.instanceof.Ali
36920 61 73 50 61 63 6b 61 67 65 20 3f 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 asPackage.?.$package->getAliasOf
36940 28 29 20 3a 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 79 41 6c ().:.$package,.$alias,.$prettyAl
36960 69 61 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 ias);.}.......public.function.re
36980 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 movePackage(PackageInterface.$pa
369a0 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ckage).{.$packageId.=.$package->
369c0 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 getUniqueName();..foreach.($this
369e0 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 65 70 6f ->getPackages().as.$key.=>.$repo
36a00 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 24 72 Package).{.if.($packageId.===.$r
36a20 65 70 6f 50 61 63 6b 61 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 61 epoPackage->getUniqueName()).{.a
36a40 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 24 6b 65 rray_splice($this->packages,.$ke
36a60 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 y,.1);..return;.}.}.}.....public
36a80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 .function.getPackages().{.if.(nu
36aa0 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 74 68 69 73 2d ll.===.$this->packages).{.$this-
36ac0 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >initialize();.}..return.$this->
36ae0 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f packages;.}.......public.functio
36b00 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e n.count().{.return.count($this->
36b20 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 packages);.}.....protected.funct
36b40 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 ion.initialize().{.$this->packag
36b60 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a es.=.array();.}.}.<?php.........
36b80 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ...namespace.Composer\Repository
36ba0 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 ;..use.Composer\Json\JsonFile;.u
36bc0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 se.Composer\Package\Loader\Array
36be0 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d Loader;.use.Composer\Package\Dum
36c00 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 per\ArrayDumper;........class.Fi
36c20 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 lesystemRepository.extends.Writa
36c40 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 bleArrayRepository.{.private.$fi
36c60 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 le;.......public.function.__cons
36c80 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 29 0a truct(JsonFile.$repositoryFile).
36ca0 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c 65 3b {.$this->file.=.$repositoryFile;
36cc0 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 .}.....protected.function.initia
36ce0 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a lize().{.parent::initialize();..
36d00 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 if.(!$this->file->exists()).{.re
36d20 74 75 72 6e 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 turn;.}..try.{.$packages.=.$this
36d40 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 ->file->read();..if.(!is_array($
36d60 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 packages)).{.throw.new.\Unexpect
36d80 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 edValueException('Could.not.pars
36da0 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 69 74 6f e.package.list.from.the.reposito
36dc0 72 79 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 ry');.}.}.catch.(\Exception.$e).
36de0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 {.throw.new.InvalidRepositoryExc
36e00 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 74 61 20 eption('Invalid.repository.data.
36e20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 2c 20 70 in.'.$this->file->getPath().',.p
36e40 61 63 6b 61 67 65 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 5b 27 2e ackages.could.not.be.loaded:.['.
36e60 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 get_class($e).'].'.$e->getMessag
36e80 65 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 e());.}..$loader.=.new.ArrayLoad
36ea0 65 72 28 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 er(null,.true);.foreach.($packag
36ec0 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d es.as.$packageData).{.$package.=
36ee0 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 .$loader->load($packageData);.$t
36f00 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a his->addPackage($package);.}.}..
36f20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 public.function.reload().{.$this
36f40 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 ->packages.=.null;.$this->initia
36f60 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 lize();.}.....public.function.wr
36f80 69 74 65 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 ite().{.$data.=.array();.$dumper
36fa0 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 .=.new.ArrayDumper();..foreach.(
36fc0 24 74 68 69 73 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 $this->getCanonicalPackages().as
36fe0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 64 75 6d 70 65 72 2d 3e .$package).{.$data[].=.$dumper->
37000 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e dump($package);.}..$this->file->
37020 77 72 69 74 65 28 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a write($data);.}.}.<?php.........
37040 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ...namespace.Composer\Repository
37060 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
37080 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 57 72 69 74 61 62 nterface;.......interface.Writab
370a0 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 leRepositoryInterface.extends.Re
370c0 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 positoryInterface.{....public.fu
370e0 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nction.write();.......public.fun
37100 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ction.addPackage(PackageInterfac
37120 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 e.$package);.......public.functi
37140 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 on.removePackage(PackageInterfac
37160 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 e.$package);.......public.functi
37180 6f 6e 20 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 70 on.getCanonicalPackages();.....p
371a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 3b 0a 7d 0a 3c 3f 70 68 70 ublic.function.reload();.}.<?php
371c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ............namespace.Composer\R
371e0 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e epository;..use.Composer\IO\IOIn
37200 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 terface;.use.Composer\Package\Ve
37220 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 rsion\VersionParser;.use.Compose
37240 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 3b r\Repository\Pear\ChannelReader;
37260 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 .use.Composer\Package\CompletePa
37280 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 ckage;.use.Composer\Repository\P
372a0 65 61 72 5c 43 68 61 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 ear\ChannelInfo;.use.Composer\Ev
372c0 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 entDispatcher\EventDispatcher;.u
372e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f se.Composer\Package\Link;.use.Co
37300 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 mposer\Package\LinkConstraint\Ve
37320 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 rsionConstraint;.use.Composer\Ut
37340 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 il\RemoteFilesystem;.use.Compose
37360 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 r\Config;...........class.PearRe
37380 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 pository.extends.ArrayRepository
373a0 0a 7b 0a 70 72 69 76 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 .{.private.$url;.private.$io;.pr
373c0 69 76 61 74 65 20 24 72 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 ivate.$rfs;.private.$versionPars
373e0 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 er;.....private.$vendorAlias;..p
37400 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 ublic.function.__construct(array
37420 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 .$repoConfig,.IOInterface.$io,.C
37440 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 onfig.$config,.EventDispatcher.$
37460 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 dispatcher.=.null,.RemoteFilesys
37480 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 tem.$rfs.=.null).{.if.(!preg_mat
374a0 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 ch('{^https?://}',.$repoConfig['
374c0 75 72 6c 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 url'])).{.$repoConfig['url'].=.'
374e0 68 74 74 70 3a 2f 2f 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 0a http://'.$repoConfig['url'];.}..
37500 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 $urlBits.=.parse_url($repoConfig
37520 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 ['url']);.if.(empty($urlBits['sc
37540 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 heme']).||.empty($urlBits['host'
37560 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 ])).{.throw.new.\UnexpectedValue
37580 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 Exception('Invalid.url.given.for
375a0 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b .PEAR.repository:.'.$repoConfig[
375c0 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 'url']);.}..$this->url.=.rtrim($
375e0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e repoConfig['url'],.'/');.$this->
37600 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e io.=.$io;.$this->rfs.=.$rfs.?:.n
37620 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 ew.RemoteFilesystem($this->io,.$
37640 63 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 config);.$this->vendorAlias.=.is
37660 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 set($repoConfig['vendor-alias'])
37680 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a .?.$repoConfig['vendor-alias'].:
376a0 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 .null;.$this->versionParser.=.ne
376c0 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 w.VersionParser();.}..protected.
376e0 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a function.initialize().{.parent::
37700 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 initialize();..$this->io->writeE
37720 72 72 6f 72 28 27 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 50 45 41 52 20 72 65 70 6f 73 69 74 6f rror('Initializing.PEAR.reposito
37740 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 24 72 65 61 64 65 72 20 3d 20 6e 65 77 ry.'.$this->url);..$reader.=.new
37760 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 24 74 68 69 73 2d 3e 72 66 73 29 3b 0a 74 72 79 20 .ChannelReader($this->rfs);.try.
37780 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 {.$channelInfo.=.$reader->read($
377a0 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 this->url);.}.catch.(\Exception.
377c0 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 $e).{.$this->io->writeError('<wa
377e0 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d 20 27 2e 24 74 68 rning>PEAR.repository.from.'.$th
37800 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 2e 20 27 is->url.'.could.not.be.loaded..'
37820 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b .$e->getMessage().'</warning>');
37840 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 ..return;.}.$packages.=.$this->b
37860 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 24 63 68 61 6e 6e 65 6c 49 6e 66 uildComposerPackages($channelInf
37880 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 66 6f 72 65 61 63 o,.$this->versionParser);.foreac
378a0 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 h.($packages.as.$package).{.$thi
378c0 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a s->addPackage($package);.}.}....
378e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 6f .....private.function.buildCompo
37900 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c 49 6e 66 6f 20 24 63 68 61 6e 6e 65 6c serPackages(ChannelInfo.$channel
37920 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 76 65 72 73 69 6f 6e 50 61 72 73 Info,.VersionParser.$versionPars
37940 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 er).{.$result.=.array();.foreach
37960 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 .($channelInfo->getPackages().as
37980 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 .$packageDefinition).{.foreach.(
379a0 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 52 65 6c 65 61 73 65 73 28 $packageDefinition->getReleases(
379c0 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 65 6c 65 61 73 65 49 6e 66 6f 29 20 7b ).as.$version.=>.$releaseInfo).{
379e0 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 .try.{.$normalizedVersion.=.$ver
37a00 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b sionParser->normalize($version);
37a20 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 .}.catch.(\UnexpectedValueExcept
37a40 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 6f ion.$e).{.if.($this->io->isVerbo
37a60 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 43 se()).{.$this->io->writeError('C
37a80 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 ould.not.load.'.$packageDefiniti
37aa0 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 2e 27 20 27 2e 24 76 65 72 73 69 6f on->getPackageName().'.'.$versio
37ac0 6e 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e 74 n.':.'.$e->getMessage());.}.cont
37ae0 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 inue;.}..$composerPackageName.=.
37b00 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 $this->buildComposerPackageName(
37b20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 $packageDefinition->getChannelNa
37b40 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 me(),.$packageDefinition->getPac
37b60 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a 20 0a 20 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 kageName());......$urlBits.=.par
37b80 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 24 73 63 68 65 6d 65 20 3d 20 28 69 se_url($this->url);.$scheme.=.(i
37ba0 73 73 65 74 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 26 26 20 27 68 74 74 sset($urlBits['scheme']).&&.'htt
37bc0 70 73 27 20 3d 3d 3d 20 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 20 26 26 20 65 78 ps'.===.$urlBits['scheme'].&&.ex
37be0 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 3f 20 27 68 74 tension_loaded('openssl')).?.'ht
37c00 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 64 69 73 74 55 72 6c 20 3d 20 22 7b 24 73 63 68 tps'.:.'http';.$distUrl.=."{$sch
37c20 65 6d 65 7d 3a 2f 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 eme}://{$packageDefinition->getC
37c40 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 65 74 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 6e hannelName()}/get/{$packageDefin
37c60 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 76 65 72 73 69 ition->getPackageName()}-{$versi
37c80 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a on}.tgz";..$requires.=.array();.
37ca0 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 66 6c 69 63 74 73 20 $suggests.=.array();.$conflicts.
37cc0 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a =.array();.$replaces.=.array();.
37ce0 0a 0a 20 0a 20 69 66 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 .....if.($channelInfo->getName()
37d00 20 3d 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e .==.$packageDefinition->getChann
37d20 65 6c 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 61 elName()).{.$composerPackageAlia
37d40 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e s.=.$this->buildComposerPackageN
37d60 61 6d 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 70 ame($channelInfo->getAlias(),.$p
37d80 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 ackageDefinition->getPackageName
37da0 28 29 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 ());.$aliasConstraint.=.new.Vers
37dc0 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 ionConstraint('==',.$normalizedV
37de0 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 ersion);.$replaces[].=.new.Link(
37e00 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 $composerPackageName,.$composerP
37e20 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 ackageAlias,.$aliasConstraint,.'
37e40 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 replaces',.(string).$aliasConstr
37e60 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 76 65 aint);.}....if.(!empty($this->ve
37e80 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 ndorAlias).&&.($this->vendorAlia
37ea0 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c s.!=.'pear-'.$channelInfo->getAl
37ec0 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 29 ias().||.$channelInfo->getName()
37ee0 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e .!=.$packageDefinition->getChann
37f00 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c elName()).).{.$composerPackageAl
37f20 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 7d 2f 7b 24 70 61 ias.=."{$this->vendorAlias}/{$pa
37f40 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 ckageDefinition->getPackageName(
37f60 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 )}";.$aliasConstraint.=.new.Vers
37f80 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 ionConstraint('==',.$normalizedV
37fa0 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 ersion);.$replaces[].=.new.Link(
37fc0 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 50 $composerPackageName,.$composerP
37fe0 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 27 ackageAlias,.$aliasConstraint,.'
38000 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 replaces',.(string).$aliasConstr
38020 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f 2d aint);.}..foreach.($releaseInfo-
38040 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 65 >getDependencyInfo()->getRequire
38060 73 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a s().as.$dependencyConstraint).{.
38080 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e $dependencyPackageName.=.$this->
380a0 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 buildComposerPackageName($depend
380c0 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 encyConstraint->getChannelName()
380e0 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b ,.$dependencyConstraint->getPack
38100 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 69 ageName());.$constraint.=.$versi
38120 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 65 onParser->parseConstraints($depe
38140 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 ndencyConstraint->getConstraint(
38160 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 61 ));.$link.=.new.Link($composerPa
38180 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d ckageName,.$dependencyPackageNam
381a0 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 e,.$constraint,.$dependencyConst
381c0 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e raint->getType(),.$dependencyCon
381e0 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 63 straint->getConstraint());.switc
38200 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 h.($dependencyConstraint->getTyp
38220 65 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 65 e()).{.case.'required':.$require
38240 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c 69 s[].=.$link;.break;.case.'confli
38260 63 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 cts':.$conflicts[].=.$link;.brea
38280 6b 3b 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 k;.case.'replaces':.$replaces[].
382a0 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 =.$link;.break;.}.}..foreach.($r
382c0 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d eleaseInfo->getDependencyInfo()-
382e0 3e 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 65 >getOptionals().as.$group.=>.$de
38300 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 pendencyConstraints).{.foreach.(
38320 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 64 65 70 65 6e $dependencyConstraints.as.$depen
38340 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 dencyConstraint).{.$dependencyPa
38360 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 ckageName.=.$this->buildComposer
38380 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e PackageName($dependencyConstrain
383a0 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 t->getChannelName(),.$dependency
383c0 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 Constraint->getPackageName());.$
383e0 73 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 50 suggests[$group.'-'.$dependencyP
38400 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 ackageName].=.$dependencyConstra
38420 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 6b int->getConstraint();.}.}..$pack
38440 61 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f age.=.new.CompletePackage($compo
38460 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 serPackageName,.$normalizedVersi
38480 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 on,.$version);.$package->setType
384a0 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 ('pear-library');.$package->setD
384c0 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 escription($packageDefinition->g
384e0 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c etDescription());.$package->setL
38500 69 63 65 6e 73 65 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d icense(array($packageDefinition-
38520 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 >getLicense()));.$package->setDi
38540 73 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 stType('file');.$package->setDis
38560 74 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 tUrl($distUrl);.$package->setAut
38580 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 79 28 oload(array('classmap'.=>.array(
385a0 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 '')));.$package->setIncludePaths
385c0 28 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 (array('/'));.$package->setRequi
385e0 72 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e res($requires);.$package->setCon
38600 66 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 flicts($conflicts);.$package->se
38620 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e tSuggests($suggests);.$package->
38640 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c 74 5b setReplaces($replaces);.$result[
38660 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c ].=.$package;.}.}..return.$resul
38680 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6d 70 t;.}..private.function.buildComp
386a0 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 oserPackageName($channelName,.$p
386c0 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 3d 20 24 63 68 61 ackageName).{.if.('php'.===.$cha
386e0 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 20 28 nnelName).{.return."php";.}.if.(
38700 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 'ext'.===.$channelName).{.return
38720 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e ."ext-{$packageName}";.}..return
38740 20 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 65 4e ."pear-{$channelName}/{$packageN
38760 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ame}";.}.}.<?php............name
38780 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 space.Composer\Repository;..use.
387a0 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d Composer\IO\IOInterface;.use.Com
387c0 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 poser\Config;.use.Composer\Event
387e0 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a Dispatcher\EventDispatcher;.....
38800 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 ....class.RepositoryManager.{.pr
38820 69 76 61 74 65 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 ivate.$localRepository;.private.
38840 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 $repositories.=.array();.private
38860 20 24 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 .$repositoryClasses.=.array();.p
38880 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 rivate.$io;.private.$config;.pri
388a0 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 vate.$eventDispatcher;..public.f
388c0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 unction.__construct(IOInterface.
388e0 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 $io,.Config.$config,.EventDispat
38900 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a cher.$eventDispatcher.=.null).{.
38920 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d $this->io.=.$io;.$this->config.=
38940 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 .$config;.$this->eventDispatcher
38960 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .=.$eventDispatcher;.}..........
38980 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d public.function.findPackage($nam
389a0 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 e,.$version).{.foreach.($this->r
389c0 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 epositories.as.$repository).{.if
389e0 20 28 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 .($package.=.$repository->findPa
38a00 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 72 6e ckage($name,.$version)).{.return
38a20 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$package;.}.}.}..........public
38a40 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 .function.findPackages($name,.$v
38a60 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ersion).{.$packages.=.array();..
38a80 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 foreach.($this->repositories.as.
38aa0 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 $repository).{.$packages.=.array
38ac0 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 _merge($packages,.$repository->f
38ae0 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d indPackages($name,.$version));.}
38b00 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ..return.$packages;.}.......publ
38b20 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 ic.function.addRepository(Reposi
38b40 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 toryInterface.$repository).{.$th
38b60 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 is->repositories[].=.$repository
38b80 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 ;.}..........public.function.cre
38ba0 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 74 79 70 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a ateRepository($type,.$config).{.
38bc0 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 if.(!isset($this->repositoryClas
38be0 73 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 ses[$type])).{.throw.new.\Invali
38c00 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 74 dArgumentException('Repository.t
38c20 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 3a 20 27 2e 24 74 79 70 65 29 3b ype.is.not.registered:.'.$type);
38c40 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c .}..$class.=.$this->repositoryCl
38c60 61 73 73 65 73 5b 24 74 79 70 65 5d 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 24 63 6c 61 73 73 asses[$type];..return.new.$class
38c80 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 ($config,.$this->io,.$this->conf
38ca0 69 67 2c 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 3b 0a 7d 0a 0a ig,.$this->eventDispatcher);.}..
38cc0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 ......public.function.setReposit
38ce0 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 24 74 68 69 73 2d oryClass($type,.$class).{.$this-
38d00 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 63 6c 61 >repositoryClasses[$type].=.$cla
38d20 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ss;.}.......public.function.getR
38d40 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 epositories().{.return.$this->re
38d60 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 positories;.}.......public.funct
38d80 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 57 72 69 74 61 62 6c 65 52 ion.setLocalRepository(WritableR
38da0 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a epositoryInterface.$repository).
38dc0 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f {.$this->localRepository.=.$repo
38de0 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 sitory;.}.......public.function.
38e00 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 getLocalRepository().{.return.$t
38e20 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 his->localRepository;.}........p
38e40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 ublic.function.getLocalRepositor
38e60 69 65 73 28 29 0a 7b 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 69 73 20 6d 65 74 68 ies().{.trigger_error('This.meth
38e80 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 67 65 74 4c 6f 63 61 6c 52 65 od.is.deprecated,.use.getLocalRe
38ea0 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 65 61 64 20 73 69 6e 63 65 20 74 68 65 20 67 65 74 4c 6f pository.instead.since.the.getLo
38ec0 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 20 69 73 20 6e 6f 77 20 67 6f 6e 65 27 2c 20 45 calDevRepository.is.now.gone',.E
38ee0 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 _USER_DEPRECATED);..return.array
38f00 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 3c 3f ($this->localRepository);.}.}.<?
38f20 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
38f40 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b r\Repository;..use.Composer\Pack
38f60 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 57 72 age\AliasPackage;.......class.Wr
38f80 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 itableArrayRepository.extends.Ar
38fa0 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 57 72 69 74 61 62 6c rayRepository.implements.Writabl
38fc0 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 eRepositoryInterface.{....public
38fe0 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .function.write().{.}.....public
39000 20 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .function.reload().{.}.....publi
39020 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 c.function.getCanonicalPackages(
39040 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 ).{.$packages.=.$this->getPackag
39060 65 73 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 es();....$packagesByName.=.array
39080 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 ();.foreach.($packages.as.$packa
390a0 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 ge).{.if.(!isset($packagesByName
390c0 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 7c 7c 20 24 70 61 63 6b 61 [$package->getName()]).||.$packa
390e0 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 69 gesByName[$package->getName()].i
39100 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 nstanceof.AliasPackage).{.$packa
39120 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d gesByName[$package->getName()].=
39140 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 .$package;.}.}..$canonicalPackag
39160 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 es.=.array();....foreach.($packa
39180 67 65 73 42 79 4e 61 6d 65 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 77 68 69 6c 65 20 28 gesByName.as.$package).{.while.(
391a0 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 $package.instanceof.AliasPackage
391c0 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 ).{.$package.=.$package->getAlia
391e0 73 4f 66 28 29 3b 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d sOf();.}..$canonicalPackages[].=
39200 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 61 6e 6f 6e 69 63 61 6c 50 .$package;.}..return.$canonicalP
39220 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ackages;.}.}.<?php............na
39240 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b mespace.Composer\Repository\Vcs;
39260 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f ..use.Composer\Config;.use.Compo
39280 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f ser\Downloader\TransportExceptio
392a0 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 n;.use.Composer\Json\JsonFile;.u
392c0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c se.Composer\Cache;.use.Composer\
392e0 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 IO\IOInterface;.use.Composer\Uti
39300 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 76 65 72 l\GitHub;.....class.GitHubDriver
39320 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 .extends.VcsDriver.{.protected.$
39340 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 63 74 cache;.protected.$owner;.protect
39360 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b ed.$repository;.protected.$tags;
39380 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$branches;.protected.
393a0 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 49 $rootIdentifier;.protected.$hasI
393c0 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 ssues;.protected.$infoCache.=.ar
393e0 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 3d 20 66 61 ray();.protected.$isPrivate.=.fa
39400 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 72 3b lse;.......protected.$gitDriver;
39420 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 .....public.function.initialize(
39440 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f 7c 67 ).{.preg_match('#^(?:(?:https?|g
39460 69 74 29 3a 2f 2f 28 5b 5e 2f 5d 2b 29 2f 7c 67 69 74 40 28 5b 5e 3a 5d 2b 29 3a 29 28 5b 5e 2f it)://([^/]+)/|git@([^:]+):)([^/
39480 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 7c 2f 29 3f 24 23 27 2c 20 24 74 68 69 73 2d ]+)/(.+?)(?:\.git|/)?$#',.$this-
394a0 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d >url,.$match);.$this->owner.=.$m
394c0 61 74 63 68 5b 33 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 atch[3];.$this->repository.=.$ma
394e0 74 63 68 5b 34 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 21 65 6d 70 74 tch[4];.$this->originUrl.=.!empt
39500 79 28 24 6d 61 74 63 68 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 5b 31 5d 20 3a 20 24 6d 61 74 63 y($match[1]).?.$match[1].:.$matc
39520 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 h[2];.$this->cache.=.new.Cache($
39540 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 this->io,.$this->config->get('ca
39560 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e che-repo-dir').'/'.$this->origin
39580 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e Url.'/'.$this->owner.'/'.$this->
395a0 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 repository);..if.(isset($this->r
395c0 65 70 6f 43 6f 6e 66 69 67 5b 27 6e 6f 2d 61 70 69 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 72 epoConfig['no-api']).&&.$this->r
395e0 65 70 6f 43 6f 6e 66 69 67 5b 27 6e 6f 2d 61 70 69 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 epoConfig['no-api']).{.$this->se
39600 74 75 70 47 69 74 44 72 69 76 65 72 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 72 65 74 75 72 tupGitDriver($this->url);..retur
39620 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 n;.}..$this->fetchRootIdentifier
39640 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 ();.}..public.function.getReposi
39660 74 6f 72 79 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 2e 24 74 toryUrl().{.return.'https://'.$t
39680 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e his->originUrl.'/'.$this->owner.
396a0 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 '/'.$this->repository;.}.....pub
396c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 lic.function.getRootIdentifier()
396e0 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 .{.if.($this->gitDriver).{.retur
39700 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 n.$this->gitDriver->getRootIdent
39720 69 66 69 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 ifier();.}..return.$this->rootId
39740 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 entifier;.}.....public.function.
39760 67 65 74 55 72 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 getUrl().{.if.($this->gitDriver)
39780 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 55 .{.return.$this->gitDriver->getU
397a0 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 74 68 rl();.}..return.'https://'...$th
397c0 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 is->originUrl...'/'.$this->owner
397e0 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d .'/'.$this->repository.'.git';.}
39800 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 69 55 72 .....protected.function.getApiUr
39820 6c 28 29 0a 7b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 74 68 69 73 l().{.if.('github.com'.===.$this
39840 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 27 61 70 69 2e 67 69 ->originUrl).{.$apiUrl.=.'api.gi
39860 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 24 74 thub.com';.}.else.{.$apiUrl.=.$t
39880 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 61 70 69 2f 76 33 27 3b 0a 7d 0a 0a 72 his->originUrl...'/api/v3';.}..r
398a0 65 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 61 70 69 55 72 6c 3b 0a 7d 0a 0a 0a eturn.'https://'...$apiUrl;.}...
398c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 ..public.function.getSource($ide
398e0 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 ntifier).{.if.($this->gitDriver)
39900 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 53 .{.return.$this->gitDriver->getS
39920 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d ource($identifier);.}.if.($this-
39940 3e 69 73 50 72 69 76 61 74 65 29 20 7b 0a 0a 20 0a 20 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e >isPrivate).{.....$url.=.$this->
39960 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 generateSshUrl();.}.else.{.$url.
39980 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 =.$this->getUrl();.}..return.arr
399a0 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 ay('type'.=>.'git',.'url'.=>.$ur
399c0 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a l,.'reference'.=>.$identifier);.
399e0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 }.....public.function.getDist($i
39a00 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 dentifier).{.$url.=.$this->getAp
39a20 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e iUrl()...'/repos/'.$this->owner.
39a40 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 7a 69 70 62 61 6c 6c 2f '/'.$this->repository.'/zipball/
39a60 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 '.$identifier;..return.array('ty
39a80 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 pe'.=>.'zip',.'url'.=>.$url,.'re
39aa0 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d ference'.=>.$identifier,.'shasum
39ac0 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 '.=>.'');.}.....public.function.
39ae0 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 getComposerInformation($identifi
39b00 65 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 er).{.if.($this->gitDriver).{.re
39b20 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 turn.$this->gitDriver->getCompos
39b40 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 69 erInformation($identifier);.}..i
39b60 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c f.(preg_match('{[a-f0-9]{40}}i',
39b80 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 .$identifier).&&.$res.=.$this->c
39ba0 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 ache->read($identifier)).{.$this
39bc0 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 ->infoCache[$identifier].=.JsonF
39be0 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 ile::parseJson($res);.}..if.(!is
39c00 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 set($this->infoCache[$identifier
39c20 5d 29 29 20 7b 0a 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 20 3d 20 32 3b 0a 77 68 69 6c ])).{.$notFoundRetries.=.2;.whil
39c40 65 20 28 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 e.($notFoundRetries).{.try.{.$re
39c60 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f source.=.$this->getApiUrl()...'/
39c80 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e repos/'.$this->owner.'/'.$this->
39ca0 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6e 74 65 6e 74 73 2f 63 6f 6d 70 6f 73 65 72 2e 6a repository.'/contents/composer.j
39cc0 73 6f 6e 3f 72 65 66 3d 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 son?ref='.urlencode($identifier)
39ce0 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f ;.$composer.=.JsonFile::parseJso
39d00 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 29 n($this->getContents($resource))
39d20 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d ;.if.(empty($composer['content']
39d40 29 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 5b 27 65 6e 63 6f 64 69 6e 67 27 5d 20 21 3d 3d 20 27 ).||.$composer['encoding'].!==.'
39d60 62 61 73 65 36 34 27 20 7c 7c 20 21 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 62 61 73 65 36 34 5f base64'.||.!($composer.=.base64_
39d80 64 65 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 29 29 20 7b decode($composer['content']))).{
39da0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f .throw.new.\RuntimeException('Co
39dc0 75 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 uld.not.retrieve.composer.json.f
39de0 72 6f 6d 20 27 2e 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 rom.'.$resource);.}.break;.}.cat
39e00 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 ch.(TransportException.$e).{.if.
39e20 28 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 (404.!==.$e->getCode()).{.throw.
39e40 24 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 2d 2d 3b 0a 24 $e;.}......$notFoundRetries--;.$
39e60 63 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 composer.=.false;.}.}..if.($comp
39e80 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 oser).{.$composer.=.JsonFile::pa
39ea0 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a rseJson($composer,.$resource);..
39ec0 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a if.(empty($composer['time'])).{.
39ee0 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e $resource.=.$this->getApiUrl()..
39f00 20 27 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 .'/repos/'.$this->owner.'/'.$thi
39f20 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6d 6d 69 74 73 2f 27 2e 75 72 6c 65 6e 63 s->repository.'/commits/'.urlenc
39f40 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f 6e ode($identifier);.$commit.=.Json
39f60 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e File::parseJson($this->getConten
39f80 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 ts($resource),.$resource);.$comp
39fa0 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d oser['time'].=.$commit['commit']
39fc0 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 ['committer']['date'];.}.if.(!is
39fe0 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 set($composer['support']['source
3a000 27 5d 29 29 20 7b 0a 24 6c 61 62 65 6c 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 '])).{.$label.=.array_search($id
3a020 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 29 20 3f 3a 20 61 entifier,.$this->getTags()).?:.a
3a040 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e rray_search($identifier,.$this->
3a060 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 getBranches()).?:.$identifier;.$
3a080 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 composer['support']['source'].=.
3a0a0 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 sprintf('https://%s/%s/%s/tree/%
3a0c0 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 6f 77 6e s',.$this->originUrl,.$this->own
3a0e0 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b 0a er,.$this->repository,.$label);.
3a100 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 }.if.(!isset($composer['support'
3a120 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 ]['issues']).&&.$this->hasIssues
3a140 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 ).{.$composer['support']['issues
3a160 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 69 '].=.sprintf('https://%s/%s/%s/i
3a180 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d ssues',.$this->originUrl,.$this-
3a1a0 3e 6f 77 6e 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a >owner,.$this->repository);.}.}.
3a1c0 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 .if.(preg_match('{[a-f0-9]{40}}i
3a1e0 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d ',.$identifier)).{.$this->cache-
3a200 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 >write($identifier,.json_encode(
3a220 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 $composer));.}..$this->infoCache
3a240 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 [$identifier].=.$composer;.}..re
3a260 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 turn.$this->infoCache[$identifie
3a280 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 r];.}.....public.function.getTag
3a2a0 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 s().{.if.($this->gitDriver).{.re
3a2c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 turn.$this->gitDriver->getTags()
3a2e0 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a ;.}.if.(null.===.$this->tags).{.
3a300 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 6f 75 72 63 65 $this->tags.=.array();.$resource
3a320 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f .=.$this->getApiUrl()...'/repos/
3a340 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 '.$this->owner.'/'.$this->reposi
3a360 74 6f 72 79 2e 27 2f 74 61 67 73 3f 70 65 72 5f 70 61 67 65 3d 31 30 30 27 3b 0a 0a 64 6f 20 7b tory.'/tags?per_page=100';..do.{
3a380 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e .$tagsData.=.JsonFile::parseJson
3a3a0 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 ($this->getContents($resource),.
3a3c0 24 72 65 73 6f 75 72 63 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 $resource);.foreach.($tagsData.a
3a3e0 73 20 24 74 61 67 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5b 27 6e 61 6d 65 s.$tag).{.$this->tags[$tag['name
3a400 27 5d 5d 20 3d 20 24 74 61 67 5b 27 63 6f 6d 6d 69 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 0a ']].=.$tag['commit']['sha'];.}..
3a420 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 50 61 67 65 28 29 $resource.=.$this->getNextPage()
3a440 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ;.}.while.($resource);.}..return
3a460 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this->tags;.}.....public.funct
3a480 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 ion.getBranches().{.if.($this->g
3a4a0 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 itDriver).{.return.$this->gitDri
3a4c0 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d ver->getBranches();.}.if.(null.=
3a4e0 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 ==.$this->branches).{.$this->bra
3a500 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 nches.=.array();.$resource.=.$th
3a520 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 is->getApiUrl()...'/repos/'.$thi
3a540 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 s->owner.'/'.$this->repository.'
3a560 2f 67 69 74 2f 72 65 66 73 2f 68 65 61 64 73 3f 70 65 72 5f 70 61 67 65 3d 31 30 30 27 3b 0a 0a /git/refs/heads?per_page=100';..
3a580 24 62 72 61 6e 63 68 42 6c 61 63 6b 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 67 68 2d 70 61 67 $branchBlacklist.=.array('gh-pag
3a5a0 65 73 27 29 3b 0a 0a 64 6f 20 7b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 es');..do.{.$branchData.=.JsonFi
3a5c0 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 le::parseJson($this->getContents
3a5e0 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 66 6f 72 65 61 63 68 ($resource),.$resource);.foreach
3a600 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 24 6e 61 6d .($branchData.as.$branch).{.$nam
3a620 65 20 3d 20 73 75 62 73 74 72 28 24 62 72 61 6e 63 68 5b 27 72 65 66 27 5d 2c 20 31 31 29 3b 0a e.=.substr($branch['ref'],.11);.
3a640 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 24 62 72 61 6e 63 68 42 6c 61 63 if.(!in_array($name,.$branchBlac
3a660 6b 6c 69 73 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6e 61 6d 65 5d klist)).{.$this->branches[$name]
3a680 20 3d 20 24 62 72 61 6e 63 68 5b 27 6f 62 6a 65 63 74 27 5d 5b 27 73 68 61 27 5d 3b 0a 7d 0a 7d .=.$branch['object']['sha'];.}.}
3a6a0 0a 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 50 61 67 65 ..$resource.=.$this->getNextPage
3a6c0 28 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a 72 65 74 75 ();.}.while.($resource);.}..retu
3a6e0 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->branches;.}.....public
3a700 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 .static.function.supports(IOInte
3a720 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c rface.$io,.Config.$config,.$url,
3a740 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 .$deep.=.false).{.if.(!preg_matc
3a760 68 28 27 23 5e 28 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 28 5b 5e 2f 5d 2b 29 2f 7c h('#^((?:https?|git)://([^/]+)/|
3a780 67 69 74 40 28 5b 5e 3a 5d 2b 29 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 git@([^:]+):)([^/]+)/(.+?)(?:\.g
3a7a0 69 74 7c 2f 29 3f 24 23 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 it|/)?$#',.$url,.$matches)).{.re
3a7c0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6f 72 69 67 69 6e 55 72 6c 20 3d 20 21 65 6d 70 turn.false;.}..$originUrl.=.!emp
3a7e0 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 ty($matches[2]).?.$matches[2].:.
3a800 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 $matches[3];.if.(!in_array($orig
3a820 69 6e 55 72 6c 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 6f 6d 61 inUrl,.$config->get('github-doma
3a840 69 6e 73 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 ins'))).{.return.false;.}..if.(!
3a860 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 extension_loaded('openssl')).{.i
3a880 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 f.($io->isVerbose()).{.$io->writ
3a8a0 65 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e 67 20 47 69 74 48 75 62 20 64 72 69 76 65 72 20 66 eError('Skipping.GitHub.driver.f
3a8c0 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 or.'.$url.'.because.the.OpenSSL.
3a8e0 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a PHP.extension.is.missing.');.}..
3a900 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a return.false;.}..return.true;.}.
3a920 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 ......protected.function.generat
3a940 65 53 73 68 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 67 69 74 40 27 20 2e 20 24 74 68 69 eSshUrl().{.return.'git@'...$thi
3a960 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e s->originUrl...':'.$this->owner.
3a980 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a '/'.$this->repository.'.git';.}.
3a9a0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e ....protected.function.getConten
3a9c0 74 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 66 61 6c ts($url,.$fetchingRepoData.=.fal
3a9e0 73 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f se).{.try.{.return.parent::getCo
3aa00 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 ntents($url);.}.catch.(Transport
3aa20 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 Exception.$e).{.$gitHubUtil.=.ne
3aa40 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 w.GitHub($this->io,.$this->confi
3aa60 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 g,.$this->process,.$this->remote
3aa80 46 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 65 2d 3e 67 65 74 43 6f 64 Filesystem);..switch.($e->getCod
3aaa0 65 28 29 29 20 7b 0a 63 61 73 65 20 34 30 31 3a 0a 63 61 73 65 20 34 30 34 3a 0a 0a 20 69 66 20 e()).{.case.401:.case.404:...if.
3aac0 28 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b (!$fetchingRepoData).{.throw.$e;
3aae0 0a 7d 0a 0a 69 66 20 28 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 .}..if.($gitHubUtil->authorizeOA
3ab00 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 uth($this->originUrl)).{.return.
3ab20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 parent::getContents($url);.}..if
3ab40 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b .(!$this->io->isInteractive()).{
3ab60 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 .return.$this->attemptCloneFallb
3ab80 61 63 6b 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 ack();.}..$gitHubUtil->authorize
3aba0 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e OAuthInteractively($this->origin
3abc0 55 72 6c 2c 20 27 59 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 61 72 Url,.'Your.GitHub.credentials.ar
3abe0 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 74 63 68 20 70 72 69 76 61 74 65 20 72 65 70 6f e.required.to.fetch.private.repo
3ac00 73 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e sitory.metadata.(<info>'.$this->
3ac20 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a url.'</info>)');..return.parent:
3ac40 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 3a 0a 69 :getContents($url);..case.403:.i
3ac60 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e f.(!$this->io->hasAuthentication
3ac80 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 20 26 26 20 24 67 69 74 48 75 62 55 74 69 ($this->originUrl).&&.$gitHubUti
3aca0 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 l->authorizeOAuth($this->originU
3acc0 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 rl)).{.return.parent::getContent
3ace0 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e s($url);.}..if.(!$this->io->isIn
3ad00 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 teractive().&&.$fetchingRepoData
3ad20 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 ).{.return.$this->attemptCloneFa
3ad40 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 66 61 6c 73 llback();.}..$rateLimited.=.fals
3ad60 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 20 61 73 20 e;.foreach.($e->getHeaders().as.
3ad80 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 58 2d 52 $header).{.if.(preg_match('{^X-R
3ada0 61 74 65 4c 69 6d 69 74 2d 52 65 6d 61 69 6e 69 6e 67 3a 20 2a 30 24 7d 69 27 2c 20 74 72 69 6d ateLimit-Remaining:.*0$}i',.trim
3adc0 28 24 68 65 61 64 65 72 29 29 29 20 7b 0a 24 72 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 74 72 75 ($header))).{.$rateLimited.=.tru
3ade0 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 e;.}.}..if.(!$this->io->hasAuthe
3ae00 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 69 ntication($this->originUrl)).{.i
3ae20 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 f.(!$this->io->isInteractive()).
3ae40 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e {.$this->io->writeError('<error>
3ae60 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 46 61 69 6c GitHub.API.limit.exhausted..Fail
3ae80 65 64 20 74 6f 20 67 65 74 20 6d 65 74 61 64 61 74 61 20 66 6f 72 20 74 68 65 20 27 2e 24 74 68 ed.to.get.metadata.for.the.'.$th
3aea0 69 73 2d 3e 75 72 6c 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e is->url.'.repository,.try.runnin
3aec0 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f g.in.interactive.mode.so.that.yo
3aee0 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 u.can.enter.your.GitHub.credenti
3af00 61 6c 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 41 50 49 20 6c 69 6d 69 74 3c 2f 65 als.to.increase.the.API.limit</e
3af20 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 67 69 74 48 75 62 55 74 69 rror>');.throw.$e;.}..$gitHubUti
3af40 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 l->authorizeOAuthInteractively($
3af60 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 this->originUrl,.'API.limit.exha
3af80 75 73 74 65 64 2e 20 45 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 usted..Enter.your.GitHub.credent
3afa0 69 61 6c 73 20 74 6f 20 67 65 74 20 61 20 6c 61 72 67 65 72 20 41 50 49 20 6c 69 6d 69 74 20 28 ials.to.get.a.larger.API.limit.(
3afc0 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c 2f 69 6e 66 6f 3e 29 27 29 3b 0a <info>'.$this->url.'</info>)');.
3afe0 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c .return.parent::getContents($url
3b000 29 3b 0a 7d 0a 0a 69 66 20 28 24 72 61 74 65 4c 69 6d 69 74 65 64 29 20 7b 0a 24 72 61 74 65 4c );.}..if.($rateLimited).{.$rateL
3b020 69 6d 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 61 74 65 4c 69 6d 69 74 28 24 65 2d 3e 67 imit.=.$this->getRateLimit($e->g
3b040 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 etHeaders());.$this->io->writeEr
3b060 72 6f 72 28 73 70 72 69 6e 74 66 28 0a 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 ror(sprintf(.'<error>GitHub.API.
3b080 6c 69 6d 69 74 20 28 25 64 20 63 61 6c 6c 73 2f 68 72 29 20 69 73 20 65 78 68 61 75 73 74 65 64 limit.(%d.calls/hr).is.exhausted
3b0a0 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 7a 65 64 20 73 6f 20 ..You.are.already.authorized.so.
3b0c0 79 6f 75 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69 6c 20 25 73 20 62 65 66 6f 72 65 you.have.to.wait.until.%s.before
3b0e0 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c 2f 65 72 72 6f 72 3e 27 2c 0a 24 .doing.more.requests</error>',.$
3b100 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 2c 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 rateLimit['limit'],.$rateLimit['
3b120 72 65 73 65 74 27 5d 0a 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a 64 65 66 61 75 6c reset'].));.}..throw.$e;..defaul
3b140 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 t:.throw.$e;.}.}.}.........prote
3b160 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 61 74 65 4c 69 6d 69 74 28 61 72 72 61 79 cted.function.getRateLimit(array
3b180 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 61 72 72 61 79 28 .$headers).{.$rateLimit.=.array(
3b1a0 0a 27 6c 69 6d 69 74 27 20 3d 3e 20 27 3f 27 2c 0a 27 72 65 73 65 74 27 20 3d 3e 20 27 3f 27 2c .'limit'.=>.'?',.'reset'.=>.'?',
3b1c0 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 .);..foreach.($headers.as.$heade
3b1e0 72 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 74 72 69 6d 28 24 68 65 61 64 65 72 29 3b 0a 69 66 r).{.$header.=.trim($header);.if
3b200 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 68 65 61 64 65 72 2c 20 27 58 2d 52 .(false.===.strpos($header,.'X-R
3b220 61 74 65 4c 69 6d 69 74 2d 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 6c 69 73 74 28 ateLimit-')).{.continue;.}.list(
3b240 24 74 79 70 65 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 68 $type,.$value).=.explode(':',.$h
3b260 65 61 64 65 72 2c 20 32 29 3b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 eader,.2);.switch.($type).{.case
3b280 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 4c 69 6d 69 74 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 .'X-RateLimit-Limit':.$rateLimit
3b2a0 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a ['limit'].=.(int).trim($value);.
3b2c0 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 73 65 74 27 3a break;.case.'X-RateLimit-Reset':
3b2e0 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 20 3d 20 64 61 74 65 28 27 59 2d 6d .$rateLimit['reset'].=.date('Y-m
3b300 2d 64 20 48 3a 69 3a 73 27 2c 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c 75 65 29 29 3b 0a -d.H:i:s',.(int).trim($value));.
3b320 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 61 74 65 4c 69 6d 69 74 3b 0a 7d break;.}.}..return.$rateLimit;.}
3b340 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 .......protected.function.fetchR
3b360 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 24 72 65 70 6f 44 61 74 61 55 72 6c 20 3d ootIdentifier().{.$repoDataUrl.=
3b380 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f 27 2e .$this->getApiUrl()...'/repos/'.
3b3a0 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f $this->owner.'/'.$this->reposito
3b3c0 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 ry;..$repoData.=.JsonFile::parse
3b3e0 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 44 61 74 Json($this->getContents($repoDat
3b400 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 65 70 6f 44 61 74 61 55 72 6c 29 3b 0a 69 66 20 28 aUrl,.true),.$repoDataUrl);.if.(
3b420 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 null.===.$repoData.&&.null.!==.$
3b440 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 this->gitDriver).{.return;.}..$t
3b460 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6f 77 6e 65 72 27 5d 5b his->owner.=.$repoData['owner'][
3b480 27 6c 6f 67 69 6e 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 'login'];.$this->repository.=.$r
3b4a0 65 70 6f 44 61 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 epoData['name'];..$this->isPriva
3b4c0 74 65 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 70 72 69 76 61 74 65 27 5d te.=.!empty($repoData['private']
3b4e0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f );.if.(isset($repoData['default_
3b500 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 branch'])).{.$this->rootIdentifi
3b520 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d er.=.$repoData['default_branch']
3b540 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 ;.}.elseif.(isset($repoData['mas
3b560 74 65 72 5f 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e ter_branch'])).{.$this->rootIden
3b580 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 tifier.=.$repoData['master_branc
3b5a0 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 h'];.}.else.{.$this->rootIdentif
3b5c0 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 ier.=.'master';.}.$this->hasIssu
3b5e0 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 5b 27 68 61 73 5f 69 73 73 75 65 es.=.!empty($repoData['has_issue
3b600 73 27 5d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 s']);.}..protected.function.atte
3b620 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 73 50 72 mptCloneFallback().{.$this->isPr
3b640 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a 0a 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 ivate.=.true;..try.{.........$th
3b660 69 73 2d 3e 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 is->setupGitDriver($this->genera
3b680 74 65 53 73 68 55 72 6c 28 29 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 20 63 61 74 63 68 20 28 5c teSshUrl());..return;.}.catch.(\
3b6a0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 RuntimeException.$e).{.$this->gi
3b6c0 74 44 72 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 tDriver.=.null;..$this->io->writ
3b6e0 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 74 eError('<error>Failed.to.clone.t
3b700 68 65 20 27 2e 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 2e 27 20 72 he.'.$this->generateSshUrl().'.r
3b720 65 70 6f 73 69 74 6f 72 79 2c 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 epository,.try.running.in.intera
3b740 63 74 69 76 65 20 6d 6f 64 65 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 ctive.mode.so.that.you.can.enter
3b760 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 3c 2f 65 72 72 6f 72 3e .your.GitHub.credentials</error>
3b780 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ');.throw.$e;.}.}..protected.fun
3b7a0 63 74 69 6f 6e 20 73 65 74 75 70 47 69 74 44 72 69 76 65 72 28 24 75 72 6c 29 0a 7b 0a 24 74 68 ction.setupGitDriver($url).{.$th
3b7c0 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 65 77 20 47 69 74 44 72 69 76 65 72 28 0a 61 is->gitDriver.=.new.GitDriver(.a
3b7e0 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 29 2c 0a 24 74 68 69 73 2d 3e 69 6f 2c 0a rray('url'.=>.$url),.$this->io,.
3b800 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 0a 24 $this->config,.$this->process,.$
3b820 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 74 68 69 73 2d this->remoteFilesystem.);.$this-
3b840 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 70 72 6f >gitDriver->initialize();.}..pro
3b860 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 78 74 50 61 67 65 28 29 0a 7b 0a tected.function.getNextPage().{.
3b880 24 68 65 61 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 $headers.=.$this->remoteFilesyst
3b8a0 65 6d 2d 3e 67 65 74 4c 61 73 74 48 65 61 64 65 72 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 em->getLastHeaders();.foreach.($
3b8c0 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 headers.as.$header).{.if.(substr
3b8e0 28 24 68 65 61 64 65 72 2c 20 30 2c 20 35 29 20 3d 3d 3d 20 27 4c 69 6e 6b 3a 27 29 20 7b 0a 24 ($header,.0,.5).===.'Link:').{.$
3b900 6c 69 6e 6b 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 73 75 62 73 74 72 28 24 68 65 61 links.=.explode(',',.substr($hea
3b920 64 65 72 2c 20 35 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 der,.5));.foreach.($links.as.$li
3b940 6e 6b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 3c 28 2e 2b 3f 29 3e 3b 20 nk).{.if.(preg_match('{<(.+?)>;.
3b960 2a 72 65 6c 3d 22 6e 65 78 74 22 7d 27 2c 20 24 6c 69 6e 6b 2c 20 24 6d 61 74 63 68 29 29 20 7b *rel="next"}',.$link,.$match)).{
3b980 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c .return.$match[1];.}.}.}.}.}.}.<
3b9a0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
3b9c0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Repository\Vcs;..use.Composer
3b9e0 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 \Config;.use.Composer\Json\JsonF
3ba00 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 ile;.use.Composer\IO\IOInterface
3ba20 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 ;.....class.GitBitbucketDriver.e
3ba40 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 xtends.VcsDriver.implements.VcsD
3ba60 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 riverInterface.{.protected.$owne
3ba80 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 r;.protected.$repository;.protec
3baa0 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a ted.$tags;.protected.$branches;.
3bac0 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 protected.$rootIdentifier;.prote
3bae0 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 cted.$infoCache.=.array();.....p
3bb00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 ublic.function.initialize().{.pr
3bb20 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e eg_match('#^https?://bitbucket\.
3bb40 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 27 2c 20 24 74 68 69 73 org/([^/]+)/(.+?)\.git$#',.$this
3bb60 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 ->url,.$match);.$this->owner.=.$
3bb80 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d match[1];.$this->repository.=.$m
3bba0 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 atch[2];.$this->originUrl.=.'bit
3bbc0 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 bucket.org';.}.....public.functi
3bbe0 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c on.getRootIdentifier().{.if.(nul
3bc00 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 l.===.$this->rootIdentifier).{.$
3bc20 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 resource.=.$this->getScheme()...
3bc40 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 '://api.bitbucket.org/1.0/reposi
3bc60 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d tories/'.$this->owner.'/'.$this-
3bc80 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c >repository;.$repoData.=.JsonFil
3bca0 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 e::parseJson($this->getContents(
3bcc0 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 72 $resource),.$resource);.$this->r
3bce0 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 21 65 6d 70 74 79 28 24 72 65 70 6f 44 61 74 61 ootIdentifier.=.!empty($repoData
3bd00 5b 27 6d 61 69 6e 5f 62 72 61 6e 63 68 27 5d 29 20 3f 20 24 72 65 70 6f 44 61 74 61 5b 27 6d 61 ['main_branch']).?.$repoData['ma
3bd20 69 6e 5f 62 72 61 6e 63 68 27 5d 20 3a 20 27 6d 61 73 74 65 72 27 3b 0a 7d 0a 0a 72 65 74 75 72 in_branch'].:.'master';.}..retur
3bd40 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 n.$this->rootIdentifier;.}.....p
3bd60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e ublic.function.getUrl().{.return
3bd80 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$this->url;.}.....public.functi
3bda0 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 on.getSource($identifier).{.retu
3bdc0 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 6c 27 20 rn.array('type'.=>.'git',.'url'.
3bde0 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 =>.$this->getUrl(),.'reference'.
3be00 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 =>.$identifier);.}.....public.fu
3be20 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 75 nction.getDist($identifier).{.$u
3be40 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 rl.=.$this->getScheme()...'://bi
3be60 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 tbucket.org/'.$this->owner.'/'.$
3be80 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 6e 74 69 this->repository.'/get/'.$identi
3bea0 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 fier.'.zip';..return.array('type
3bec0 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 65 '.=>.'zip',.'url'.=>.$url,.'refe
3bee0 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 20 rence'.=>.$identifier,.'shasum'.
3bf00 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 =>.'');.}.....public.function.ge
3bf20 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 tComposerInformation($identifier
3bf40 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b ).{.if.(!isset($this->infoCache[
3bf60 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 $identifier])).{.$resource.=.$th
3bf80 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e is->getScheme()...'://bitbucket.
3bfa0 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 org/'.$this->owner.'/'.$this->re
3bfc0 70 6f 73 69 74 6f 72 79 2e 27 2f 72 61 77 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 pository.'/raw/'.$identifier.'/c
3bfe0 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 omposer.json';.$composer.=.$this
3c000 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 21 24 ->getContents($resource);.if.(!$
3c020 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 composer).{.return;.}..$composer
3c040 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 .=.JsonFile::parseJson($composer
3c060 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 ,.$resource);..if.(empty($compos
3c080 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 er['time'])).{.$resource.=.$this
3c0a0 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 ->getScheme()...'://api.bitbucke
3c0c0 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e t.org/1.0/repositories/'.$this->
3c0e0 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 68 owner.'/'.$this->repository.'/ch
3c100 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 63 68 61 6e 67 65 73 angesets/'.$identifier;.$changes
3c120 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e et.=.JsonFile::parseJson($this->
3c140 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 getContents($resource),.$resourc
3c160 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 68 61 6e 67 65 73 e);.$composer['time'].=.$changes
3c180 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 et['timestamp'];.}.$this->infoCa
3c1a0 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a che[$identifier].=.$composer;.}.
3c1c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 .return.$this->infoCache[$identi
3c1e0 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 fier];.}.....public.function.get
3c200 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 Tags().{.if.(null.===.$this->tag
3c220 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d s).{.$resource.=.$this->getSchem
3c240 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f e()...'://api.bitbucket.org/1.0/
3c260 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e repositories/'.$this->owner.'/'.
3c280 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 $this->repository.'/tags';.$tags
3c2a0 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 Data.=.JsonFile::parseJson($this
3c2c0 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 ->getContents($resource),.$resou
3c2e0 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 rce);.$this->tags.=.array();.for
3c300 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 20 3d 3e 20 24 64 61 74 61 each.($tagsData.as.$tag.=>.$data
3c320 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d 20 24 64 61 74 61 5b 27 72 ).{.$this->tags[$tag].=.$data['r
3c340 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 aw_node'];.}.}..return.$this->ta
3c360 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 gs;.}.....public.function.getBra
3c380 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 nches().{.if.(null.===.$this->br
3c3a0 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 anches).{.$resource.=.$this->get
3c3c0 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 Scheme()...'://api.bitbucket.org
3c3e0 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 /1.0/repositories/'.$this->owner
3c400 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 6e 63 68 65 .'/'.$this->repository.'/branche
3c420 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 s';.$branchData.=.JsonFile::pars
3c440 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 eJson($this->getContents($resour
3c460 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 ce),.$resource);.$this->branches
3c480 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 .=.array();.foreach.($branchData
3c4a0 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 62 .as.$branch.=>.$data).{.$this->b
3c4c0 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f ranches[$branch].=.$data['raw_no
3c4e0 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 de'];.}.}..return.$this->branche
3c500 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 s;.}.....public.static.function.
3c520 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 supports(IOInterface.$io,.Config
3c540 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b .$config,.$url,.$deep.=.false).{
3c560 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 .if.(!preg_match('#^https?://bit
3c580 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 23 bucket\.org/([^/]+)/(.+?)\.git$#
3c5a0 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 ',.$url)).{.return.false;.}..if.
3c5c0 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b (!extension_loaded('openssl')).{
3c5e0 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 .if.($io->isVerbose()).{.$io->wr
3c600 69 74 65 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 iteError('Skipping.Bitbucket.git
3c620 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 .driver.for.'.$url.'.because.the
3c640 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e .OpenSSL.PHP.extension.is.missin
3c660 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e g.');.}..return.false;.}..return
3c680 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .true;.}.}.<?php............name
3c6a0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a space.Composer\Repository\Vcs;..
3c6c0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 use.Composer\Json\JsonFile;.use.
3c6e0 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 Composer\Util\ProcessExecutor;.u
3c700 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 se.Composer\Util\Filesystem;.use
3c720 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 .Composer\Util\Git.as.GitUtil;.u
3c740 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 se.Composer\IO\IOInterface;.use.
3c760 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e Composer\Cache;.use.Composer\Con
3c780 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 fig;.....class.GitDriver.extends
3c7a0 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 .VcsDriver.{.protected.$cache;.p
3c7c0 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 rotected.$tags;.protected.$branc
3c7e0 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a hes;.protected.$rootIdentifier;.
3c800 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 protected.$repoDir;.protected.$i
3c820 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 nfoCache.=.array();.....public.f
3c840 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 46 69 6c 65 73 unction.initialize().{.if.(Files
3c860 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 ystem::isLocalPath($this->url)).
3c880 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 24 {.$this->repoDir.=.$this->url;.$
3c8a0 63 61 63 68 65 55 72 6c 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b cacheUrl.=.realpath($this->url);
3c8c0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 .}.else.{.$this->repoDir.=.$this
3c8e0 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 20 2e ->config->get('cache-vcs-dir')..
3c900 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d .'/'...preg_replace('{[^a-z0-9.]
3c920 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 47 69 }i',.'-',.$this->url)...'/';..Gi
3c940 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 tUtil::cleanEnv();..$fs.=.new.Fi
3c960 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 lesystem();.$fs->ensureDirectory
3c980 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b Exists(dirname($this->repoDir));
3c9a0 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 ..if.(!is_writable(dirname($this
3c9c0 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d ->repoDir))).{.throw.new.\Runtim
3c9e0 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 eException('Can.not.clone.'.$thi
3ca00 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 s->url.'.to.access.package.infor
3ca20 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 mation..The."'.dirname($this->re
3ca40 70 6f 44 69 72 29 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 poDir).'".directory.is.not.writa
3ca60 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 69 ble.by.the.current.user.');.}..i
3ca80 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e 3a f.(preg_match('{^ssh://[^@]+@[^:
3caa0 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 74 68 72 ]+:[^0-9]+}',.$this->url)).{.thr
3cac0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
3cae0 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 ('The.source.URL.'.$this->url.'.
3cb00 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 68 61 76 65 is.invalid,.ssh.URLs.should.have
3cb20 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 5c 6e 22 2e .a.port.number.after.":".'."\n".
3cb40 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 32 2f 70 61 'Use.ssh://git@example.com:22/pa
3cb60 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 61 74 68 20 th.or.just.git@example.com:path.
3cb80 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 65 20 61 20 if.you.do.not.want.to.provide.a.
3cba0 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a 7d 0a 0a 24 password.or.custom.port.');.}..$
3cbc0 67 69 74 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 28 24 74 68 69 73 2d 3e 69 6f 2c gitUtil.=.new.GitUtil($this->io,
3cbe0 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 .$this->config,.$this->process,.
3cc00 24 66 73 29 3b 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 $fs);....if.(is_dir($this->repoD
3cc20 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 ir).&&.0.===.$this->process->exe
3cc40 63 75 74 65 28 27 67 69 74 20 72 65 76 2d 70 61 72 73 65 20 2d 2d 67 69 74 2d 64 69 72 27 2c 20 cute('git.rev-parse.--git-dir',.
3cc60 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 74 72 69 6d $output,.$this->repoDir).&&.trim
3cc80 28 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 27 2e 27 29 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 6d ($output).===.'.').{.try.{.$comm
3cca0 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 7b 0a andCallable.=.function.($url).{.
3ccc0 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 2d 75 return.sprintf('git.remote.set-u
3cce0 72 6c 20 6f 72 69 67 69 6e 20 25 73 20 26 26 20 67 69 74 20 72 65 6d 6f 74 65 20 75 70 64 61 74 rl.origin.%s.&&.git.remote.updat
3cd00 65 20 2d 2d 70 72 75 6e 65 20 6f 72 69 67 69 6e 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 e.--prune.origin',.ProcessExecut
3cd20 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 29 3b 0a 7d 3b 0a 24 67 69 74 55 74 69 6c 2d 3e or::escape($url));.};.$gitUtil->
3cd40 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 74 68 runCommand($commandCallable,.$th
3cd60 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 7d 20 63 61 74 63 is->url,.$this->repoDir);.}.catc
3cd80 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 h.(\Exception.$e).{.$this->io->w
3cda0 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 riteError('<error>Failed.to.upda
3cdc0 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 te.'.$this->url.',.package.infor
3cde0 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 mation.from.this.repository.may.
3ce00 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e be.outdated.('.$e->getMessage().
3ce20 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 2d 3e ')</error>');.}.}.else.{...$fs->
3ce40 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b removeDirectory($this->repoDir);
3ce60 0a 0a 24 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 3b 0a 24 63 6f ..$repoDir.=.$this->repoDir;.$co
3ce80 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 75 72 6c 29 20 mmandCallable.=.function.($url).
3cea0 75 73 65 20 28 24 72 65 70 6f 44 69 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 use.($repoDir).{.return.sprintf(
3cec0 27 67 69 74 20 63 6c 6f 6e 65 20 2d 2d 6d 69 72 72 6f 72 20 25 73 20 25 73 27 2c 20 50 72 6f 63 'git.clone.--mirror.%s.%s',.Proc
3cee0 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 2c 20 50 72 6f 63 65 essExecutor::escape($url),.Proce
3cf00 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 72 65 70 6f 44 69 72 29 29 3b 0a 7d ssExecutor::escape($repoDir));.}
3cf20 3b 0a 0a 24 67 69 74 55 74 69 6c 2d 3e 72 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 ;..$gitUtil->runCommand($command
3cf40 43 61 6c 6c 61 62 6c 65 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 24 74 68 69 73 2d 3e 72 65 70 Callable,.$this->url,.$this->rep
3cf60 6f 44 69 72 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 61 63 68 65 55 72 6c 20 3d 20 24 74 68 69 oDir,.true);.}..$cacheUrl.=.$thi
3cf80 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 s->url;.}..$this->getTags();.$th
3cfa0 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 is->getBranches();..$this->cache
3cfc0 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 .=.new.Cache($this->io,.$this->c
3cfe0 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 onfig->get('cache-repo-dir').'/'
3d000 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 .preg_replace('{[^a-z0-9.]}i',.'
3d020 2d 27 2c 20 24 63 61 63 68 65 55 72 6c 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 -',.$cacheUrl));.}.....public.fu
3d040 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 nction.getRootIdentifier().{.if.
3d060 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 (null.===.$this->rootIdentifier)
3d080 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 .{.$this->rootIdentifier.=.'mast
3d0a0 65 72 27 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 er';....$this->process->execute(
3d0c0 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 'git.branch.--no-color',.$output
3d0e0 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 ,.$this->repoDir);.$branches.=.$
3d100 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 this->process->splitLines($outpu
3d120 74 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 t);.if.(!in_array('*.master',.$b
3d140 72 61 6e 63 68 65 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 ranches)).{.foreach.($branches.a
3d160 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 s.$branch).{.if.($branch.&&.preg
3d180 5f 6d 61 74 63 68 28 27 7b 5e 5c 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 _match('{^\*.+(\S+)}',.$branch,.
3d1a0 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 $match)).{.$this->rootIdentifier
3d1c0 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 .=.$match[1];.break;.}.}.}.}..re
3d1e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a turn.$this->rootIdentifier;.}...
3d200 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 ..public.function.getUrl().{.ret
3d220 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e urn.$this->url;.}.....public.fun
3d240 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 ction.getSource($identifier).{.r
3d260 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 67 69 74 27 2c 20 27 75 72 eturn.array('type'.=>.'git',.'ur
3d280 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 l'.=>.$this->getUrl(),.'referenc
3d2a0 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e'.=>.$identifier);.}.....public
3d2c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b .function.getDist($identifier).{
3d2e0 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .return.null;.}.....public.funct
3d300 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e ion.getComposerInformation($iden
3d320 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 tifier).{.if.(preg_match('{[a-f0
3d340 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 -9]{40}}i',.$identifier).&&.$res
3d360 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 .=.$this->cache->read($identifie
3d380 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 r)).{.$this->infoCache[$identifi
3d3a0 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b er].=.JsonFile::parseJson($res);
3d3c0 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b .}..if.(!isset($this->infoCache[
3d3e0 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 73 70 72 $identifier])).{.$resource.=.spr
3d400 69 6e 74 66 28 27 25 73 3a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 50 72 6f 63 65 73 73 intf('%s:composer.json',.Process
3d420 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 3b 0a Executor::escape($identifier));.
3d440 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 $this->process->execute(sprintf(
3d460 27 67 69 74 20 73 68 6f 77 20 25 73 27 2c 20 24 72 65 73 6f 75 72 63 65 29 2c 20 24 63 6f 6d 70 'git.show.%s',.$resource),.$comp
3d480 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 oser,.$this->repoDir);..if.(!tri
3d4a0 6d 28 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 m($composer)).{.return;.}..$comp
3d4c0 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 oser.=.JsonFile::parseJson($comp
3d4e0 6f 73 65 72 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f oser,.$resource);..if.(empty($co
3d500 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 mposer['time'])).{.$this->proces
3d520 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 2d 31 20 2d s->execute(sprintf('git.log.-1.-
3d540 2d 66 6f 72 6d 61 74 3d 25 25 61 74 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f -format=%%at.%s',.ProcessExecuto
3d560 72 3a 3a 65 73 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 6f 75 74 70 75 74 r::escape($identifier)),.$output
3d580 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c ,.$this->repoDir);.$date.=.new.\
3d5a0 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 DateTime('@'.trim($output),.new.
3d5c0 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 \DateTimeZone('UTC'));.$composer
3d5e0 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 ['time'].=.$date->format('Y-m-d.
3d600 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d H:i:s');.}..if.(preg_match('{[a-
3d620 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 f0-9]{40}}i',.$identifier)).{.$t
3d640 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a his->cache->write($identifier,.j
3d660 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 son_encode($composer));.}..$this
3d680 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 ->infoCache[$identifier].=.$comp
3d6a0 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 oser;.}..return.$this->infoCache
3d6c0 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 [$identifier];.}.....public.func
3d6e0 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 tion.getTags().{.if.(null.===.$t
3d700 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 his->tags).{.$this->tags.=.array
3d720 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 ();..$this->process->execute('gi
3d740 74 20 73 68 6f 77 2d 72 65 66 20 2d 2d 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 t.show-ref.--tags',.$output,.$th
3d760 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 75 74 70 75 74 20 3d is->repoDir);.foreach.($output.=
3d780 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 .$this->process->splitLines($out
3d7a0 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 put).as.$tag).{.if.($tag.&&.preg
3d7c0 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 29 20 72 65 66 73 2f 74 61 _match('{^([a-f0-9]{40}).refs/ta
3d7e0 67 73 2f 28 5c 53 2b 29 24 7d 27 2c 20 24 74 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 gs/(\S+)$}',.$tag,.$match)).{.$t
3d800 68 69 73 2d 3e 74 61 67 73 5b 24 6d 61 74 63 68 5b 32 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d his->tags[$match[2]].=.$match[1]
3d820 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a ;.}.}.}..return.$this->tags;.}..
3d840 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 ...public.function.getBranches()
3d860 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 .{.if.(null.===.$this->branches)
3d880 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e .{.$branches.=.array();..$this->
3d8a0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e process->execute('git.branch.--n
3d8c0 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 o-color.--no-abbrev.-v',.$output
3d8e0 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ,.$this->repoDir);.foreach.($thi
3d900 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 s->process->splitLines($output).
3d920 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 as.$branch).{.if.($branch.&&.!pr
3d940 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 eg_match('{^.*[^/]+/HEAD.}',.$br
3d960 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a anch)).{.if.(preg_match('{^(?:\*
3d980 20 29 3f 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 28 3f 3a 20 2e 2a 29 3f 24 .)?.*(\S+).*([a-f0-9]+)(?:..*)?$
3d9a0 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 }',.$branch,.$match)).{.$branche
3d9c0 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 7d 0a s[$match[1]].=.$match[2];.}.}.}.
3d9e0 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a .$this->branches.=.$branches;.}.
3da00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 .return.$this->branches;.}.....p
3da20 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 ublic.static.function.supports(I
3da40 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 OInterface.$io,.Config.$config,.
3da60 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f $url,.$deep.=.false).{.if.(preg_
3da80 6d 61 74 63 68 28 27 23 28 5e 67 69 74 3a 2f 2f 7c 5c 2e 67 69 74 24 7c 67 69 74 28 3f 3a 6f 6c match('#(^git://|\.git$|git(?:ol
3daa0 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 29 23 69 27 ite)?@|//git\.|//github.com/)#i'
3dac0 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 ,.$url)).{.return.true;.}....if.
3dae0 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 (Filesystem::isLocalPath($url)).
3db00 7b 0a 24 75 72 6c 20 3d 20 46 69 6c 65 73 79 73 74 65 6d 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d {.$url.=.Filesystem::getPlatform
3db20 50 61 74 68 28 24 75 72 6c 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b Path($url);.if.(!is_dir($url)).{
3db40 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 .return.false;.}..$process.=.new
3db60 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 0a 20 69 66 20 28 24 70 72 .ProcessExecutor($io);...if.($pr
3db80 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 ocess->execute('git.tag',.$outpu
3dba0 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d t,.$url).===.0).{.return.true;.}
3dbc0 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a .}..if.(!$deep).{.return.false;.
3dbe0 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f }..$process.=.new.ProcessExecuto
3dc00 72 28 24 69 6f 29 3b 0a 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 r($io);.if.($process->execute('g
3dc20 69 74 20 6c 73 2d 72 65 6d 6f 74 65 20 2d 2d 68 65 61 64 73 20 27 20 2e 20 50 72 6f 63 65 73 73 it.ls-remote.--heads.'...Process
3dc40 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 2c 20 24 6f 75 74 70 75 74 29 Executor::escape($url),.$output)
3dc60 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e .===.0).{.return.true;.}..return
3dc80 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d .false;.}.}.<?php............nam
3dca0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a espace.Composer\Repository\Vcs;.
3dcc0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 .use.Composer\Config;.use.Compos
3dce0 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
3dd00 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 Util\ProcessExecutor;.use.Compos
3dd20 65 72 5c 55 74 69 6c 5c 50 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 er\Util\Perforce;.....class.Perf
3dd40 6f 72 63 65 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 orceDriver.extends.VcsDriver.{.p
3dd60 72 6f 74 65 63 74 65 64 20 24 64 65 70 6f 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e rotected.$depot;.protected.$bran
3dd80 63 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 65 72 66 6f 72 63 65 3b 0a 70 72 6f 74 65 63 74 ch;.protected.$perforce;.protect
3dda0 65 64 20 24 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d ed.$composerInfo;.protected.$com
3ddc0 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 poserInfoIdentifier;.....public.
3dde0 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 function.initialize().{.$this->d
3de00 65 70 6f 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 epot.=.$this->repoConfig['depot'
3de20 5d 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 ];.$this->branch.=.'';.if.(!empt
3de40 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 y($this->repoConfig['branch'])).
3de60 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e {.$this->branch.=.$this->repoCon
3de80 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 50 65 72 fig['branch'];.}..$this->initPer
3dea0 66 6f 72 63 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d force($this->repoConfig);.$this-
3dec0 3e 70 65 72 66 6f 72 63 65 2d 3e 70 34 4c 6f 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 >perforce->p4Login($this->io);.$
3dee0 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 68 65 63 6b 53 74 72 65 61 6d 28 24 74 68 69 this->perforce->checkStream($thi
3df00 73 2d 3e 64 65 70 6f 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 77 72 69 s->depot);..$this->perforce->wri
3df20 74 65 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 teP4ClientSpec();.$this->perforc
3df40 65 2d 3e 63 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 e->connectClient();..return.true
3df60 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 ;.}..private.function.initPerfor
3df80 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 ce($repoConfig).{.if.(!empty($th
3dfa0 69 73 2d 3e 70 65 72 66 6f 72 63 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 is->perforce)).{.return;.}..$rep
3dfc0 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 oDir.=.$this->config->get('cache
3dfe0 2d 76 63 73 2d 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b -vcs-dir')...'/'...$this->depot;
3e000 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 50 65 72 66 6f 72 63 65 3a 3a 63 72 65 .$this->perforce.=.Perforce::cre
3e020 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 ate($repoConfig,.$this->getUrl()
3e040 2c 20 24 72 65 70 6f 44 69 72 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 74 68 69 ,.$repoDir,.$this->process,.$thi
3e060 73 2d 3e 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 s->io);.}.....public.function.ge
3e080 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 tComposerInformation($identifier
3e0a0 29 0a 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e ).{.if.(!empty($this->composerIn
3e0c0 66 6f 49 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 69 64 65 foIdentifier)).{.if.(strcmp($ide
3e0e0 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e ntifier,.$this->composerInfoIden
3e100 74 69 66 69 65 72 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 tifier).===.0).{.return.$this->c
3e120 6f 6d 70 6f 73 65 72 49 6e 66 6f 3b 0a 7d 0a 7d 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 omposerInfo;.}.}.$composer_info.
3e140 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e =.$this->perforce->getComposerIn
3e160 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 72 65 74 75 72 6e 20 formation($identifier);..return.
3e180 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $composer_info;.}.....public.fun
3e1a0 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 ction.getRootIdentifier().{.retu
3e1c0 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rn.$this->branch;.}.....public.f
3e1e0 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 24 62 72 61 6e 63 68 65 unction.getBranches().{.$branche
3e200 73 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 s.=.$this->perforce->getBranches
3e220 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ();..return.$branches;.}.....pub
3e240 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 24 74 61 67 73 20 3d lic.function.getTags().{.$tags.=
3e260 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 0a 72 65 .$this->perforce->getTags();..re
3e280 74 75 72 6e 20 24 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f turn.$tags;.}.....public.functio
3e2a0 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getDist($identifier).{.return.
3e2c0 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 null;.}.....public.function.getS
3e2e0 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 73 6f 75 72 63 65 20 3d 20 61 ource($identifier).{.$source.=.a
3e300 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 70 65 72 66 6f 72 63 65 27 2c 0a 27 75 72 6c rray(.'type'.=>.'perforce',.'url
3e320 27 20 3d 3e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 0a 27 '.=>.$this->repoConfig['url'],.'
3e340 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 0a 27 70 34 75 73 reference'.=>.$identifier,.'p4us
3e360 65 72 27 20 3d 3e 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 55 73 65 72 28 er'.=>.$this->perforce->getUser(
3e380 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ).);..return.$source;.}.....publ
3e3a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ic.function.getUrl().{.return.$t
3e3c0 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 his->url;.}.....public.function.
3e3e0 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 hasComposerFile($identifier).{.$
3e400 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 this->composerInfo.=.$this->perf
3e420 6f 72 63 65 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 27 2f 2f orce->getComposerInformation('//
3e440 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 20 2e 20 27 2f 27 20 2e 20 24 69 64 65 6e 74 69 '...$this->depot...'/'...$identi
3e460 66 69 65 72 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 fier);.$this->composerInfoIdenti
3e480 66 69 65 72 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 fier.=.$identifier;..return.!emp
3e4a0 74 79 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ty($this->composerInfo);.}.....p
3e4c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 ublic.function.getContents($url)
3e4e0 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 .{.return.false;.}.....public.st
3e500 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 atic.function.supports(IOInterfa
3e520 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 ce.$io,.Config.$config,.$url,.$d
3e540 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 64 65 65 70 20 7c 7c 20 70 72 65 67 eep.=.false).{.if.($deep.||.preg
3e560 5f 6d 61 74 63 68 28 27 23 5c 62 28 70 65 72 66 6f 72 63 65 7c 70 34 29 5c 62 23 69 27 2c 20 24 _match('#\b(perforce|p4)\b#i',.$
3e580 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 50 65 72 66 6f 72 63 65 3a 3a 63 68 65 63 6b 53 65 url)).{.return.Perforce::checkSe
3e5a0 72 76 65 72 45 78 69 73 74 73 28 24 75 72 6c 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 rverExists($url,.new.ProcessExec
3e5c0 75 74 6f 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a utor($io));.}..return.false;.}..
3e5e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 24 ...public.function.cleanup().{.$
3e600 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 this->perforce->cleanupClientSpe
3e620 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a c();.$this->perforce.=.null;.}..
3e640 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 6f 74 28 29 0a 7b 0a 72 65 74 public.function.getDepot().{.ret
3e660 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this->depot;.}..public.func
3e680 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.getBranch().{.return.$this-
3e6a0 3e 62 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 >branch;.}.}.<?php............na
3e6c0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b mespace.Composer\Repository\Vcs;
3e6e0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 ..use.Composer\Cache;.use.Compos
3e700 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f er\Config;.use.Composer\Json\Jso
3e720 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 nFile;.use.Composer\Util\Process
3e740 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 Executor;.use.Composer\Util\File
3e760 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 system;.use.Composer\Util\Svn.as
3e780 20 53 76 6e 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 .SvnUtil;.use.Composer\IO\IOInte
3e7a0 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 rface;.use.Composer\Downloader\T
3e7c0 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 ransportException;......class.Sv
3e7e0 6e 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 0a 0a 0a 70 nDriver.extends.VcsDriver.{....p
3e800 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 rotected.$cache;.protected.$base
3e820 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 Url;.protected.$tags;.protected.
3e840 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 $branches;.protected.$rootIdenti
3e860 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 fier;.protected.$infoCache.=.arr
3e880 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b 50 61 74 68 20 3d 20 27 74 ay();..protected.$trunkPath.=.'t
3e8a0 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d runk';.protected.$branchesPath.=
3e8c0 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 50 61 74 68 .'branches';.protected.$tagsPath
3e8e0 20 3d 20 27 74 61 67 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 50 61 74 .=.'tags';.protected.$packagePat
3e900 68 20 3d 20 27 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 h.=.'';.protected.$cacheCredenti
3e920 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 69 6c 3b 0a 0a als.=.true;.....private.$util;..
3e940 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a ...public.function.initialize().
3e960 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 {.$this->url.=.$this->baseUrl.=.
3e980 72 74 72 69 6d 28 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 74 68 69 73 2d 3e rtrim(self::normalizeUrl($this->
3e9a0 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 url),.'/');..SvnUtil::cleanEnv()
3e9c0 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 ;..if.(isset($this->repoConfig['
3e9e0 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 trunk-path'])).{.$this->trunkPat
3ea00 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 h.=.$this->repoConfig['trunk-pat
3ea20 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 h'];.}.if.(isset($this->repoConf
3ea40 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 ig['branches-path'])).{.$this->b
3ea60 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b ranchesPath.=.$this->repoConfig[
3ea80 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 'branches-path'];.}.if.(isset($t
3eaa0 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 29 29 20 7b his->repoConfig['tags-path'])).{
3eac0 0a 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f .$this->tagsPath.=.$this->repoCo
3eae0 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 5f 6b nfig['tags-path'];.}.if.(array_k
3eb00 65 79 5f 65 78 69 73 74 73 28 27 73 76 6e 2d 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 6c 73 ey_exists('svn-cache-credentials
3eb20 27 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e ',.$this->repoConfig)).{.$this->
3eb40 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d cacheCredentials.=.(bool).$this-
3eb60 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 73 76 6e 2d 63 61 63 68 65 2d 63 72 65 64 65 6e 74 69 61 >repoConfig['svn-cache-credentia
3eb80 6c 73 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e ls'];.}.if.(isset($this->repoCon
3eba0 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 fig['package-path'])).{.$this->p
3ebc0 61 63 6b 61 67 65 50 61 74 68 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 ackagePath.=.'/'...trim($this->r
3ebe0 65 70 6f 43 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b epoConfig['package-path'],.'/');
3ec00 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f .}..if.(false.!==.($pos.=.strrpo
3ec20 73 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b s($this->url,.'/'...$this->trunk
3ec40 50 61 74 68 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 Path))).{.$this->baseUrl.=.subst
3ec60 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 r($this->url,.0,.$pos);.}..$this
3ec80 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 ->cache.=.new.Cache($this->io,.$
3eca0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 this->config->get('cache-repo-di
3ecc0 72 27 29 2e 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e r').'/'.preg_replace('{[^a-z0-9.
3ece0 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 ]}i',.'-',.$this->baseUrl));..$t
3ed00 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 his->getBranches();.$this->getTa
3ed20 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 gs();.}.....public.function.getR
3ed40 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ootIdentifier().{.return.$this->
3ed60 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 rootIdentifier.?:.$this->trunkPa
3ed80 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c th;.}.....public.function.getUrl
3eda0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ().{.return.$this->url;.}.....pu
3edc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 blic.function.getSource($identif
3ede0 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 ier).{.return.array('type'.=>.'s
3ee00 76 6e 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 vn',.'url'.=>.$this->baseUrl,.'r
3ee20 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a eference'.=>.$identifier);.}....
3ee40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 .public.function.getDist($identi
3ee60 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 fier).{.return.null;.}.....publi
3ee80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f c.function.getComposerInformatio
3eea0 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 n($identifier).{.$identifier.=.'
3eec0 2f 27 20 2e 20 74 72 69 6d 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f /'...trim($identifier,.'/')...'/
3eee0 27 3b 0a 0a 69 66 20 28 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 ';..if.($res.=.$this->cache->rea
3ef00 64 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d d($identifier.'.json')).{.$this-
3ef20 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 >infoCache[$identifier].=.JsonFi
3ef40 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 le::parseJson($res);.}..if.(!iss
3ef60 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d et($this->infoCache[$identifier]
3ef80 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f )).{.preg_match('{^(.+?)(@\d+)?/
3efa0 24 7d 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 $}',.$identifier,.$match);.if.(!
3efc0 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 empty($match[2])).{.$path.=.$mat
3efe0 63 68 5b 31 5d 3b 0a 24 72 65 76 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 ch[1];.$rev.=.$match[2];.}.else.
3f000 7b 0a 24 70 61 74 68 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 {.$path.=.$identifier;.$rev.=.''
3f020 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f ;.}..try.{.$resource.=.$path.'co
3f040 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 mposer.json';.$output.=.$this->e
3f060 78 65 63 75 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c xecute('svn.cat',.$this->baseUrl
3f080 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 ...$resource...$rev);.if.(!trim(
3f0a0 24 6f 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c $output)).{.return;.}.}.catch.(\
3f0c0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 RuntimeException.$e).{.throw.new
3f0e0 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 .TransportException($e->getMessa
3f100 67 65 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a ge());.}..$composer.=.JsonFile::
3f120 70 61 72 73 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 parseJson($output,.$this->baseUr
3f140 6c 20 2e 20 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 65 6d 70 74 l...$resource...$rev);..if.(empt
3f160 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 y($composer['time'])).{.$output.
3f180 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 =.$this->execute('svn.info',.$th
3f1a0 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 is->baseUrl...$path...$rev);.for
3f1c0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 each.($this->process->splitLines
3f1e0 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 ($output).as.$line).{.if.($line.
3f200 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 &&.preg_match('{^Last.Changed.Da
3f220 74 65 3a 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b te:.([^(]+)}',.$line,.$match)).{
3f240 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d .$date.=.new.\DateTime($match[1]
3f260 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f ,.new.\DateTimeZone('UTC'));.$co
3f280 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 mposer['time'].=.$date->format('
3f2a0 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 Y-m-d.H:i:s');.break;.}.}.}..$th
3f2c0 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a is->cache->write($identifier.'.j
3f2e0 73 6f 6e 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a 24 son',.json_encode($composer));.$
3f300 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 this->infoCache[$identifier].=.$
3f320 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 composer;.}..return.$this->infoC
3f340 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ache[$identifier];.}.....public.
3f360 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d function.getTags().{.if.(null.==
3f380 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 =.$this->tags).{.$this->tags.=.a
3f3a0 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d rray();..if.($this->tagsPath.!==
3f3c0 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 .false).{.$output.=.$this->execu
3f3e0 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 te('svn.ls.--verbose',.$this->ba
3f400 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a seUrl...'/'...$this->tagsPath);.
3f420 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 if.($output).{.foreach.($this->p
3f440 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 rocess->splitLines($output).as.$
3f460 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 line).{.$line.=.trim($line);.if.
3f480 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 ($line.&&.preg_match('{^\s*(\S+)
3f4a0 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 .*?(\S+)\s*$}',.$line,.$match)).
3f4c0 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 {.if.(isset($match[1]).&&.isset(
3f4e0 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 $match[2]).&&.$match[2].!==.'./'
3f500 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c ).{.$this->tags[rtrim($match[2],
3f520 20 27 2f 27 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 .'/')].=.$this->buildIdentifier(
3f540 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 .'/'...$this->tagsPath...'/'...$
3f560 6d 61 74 63 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d match[2],.$match[1].);.}.}.}.}.}
3f580 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 .}..return.$this->tags;.}.....pu
3f5a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 blic.function.getBranches().{.if
3f5c0 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 74 .(null.===.$this->branches).{.$t
3f5e0 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 66 61 his->branches.=.array();..if.(fa
3f600 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 20 7b 0a 24 74 72 75 lse.===.$this->trunkPath).{.$tru
3f620 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 3b nkParent.=.$this->baseUrl...'/';
3f640 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e .}.else.{.$trunkParent.=.$this->
3f660 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 baseUrl...'/'...$this->trunkPath
3f680 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 ;.}..$output.=.$this->execute('s
3f6a0 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 72 75 6e 6b 50 61 72 65 6e 74 29 3b vn.ls.--verbose',.$trunkParent);
3f6c0 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e .if.($output).{.foreach.($this->
3f6e0 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 process->splitLines($output).as.
3f700 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 $line).{.$line.=.trim($line);.if
3f720 20 28 24 6c 69 6e 65 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b .($line.&&.preg_match('{^\s*(\S+
3f740 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 ).*?(\S+)\s*$}',.$line,.$match))
3f760 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 .{.if.(isset($match[1]).&&.isset
3f780 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 27 2e 2f ($match[2]).&&.$match[2].===.'./
3f7a0 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 20 3d 20 ').{.$this->branches['trunk'].=.
3f7c0 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 $this->buildIdentifier(.'/'...$t
3f7e0 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 24 74 68 his->trunkPath,.$match[1].);.$th
3f800 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e is->rootIdentifier.=.$this->bran
3f820 63 68 65 73 5b 27 74 72 75 6e 6b 27 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e ches['trunk'];.break;.}.}.}.}.un
3f840 73 65 74 28 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 set($output);..if.($this->branch
3f860 65 73 50 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 esPath.!==.false).{.$output.=.$t
3f880 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c his->execute('svn.ls.--verbose',
3f8a0 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 .$this->baseUrl...'/'...$this->b
3f8c0 72 61 6e 63 68 65 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 ranchesPath);.if.($output).{.for
3f8e0 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 each.($this->process->splitLines
3f900 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e (trim($output)).as.$line).{.$lin
3f920 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 70 72 e.=.trim($line);.if.($line.&&.pr
3f940 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 53 2b 29 2e 2a 3f 28 5c 53 2b 29 5c 73 2a 24 eg_match('{^\s*(\S+).*?(\S+)\s*$
3f960 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 }',.$line,.$match)).{.if.(isset(
3f980 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 74 63 68 5b 32 5d 29 20 26 $match[1]).&&.isset($match[2]).&
3f9a0 26 20 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 &.$match[2].!==.'./').{.$this->b
3f9c0 72 61 6e 63 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d ranches[rtrim($match[2],.'/')].=
3f9e0 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 .$this->buildIdentifier(.'/'...$
3fa00 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 this->branchesPath...'/'...$matc
3fa20 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a h[2],.$match[1].);.}.}.}.}.}.}..
3fa40 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->branches;.}.....pu
3fa60 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f blic.static.function.supports(IO
3fa80 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 Interface.$io,.Config.$config,.$
3faa0 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 75 72 6c 20 3d 20 73 65 6c url,.$deep.=.false).{.$url.=.sel
3fac0 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 3b 0a 69 66 20 28 70 72 65 67 5f f::normalizeUrl($url);.if.(preg_
3fae0 6d 61 74 63 68 28 27 23 28 5e 73 76 6e 3a 2f 2f 7c 5e 73 76 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 match('#(^svn://|^svn\+ssh://|sv
3fb00 6e 5c 2e 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d n\.)#i',.$url)).{.return.true;.}
3fb20 0a 0a 0a 20 69 66 20 28 21 24 64 65 65 70 20 26 26 20 21 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 ....if.(!$deep.&&.!Filesystem::i
3fb40 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 sLocalPath($url)).{.return.false
3fb60 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 ;.}..$processExecutor.=.new.Proc
3fb80 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 essExecutor();..$exit.=.$process
3fba0 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 0a 22 73 76 6e 20 69 6e 66 6f 20 2d 2d 6e Executor->execute(."svn.info.--n
3fbc0 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 7b 24 75 72 6c 7d 22 2c 0a 24 69 67 6e 6f 72 65 64 on-interactive.{$url}",.$ignored
3fbe0 4f 75 74 70 75 74 0a 29 3b 0a 0a 69 66 20 28 24 65 78 69 74 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 Output.);..if.($exit.===.0).{...
3fc00 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 return.true;.}..if.(false.!==.st
3fc20 72 69 70 6f 73 28 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 ripos($processExecutor->getError
3fc40 4f 75 74 70 75 74 28 29 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 3a Output(),.'authorization.failed:
3fc60 27 29 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ')).{.....return.true;.}..return
3fc80 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 .false;.}.........protected.stat
3fca0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b ic.function.normalizeUrl($url).{
3fcc0 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 69 66 20 28 24 66 73 .$fs.=.new.Filesystem();.if.($fs
3fce0 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e ->isAbsolutePath($url)).{.return
3fd00 20 27 66 69 6c 65 3a 2f 2f 27 20 2e 20 73 74 72 74 72 28 24 75 72 6c 2c 20 27 5c 5c 27 2c 20 27 .'file://'...strtr($url,.'\\',.'
3fd20 2f 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a /');.}..return.$url;.}..........
3fd40 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d .protected.function.execute($com
3fd60 6d 61 6e 64 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 mand,.$url).{.if.(null.===.$this
3fd80 2d 3e 75 74 69 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 ->util).{.$this->util.=.new.SvnU
3fda0 74 69 6c 28 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 til($this->baseUrl,.$this->io,.$
3fdc0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 this->config,.$this->process);.$
3fde0 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 73 65 74 43 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 28 this->util->setCacheCredentials(
3fe00 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 29 3b 0a 7d 0a 0a 74 72 79 $this->cacheCredentials);.}..try
3fe20 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 .{.return.$this->util->execute($
3fe40 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d command,.$url);.}.catch.(\Runtim
3fe60 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 eException.$e).{.if.(0.!==.$this
3fe80 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f ->process->execute('svn.--versio
3fea0 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 n',.$ignoredOutput)).{.throw.new
3fec0 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 6c 6f .\RuntimeException('Failed.to.lo
3fee0 61 64 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 73 76 6e 20 77 61 73 20 6e 6f 74 20 66 ad.'.$this->url.',.svn.was.not.f
3ff00 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 ound,.check.that.it.is.installed
3ff20 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 .and.in.your.PATH.env.'..."\n\n"
3ff40 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 ...$this->process->getErrorOutpu
3ff60 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 t());.}..throw.new.\RuntimeExcep
3ff80 74 69 6f 6e 28 0a 27 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 tion(.'Repository.'.$this->url.'
3ffa0 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 65 73 73 65 64 2c 20 27 2e 24 65 2d 3e 67 .could.not.be.processed,.'.$e->g
3ffc0 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 etMessage().);.}.}..........prot
3ffe0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 24 ected.function.buildIdentifier($
40000 62 61 73 65 44 69 72 2c 20 24 72 65 76 69 73 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 baseDir,.$revision).{.return.rtr
40020 69 6d 28 24 62 61 73 65 44 69 72 2c 20 27 2f 27 29 20 2e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 im($baseDir,.'/')...$this->packa
40040 67 65 50 61 74 68 20 2e 20 27 2f 40 27 20 2e 20 24 72 65 76 69 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c gePath...'/@'...$revision;.}.}.<
40060 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
40080 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Repository\Vcs;..use.Composer
400a0 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 \Config;.use.Composer\IO\IOInter
400c0 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 63 73 44 72 69 76 65 72 49 6e 74 face;.....interface.VcsDriverInt
400e0 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 erface.{....public.function.init
40100 69 61 6c 69 7a 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ialize();........public.function
40120 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 .getComposerInformation($identif
40140 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ier);.......public.function.getR
40160 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ootIdentifier();.......public.fu
40180 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c nction.getBranches();.......publ
401a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c ic.function.getTags();......publ
401c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 ic.function.getDist($identifier)
401e0 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 ;......public.function.getSource
40200 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ($identifier);.......public.func
40220 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tion.getUrl();.........public.fu
40240 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 6e 74 69 66 69 nction.hasComposerFile($identifi
40260 65 72 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 er);......public.function.cleanu
40280 70 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e p();...........public.static.fun
402a0 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 ction.supports(IOInterface.$io,.
402c0 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 Config.$config,.$url,.$deep.=.fa
402e0 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 lse);.}.<?php............namespa
40300 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 ce.Composer\Repository\Vcs;..use
40320 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a .Composer\Config;.use.Composer\J
40340 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c son\JsonFile;.use.Composer\Util\
40360 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ProcessExecutor;.use.Composer\Ut
40380 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 il\Filesystem;.use.Composer\IO\I
403a0 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 44 72 69 76 65 72 20 65 OInterface;.....class.HgDriver.e
403c0 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 xtends.VcsDriver.{.protected.$ta
403e0 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 gs;.protected.$branches;.protect
40400 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 ed.$rootIdentifier;.protected.$r
40420 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 epoDir;.protected.$infoCache.=.a
40440 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 rray();.....public.function.init
40460 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 ialize().{.if.(Filesystem::isLoc
40480 61 6c 50 61 74 68 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 alPath($this->url)).{.$this->rep
404a0 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 oDir.=.$this->url;.}.else.{.$cac
404c0 68 65 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 heDir.=.$this->config->get('cach
404e0 65 2d 76 63 73 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 63 e-vcs-dir');.$this->repoDir.=.$c
40500 61 63 68 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b acheDir...'/'...preg_replace('{[
40520 5e 61 2d 7a 30 2d 39 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 ^a-z0-9]}i',.'-',.$this->url)...
40540 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 '/';..$fs.=.new.Filesystem();.$f
40560 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 61 63 68 65 44 s->ensureDirectoryExists($cacheD
40580 69 72 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 ir);..if.(!is_writable(dirname($
405a0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 this->repoDir))).{.throw.new.\Ru
405c0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e ntimeException('Can.not.clone.'.
405e0 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 $this->url.'.to.access.package.i
40600 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 72 2e 27 22 20 nformation..The."'.$cacheDir.'".
40620 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 directory.is.not.writable.by.the
40640 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 64 69 .current.user.');.}....if.(is_di
40660 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 r($this->repoDir).&&.0.===.$this
40680 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c ->process->execute('hg.summary',
406a0 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 7b 0a 69 66 20 .$output,.$this->repoDir)).{.if.
406c0 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 (0.!==.$this->process->execute('
406e0 68 67 20 70 75 6c 6c 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 hg.pull',.$output,.$this->repoDi
40700 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 r)).{.$this->io->writeError('<er
40720 72 6f 72 3e 46 61 69 6c 65 64 20 74 6f 20 75 70 64 61 74 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 ror>Failed.to.update.'.$this->ur
40740 6c 2e 27 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 74 68 l.',.package.information.from.th
40760 69 73 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 61 79 20 62 65 20 6f 75 74 64 61 74 65 64 20 28 27 is.repository.may.be.outdated.('
40780 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 .$this->process->getErrorOutput(
407a0 29 2e 27 29 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 66 73 ).')</error>');.}.}.else.{...$fs
407c0 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 ->removeDirectory($this->repoDir
407e0 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 );..if.(0.!==.$this->process->ex
40800 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 75 70 64 61 ecute(sprintf('hg.clone.--noupda
40820 74 65 20 25 73 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 te.%s.%s',.ProcessExecutor::esca
40840 70 65 28 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a pe($this->url),.ProcessExecutor:
40860 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 :escape($this->repoDir)),.$outpu
40880 74 2c 20 24 63 61 63 68 65 44 69 72 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 t,.$cacheDir)).{.$output.=.$this
408a0 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 ->process->getErrorOutput();..if
408c0 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.!==.$this->process->execute(
408e0 27 68 67 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 'hg.--version',.$ignoredOutput))
40900 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
40920 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 Failed.to.clone.'.$this->url.',.
40940 68 67 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 hg.was.not.found,.check.that.it.
40960 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e is.installed.and.in.your.PATH.en
40980 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 v.'..."\n\n"...$this->process->g
409a0 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c etErrorOutput());.}..throw.new.\
409c0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e RuntimeException('Failed.to.clon
409e0 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 e.'.$this->url.',.could.not.read
40a00 20 70 61 63 6b 61 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 .packages.from.it'..."\n\n"..$ou
40a20 74 70 75 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a tput);.}.}.}..$this->getTags();.
40a40 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c $this->getBranches();.}.....publ
40a60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a ic.function.getRootIdentifier().
40a80 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 {.if.(null.===.$this->rootIdenti
40aa0 66 69 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 fier).{.$this->process->execute(
40ac0 73 70 72 69 6e 74 66 28 27 68 67 20 74 69 70 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 sprintf('hg.tip.--template."{nod
40ae0 65 7d 22 27 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b e}"'),.$output,.$this->repoDir);
40b00 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 .$output.=.$this->process->split
40b20 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 Lines($output);.$this->rootIdent
40b40 69 66 69 65 72 20 3d 20 24 6f 75 74 70 75 74 5b 30 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ifier.=.$output[0];.}..return.$t
40b60 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 his->rootIdentifier;.}.....publi
40b80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 c.function.getUrl().{.return.$th
40ba0 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 is->url;.}.....public.function.g
40bc0 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 etSource($identifier).{.return.a
40be0 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 rray('type'.=>.'hg',.'url'.=>.$t
40c00 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 his->getUrl(),.'reference'.=>.$i
40c20 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f dentifier);.}.....public.functio
40c40 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getDist($identifier).{.return.
40c60 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 null;.}.....public.function.getC
40c80 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a omposerInformation($identifier).
40ca0 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 {.if.(!isset($this->infoCache[$i
40cc0 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 dentifier])).{.$this->process->e
40ce0 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 61 74 20 2d 72 20 25 73 20 63 6f 6d xecute(sprintf('hg.cat.-r.%s.com
40d00 70 6f 73 65 72 2e 6a 73 6f 6e 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 poser.json',.ProcessExecutor::es
40d20 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 cape($identifier)),.$composer,.$
40d40 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 63 6f 6d 70 this->repoDir);..if.(!trim($comp
40d60 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 oser)).{.return;.}..$composer.=.
40d80 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 JsonFile::parseJson($composer,.$
40da0 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 identifier);..if.(empty($compose
40dc0 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 r['time'])).{.$this->process->ex
40de0 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 6c 61 74 65 ecute(sprintf('hg.log.--template
40e00 20 22 7b 64 61 74 65 7c 72 66 63 33 33 33 39 64 61 74 65 7d 22 20 2d 72 20 25 73 27 2c 20 50 72 ."{date|rfc3339date}".-r.%s',.Pr
40e20 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 69 64 65 6e 74 69 66 69 65 ocessExecutor::escape($identifie
40e40 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 r)),.$output,.$this->repoDir);.$
40e60 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 74 72 69 6d 28 24 6f 75 74 70 75 date.=.new.\DateTime(trim($outpu
40e80 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 t),.new.\DateTimeZone('UTC'));.$
40ea0 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 composer['time'].=.$date->format
40ec0 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 ('Y-m-d.H:i:s');.}.$this->infoCa
40ee0 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a che[$identifier].=.$composer;.}.
40f00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 .return.$this->infoCache[$identi
40f20 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 fier];.}.....public.function.get
40f40 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 Tags().{.if.(null.===.$this->tag
40f60 73 29 20 7b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 s).{.$tags.=.array();..$this->pr
40f80 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 74 61 67 73 27 2c 20 24 6f 75 74 70 75 ocess->execute('hg.tags',.$outpu
40fa0 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 t,.$this->repoDir);.foreach.($th
40fc0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 is->process->splitLines($output)
40fe0 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 .as.$tag).{.if.($tag.&&.preg_mat
41000 63 68 28 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 ch('(^([^\s]+)\s+\d+:(.*)$)',.$t
41020 61 67 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 ag,.$match)).{.$tags[$match[1]].
41040 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 =.$match[2];.}.}.unset($tags['ti
41060 70 27 5d 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 p']);..$this->tags.=.$tags;.}..r
41080 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 eturn.$this->tags;.}.....public.
410a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c function.getBranches().{.if.(nul
410c0 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 l.===.$this->branches).{.$branch
410e0 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 20 3d 20 61 72 72 61 79 es.=.array();.$bookmarks.=.array
41100 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 ();..$this->process->execute('hg
41120 20 62 72 61 6e 63 68 65 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f .branches',.$output,.$this->repo
41140 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 Dir);.foreach.($this->process->s
41160 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b plitLines($output).as.$branch).{
41180 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b .if.($branch.&&.preg_match('(^([
411a0 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b 61 2d 66 30 2d 39 5d 2b 29 29 27 2c 20 24 62 72 61 ^\s]+)\s+\d+:([a-f0-9]+))',.$bra
411c0 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 nch,.$match)).{.$branches[$match
411e0 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 [1]].=.$match[2];.}.}..$this->pr
41200 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 6f 6f 6b 6d 61 72 6b 73 27 2c 20 24 ocess->execute('hg.bookmarks',.$
41220 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 output,.$this->repoDir);.foreach
41240 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 .($this->process->splitLines($ou
41260 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 tput).as.$branch).{.if.($branch.
41280 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 3f 3a 5b 5c 73 2a 5d 2a 29 28 5b 5e 5c 73 &&.preg_match('(^(?:[\s*]*)([^\s
412a0 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 ]+)\s+\d+:(.*)$)',.$branch,.$mat
412c0 63 68 29 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 ch)).{.$bookmarks[$match[1]].=.$
412e0 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 match[2];.}.}....$this->branches
41300 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f 6f 6b 6d 61 72 6b 73 2c 20 24 62 72 61 6e .=.array_merge($bookmarks,.$bran
41320 63 68 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 ches);.}..return.$this->branches
41340 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ;.}.....public.static.function.s
41360 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 upports(IOInterface.$io,.Config.
41380 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a $config,.$url,.$deep.=.false).{.
413a0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 if.(preg_match('#(^(?:https?|ssh
413c0 29 3a 2f 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 )://(?:[^@]@)?bitbucket.org|http
413e0 73 3a 2f 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 s://(?:.*?)\.kilnhg.com)#i',.$ur
41400 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 46 69 6c 65 l)).{.return.true;.}....if.(File
41420 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 24 75 72 system::isLocalPath($url)).{.$ur
41440 6c 20 3d 20 46 69 6c 65 73 79 73 74 65 6d 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 l.=.Filesystem::getPlatformPath(
41460 24 75 72 6c 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 $url);.if.(!is_dir($url)).{.retu
41480 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 rn.false;.}..$process.=.new.Proc
414a0 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 essExecutor();...if.($process->e
414c0 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 xecute('hg.summary',.$output,.$u
414e0 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 rl).===.0).{.return.true;.}.}..i
41500 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 f.(!$deep).{.return.false;.}..$p
41520 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 rocessExecutor.=.new.ProcessExec
41540 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 utor();.$exit.=.$processExecutor
41560 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 69 64 65 6e 74 69 66 79 20 25 ->execute(sprintf('hg.identify.%
41580 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c s',.ProcessExecutor::escape($url
415a0 29 29 2c 20 24 69 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d )),.$ignored);..return.$exit.===
415c0 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 .0;.}.}.<?php............namespa
415e0 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 ce.Composer\Repository\Vcs;..use
41600 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 .Composer\Downloader\TransportEx
41620 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 ception;.use.Composer\Config;.us
41640 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 e.Composer\IO\IOInterface;.use.C
41660 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 omposer\Util\ProcessExecutor;.us
41680 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d e.Composer\Util\RemoteFilesystem
416a0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a ;.use.Composer\Util\Filesystem;.
416c0 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 72 69 76 65 72 20 69 ......abstract.class.VcsDriver.i
416e0 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 mplements.VcsDriverInterface.{.p
41700 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 67 69 6e rotected.$url;.protected.$origin
41720 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 Url;.protected.$repoConfig;.prot
41740 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 ected.$io;.protected.$config;.pr
41760 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d otected.$process;.protected.$rem
41780 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 70 oteFilesystem;...........final.p
417a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 ublic.function.__construct(array
417c0 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 .$repoConfig,.IOInterface.$io,.C
417e0 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 onfig.$config,.ProcessExecutor.$
41800 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d process.=.null,.RemoteFilesystem
41820 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 .$remoteFilesystem.=.null).{.if.
41840 28 46 69 6c 65 73 79 73 74 65 6d 3a 3a 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 72 65 70 6f 43 6f (Filesystem::isLocalPath($repoCo
41860 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c nfig['url'])).{.$repoConfig['url
41880 27 5d 20 3d 20 46 69 6c 65 73 79 73 74 65 6d 3a 3a 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 '].=.Filesystem::getPlatformPath
418a0 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e ($repoConfig['url']);.}..$this->
418c0 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d url.=.$repoConfig['url'];.$this-
418e0 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b >originUrl.=.$repoConfig['url'];
41900 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 .$this->repoConfig.=.$repoConfig
41920 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 ;.$this->io.=.$io;.$this->config
41940 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 .=.$config;.$this->process.=.$pr
41960 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f ocess.?:.new.ProcessExecutor($io
41980 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 );.$this->remoteFilesystem.=.$re
419a0 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 moteFilesystem.?:.new.RemoteFile
419c0 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c system($io,.$config);.}.....publ
419e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 69 64 65 ic.function.hasComposerFile($ide
41a00 6e 74 69 66 69 65 72 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 24 ntifier).{.try.{.return.(bool).$
41a20 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 this->getComposerInformation($id
41a40 65 6e 74 69 66 69 65 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 entifier);.}.catch.(TransportExc
41a60 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a eption.$e).{.}..return.false;.}.
41a80 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 ........protected.function.getSc
41aa0 68 65 6d 65 28 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f heme().{.if.(extension_loaded('o
41ac0 70 65 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 68 74 74 70 73 27 3b 0a 7d 0a 0a 72 penssl')).{.return.'https';.}..r
41ae0 65 74 75 72 6e 20 27 68 74 74 70 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 eturn.'http';.}.........protecte
41b00 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 d.function.getContents($url).{.r
41b20 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 eturn.$this->remoteFilesystem->g
41b40 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 72 etContents($this->originUrl,.$ur
41b60 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e l,.false);.}.....public.function
41b80 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .cleanup().{.return;.}.}.<?php..
41ba0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 ..........namespace.Composer\Rep
41bc0 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 ository\Vcs;..use.Composer\Confi
41be0 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 g;.use.Composer\Json\JsonFile;.u
41c00 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a se.Composer\IO\IOInterface;.....
41c20 63 6c 61 73 73 20 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 class.HgBitbucketDriver.extends.
41c40 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 VcsDriver.{.protected.$owner;.pr
41c60 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$repository;.protected.$
41c80 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 tags;.protected.$branches;.prote
41ca0 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 cted.$rootIdentifier;.protected.
41cc0 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $infoCache.=.array();.....public
41ce0 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 .function.initialize().{.preg_ma
41d00 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 tch('#^https?://bitbucket\.org/(
41d20 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 3f 24 23 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 2c [^/]+)/([^/]+)/?$#',.$this->url,
41d40 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d 61 74 63 68 5b .$match);.$this->owner.=.$match[
41d60 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 74 63 68 5b 32 1];.$this->repository.=.$match[2
41d80 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 74 62 75 63 6b 65 74 ];.$this->originUrl.=.'bitbucket
41da0 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .org';.}.....public.function.get
41dc0 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 RootIdentifier().{.if.(null.===.
41de0 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 72 65 73 6f 75 72 $this->rootIdentifier).{.$resour
41e00 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 ce.=.$this->getScheme()...'://bi
41e20 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 tbucket.org/api/1.0/repositories
41e40 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 /'.$this->owner.'/'.$this->repos
41e60 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 itory.'/tags';.$repoData.=.JsonF
41e80 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 ile::parseJson($this->getContent
41ea0 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 61 72 s($resource),.$resource);.if.(ar
41ec0 72 61 79 28 29 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 7c 7c 20 21 69 73 73 65 74 28 24 72 ray().===.$repoData.||.!isset($r
41ee0 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 epoData['tip'])).{.throw.new.\Ru
41f00 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 64 6f 65 73 ntimeException($this->url.'.does
41f20 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 .not.appear.to.be.a.mercurial.re
41f40 70 6f 73 69 74 6f 72 79 2c 20 75 73 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 pository,.use.'.$this->url.'.git
41f60 20 69 66 20 74 68 69 73 20 69 73 20 61 20 67 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f .if.this.is.a.git.bitbucket.repo
41f80 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 sitory');.}.$this->rootIdentifie
41fa0 72 20 3d 20 24 72 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d r.=.$repoData['tip']['raw_node']
41fc0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 ;.}..return.$this->rootIdentifie
41fe0 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 r;.}.....public.function.getUrl(
42000 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ).{.return.$this->url;.}.....pub
42020 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 lic.function.getSource($identifi
42040 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 er).{.return.array('type'.=>.'hg
42060 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 ',.'url'.=>.$this->getUrl(),.'re
42080 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a ference'.=>.$identifier);.}.....
420a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 public.function.getDist($identif
420c0 69 65 72 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 ier).{.$url.=.$this->getScheme()
420e0 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 ...'://bitbucket.org/'.$this->ow
42100 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f ner.'/'.$this->repository.'/get/
42120 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 '.$identifier.'.zip';..return.ar
42140 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 ray('type'.=>.'zip',.'url'.=>.$u
42160 72 6c 2c 20 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 rl,.'reference'.=>.$identifier,.
42180 27 73 68 61 73 75 6d 27 20 3d 3e 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 'shasum'.=>.'');.}.....public.fu
421a0 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 nction.getComposerInformation($i
421c0 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 dentifier).{.if.(!isset($this->i
421e0 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 nfoCache[$identifier])).{.$resou
42200 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 rce.=.$this->getScheme()...'://b
42220 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 itbucket.org/api/1.0/repositorie
42240 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f s/'.$this->owner.'/'.$this->repo
42260 73 69 74 6f 72 79 2e 27 2f 73 72 63 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d sitory.'/src/'.$identifier.'/com
42280 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c poser.json';.$repoData.=.JsonFil
422a0 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 e::parseJson($this->getContents(
422c0 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 0a 20 0a 20 0a 20 0a $resource),.$resource);.........
422e0 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 64 61 74 61 27 2c 20 24 .if.(!array_key_exists('data',.$
42300 72 65 70 6f 44 61 74 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 repoData)).{.return;.}..$compose
42320 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 70 6f 44 61 74 r.=.JsonFile::parseJson($repoDat
42340 61 5b 27 64 61 74 61 27 5d 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 65 6d 70 74 a['data'],.$resource);..if.(empt
42360 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 y($composer['time'])).{.$resourc
42380 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 e.=.$this->getScheme()...'://bit
423a0 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f bucket.org/api/1.0/repositories/
423c0 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 '.$this->owner.'/'.$this->reposi
423e0 74 6f 72 79 2e 27 2f 63 68 61 6e 67 65 73 65 74 73 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 3b tory.'/changesets/'.$identifier;
42400 0a 24 63 68 61 6e 67 65 73 65 74 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f .$changeset.=.JsonFile::parseJso
42420 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c n($this->getContents($resource),
42440 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d .$resource);.$composer['time'].=
42460 20 24 63 68 61 6e 67 65 73 65 74 5b 27 74 69 6d 65 73 74 61 6d 70 27 5d 3b 0a 7d 0a 24 74 68 69 .$changeset['timestamp'];.}.$thi
42480 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d s->infoCache[$identifier].=.$com
424a0 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 poser;.}..return.$this->infoCach
424c0 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e[$identifier];.}.....public.fun
424e0 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 ction.getTags().{.if.(null.===.$
42500 74 68 69 73 2d 3e 74 61 67 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d this->tags).{.$resource.=.$this-
42520 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
42540 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f /api/1.0/repositories/'.$this->o
42560 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 wner.'/'.$this->repository.'/tag
42580 73 27 3b 0a 24 74 61 67 73 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a s';.$tagsData.=.JsonFile::parseJ
425a0 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 son($this->getContents($resource
425c0 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 ),.$resource);.$this->tags.=.arr
425e0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 67 73 44 61 74 61 20 61 73 20 24 74 61 67 ay();.foreach.($tagsData.as.$tag
42600 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 74 61 67 5d 20 3d .=>.$data).{.$this->tags[$tag].=
42620 20 24 64 61 74 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 .$data['raw_node'];.}.unset($thi
42640 73 2d 3e 74 61 67 73 5b 27 74 69 70 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->tags['tip']);.}..return.$this
42660 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ->tags;.}.....public.function.ge
42680 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 tBranches().{.if.(null.===.$this
426a0 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d ->branches).{.$resource.=.$this-
426c0 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 >getScheme()...'://bitbucket.org
426e0 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f /api/1.0/repositories/'.$this->o
42700 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 62 72 61 wner.'/'.$this->repository.'/bra
42720 6e 63 68 65 73 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a nches';.$branchData.=.JsonFile::
42740 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 parseJson($this->getContents($re
42760 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e source),.$resource);.$this->bran
42780 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 ches.=.array();.foreach.($branch
427a0 44 61 74 61 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 24 74 68 69 Data.as.$branch.=>.$data).{.$thi
427c0 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 64 61 74 61 5b 27 72 61 s->branches[$branch].=.$data['ra
427e0 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 w_node'];.}.}..return.$this->bra
42800 6e 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 nches;.}.....public.static.funct
42820 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f ion.supports(IOInterface.$io,.Co
42840 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 nfig.$config,.$url,.$deep.=.fals
42860 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3f 3a 2f e).{.if.(!preg_match('#^https?:/
42880 2f 62 69 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f /bitbucket\.org/([^/]+)/([^/]+)/
428a0 3f 24 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ?$#',.$url)).{.return.false;.}..
428c0 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 if.(!extension_loaded('openssl')
428e0 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d ).{.if.($io->isVerbose()).{.$io-
42900 3e 77 72 69 74 65 45 72 72 6f 72 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 >writeError('Skipping.Bitbucket.
42920 68 67 20 64 72 69 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 hg.driver.for.'.$url.'.because.t
42940 68 65 20 4f 70 65 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 he.OpenSSL.PHP.extension.is.miss
42960 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 ing.');.}..return.false;.}..retu
42980 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 rn.true;.}.}.<?php............na
429a0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a mespace.Composer\Repository;....
429c0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 .....class.InstalledArrayReposit
429e0 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 ory.extends.WritableArrayReposit
42a00 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f ory.implements.InstalledReposito
42a20 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ryInterface.{.}.<?php...........
42a40 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a .namespace.Composer\Repository;.
42a60 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 ......class.RepositorySecurityEx
42a80 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c ception.extends.\Exception.{.}.<
42aa0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
42ac0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 er\Repository;..use.Composer\Dow
42ae0 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 nloader\TransportException;.use.
42b00 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 56 63 73 44 72 69 76 65 Composer\Repository\Vcs\VcsDrive
42b20 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 rInterface;.use.Composer\Package
42b40 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 \Version\VersionParser;.use.Comp
42b60 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b oser\Package\Loader\ArrayLoader;
42b80 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c .use.Composer\Package\Loader\Val
42ba0 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 idatingArrayLoader;.use.Composer
42bc0 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 \Package\Loader\InvalidPackageEx
42be0 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f ception;.use.Composer\Package\Lo
42c00 61 64 65 72 5c 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 ader\LoaderInterface;.use.Compos
42c20 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 er\EventDispatcher\EventDispatch
42c40 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b er;.use.Composer\IO\IOInterface;
42c60 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 .use.Composer\Config;.....class.
42c80 56 63 73 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 VcsRepository.extends.ArrayRepos
42ca0 69 74 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 itory.{.protected.$url;.protecte
42cc0 64 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f d.$packageName;.protected.$verbo
42ce0 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f se;.protected.$io;.protected.$co
42d00 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a nfig;.protected.$versionParser;.
42d20 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 protected.$type;.protected.$load
42d40 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 er;.protected.$repoConfig;.prote
42d60 63 74 65 64 20 24 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c 73 cted.$branchErrorOccurred.=.fals
42d80 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 e;..public.function.__construct(
42da0 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 array.$repoConfig,.IOInterface.$
42dc0 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 io,.Config.$config,.EventDispatc
42de0 68 65 72 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 64 her.$dispatcher.=.null,.array.$d
42e00 72 69 76 65 72 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 rivers.=.null).{.$this->drivers.
42e20 3d 20 24 64 72 69 76 65 72 73 20 3f 3a 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e =.$drivers.?:.array(.'github'.=>
42e40 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 .'Composer\Repository\Vcs\GitHub
42e60 44 72 69 76 65 72 27 2c 0a 27 67 69 74 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d Driver',.'git-bitbucket'.=>.'Com
42e80 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 poser\Repository\Vcs\GitBitbucke
42ea0 74 44 72 69 76 65 72 27 2c 0a 27 67 69 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 tDriver',.'git'.=>.'Composer\Rep
42ec0 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 ository\Vcs\GitDriver',.'hg-bitb
42ee0 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 ucket'.=>.'Composer\Repository\V
42f00 63 73 5c 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 cs\HgBitbucketDriver',.'hg'.=>.'
42f20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 Composer\Repository\Vcs\HgDriver
42f40 27 2c 0a 27 70 65 72 66 6f 72 63 65 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ',.'perforce'.=>.'Composer\Repos
42f60 69 74 6f 72 79 5c 56 63 73 5c 50 65 72 66 6f 72 63 65 44 72 69 76 65 72 27 2c 0a 0a 20 27 73 76 itory\Vcs\PerforceDriver',...'sv
42f80 6e 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 53 n'.=>.'Composer\Repository\Vcs\S
42fa0 76 6e 44 72 69 76 65 72 27 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 vnDriver',.);..$this->url.=.$rep
42fc0 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b oConfig['url'];.$this->io.=.$io;
42fe0 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 .$this->type.=.isset($repoConfig
43000 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 20 ['type']).?.$repoConfig['type'].
43020 3a 20 27 76 63 73 27 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e 69 :.'vcs';.$this->verbose.=.$io->i
43040 73 56 65 72 62 6f 73 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e sVerbose();.$this->config.=.$con
43060 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f fig;.$this->repoConfig.=.$repoCo
43080 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f nfig;.}..public.function.getRepo
430a0 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e Config().{.return.$this->repoCon
430c0 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 65 fig;.}..public.function.setLoade
430e0 72 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 r(LoaderInterface.$loader).{.$th
43100 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 is->loader.=.$loader;.}..public.
43120 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 72 69 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 function.getDriver().{.if.(isset
43140 28 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e 74 79 70 65 5d 29 29 20 7b ($this->drivers[$this->type])).{
43160 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 5b 24 74 68 69 73 2d 3e .$class.=.$this->drivers[$this->
43180 74 79 70 65 5d 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 type];.$driver.=.new.$class($thi
431a0 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d s->repoConfig,.$this->io,.$this-
431c0 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b >config);.$driver->initialize();
431e0 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 ..return.$driver;.}..foreach.($t
43200 68 69 73 2d 3e 64 72 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 his->drivers.as.$driver).{.if.($
43220 64 72 69 76 65 72 3a 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 driver::supports($this->io,.$thi
43240 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 64 72 69 76 65 s->config,.$this->url)).{.$drive
43260 72 20 3d 20 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 r.=.new.$driver($this->repoConfi
43280 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 g,.$this->io,.$this->config);.$d
432a0 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 river->initialize();..return.$dr
432c0 69 76 65 72 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 69 76 65 iver;.}.}..foreach.($this->drive
432e0 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a 3a 73 75 rs.as.$driver).{.if.($driver::su
43300 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c pports($this->io,.$this->config,
43320 20 24 74 68 69 73 2d 3e 75 72 6c 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 .$this->url,.true)).{.$driver.=.
43340 6e 65 77 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 new.$driver($this->repoConfig,.$
43360 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 24 64 72 69 76 65 this->io,.$this->config);.$drive
43380 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 72 69 76 65 72 r->initialize();..return.$driver
433a0 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 64 49 6e 76 61 ;.}.}.}..public.function.hadInva
433c0 6c 69 64 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 lidBranches().{.return.$this->br
433e0 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 anchErrorOccurred;.}..protected.
43400 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a function.initialize().{.parent::
43420 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 62 6f 73 65 20 3d 20 24 74 68 69 73 2d initialize();..$verbose.=.$this-
43440 3e 76 65 72 62 6f 73 65 3b 0a 0a 24 64 72 69 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 >verbose;..$driver.=.$this->getD
43460 72 69 76 65 72 28 29 3b 0a 69 66 20 28 21 24 64 72 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e river();.if.(!$driver).{.throw.n
43480 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f ew.\InvalidArgumentException('No
434a0 20 64 72 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 68 61 6e 64 6c 65 20 56 43 53 20 72 65 70 6f .driver.found.to.handle.VCS.repo
434c0 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e sitory.'.$this->url);.}..$this->
434e0 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 versionParser.=.new.VersionParse
43500 72 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e r;.if.(!$this->loader).{.$this->
43520 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e loader.=.new.ArrayLoader($this->
43540 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 72 versionParser);.}..try.{.if.($dr
43560 69 76 65 72 2d 3e 68 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 64 72 69 76 65 72 2d 3e 67 iver->hasComposerFile($driver->g
43580 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 etRootIdentifier())).{.$data.=.$
435a0 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 driver->getComposerInformation($
435c0 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 3b 0a 24 74 driver->getRootIdentifier());.$t
435e0 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b his->packageName.=.!empty($data[
43600 27 6e 61 6d 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 'name']).?.$data['name'].:.null;
43620 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 .}.}.catch.(\Exception.$e).{.if.
43640 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 ($verbose).{.$this->io->writeErr
43660 6f 72 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 70 65 64 20 70 61 72 73 69 6e 67 20 27 2e 24 64 72 or('<error>Skipped.parsing.'.$dr
43680 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 2e 27 2c 20 27 2e 24 iver->getRootIdentifier().',.'.$
436a0 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d e->getMessage().'</error>');.}.}
436c0 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 20 61 73 ..foreach.($driver->getTags().as
436e0 20 24 74 61 67 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 .$tag.=>.$identifier).{.$msg.=.'
43700 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 Reading.composer.json.of.<info>'
43720 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d ...($this->packageName.?:.$this-
43740 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 >url)...'</info>.(<comment>'...$
43760 74 61 67 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 tag...'</comment>)';.if.($verbos
43780 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 67 29 e).{.$this->io->writeError($msg)
437a0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 ;.}.else.{.$this->io->overwriteE
437c0 72 72 6f 72 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 20 24 74 61 67 20 3d 20 73 rror($msg,.false);.}....$tag.=.s
437e0 74 72 5f 72 65 70 6c 61 63 65 28 27 72 65 6c 65 61 73 65 2d 27 2c 20 27 27 2c 20 24 74 61 67 29 tr_replace('release-',.'',.$tag)
43800 3b 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 54 61 67 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 ;..if.(!$parsedTag.=.$this->vali
43820 64 61 74 65 54 61 67 28 24 74 61 67 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b dateTag($tag)).{.if.($verbose).{
43840 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 .$this->io->writeError('<warning
43860 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 69 6e 76 61 6c 69 64 20 74 >Skipped.tag.'.$tag.',.invalid.t
43880 61 67 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b ag.name</warning>');.}.continue;
438a0 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e .}..try.{.if.(!$data.=.$driver->
438c0 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 getComposerInformation($identifi
438e0 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f er)).{.if.($verbose).{.$this->io
43900 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 ->writeError('<warning>Skipped.t
43920 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 3c 2f 77 ag.'.$tag.',.no.composer.file</w
43940 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 arning>');.}.continue;.}....if.(
43960 69 73 73 65 74 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 64 61 74 61 isset($data['version'])).{.$data
43980 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e ['version_normalized'].=.$this->
439a0 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 64 61 74 61 5b 27 versionParser->normalize($data['
439c0 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 64 61 74 61 5b 27 76 65 version']);.}.else.{...$data['ve
439e0 72 73 69 6f 6e 27 5d 20 3d 20 24 74 61 67 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e rsion'].=.$tag;.$data['version_n
43a00 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 54 61 67 3b 0a 7d 0a 0a 0a 20 24 ormalized'].=.$parsedTag;.}....$
43a20 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 data['version'].=.preg_replace('
43a40 7b 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f {[.-]?dev$}i',.'',.$data['versio
43a60 6e 27 5d 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 n']);.$data['version_normalized'
43a80 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e 2d 5d 3f 64 ].=.preg_replace('{(^dev-|[.-]?d
43aa0 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d ev$)}i',.'',.$data['version_norm
43ac0 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 69 66 20 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e alized']);....if.($data['version
43ae0 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 21 3d 3d 20 24 70 61 72 73 65 64 54 61 67 29 20 7b 0a _normalized'].!==.$parsedTag).{.
43b00 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 if.($verbose).{.$this->io->write
43b20 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 Error('<warning>Skipped.tag.'.$t
43b40 61 67 2e 27 2c 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 54 61 67 2e 27 29 20 64 6f 65 73 20 ag.',.tag.('.$parsedTag.').does.
43b60 6e 6f 74 20 6d 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 not.match.version.('.$data['vers
43b80 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e ion_normalized'].').in.composer.
43ba0 6a 73 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a json</warning>');.}.continue;.}.
43bc0 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 .if.($verbose).{.$this->io->writ
43be0 65 45 72 72 6f 72 28 27 49 6d 70 6f 72 74 69 6e 67 20 74 61 67 20 27 2e 24 74 61 67 2e 27 20 28 eError('Importing.tag.'.$tag.'.(
43c00 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 '.$data['version_normalized'].')
43c20 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e ');.}..$this->addPackage($this->
43c40 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 loader->load($this->preProcess($
43c60 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d driver,.$data,.$identifier)));.}
43c80 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 .catch.(\Exception.$e).{.if.($ve
43ca0 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 rbose).{.$this->io->writeError('
43cc0 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 <warning>Skipped.tag.'.$tag.',.'
43ce0 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 .($e.instanceof.TransportExcepti
43d00 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 on.?.'no.composer.file.was.found
43d20 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 '.:.$e->getMessage()).'</warning
43d40 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 62 >');.}.continue;.}.}..if.(!$verb
43d60 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 ose).{.$this->io->overwriteError
43d80 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 72 69 76 65 72 ('',.false);.}..foreach.($driver
43da0 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 20 61 73 20 24 62 72 61 6e 63 68 20 3d 3e 20 24 69 ->getBranches().as.$branch.=>.$i
43dc0 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d dentifier).{.$msg.=.'Reading.com
43de0 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e poser.json.of.<info>'...($this->
43e00 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f packageName.?:.$this->url)...'</
43e20 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 62 72 61 6e 63 68 20 2e 20 27 3c info>.(<comment>'...$branch...'<
43e40 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 /comment>)';.if.($verbose).{.$th
43e60 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 is->io->writeError($msg);.}.else
43e80 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 24 6d 73 .{.$this->io->overwriteError($ms
43ea0 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 42 72 61 6e 63 68 g,.false);.}..if.(!$parsedBranch
43ec0 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 .=.$this->validateBranch($branch
43ee0 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e )).{.if.($verbose).{.$this->io->
43f00 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 writeError('<warning>Skipped.bra
43f20 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 69 6e 76 61 6c 69 64 20 6e 61 6d 65 3c 2f 77 nch.'.$branch.',.invalid.name</w
43f40 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a arning>');.}.continue;.}..try.{.
43f60 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 if.(!$data.=.$driver->getCompose
43f80 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 rInformation($identifier)).{.if.
43fa0 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 ($verbose).{.$this->io->writeErr
43fc0 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 or('<warning>Skipped.branch.'.$b
43fe0 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 3c 2f 77 61 72 6e 69 ranch.',.no.composer.file</warni
44000 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 76 ng>');.}.continue;.}....$data['v
44020 65 72 73 69 6f 6e 27 5d 20 3d 20 24 62 72 61 6e 63 68 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 ersion'].=.$branch;.$data['versi
44040 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 3b on_normalized'].=.$parsedBranch;
44060 0a 0a 0a 20 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 72 73 65 ....if.('dev-'.===.substr($parse
44080 64 42 72 61 6e 63 68 2c 20 30 2c 20 34 29 20 7c 7c 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 dBranch,.0,.4).||.'9999999-dev'.
440a0 3d 3d 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 ===.$parsedBranch).{.$data['vers
440c0 69 6f 6e 27 5d 20 3d 20 27 64 65 76 2d 27 20 2e 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 ion'].=.'dev-'...$data['version'
440e0 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 ];.}.else.{.$data['version'].=.p
44100 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c reg_replace('{(\.9{7})+}',.'.x',
44120 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 .$parsedBranch);.}..if.($verbose
44140 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 49 6d 70 6f 72 ).{.$this->io->writeError('Impor
44160 74 69 6e 67 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 20 28 27 2e 24 64 61 74 61 ting.branch.'.$branch.'.('.$data
44180 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 44 61 74 ['version'].')');.}..$packageDat
441a0 61 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 a.=.$this->preProcess($driver,.$
441c0 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 data,.$identifier);.$package.=.$
441e0 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 this->loader->load($packageData)
44200 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 56 ;.if.($this->loader.instanceof.V
44220 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 26 26 20 24 74 68 69 73 2d 3e 6c alidatingArrayLoader.&&.$this->l
44240 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 oader->getWarnings()).{.throw.ne
44260 77 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d w.InvalidPackageException($this-
44280 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 >loader->getErrors(),.$this->loa
442a0 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 61 74 61 der->getWarnings(),.$packageData
442c0 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 );.}.$this->addPackage($package)
442e0 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 ;.}.catch.(TransportException.$e
44300 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 ).{.if.($verbose).{.$this->io->w
44320 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e riteError('<warning>Skipped.bran
44340 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 ch.'.$branch.',.no.composer.file
44360 20 77 61 73 20 66 6f 75 6e 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e .was.found</warning>');.}.contin
44380 75 65 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 ue;.}.catch.(\Exception.$e).{.if
443a0 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 .(!$verbose).{.$this->io->writeE
443c0 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 6f 72 4f 63 rror('');.}.$this->branchErrorOc
443e0 63 75 72 72 65 64 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 curred.=.true;.$this->io->writeE
44400 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 rror('<error>Skipped.branch.'.$b
44420 72 61 6e 63 68 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 ranch.',.'.$e->getMessage().'</e
44440 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 rror>');.$this->io->writeError('
44460 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 24 64 72 69 76 65 72 2d 3e 63 6c 65 61 6e ');.continue;.}.}.$driver->clean
44480 75 70 28 29 3b 0a 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 up();..if.(!$verbose).{.$this->i
444a0 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 27 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a o->overwriteError('',.false);.}.
444c0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 74 68 .if.(!$this->getPackages()).{.th
444e0 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 row.new.InvalidRepositoryExcepti
44500 6f 6e 28 27 4e 6f 20 76 61 6c 69 64 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 77 61 73 20 66 on('No.valid.composer.json.was.f
44520 6f 75 6e 64 20 69 6e 20 61 6e 79 20 62 72 61 6e 63 68 20 6f 72 20 74 61 67 20 6f 66 20 27 2e 24 ound.in.any.branch.or.tag.of.'.$
44540 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 61 20 70 61 this->url.',.could.not.load.a.pa
44560 63 6b 61 67 65 20 66 72 6f 6d 20 69 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ckage.from.it.');.}.}..protected
44580 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 50 72 6f 63 65 73 73 28 56 63 73 44 72 69 76 65 72 49 6e .function.preProcess(VcsDriverIn
445a0 74 65 72 66 61 63 65 20 24 64 72 69 76 65 72 2c 20 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 69 terface.$driver,.array.$data,.$i
445c0 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 0a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 dentifier).{...$data['name'].=.$
445e0 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 64 61 74 61 5b 27 6e 61 6d 65 this->packageName.?:.$data['name
44600 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 64 69 73 74 27 5d 29 29 20 '];..if.(!isset($data['dist'])).
44620 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 44 69 {.$data['dist'].=.$driver->getDi
44640 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 st($identifier);.}.if.(!isset($d
44660 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 ata['source'])).{.$data['source'
44680 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 ].=.$driver->getSource($identifi
446a0 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 er);.}..return.$data;.}..private
446c0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 .function.validateBranch($branch
446e0 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 ).{.try.{.return.$this->versionP
44700 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b arser->normalizeBranch($branch);
44720 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 .}.catch.(\Exception.$e).{.}..re
44740 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 turn.false;.}..private.function.
44760 76 61 6c 69 64 61 74 65 54 61 67 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 validateTag($version).{.try.{.re
44780 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 turn.$this->versionParser->norma
447a0 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 lize($version);.}.catch.(\Except
447c0 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c ion.$e).{.}..return.false;.}.}.<
447e0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
44800 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 er\Repository;..use.Composer\Pac
44820 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 kage\CompletePackage;.use.Compos
44840 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 er\Package\Version\VersionParser
44860 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 49 6e 74 65 ;.use.Composer\Plugin\PluginInte
44880 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 rface;.....class.PlatformReposit
448a0 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 63 6f ory.extends.ArrayRepository.{.co
448c0 6e 73 74 20 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 20 3d 20 27 7b 5e nst.PLATFORM_PACKAGE_REGEX.=.'{^
448e0 28 3f 3a 70 68 70 28 3f 3a 2d 36 34 62 69 74 29 3f 7c 68 68 76 6d 7c 28 3f 3a 65 78 74 7c 6c 69 (?:php(?:-64bit)?|hhvm|(?:ext|li
44900 62 29 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 b)-[^/]+)$}i';..protected.functi
44920 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 on.initialize().{.parent::initia
44940 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 lize();..$versionParser.=.new.Ve
44960 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d rsionParser();..$prettyVersion.=
44980 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 .PluginInterface::PLUGIN_API_VER
449a0 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d SION;.$version.=.$versionParser-
449c0 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6d >normalize($prettyVersion);.$com
449e0 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 poserPluginApi.=.new.CompletePac
44a00 6b 61 67 65 28 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 2c 20 24 76 65 72 kage('composer-plugin-api',.$ver
44a20 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 sion,.$prettyVersion);.$composer
44a40 50 6c 75 67 69 6e 41 70 69 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 43 PluginApi->setDescription('The.C
44a60 6f 6d 70 6f 73 65 72 20 50 6c 75 67 69 6e 20 41 50 49 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 omposer.Plugin.API');.parent::ad
44a80 64 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 29 3b 0a 0a 74 dPackage($composerPluginApi);..t
44aa0 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f 56 45 52 53 49 4f ry.{.$prettyVersion.=.PHP_VERSIO
44ac0 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f N;.$version.=.$versionParser->no
44ae0 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 rmalize($prettyVersion);.}.catch
44b00 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 .(\UnexpectedValueException.$e).
44b20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 {.$prettyVersion.=.preg_replace(
44b40 27 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 5f 56 45 52 '#^([^~+-]+).*$#',.'$1',.PHP_VER
44b60 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 SION);.$version.=.$versionParser
44b80 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a ->normalize($prettyVersion);.}..
44ba0 24 70 68 70 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 27 $php.=.new.CompletePackage('php'
44bc0 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 70 68 ,.$version,.$prettyVersion);.$ph
44be0 70 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 69 6e 74 65 72 p->setDescription('The.PHP.inter
44c00 70 72 65 74 65 72 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 preter');.parent::addPackage($ph
44c20 70 29 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 3d 3d 3d 20 38 29 20 7b 0a 24 p);..if.(PHP_INT_SIZE.===.8).{.$
44c40 70 68 70 36 34 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 php64.=.new.CompletePackage('php
44c60 2d 36 34 62 69 74 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f -64bit',.$version,.$prettyVersio
44c80 6e 29 3b 0a 24 70 68 70 36 34 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 n);.$php64->setDescription('The.
44ca0 50 48 50 20 69 6e 74 65 72 70 72 65 74 65 72 20 28 36 34 62 69 74 29 27 29 3b 0a 70 61 72 65 6e PHP.interpreter.(64bit)');.paren
44cc0 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 70 36 34 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 t::addPackage($php64);.}..$loade
44ce0 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d 20 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e 73 69 dExtensions.=.get_loaded_extensi
44d00 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 ons();....foreach.($loadedExtens
44d20 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e ions.as.$name).{.if.(in_array($n
44d40 61 6d 65 2c 20 61 72 72 61 79 28 27 73 74 61 6e 64 61 72 64 27 2c 20 27 43 6f 72 65 27 29 29 29 ame,.array('standard',.'Core')))
44d60 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 66 6c 45 78 74 20 3d 20 6e 65 77 20 5c .{.continue;.}..$reflExt.=.new.\
44d80 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 74 72 79 20 ReflectionExtension($name);.try.
44da0 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 72 65 66 6c 45 78 74 2d 3e 67 65 74 {.$prettyVersion.=.$reflExt->get
44dc0 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 Version();.$version.=.$versionPa
44de0 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b rser->normalize($prettyVersion);
44e00 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 .}.catch.(\UnexpectedValueExcept
44e20 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 27 30 27 3b 0a ion.$e).{.$prettyVersion.=.'0';.
44e40 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 $version.=.$versionParser->norma
44e60 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 lize($prettyVersion);.}..$packag
44e80 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4e 61 6d 65 28 eName.=.$this->buildPackageName(
44ea0 24 6e 61 6d 65 29 3b 0a 24 65 78 74 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 $name);.$ext.=.new.CompletePacka
44ec0 67 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 ge($packageName,.$version,.$pret
44ee0 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 65 78 74 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e tyVersion);.$ext->setDescription
44f00 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 27 29 3b ('The.'.$name.'.PHP.extension');
44f20 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 65 78 74 29 3b 0a 7d 0a 0a 0a 20 .parent::addPackage($ext);.}....
44f40 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 ....foreach.($loadedExtensions.a
44f60 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c s.$name).{.$prettyVersion.=.null
44f80 3b 0a 73 77 69 74 63 68 20 28 24 6e 61 6d 65 29 20 7b 0a 63 61 73 65 20 27 63 75 72 6c 27 3a 0a ;.switch.($name).{.case.'curl':.
44fa0 24 63 75 72 6c 56 65 72 73 69 6f 6e 20 3d 20 63 75 72 6c 5f 76 65 72 73 69 6f 6e 28 29 3b 0a 24 $curlVersion.=.curl_version();.$
44fc0 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 63 75 72 6c 56 65 72 73 69 6f 6e 5b 27 76 65 prettyVersion.=.$curlVersion['ve
44fe0 72 73 69 6f 6e 27 5d 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 63 6f 6e 76 27 3a 0a 24 rsion'];.break;..case.'iconv':.$
45000 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 43 4f 4e 56 5f 56 45 52 53 49 4f 4e 3b 0a 62 prettyVersion.=.ICONV_VERSION;.b
45020 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 74 6c 27 3a 0a 24 6e 61 6d 65 20 3d 20 27 49 43 55 reak;..case.'intl':.$name.=.'ICU
45040 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e ';.if.(defined('INTL_ICU_VERSION
45060 27 29 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 49 4e 54 4c 5f 49 43 55 5f ')).{.$prettyVersion.=.INTL_ICU_
45080 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 66 6c 65 63 74 6f 72 20 3d 20 6e VERSION;.}.else.{.$reflector.=.n
450a0 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 74 6c 27 29 3b ew.\ReflectionExtension('intl');
450c0 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 24 72 65 66 6c 65 63 74 6f 72 2d 3e 69 6e 66 6f 28 29 ..ob_start();.$reflector->info()
450e0 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 0a 70 72 65 ;.$output.=.ob_get_clean();..pre
45100 67 5f 6d 61 74 63 68 28 27 2f 5e 49 43 55 20 76 65 72 73 69 6f 6e 20 3d 3e 20 28 2e 2a 29 24 2f g_match('/^ICU.version.=>.(.*)$/
45120 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 24 70 72 65 74 74 79 56 m',.$output,.$matches);.$prettyV
45140 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a ersion.=.$matches[1];.}..break;.
45160 0a 63 61 73 65 20 27 6c 69 62 78 6d 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d .case.'libxml':.$prettyVersion.=
45180 20 4c 49 42 58 4d 4c 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a .LIBXML_DOTTED_VERSION;.break;..
451a0 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d case.'openssl':.$prettyVersion.=
451c0 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 5e 28 3f 3a 4f 70 65 .preg_replace_callback('{^(?:Ope
451e0 6e 53 53 4c 5c 73 2a 29 3f 28 5b 30 2d 39 2e 5d 2b 29 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d 27 2c 20 nSSL\s*)?([0-9.]+)([a-z]?).*}',.
45200 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 function.($match).{.return.$matc
45220 68 5b 31 5d 20 2e 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 32 5d 29 20 3f 20 27 27 20 3a 20 h[1]...(empty($match[2]).?.''.:.
45240 27 2e 27 2e 28 6f 72 64 28 24 6d 61 74 63 68 5b 32 5d 29 20 2d 20 39 36 29 29 3b 0a 7d 2c 20 4f '.'.(ord($match[2]).-.96));.},.O
45260 50 45 4e 53 53 4c 5f 56 45 52 53 49 4f 4e 5f 54 45 58 54 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 PENSSL_VERSION_TEXT);.break;..ca
45280 73 65 20 27 70 63 72 65 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 se.'pcre':.$prettyVersion.=.preg
452a0 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 53 2b 29 2e 2a 7d 27 2c 20 27 24 31 27 2c 20 50 43 52 _replace('{^(\S+).*}',.'$1',.PCR
452c0 45 5f 56 45 52 53 49 4f 4e 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 75 69 64 27 3a E_VERSION);.break;..case.'uuid':
452e0 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 68 70 76 65 72 73 69 6f 6e 28 27 75 75 .$prettyVersion.=.phpversion('uu
45300 69 64 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 73 6c 27 3a 0a 24 70 72 65 74 74 id');.break;..case.'xsl':.$prett
45320 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 53 4c 54 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f yVersion.=.LIBXSLT_DOTTED_VERSIO
45340 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 63 6f 6e 74 69 6e 75 65 20 32 N;.break;..default:...continue.2
45360 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 ;.}..try.{.$version.=.$versionPa
45380 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b rser->normalize($prettyVersion);
453a0 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 .}.catch.(\UnexpectedValueExcept
453c0 69 6f 6e 20 24 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 62 20 3d 20 6e 65 ion.$e).{.continue;.}..$lib.=.ne
453e0 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 6c 69 62 2d 27 2e 24 6e 61 6d 65 2c 20 w.CompletePackage('lib-'.$name,.
45400 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 6c 69 62 2d $version,.$prettyVersion);.$lib-
45420 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 >setDescription('The.'.$name.'.P
45440 48 50 20 6c 69 62 72 61 72 79 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 HP.library');.parent::addPackage
45460 28 24 6c 69 62 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 ($lib);.}..if.(defined('HHVM_VER
45480 53 49 4f 4e 27 29 29 20 7b 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d SION')).{.try.{.$prettyVersion.=
454a0 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 .HHVM_VERSION;.$version.=.$versi
454c0 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 56 65 72 73 69 onParser->normalize($prettyVersi
454e0 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 on);.}.catch.(\UnexpectedValueEx
45500 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 70 ception.$e).{.$prettyVersion.=.p
45520 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 reg_replace('#^([^~+-]+).*$#',.'
45540 24 31 27 2c 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 $1',.HHVM_VERSION);.$version.=.$
45560 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 72 65 74 74 79 versionParser->normalize($pretty
45580 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 68 68 76 6d 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 Version);.}..$hhvm.=.new.Complet
455a0 65 50 61 63 6b 61 67 65 28 27 68 68 76 6d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 ePackage('hhvm',.$version,.$pret
455c0 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 68 68 76 6d 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f tyVersion);.$hhvm->setDescriptio
455e0 6e 28 27 54 68 65 20 48 48 56 4d 20 52 75 6e 74 69 6d 65 20 28 36 34 62 69 74 29 27 29 3b 0a 70 n('The.HHVM.Runtime.(64bit)');.p
45600 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 68 68 76 6d 29 3b 0a 7d 0a 7d 0a 0a 70 arent::addPackage($hhvm);.}.}..p
45620 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4e 61 6d 65 rivate.function.buildPackageName
45640 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 65 78 74 2d 27 20 2e 20 73 74 72 5f 72 65 ($name).{.return.'ext-'...str_re
45660 70 6c 61 63 65 28 27 20 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 place('.',.'-',.$name);.}.}.<?ph
45680 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
456a0 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 Repository;.......class.Installe
456c0 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 46 69 dFilesystemRepository.extends.Fi
456e0 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e lesystemRepository.implements.In
45700 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c stalledRepositoryInterface.{.}.<
45720 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
45740 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 er\Repository;..use.Composer\Pac
45760 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 kage\PackageInterface;.......cla
45780 73 73 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 ss.CompositeRepository.implement
457a0 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 s.RepositoryInterface.{.....priv
457c0 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ate.$repositories;......public.f
457e0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 73 unction.__construct(array.$repos
45800 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d itories).{.$this->repositories.=
45820 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 .array();.foreach.($repositories
45840 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 .as.$repo).{.$this->addRepositor
45860 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 y($repo);.}.}.......public.funct
45880 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ion.getRepositories().{.return.$
458a0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 this->repositories;.}.....public
458c0 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 .function.hasPackage(PackageInte
458e0 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 rface.$package).{.foreach.($this
45900 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b ->repositories.as.$repository).{
45920 0a 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 ..if.($repository->hasPackage($p
45940 61 63 6b 61 67 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 ackage)).{.return.true;.}.}..ret
45960 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e urn.false;.}.....public.function
45980 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a .findPackage($name,.$version).{.
459a0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 foreach.($this->repositories.as.
459c0 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f $repository).{..$package.=.$repo
459e0 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 sitory->findPackage($name,.$vers
45a00 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 ion);.if.(null.!==.$package).{.r
45a20 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c eturn.$package;.}.}..return.null
45a40 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b ;.}.....public.function.findPack
45a60 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 ages($name,.$version.=.null).{.$
45a80 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 packages.=.array();.foreach.($th
45aa0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
45ac0 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 .{..$packages[].=.$repository->f
45ae0 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a indPackages($name,.$version);.}.
45b00 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 .return.$packages.?.call_user_fu
45b20 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 nc_array('array_merge',.$package
45b40 73 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s).:.array();.}.....public.funct
45b60 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a ion.search($query,.$mode.=.0).{.
45b80 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 $matches.=.array();.foreach.($th
45ba0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
45bc0 20 7b 0a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 73 65 .{..$matches[].=.$repository->se
45be0 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 arch($query,.$mode);.}..return.$
45c00 6d 61 74 63 68 65 73 20 3f 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 matches.?.call_user_func_array('
45c20 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 6d 61 74 63 68 65 73 29 20 3a 20 61 72 72 61 79 28 array_merge',.$matches).:.array(
45c40 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 50 );.}.....public.function.filterP
45c60 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d ackages($callback,.$class.=.'Com
45c80 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b 0a 66 6f 72 65 61 63 poser\Package\Package').{.foreac
45ca0 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 h.($this->repositories.as.$repos
45cc0 69 74 6f 72 79 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f itory).{.if.(false.===.$reposito
45ce0 72 79 2d 3e 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 ry->filterPackages($callback,.$c
45d00 6c 61 73 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 lass)).{.return.false;.}.}..retu
45d20 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 rn.true;.}.....public.function.g
45d40 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 etPackages().{.$packages.=.array
45d60 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 ();.foreach.($this->repositories
45d80 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 .as.$repository).{..$packages[].
45da0 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a =.$repository->getPackages();.}.
45dc0 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 20 3f 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 .return.$packages.?.call_user_fu
45de0 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 nc_array('array_merge',.$package
45e00 73 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s).:.array();.}.....public.funct
45e20 69 6f 6e 20 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 ion.removePackage(PackageInterfa
45e40 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 ce.$package).{.foreach.($this->r
45e60 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 24 epositories.as.$repository).{..$
45e80 72 65 70 6f 73 69 74 6f 72 79 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 repository->removePackage($packa
45ea0 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 ge);.}.}.....public.function.cou
45ec0 6e 74 28 29 0a 7b 0a 24 74 6f 74 61 6c 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 nt().{.$total.=.0;.foreach.($thi
45ee0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 s->repositories.as.$repository).
45f00 7b 0a 0a 24 74 6f 74 61 6c 20 2b 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 63 6f 75 6e 74 28 {..$total.+=.$repository->count(
45f20 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 74 61 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c );.}..return.$total;.}......publ
45f40 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 ic.function.addRepository(Reposi
45f60 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 69 66 20 toryInterface.$repository).{.if.
45f80 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 29 20 7b 0a ($repository.instanceof.self).{.
45fa0 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 73 69 74 foreach.($repository->getReposit
45fc0 6f 72 69 65 73 28 29 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 ories().as.$repo).{.$this->addRe
45fe0 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 pository($repo);.}.}.else.{.$thi
46000 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b s->repositories[].=.$repository;
46020 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
46040 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 e.Composer\Repository;.........i
46060 6e 74 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 nterface.InstalledRepositoryInte
46080 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 rface.extends.WritableRepository
460a0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e Interface.{.}.<?php............n
460c0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 amespace.Composer\Repository;..u
460e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 se.Composer\Package\Loader\Array
46100 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 Loader;.use.Composer\Package\Pac
46120 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 kage;.use.Composer\Package\Packa
46140 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 geInterface;.use.Composer\Packag
46160 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 e\AliasPackage;.use.Composer\Pac
46180 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 kage\Version\VersionParser;.use.
461a0 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c Composer\DependencyResolver\Pool
461c0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 ;.use.Composer\Json\JsonFile;.us
461e0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 e.Composer\Cache;.use.Composer\C
46200 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 onfig;.use.Composer\IO\IOInterfa
46220 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 ce;.use.Composer\Util\RemoteFile
46240 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 system;.use.Composer\Plugin\Plug
46260 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 72 inEvents;.use.Composer\Plugin\Pr
46280 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 eFileDownloadEvent;.use.Composer
462a0 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 \EventDispatcher\EventDispatcher
462c0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 65 ;.....class.ComposerRepository.e
462e0 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 6f 74 65 63 74 xtends.ArrayRepository.{.protect
46300 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a ed.$config;.protected.$options;.
46320 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 61 73 65 55 protected.$url;.protected.$baseU
46340 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 rl;.protected.$io;.protected.$rf
46360 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 s;.protected.$cache;.protected.$
46380 6e 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 61 72 63 68 55 72 6c 3b notifyUrl;.protected.$searchUrl;
463a0 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 66 61 6c 73 65 .protected.$hasProviders.=.false
463c0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 ;.protected.$providersUrl;.prote
463e0 63 74 65 64 20 24 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 cted.$lazyProvidersUrl;.protecte
46400 64 20 24 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 d.$providerListing;.protected.$p
46420 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 roviders.=.array();.protected.$p
46440 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 rovidersByUid.=.array();.protect
46460 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 61 73 ed.$loader;.protected.$rootAlias
46480 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 es;.protected.$allowSslDowngrade
464a0 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 61 74 .=.false;.protected.$eventDispat
464c0 63 68 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 3b 0a cher;.protected.$sourceMirrors;.
464e0 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 4d 69 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 protected.$distMirrors;.private.
46500 24 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 $degradedMode.=.false;.private.$
46520 72 6f 6f 74 44 61 74 61 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e rootData;..public.function.__con
46540 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 struct(array.$repoConfig,.IOInte
46560 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 rface.$io,.Config.$config,.Event
46580 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 Dispatcher.$eventDispatcher.=.nu
465a0 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e 5d 2b 5c ll).{.if.(!preg_match('{^[\w.]+\
465c0 3f 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 20 7b 0a ??://}',.$repoConfig['url'])).{.
465e0 0a 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f 27 ..$repoConfig['url'].=.'http://'
46600 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 7d 0a 24 72 65 70 6f 43 6f 6e 66 .$repoConfig['url'];.}.$repoConf
46620 69 67 5b 27 75 72 6c 27 5d 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 ig['url'].=.rtrim($repoConfig['u
46640 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d 20 73 75 rl'],.'/');..if.('https?'.===.su
46660 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 29 29 20 bstr($repoConfig['url'],.0,.6)).
46680 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e 73 69 6f {.$repoConfig['url'].=.(extensio
466a0 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 n_loaded('openssl').?.'https'.:.
466c0 27 68 74 74 70 27 29 20 2e 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 'http')...substr($repoConfig['ur
466e0 6c 27 5d 2c 20 36 29 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c l'],.6);.}..$urlBits.=.parse_url
46700 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 24 75 72 6c 42 69 ($repoConfig['url']);.if.($urlBi
46720 74 73 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 ts.===.false.||.empty($urlBits['
46740 73 63 68 65 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 scheme'])).{.throw.new.\Unexpect
46760 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 edValueException('Invalid.url.gi
46780 76 65 6e 20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 ven.for.Composer.repository:.'.$
467a0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 repoConfig['url']);.}..if.(!isse
467c0 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 72 65 t($repoConfig['options'])).{.$re
467e0 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d poConfig['options'].=.array();.}
46800 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 .if.(isset($repoConfig['allow_ss
46820 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 26 26 20 74 72 75 65 20 3d 3d 3d 20 24 72 65 70 6f l_downgrade']).&&.true.===.$repo
46840 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 7b Config['allow_ssl_downgrade']).{
46860 0a 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 74 72 75 65 .$this->allowSslDowngrade.=.true
46880 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 ;.}..$this->config.=.$config;.$t
468a0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 his->options.=.$repoConfig['opti
468c0 6f 6e 73 27 5d 3b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b ons'];.$this->url.=.$repoConfig[
468e0 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 70 'url'];.$this->baseUrl.=.rtrim(p
46900 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 2e 2a 29 28 3f 3a 2f 5b 5e 2f 5c 5c 5d 2b 2e 6a reg_replace('{^(.*)(?:/[^/\\]+.j
46920 73 6f 6e 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 3f 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 68 69 73 son)?(?:[?#].*)?$}',.'$1',.$this
46940 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 ->url),.'/');.$this->io.=.$io;.$
46960 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f this->cache.=.new.Cache($io,.$co
46980 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e nfig->get('cache-repo-dir').'/'.
469a0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d preg_replace('{[^a-z0-9.]}i',.'-
469c0 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 61 2d 7a 30 2d 39 2e 24 27 29 3b 0a 24 74 68 ',.$this->url),.'a-z0-9.$');.$th
469e0 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a is->loader.=.new.ArrayLoader();.
46a00 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 $this->rfs.=.new.RemoteFilesyste
46a20 6d 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 m($this->io,.$this->config,.$thi
46a40 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 s->options);.$this->eventDispatc
46a60 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 her.=.$eventDispatcher;.}..publi
46a80 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 c.function.setRootAliases(array.
46aa0 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 $rootAliases).{.$this->rootAlias
46ac0 65 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 es.=.$rootAliases;.}.....public.
46ae0 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 function.findPackage($name,.$ver
46b00 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 sion).{.if.(!$this->hasProviders
46b20 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 66 69 6e 64 50 61 63 6b 61 67 65 ()).{.return.parent::findPackage
46b40 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 20 24 76 65 72 73 69 6f 6e 50 ($name,.$version);.}...$versionP
46b60 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 arser.=.new.VersionParser();.$ve
46b80 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a rsion.=.$versionParser->normaliz
46ba0 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 e($version);.$name.=.strtolower(
46bc0 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 $name);..foreach.($this->getProv
46be0 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a iderNames().as.$providerName).{.
46c00 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a 24 if.($name.===.$providerName).{.$
46c20 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 6e packages.=.$this->whatProvides(n
46c40 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 2c 20 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 3b 0a ew.Pool('dev'),.$providerName);.
46c60 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 foreach.($packages.as.$package).
46c80 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 {.if.($name.==.$package->getName
46ca0 28 29 20 26 26 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ().&&.$version.===.$package->get
46cc0 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a Version()).{.return.$package;.}.
46ce0 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 }.}.}.}.....public.function.find
46d00 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 Packages($name,.$version.=.null)
46d20 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b .{.if.(!$this->hasProviders()).{
46d40 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 .return.parent::findPackages($na
46d60 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 20 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f me,.$version);.}...$name.=.strto
46d80 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 lower($name);....if.(null.!==.$v
46da0 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 ersion).{.$versionParser.=.new.V
46dc0 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 ersionParser();.$version.=.$vers
46de0 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a ionParser->normalize($version);.
46e00 7d 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 }..$packages.=.array();..foreach
46e20 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 .($this->getProviderNames().as.$
46e40 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 providerName).{.if.($name.===.$p
46e60 72 6f 76 69 64 65 72 4e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 roviderName).{.$packages.=.$this
46e80 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 2c 20 ->whatProvides(new.Pool('dev'),.
46ea0 24 70 72 6f 76 69 64 65 72 4e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 $providerName);.foreach.($packag
46ec0 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 20 24 es.as.$package).{.if.($name.==.$
46ee0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 28 6e 75 6c 6c 20 3d 3d 3d 20 package->getName().&&.(null.===.
46f00 24 76 65 72 73 69 6f 6e 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 $version.||.$version.===.$packag
46f20 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 e->getVersion())).{.$packages[].
46f40 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 =.$package;.}.}.}.}..return.$pac
46f60 6b 61 67 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 kages;.}..public.function.getPac
46f80 6b 61 67 65 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 kages().{.if.($this->hasProvider
46fa0 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e s()).{.throw.new.\LogicException
46fc0 28 27 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 68 61 74 20 68 61 76 ('Composer.repositories.that.hav
46fe0 65 20 70 72 6f 76 69 64 65 72 73 20 63 61 6e 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 63 6f 6d e.providers.can.not.load.the.com
47000 70 6c 65 74 65 20 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2c 20 75 73 65 20 67 65 74 50 plete.list.of.packages,.use.getP
47020 72 6f 76 69 64 65 72 4e 61 6d 65 73 20 69 6e 73 74 65 61 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 roviderNames.instead.');.}..retu
47040 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a rn.parent::getPackages();.}.....
47060 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 public.function.search($query,.$
47080 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 mode.=.0).{.$this->loadRootServe
470a0 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 26 rFile();..if.($this->searchUrl.&
470c0 26 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 &.$mode.===.self::SEARCH_FULLTEX
470e0 54 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 71 75 65 72 79 25 T).{.$url.=.str_replace('%query%
47100 27 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 29 3b 0a 0a 24 ',.$query,.$this->searchUrl);..$
47120 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 hostname.=.parse_url($url,.PHP_U
47140 52 4c 5f 48 4f 53 54 29 20 3f 3a 20 24 75 72 6c 3b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d RL_HOST).?:.$url;.$json.=.$this-
47160 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 75 72 >rfs->getContents($hostname,.$ur
47180 6c 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a l,.false);.$results.=.JsonFile::
471a0 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 75 72 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 parseJson($json,.$url);..return.
471c0 24 72 65 73 75 6c 74 73 5b 27 72 65 73 75 6c 74 73 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 $results['results'];.}..if.($thi
471e0 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 72 65 73 75 6c 74 73 20 3d 20 s->hasProviders()).{.$results.=.
47200 61 72 72 61 79 28 29 3b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 array();.$regex.=.'{(?:'.implode
47220 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 ('|',.preg_split('{\s+}',.$query
47240 29 29 2e 27 29 7d 69 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 )).')}i';..foreach.($this->getPr
47260 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 oviderNames().as.$name).{.if.(pr
47280 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 72 65 73 75 eg_match($regex,.$name)).{.$resu
472a0 6c 74 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 29 3b 0a lts[].=.array('name'.=>.$name);.
472c0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 }.}..return.$results;.}..return.
472e0 70 61 72 65 6e 74 3a 3a 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 29 3b 0a 7d parent::search($query,.$mode);.}
47300 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d ..public.function.getProviderNam
47320 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 es().{.$this->loadRootServerFile
47340 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 ();..if.(null.===.$this->provide
47360 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c rListing).{.$this->loadProviderL
47380 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c istings($this->loadRootServerFil
473a0 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 e());.}..if.($this->lazyProvider
473c0 73 55 72 6c 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 sUrl).{...return.array();.}..if.
473e0 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 61 ($this->providersUrl).{.return.a
47400 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 rray_keys($this->providerListing
47420 29 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f );.}....$providers.=.array();.fo
47440 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 reach.(array_keys($this->provide
47460 72 4c 69 73 74 69 6e 67 29 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 70 72 6f 76 69 rListing).as.$provider).{.$provi
47480 64 65 72 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 70 72 6f 76 69 64 65 72 2c 20 32 2c 20 2d 35 ders[].=.substr($provider,.2,.-5
474a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 72 6f 74 );.}..return.$providers;.}..prot
474c0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 50 61 63 6b 61 67 65 54 ected.function.configurePackageT
474e0 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 ransportOptions(PackageInterface
47500 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e .$package).{.foreach.($package->
47520 67 65 74 44 69 73 74 55 72 6c 73 28 29 20 61 73 20 24 75 72 6c 29 20 7b 0a 69 66 20 28 73 74 72 getDistUrls().as.$url).{.if.(str
47540 70 6f 73 28 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 20 3d 3d 3d 20 30 29 pos($url,.$this->baseUrl).===.0)
47560 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 .{.$package->setTransportOptions
47580 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d ($this->options);..return;.}.}.}
475a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 ..public.function.hasProviders()
475c0 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a .{.$this->loadRootServerFile();.
475e0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a .return.$this->hasProviders;.}..
47600 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 public.function.resetPackageIds(
47620 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 ).{.foreach.($this->providersByU
47640 69 64 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 id.as.$package).{.if.($package.i
47660 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 nstanceof.AliasPackage).{.$packa
47680 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 ge->getAliasOf()->setId(-1);.}.$
476a0 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 package->setId(-1);.}.}..public.
476c0 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c function.whatProvides(Pool.$pool
476e0 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 ,.$name).{.if.(isset($this->prov
47700 69 64 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 iders[$name])).{.return.$this->p
47720 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d roviders[$name];.}....if.(preg_m
47740 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 atch(PlatformRepository::PLATFOR
47760 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6e 61 6d 65 29 20 7c 7c 20 27 5f 5f 72 6f M_PACKAGE_REGEX,.$name).||.'__ro
47780 6f 74 5f 5f 27 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 ot__'.===.$name).{.return.array(
477a0 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 );.}..if.(null.===.$this->provid
477c0 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 erListing).{.$this->loadProvider
477e0 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 Listings($this->loadRootServerFi
47800 6c 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 le());.}..if.($this->lazyProvide
47820 72 73 55 72 6c 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c rsUrl.&&.!isset($this->providerL
47840 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 68 61 73 68 20 3d 20 6e 75 6c 6c 3b 0a isting[$name])).{.$hash.=.null;.
47860 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 $url.=.str_replace('%package%',.
47880 24 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 6c 29 3b $name,.$this->lazyProvidersUrl);
478a0 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 .$cacheKey.=.false;.}.elseif.($t
478c0 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 his->providersUrl).{...if.(!isse
478e0 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 t($this->providerListing[$name])
47900 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 68 61 73 68 20 3d 20 24 ).{.return.array();.}..$hash.=.$
47920 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 5b 27 73 68 this->providerListing[$name]['sh
47940 61 32 35 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 a256'];.$url.=.str_replace(array
47960 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 68 61 73 68 25 27 29 2c 20 61 72 72 61 79 28 24 ('%package%',.'%hash%'),.array($
47980 6e 61 6d 65 2c 20 24 68 61 73 68 29 2c 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 name,.$hash),.$this->providersUr
479a0 6c 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 27 70 72 6f 76 69 64 65 72 2d 27 2e 73 74 72 74 l);.$cacheKey.=.'provider-'.strt
479c0 72 28 24 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 24 27 29 2e 27 2e 6a 73 6f 6e 27 3b 0a 7d 20 65 6c r($name,.'/',.'$').'.json';.}.el
479e0 73 65 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e 61 6d 65 2e 27 2e 6a 73 6f 6e 27 se.{...$url.=.'p/'.$name.'.json'
47a00 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c ;....if.(!isset($this->providerL
47a20 69 73 74 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b isting[$url])).{.return.array();
47a40 0a 7d 0a 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e .}.$hash.=.$this->providerListin
47a60 67 5b 24 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 6e g[$url]['sha256'];.$cacheKey.=.n
47a80 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 63 68 65 4b 65 79 20 26 26 20 24 74 68 69 73 2d 3e ull;.}..if.($cacheKey.&&.$this->
47aa0 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 68 61 cache->sha256($cacheKey).===.$ha
47ac0 73 68 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 sh).{.$packages.=.json_decode($t
47ae0 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 his->cache->read($cacheKey),.tru
47b00 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e e);.}.else.{.$packages.=.$this->
47b20 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 68 61 73 68 fetchFile($url,.$cacheKey,.$hash
47b40 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 );.}..$this->providers[$name].=.
47b60 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 5b 27 70 61 63 array();.foreach.($packages['pac
47b80 6b 61 67 65 73 27 5d 20 61 73 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 kages'].as.$versions).{.foreach.
47ba0 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 ($versions.as.$version).{...if.(
47bc0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 isset($this->providersByUid[$ver
47be0 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 sion['uid']])).{...if.(!isset($t
47c00 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 his->providers[$name][$version['
47c20 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 uid']])).{...if.($this->provider
47c40 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 69 6e 73 74 61 6e 63 65 sByUid[$version['uid']].instance
47c60 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 of.AliasPackage).{.$this->provid
47c80 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 ers[$name][$version['uid']].=.$t
47ca0 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 his->providersByUid[$version['ui
47cc0 64 27 5d 5d 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 d']]->getAliasOf();.$this->provi
47ce0 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c ders[$name][$version['uid'].'-al
47d00 69 61 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 ias'].=.$this->providersByUid[$v
47d20 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e ersion['uid']];.}.else.{.$this->
47d40 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d providers[$name][$version['uid']
47d60 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 ].=.$this->providersByUid[$versi
47d80 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d on['uid']];.}...if.(isset($this-
47da0 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e >providersByUid[$version['uid'].
47dc0 27 2d 72 6f 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e '-root'])).{.$this->providers[$n
47de0 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 ame][$version['uid'].'-root'].=.
47e00 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 $this->providersByUid[$version['
47e20 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 uid'].'-root'];.}.}.}.else.{.if.
47e40 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 73 74 72 (!$pool->isPackageAcceptable(str
47e60 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 2c 20 56 65 72 73 69 tolower($version['name']),.Versi
47e80 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f onParser::parseStability($versio
47ea0 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a n['version']))).{.continue;.}...
47ec0 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 .$package.=.$this->createPackage
47ee0 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 ($version,.'Composer\Package\Pac
47f00 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 kage');.$package->setRepository(
47f20 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 $this);..if.($package.instanceof
47f40 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 20 3d 20 24 70 61 63 .AliasPackage).{.$aliased.=.$pac
47f60 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 61 6c 69 61 73 65 64 2d 3e 73 65 kage->getAliasOf();.$aliased->se
47f80 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 tRepository($this);..$this->prov
47fa0 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 iders[$name][$version['uid']].=.
47fc0 24 61 6c 69 61 73 65 64 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 $aliased;.$this->providers[$name
47fe0 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 70 ][$version['uid'].'-alias'].=.$p
48000 61 63 6b 61 67 65 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 ackage;....$this->providersByUid
48020 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 20 [$version['uid']].=.$package;.}.
48040 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 else.{.$this->providers[$name][$
48060 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 version['uid']].=.$package;.$thi
48080 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 s->providersByUid[$version['uid'
480a0 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 75 6e 73 65 74 28 24 72 6f 6f 74 41 ]].=.$package;.}....unset($rootA
480c0 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 6f liasData);..if.(isset($this->roo
480e0 74 41 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 70 tAliases[$package->getName()][$p
48100 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 ackage->getVersion()])).{.$rootA
48120 6c 69 61 73 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 70 liasData.=.$this->rootAliases[$p
48140 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ackage->getName()][$package->get
48160 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 Version()];.}.elseif.($package.i
48180 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 69 73 73 65 74 28 nstanceof.AliasPackage.&&.isset(
481a0 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 $this->rootAliases[$package->get
481c0 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e Name()][$package->getAliasOf()->
481e0 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 getVersion()])).{.$rootAliasData
48200 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e .=.$this->rootAliases[$package->
48220 67 65 74 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 getName()][$package->getAliasOf(
48240 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 )->getVersion()];.}..if.(isset($
48260 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 68 69 73 rootAliasData)).{.$alias.=.$this
48280 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 ->createAliasPackage($package,.$
482a0 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 rootAliasData['alias_normalized'
482c0 5d 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c ],.$rootAliasData['alias']);.$al
482e0 69 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 ias->setRepository($this);..$thi
48300 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 s->providers[$name][$version['ui
48320 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 72 d'].'-root'].=.$alias;.$this->pr
48340 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 ovidersByUid[$version['uid'].'-r
48360 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 oot'].=.$alias;.}.}.}.}..return.
48380 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 $this->providers[$name];.}.....p
483a0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b rotected.function.initialize().{
483c0 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 72 65 70 6f 44 61 74 .parent::initialize();..$repoDat
483e0 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b a.=.$this->loadDataFromServer();
48400 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 ..foreach.($repoData.as.$package
48420 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 65 ).{.$this->addPackage($this->cre
48440 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 atePackage($package,.'Composer\P
48460 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a ackage\CompletePackage'));.}.}..
48480 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 .....public.function.addPackage(
484a0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 PackageInterface.$package).{.par
484c0 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 ent::addPackage($package);.$this
484e0 2d 3e 63 6f 6e 66 69 67 75 72 65 50 61 63 6b 61 67 65 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f ->configurePackageTransportOptio
48500 6e 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ns($package);.}..protected.funct
48520 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 0a 7b 0a 69 66 20 28 6e ion.loadRootServerFile().{.if.(n
48540 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 74 75 72 ull.!==.$this->rootData).{.retur
48560 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e n.$this->rootData;.}..if.(!exten
48580 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 27 68 74 74 70 73 sion_loaded('openssl').&&.'https
485a0 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 20 '.===.substr($this->url,.0,.5)).
485c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
485e0 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e ou.must.enable.the.openssl.exten
48600 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e 66 sion.in.your.php.ini.to.load.inf
48620 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a ormation.from.'.$this->url);.}..
48640 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d $jsonUrlParts.=.parse_url($this-
48660 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b >url);..if.(isset($jsonUrlParts[
48680 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a 73 'path']).&&.false.!==.strpos($js
486a0 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 2c 20 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a onUrlParts['path'],.'.json')).{.
486c0 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a $jsonUrl.=.$this->url;.}.else.{.
486e0 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e 20 27 2f 70 61 63 6b 61 67 $jsonUrl.=.$this->url...'/packag
48700 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 es.json';.}..$data.=.$this->fetc
48720 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c 20 27 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 29 hFile($jsonUrl,.'packages.json')
48740 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 ;..if.(!empty($data['notify-batc
48760 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 h'])).{.$this->notifyUrl.=.$this
48780 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 2d ->canonicalizeUrl($data['notify-
487a0 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 batch']);.}.elseif.(!empty($data
487c0 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6e 6f ['notify_batch'])).{...$this->no
487e0 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c tifyUrl.=.$this->canonicalizeUrl
48800 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 ($data['notify_batch']);.}.elsei
48820 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 29 20 7b 0a 24 74 f.(!empty($data['notify'])).{.$t
48840 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 his->notifyUrl.=.$this->canonica
48860 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d 29 3b 0a 7d 0a 0a 69 66 20 lizeUrl($data['notify']);.}..if.
48880 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 (!empty($data['search'])).{.$thi
488a0 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 s->searchUrl.=.$this->canonicali
488c0 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 zeUrl($data['search']);.}..if.(!
488e0 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6d 69 72 72 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 empty($data['mirrors'])).{.forea
48900 63 68 20 28 24 64 61 74 61 5b 27 6d 69 72 72 6f 72 73 27 5d 20 61 73 20 24 6d 69 72 72 6f 72 29 ch.($data['mirrors'].as.$mirror)
48920 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 67 69 74 2d 75 72 6c 27 5d .{.if.(!empty($mirror['git-url']
48940 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 27 67 69 74 27 5d )).{.$this->sourceMirrors['git']
48960 5b 5d 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 67 69 74 [].=.array('url'.=>.$mirror['git
48980 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 72 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 6d -url'],.'preferred'.=>.!empty($m
489a0 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 65 64 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 irror['preferred']));.}.if.(!emp
489c0 74 79 28 24 6d 69 72 72 6f 72 5b 27 68 67 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e ty($mirror['hg-url'])).{.$this->
489e0 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 27 68 67 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 27 75 sourceMirrors['hg'][].=.array('u
48a00 72 6c 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 68 67 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 rl'.=>.$mirror['hg-url'],.'prefe
48a20 72 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 rred'.=>.!empty($mirror['preferr
48a40 65 64 27 5d 29 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 69 72 72 6f 72 5b 27 64 69 ed']));.}.if.(!empty($mirror['di
48a60 73 74 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 5b st-url'])).{.$this->distMirrors[
48a80 5d 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 24 6d 69 72 72 6f 72 5b 27 64 69 73 74 ].=.array('url'.=>.$mirror['dist
48aa0 2d 75 72 6c 27 5d 2c 20 27 70 72 65 66 65 72 72 65 64 27 20 3d 3e 20 21 65 6d 70 74 79 28 24 6d -url'],.'preferred'.=>.!empty($m
48ac0 69 72 72 6f 72 5b 27 70 72 65 66 65 72 72 65 64 27 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 irror['preferred']));.}.}.}..if.
48ae0 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 77 61 72 6e 69 6e 67 27 5d 29 29 20 7b 0a 24 74 68 (!empty($data['warning'])).{.$th
48b00 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 is->io->writeError('<warning>War
48b20 6e 69 6e 67 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 27 2e 24 64 61 74 ning.from.'.$this->url.':.'.$dat
48b40 61 5b 27 77 61 72 6e 69 6e 67 27 5d 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 a['warning'].'</warning>');.}..i
48b60 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a 79 2d f.(!empty($data['providers-lazy-
48b80 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 7a 79 50 72 6f 76 69 64 65 72 73 55 72 url'])).{.$this->lazyProvidersUr
48ba0 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 l.=.$this->canonicalizeUrl($data
48bc0 5b 27 70 72 6f 76 69 64 65 72 73 2d 6c 61 7a 79 2d 75 72 6c 27 5d 29 3b 0a 24 74 68 69 73 2d 3e ['providers-lazy-url']);.$this->
48be0 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 hasProviders.=.true;.}..if.($thi
48c00 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 75 s->allowSslDowngrade).{.$this->u
48c20 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 68 74 74 70 73 3a 2f 2f 27 2c 20 27 68 74 rl.=.str_replace('https://',.'ht
48c40 74 70 3a 2f 2f 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 tp://',.$this->url);.}..if.(!emp
48c60 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 74 ty($data['providers-url'])).{.$t
48c80 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e his->providersUrl.=.$this->canon
48ca0 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 75 72 6c 27 icalizeUrl($data['providers-url'
48cc0 5d 29 3b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a ]);.$this->hasProviders.=.true;.
48ce0 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d }..if.(!empty($data['providers']
48d00 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 ).||.!empty($data['providers-inc
48d20 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 20 ludes'])).{.$this->hasProviders.
48d40 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 =.true;.}..return.$this->rootDat
48d60 61 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e a.=.$data;.}..protected.function
48d80 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 69 66 20 28 27 2f 27 .canonicalizeUrl($url).{.if.('/'
48da0 20 3d 3d 3d 20 24 75 72 6c 5b 30 5d 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c .===.$url[0]).{.return.preg_repl
48dc0 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 ace('{(https?://[^/]+).*}i',.'$1
48de0 27 20 2e 20 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e '...$url,.$this->url);.}..return
48e00 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 .$url;.}..protected.function.loa
48e20 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 dDataFromServer().{.$data.=.$thi
48e40 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e s->loadRootServerFile();..return
48e60 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 3b 0a 7d 0a 0a .$this->loadIncludes($data);.}..
48e80 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c protected.function.loadProviderL
48ea0 69 73 74 69 6e 67 73 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 istings($data).{.if.(isset($data
48ec0 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 ['providers'])).{.if.(!is_array(
48ee0 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 29 20 7b 0a 24 74 68 69 73 $this->providerListing)).{.$this
48f00 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 ->providerListing.=.array();.}.$
48f20 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 61 72 72 61 79 5f 6d 65 this->providerListing.=.array_me
48f40 72 67 65 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 2c 20 24 64 61 74 rge($this->providerListing,.$dat
48f60 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 a['providers']);.}..if.($this->p
48f80 72 6f 76 69 64 65 72 73 55 72 6c 20 26 26 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 rovidersUrl.&&.isset($data['prov
48fa0 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 69 6e 63 6c 75 64 65 73 20 3d 20 ider-includes'])).{.$includes.=.
48fc0 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 6f 72 65 $data['provider-includes'];.fore
48fe0 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d ach.($includes.as.$include.=>.$m
49000 65 74 61 64 61 74 61 29 20 7b 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c etadata).{.$url.=.$this->baseUrl
49020 20 2e 20 27 2f 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 ...'/'...str_replace('%hash%',.$
49040 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 2c 20 24 69 6e 63 6c 75 64 65 29 3b 0a 24 metadata['sha256'],.$include);.$
49060 63 61 63 68 65 4b 65 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 68 cacheKey.=.str_replace(array('%h
49080 61 73 68 25 27 2c 27 24 27 29 2c 20 27 27 2c 20 24 69 6e 63 6c 75 64 65 29 3b 0a 69 66 20 28 24 ash%','$'),.'',.$include);.if.($
490a0 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 61 63 68 65 4b 65 79 29 20 3d this->cache->sha256($cacheKey).=
490c0 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 ==.$metadata['sha256']).{.$inclu
490e0 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 dedData.=.json_decode($this->cac
49100 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c he->read($cacheKey),.true);.}.el
49120 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 se.{.$includedData.=.$this->fetc
49140 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 79 2c 20 24 6d 65 74 61 64 61 74 61 hFile($url,.$cacheKey,.$metadata
49160 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 ['sha256']);.}..$this->loadProvi
49180 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 20 derListings($includedData);.}.}.
491a0 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 elseif.(isset($data['providers-i
491c0 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 0a 20 24 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 ncludes'])).{...$includes.=.$dat
491e0 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 a['providers-includes'];.foreach
49200 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 .($includes.as.$include.=>.$meta
49220 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 data).{.if.($this->cache->sha256
49240 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 ($include).===.$metadata['sha256
49260 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 ']).{.$includedData.=.json_decod
49280 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 e($this->cache->read($include),.
492a0 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 true);.}.else.{.$includedData.=.
492c0 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c $this->fetchFile($include,.null,
492e0 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d .$metadata['sha256']);.}..$this-
49300 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 64 44 >loadProviderListings($includedD
49320 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ata);.}.}.}..protected.function.
49340 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 loadIncludes($data).{.$packages.
49360 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 =.array();....if.(!isset($data['
49380 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 packages']).&&.!isset($data['inc
493a0 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 70 ludes'])).{.foreach.($data.as.$p
493c0 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b 27 76 65 72 73 69 6f 6e 73 27 5d 20 kg).{.foreach.($pkg['versions'].
493e0 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d as.$metadata).{.$packages[].=.$m
49400 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a etadata;.}.}..return.$packages;.
49420 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 29 }..if.(isset($data['packages']))
49440 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 .{.foreach.($data['packages'].as
49460 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 .$package.=>.$versions).{.foreac
49480 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 h.($versions.as.$version.=>.$met
494a0 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 adata).{.$packages[].=.$metadata
494c0 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 ;.}.}.}..if.(isset($data['includ
494e0 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 es'])).{.foreach.($data['include
49500 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a s'].as.$include.=>.$metadata).{.
49520 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 31 28 24 69 6e 63 6c 75 64 65 29 if.($this->cache->sha1($include)
49540 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 .===.$metadata['sha1']).{.$inclu
49560 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 dedData.=.json_decode($this->cac
49580 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 he->read($include),.true);.}.els
495a0 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 e.{.$includedData.=.$this->fetch
495c0 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 File($include);.}.$packages.=.ar
495e0 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 ray_merge($packages,.$this->load
49600 49 6e 63 6c 75 64 65 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 29 3b 0a 7d 0a 7d 0a 0a 72 Includes($includedData));.}.}..r
49620 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 eturn.$packages;.}..protected.fu
49640 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 nction.createPackage(array.$data
49660 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 ,.$class).{.try.{.if.(!isset($da
49680 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 64 61 74 61 ta['notification-url'])).{.$data
496a0 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6e 6f ['notification-url'].=.$this->no
496c0 74 69 66 79 55 72 6c 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f tifyUrl;.}..$package.=.$this->lo
496e0 61 64 65 72 2d 3e 6c 6f 61 64 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b ader->load($data,.'Composer\Pack
49700 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 69 66 20 28 69 73 73 65 74 age\CompletePackage');.if.(isset
49720 28 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 5b 24 70 61 63 6b 61 67 65 2d 3e ($this->sourceMirrors[$package->
49740 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 getSourceType()])).{.$package->s
49760 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 etSourceMirrors($this->sourceMir
49780 72 6f 72 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 5d 29 rors[$package->getSourceType()])
497a0 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 74 68 ;.}.$package->setDistMirrors($th
497c0 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 is->distMirrors);.$this->configu
497e0 72 65 50 61 63 6b 61 67 65 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 70 61 63 6b 61 rePackageTransportOptions($packa
49800 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 20 63 61 74 63 68 20 28 ge);..return.$package;.}.catch.(
49820 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 \Exception.$e).{.throw.new.\Runt
49840 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 70 61 63 imeException('Could.not.load.pac
49860 6b 61 67 65 20 27 2e 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 29 20 3f 20 24 kage.'.(isset($data['name']).?.$
49880 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 data['name'].:.json_encode($data
498a0 29 29 2e 27 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 5b 27 2e 67 65 74 5f 63 )).'.in.'.$this->url.':.['.get_c
498c0 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 lass($e).'].'.$e->getMessage(),.
498e0 30 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 0,.$e);.}.}..protected.function.
49900 66 65 74 63 68 46 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 63 68 65 4b 65 79 20 3d fetchFile($filename,.$cacheKey.=
49920 20 6e 75 6c 6c 2c 20 24 73 68 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c .null,.$sha256.=.null).{.if.(nul
49940 6c 20 3d 3d 3d 20 24 63 61 63 68 65 4b 65 79 29 20 7b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 l.===.$cacheKey).{.$cacheKey.=.$
49960 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 filename;.$filename.=.$this->bas
49980 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e 61 6d 65 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 eUrl.'/'.$filename;.}..$retries.
499a0 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a =.3;.while.($retries--).{.try.{.
499c0 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 65 46 $preFileDownloadEvent.=.new.PreF
499e0 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 50 ileDownloadEvent(PluginEvents::P
49a00 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 66 RE_FILE_DOWNLOAD,.$this->rfs,.$f
49a20 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 ilename);.if.($this->eventDispat
49a40 63 68 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e cher).{.$this->eventDispatcher->
49a60 64 69 73 70 61 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e dispatch($preFileDownloadEvent->
49a80 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 getName(),.$preFileDownloadEvent
49aa0 29 3b 0a 7d 0a 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 66 69 6c );.}..$hostname.=.parse_url($fil
49ac0 65 6e 61 6d 65 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 20 3f 3a 20 24 66 69 6c 65 6e 61 6d ename,.PHP_URL_HOST).?:.$filenam
49ae0 65 3b 0a 24 6a 73 6f 6e 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 e;.$json.=.$preFileDownloadEvent
49b00 2d 3e 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 2d 3e 67 65 74 43 6f 6e 74 ->getRemoteFilesystem()->getCont
49b20 65 6e 74 73 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 66 69 6c 65 6e 61 6d 65 2c 20 66 61 6c 73 65 ents($hostname,.$filename,.false
49b40 29 3b 0a 69 66 20 28 24 73 68 61 32 35 36 20 26 26 20 24 73 68 61 32 35 36 20 21 3d 3d 20 68 61 );.if.($sha256.&&.$sha256.!==.ha
49b60 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 6a 73 6f 6e 29 29 20 7b 0a 69 66 20 28 24 72 65 74 72 sh('sha256',.$json)).{.if.($retr
49b80 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 ies).{.usleep(100000);..continue
49ba0 3b 0a 7d 0a 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 ;.}....throw.new.RepositorySecur
49bc0 69 74 79 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 27 2e ityException('The.contents.of.'.
49be0 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 6f 20 6e 6f 74 20 6d 61 74 63 68 20 69 74 73 20 73 69 67 $filename.'.do.not.match.its.sig
49c00 6e 61 74 75 72 65 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 20 61 20 6d nature..This.should.indicate.a.m
49c20 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c 65 20 61 74 74 61 63 6b 2e 20 54 72 79 20 72 75 6e an-in-the-middle.attack..Try.run
49c40 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 61 67 61 69 6e 20 61 6e 64 20 72 65 70 6f 72 74 20 74 ning.composer.again.and.report.t
49c60 68 69 73 20 69 66 20 79 6f 75 20 74 68 69 6e 6b 20 69 74 20 69 73 20 61 20 6d 69 73 74 61 6b 65 his.if.you.think.it.is.a.mistake
49c80 2e 27 29 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 .');.}.$data.=.JsonFile::parseJs
49ca0 6f 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 24 63 61 63 68 65 on($json,.$filename);.if.($cache
49cc0 4b 65 79 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 24 63 61 63 68 Key).{.$this->cache->write($cach
49ce0 65 4b 65 79 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 eKey,.$json);.}..break;.}.catch.
49d00 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 (\Exception.$e).{.if.($retries).
49d20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 {.usleep(100000);.continue;.}..i
49d40 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 f.($e.instanceof.RepositorySecur
49d60 69 74 79 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 ityException).{.throw.$e;.}..if.
49d80 28 24 63 61 63 68 65 4b 65 79 20 26 26 20 28 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 ($cacheKey.&&.($contents.=.$this
49da0 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 29 29 20 7b 0a 69 66 20 ->cache->read($cacheKey))).{.if.
49dc0 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e (!$this->degradedMode).{.$this->
49de0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 io->writeError('<warning>'.$e->g
49e00 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 etMessage().'</warning>');.$this
49e20 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 74 68 ->io->writeError('<warning>'.$th
49e40 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 75 6c 6c 79 20 6c 6f 61 is->url.'.could.not.be.fully.loa
49e60 64 65 64 2c 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 61 73 20 6c 6f 61 ded,.package.information.was.loa
49e80 64 65 64 20 66 72 6f 6d 20 74 68 65 20 6c 6f 63 61 6c 20 63 61 63 68 65 20 61 6e 64 20 6d 61 79 ded.from.the.local.cache.and.may
49ea0 20 62 65 20 6f 75 74 20 6f 66 20 64 61 74 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 24 .be.out.of.date</warning>');.}.$
49ec0 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 3b 0a 24 64 61 74 61 this->degradedMode.=.true;.$data
49ee0 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6e 74 65 6e 74 73 .=.JsonFile::parseJson($contents
49f00 2c 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 65 74 52 6f 6f 74 28 29 2e 24 63 61 63 68 65 ,.$this->cache->getRoot().$cache
49f20 4b 65 79 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a Key);..break;.}..throw.$e;.}.}..
49f40 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$data;.}.}.<?php.........
49f60 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ...namespace.Composer\Repository
49f80 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 \Pear;.......class.DependencyInf
49fa0 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 o.{.private.$requires;.private.$
49fc0 6f 70 74 69 6f 6e 61 6c 73 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 optionals;......public.function.
49fe0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c __construct($requires,.$optional
4a000 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 s).{.$this->requires.=.$requires
4a020 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b ;.$this->optionals.=.$optionals;
4a040 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 .}.....public.function.getRequir
4a060 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d es().{.return.$this->requires;.}
4a080 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c .....public.function.getOptional
4a0a0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d s().{.return.$this->optionals;.}
4a0c0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
4a0e0 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c mposer\Repository\Pear;.......cl
4a100 61 73 73 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a ass.PackageDependencyParser.{...
4a120 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 ....public.function.buildDepende
4a140 6e 63 79 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 ncyInfo($depArray).{.if.(!is_arr
4a160 61 79 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 ay($depArray)).{.return.new.Depe
4a180 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a ndencyInfo(array(),.array());.}.
4a1a0 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b if.(!$this->isHash($depArray)).{
4a1c0 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 .return.new.DependencyInfo($this
4a1e0 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 ->buildDependency10Info($depArra
4a200 79 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 y),.array());.}..return.$this->b
4a220 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b uildDependency20Info($depArray);
4a240 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e .}..............private.function
4a260 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 .buildDependency10Info($depArray
4a280 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d ).{.static.$dep10toOperatorMap.=
4a2a0 20 61 72 72 61 79 28 27 68 61 73 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d .array('has'.=>.'==',.'eq'.=>.'=
4a2c0 3d 27 2c 20 27 67 65 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 =',.'ge'.=>.'>=',.'gt'.=>.'>',.'
4a2e0 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 le'.=>.'<=',.'lt'.=>.'<',.'not'.
4a300 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 =>.'!=');..$result.=.array();..f
4a320 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b oreach.($depArray.as.$depItem).{
4a340 0a 69 66 20 28 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 .if.(empty($depItem['rel']).||.!
4a360 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d array_key_exists($depItem['rel']
4a380 2c 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 ,.$dep10toOperatorMap)).{...cont
4a3a0 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 70 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 inue;.}..$depType.=.!empty($depI
4a3c0 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 tem['optional']).&&.'yes'.==.$de
4a3e0 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a pItem['optional'].?.'optional'.:
4a400 20 27 72 65 71 75 69 72 65 64 27 3b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d .'required';.$depType.=.'not'.==
4a420 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a .$depItem['rel'].?.'conflicts'.:
4a440 20 24 64 65 70 54 79 70 65 3b 0a 0a 24 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 .$depType;..$depVersion.=.!empty
4a460 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 ($depItem['version']).?.$this->p
4a480 61 72 73 65 56 65 72 73 69 6f 6e 28 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 arseVersion($depItem['version'])
4a4a0 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 .:.'*';....$depVersionConstraint
4a4c0 20 3d 20 28 27 68 61 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 .=.('has'.==.$depItem['rel'].||.
4a4e0 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 'not'.==.$depItem['rel']).&&.'*'
4a500 20 3d 3d 20 24 64 65 70 56 65 72 73 69 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f .==.$depVersion.?.'*'.:.$dep10to
4a520 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 OperatorMap[$depItem['rel']]...$
4a540 64 65 70 56 65 72 73 69 6f 6e 3b 0a 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 depVersion;..switch.($depItem['t
4a560 79 70 65 27 5d 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c ype']).{.case.'php':.$depChannel
4a580 4e 61 6d 65 20 3d 20 27 70 68 70 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 Name.=.'php';.$depPackageName.=.
4a5a0 27 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e '';.break;.case.'pkg':.$depChann
4a5c0 65 6c 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 elName.=.!empty($depItem['channe
4a5e0 6c 27 5d 29 20 3f 20 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 l']).?.$depItem['channel'].:.'pe
4a600 61 72 2e 70 68 70 2e 6e 65 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 ar.php.net';.$depPackageName.=.$
4a620 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 depItem['name'];.break;.case.'ex
4a640 74 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 t':.$depChannelName.=.'ext';.$de
4a660 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b pPackageName.=.$depItem['name'];
4a680 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a .break;.case.'os':.case.'sapi':.
4a6a0 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 $depChannelName.=.'';.$depPackag
4a6c0 65 4e 61 6d 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 eName.=.'';.break;.default:.$dep
4a6e0 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d ChannelName.=.'';.$depPackageNam
4a700 65 20 3d 20 27 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 e.=.'';.break;.}..if.(''.!=.$dep
4a720 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 ChannelName).{.$result[].=.new.D
4a740 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 ependencyConstraint(.$depType,.$
4a760 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 depVersionConstraint,.$depChanne
4a780 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 lName,.$depPackageName.);.}.}..r
4a7a0 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 eturn.$result;.}........private.
4a7c0 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 function.buildDependency20Info($
4a7e0 64 65 70 41 72 72 61 79 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 depArray).{.$result.=.array();.$
4a800 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 optionals.=.array();.$defaultOpt
4a820 69 6f 6e 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 ionals.=.array();.foreach.($depA
4a840 72 72 61 79 20 61 73 20 24 64 65 70 54 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 rray.as.$depType.=>.$depTypeGrou
4a860 70 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 p).{.if.(!is_array($depTypeGroup
4a880 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 )).{.continue;.}.if.('required'.
4a8a0 3d 3d 20 24 64 65 70 54 79 70 65 20 7c 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 ==.$depType.||.'optional'.==.$de
4a8c0 70 54 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 pType).{.foreach.($depTypeGroup.
4a8e0 61 73 20 24 64 65 70 49 74 65 6d 54 79 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 as.$depItemType.=>.$depItem).{.s
4a900 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 witch.($depItemType).{.case.'php
4a920 27 3a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e ':.$result[].=.new.DependencyCon
4a940 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 straint(.$depType,.$this->parse2
4a960 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 0VersionConstraint($depItem),.'p
4a980 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 hp',.''.);.break;.case.'package'
4a9a0 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 :.$deps.=.$this->buildDepPackage
4a9c0 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b Constraints($depItem,.$depType);
4a9e0 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 .$result.=.array_merge($result,.
4aa00 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a $deps);.break;.case.'extension':
4aa20 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f .$deps.=.$this->buildDepExtensio
4aa40 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 nConstraints($depItem,.$depType)
4aa60 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c ;.$result.=.array_merge($result,
4aa80 20 24 64 65 70 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 .$deps);.break;.case.'subpackage
4aaa0 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 ':.$deps.=.$this->buildDepPackag
4aac0 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 eConstraints($depItem,.'replaces
4aae0 27 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a ');.$defaultOptionals.+=.$deps;.
4ab00 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 break;.case.'os':.case.'pearinst
4ab20 61 6c 6c 65 72 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d aller':.break;.default:.break;.}
4ab40 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 .}.}.elseif.('group'.==.$depType
4ab60 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 ).{.if.($this->isHash($depTypeGr
4ab80 6f 75 70 29 29 20 7b 0a 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 oup)).{.$depTypeGroup.=.array($d
4aba0 65 70 54 79 70 65 47 72 6f 75 70 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 epTypeGroup);.}..foreach.($depTy
4abc0 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d peGroup.as.$depItem).{.$groupNam
4abe0 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b e.=.$depItem['attribs']['name'];
4ac00 0a 69 66 20 28 21 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d .if.(!isset($optionals[$groupNam
4ac20 65 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 e])).{.$optionals[$groupName].=.
4ac40 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 array();.}..if.(isset($depItem['
4ac60 73 75 62 70 61 63 6b 61 67 65 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f subpackage'])).{.$optionals[$gro
4ac80 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 upName].+=.$this->buildDepPackag
4aca0 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 eConstraints($depItem['subpackag
4acc0 65 27 5d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 e'],.'replaces');.}.else.{.$resu
4ace0 6c 74 20 2b 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 lt.+=.$this->buildDepPackageCons
4ad00 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 traints($depItem['package'],.'op
4ad20 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 tional');.}.}.}.}..if.(count($de
4ad40 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c faultOptionals).>.0).{.$optional
4ad60 73 5b 27 2a 27 5d 20 3d 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 s['*'].=.$defaultOptionals;.}..r
4ad80 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 eturn.new.DependencyInfo($result
4ada0 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ,.$optionals);.}.........private
4adc0 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 .function.buildDepExtensionConst
4ade0 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 raints($depItem,.$depType).{.if.
4ae00 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 ($this->isHash($depItem)).{.$dep
4ae20 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 Item.=.array($depItem);.}..$resu
4ae40 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 lt.=.array();.foreach.($depItem.
4ae60 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d as.$subDepItem).{.$depChannelNam
4ae80 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 e.=.'ext';.$depPackageName.=.$su
4aea0 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e bDepItem['name'];.$depVersionCon
4aec0 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 straint.=.$this->parse20VersionC
4aee0 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 onstraint($subDepItem);..$result
4af00 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 [].=.new.DependencyConstraint(.$
4af20 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a depType,.$depVersionConstraint,.
4af40 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 $depChannelName,.$depPackageName
4af60 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .);.}..return.$result;.}........
4af80 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 .private.function.buildDepPackag
4afa0 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 eConstraints($depItem,.$depType)
4afc0 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 .{.if.($this->isHash($depItem)).
4afe0 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a {.$depItem.=.array($depItem);.}.
4b000 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 .$result.=.array();.foreach.($de
4b020 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e pItem.as.$subDepItem).{.$depChan
4b040 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d nelName.=.$subDepItem['channel']
4b060 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b ;.$depPackageName.=.$subDepItem[
4b080 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 'name'];.$depVersionConstraint.=
4b0a0 20 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 .$this->parse20VersionConstraint
4b0c0 28 24 73 75 62 44 65 70 49 74 65 6d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 ($subDepItem);.if.(isset($subDep
4b0e0 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 63 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d Item['conflicts'])).{.$depType.=
4b100 20 27 63 6f 6e 66 6c 69 63 74 73 27 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 .'conflicts';.}..$result[].=.new
4b120 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c .DependencyConstraint(.$depType,
4b140 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e .$depVersionConstraint,.$depChan
4b160 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 nelName,.$depPackageName.);.}..r
4b180 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 eturn.$result;.}........private.
4b1a0 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e function.parse20VersionConstrain
4b1c0 74 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f t(array.$data).{.static.$dep20to
4b1e0 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 73 27 20 3d 3e 20 27 3d 3d OperatorMap.=.array('has'.=>.'==
4b200 27 2c 20 27 6d 69 6e 27 20 3d 3e 20 27 3e 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c ',.'min'.=>.'>=',.'max'.=>.'<=',
4b220 20 27 65 78 63 6c 75 64 65 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 .'exclude'.=>.'!=');..$versions.
4b240 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 =.array();.$values.=.array_inter
4b260 73 65 63 74 5f 6b 65 79 28 24 64 61 74 61 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 sect_key($data,.$dep20toOperator
4b280 4d 61 70 29 3b 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b Map);.if.(0.==.count($values)).{
4b2a0 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 .return.'*';.}.if.(isset($values
4b2c0 5b 27 6d 69 6e 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 ['min']).&&.isset($values['exclu
4b2e0 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 de']).&&.$data['min'].==.$data['
4b300 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e exclude']).{.$versions[].=.'>'..
4b320 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 .$this->parseVersion($values['mi
4b340 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d n']);.}.elseif.(isset($values['m
4b360 61 78 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 ax']).&&.isset($values['exclude'
4b380 5d 29 20 26 26 20 24 64 61 74 61 5b 27 6d 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 ]).&&.$data['max'].==.$data['exc
4b3a0 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 lude']).{.$versions[].=.'<'...$t
4b3c0 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d his->parseVersion($values['max']
4b3e0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 );.}.else.{.foreach.($values.as.
4b400 24 6f 70 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 $op.=>.$version).{.if.('exclude'
4b420 20 3d 3d 20 24 6f 70 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b .==.$op.&&.is_array($version)).{
4b440 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 .foreach.($version.as.$versionPa
4b460 72 74 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 rt).{.$versions[].=.$dep20toOper
4b480 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 atorMap[$op]...$this->parseVersi
4b4a0 6f 6e 28 24 76 65 72 73 69 6f 6e 50 61 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 on($versionPart);.}.}.else.{.$ve
4b4c0 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 rsions[].=.$dep20toOperatorMap[$
4b4e0 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 op]...$this->parseVersion($versi
4b500 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 on);.}.}.}..return.implode(',',.
4b520 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e $versions);.}........private.fun
4b540 63 74 69 6f 6e 20 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 ction.parseVersion($version).{.i
4b560 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c f.(preg_match('{^v?(\d{1,3})(\.\
4b580 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f d+)?(\.\d+)?(\.\d+)?}i',.$versio
4b5a0 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 n,.$matches)).{.$version.=.$matc
4b5c0 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 hes[1]..(!empty($matches[2]).?.$
4b5e0 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 matches[2].:.'.0')..(!empty($mat
4b600 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e ches[3]).?.$matches[3].:.'.0')..
4b620 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b (!empty($matches[4]).?.$matches[
4b640 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 4].:.'.0');..return.$version;.}.
4b660 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 .return.null;.}........private.f
4b680 75 6e 63 74 69 6f 6e 20 69 73 48 61 73 68 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 unction.isHash(array.$array).{.r
4b6a0 65 74 75 72 6e 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 eturn.!array_key_exists(1,.$arra
4b6c0 79 29 20 26 26 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 y).&&.!array_key_exists(0,.$arra
4b6e0 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 y);.}.}.<?php............namespa
4b700 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a ce.Composer\Repository\Pear;....
4b720 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 ...class.ChannelInfo.{.private.$
4b740 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 name;.private.$alias;.private.$p
4b760 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f ackages;.......public.function._
4b780 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 _construct($name,.$alias,.array.
4b7a0 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 $packages).{.$this->name.=.$name
4b7c0 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e ;.$this->alias.=.$alias;.$this->
4b7e0 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 packages.=.$packages;.}.......pu
4b800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getName().{.return
4b820 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$this->name;.}.......public.fun
4b840 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ction.getAlias().{.return.$this-
4b860 3e 61 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >alias;.}.......public.function.
4b880 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 getPackages().{.return.$this->pa
4b8a0 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d ckages;.}.}.<?php............nam
4b8c0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b espace.Composer\Repository\Pear;
4b8e0 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 ..use.Composer\Util\RemoteFilesy
4b900 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 stem;.........class.ChannelReade
4b920 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 r.extends.BaseChannelReader.{..p
4b940 72 69 76 61 74 65 20 24 72 65 61 64 65 72 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rivate.$readerMap;..public.funct
4b960 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d ion.__construct(RemoteFilesystem
4b980 20 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 .$rfs).{.parent::__construct($rf
4b9a0 73 29 3b 0a 0a 24 72 65 73 74 31 30 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c s);..$rest10reader.=.new.Channel
4b9c0 52 65 73 74 31 30 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 Rest10Reader($rfs);.$rest11reade
4b9e0 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 r.=.new.ChannelRest11Reader($rfs
4ba00 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 );..$this->readerMap.=.array(.'R
4ba20 45 53 54 31 2e 33 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 EST1.3'.=>.$rest11reader,.'REST1
4ba40 2e 32 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 .2'.=>.$rest11reader,.'REST1.1'.
4ba60 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 =>.$rest11reader,.'REST1.0'.=>.$
4ba80 72 65 73 74 31 30 72 65 61 64 65 72 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rest10reader,.);.}.........publi
4baa0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 c.function.read($url).{.$xml.=.$
4bac0 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c this->requestXml($url,."/channel
4bae0 2e 78 6d 6c 22 29 3b 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 .xml");..$channelName.=.(string)
4bb00 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b 0a 24 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 .$xml->name;.$channelSummary.=.(
4bb20 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 string).$xml->summary;.$channelA
4bb40 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 lias.=.(string).$xml->suggesteda
4bb60 6c 69 61 73 3b 0a 0a 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 lias;..$supportedVersions.=.arra
4bb80 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 y_keys($this->readerMap);.$selec
4bba0 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 tedRestVersion.=.$this->selectRe
4bbc0 73 74 56 65 72 73 69 6f 6e 28 24 78 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f stVersion($xml,.$supportedVersio
4bbe0 6e 73 29 3b 0a 69 66 20 28 21 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 ns);.if.(!$selectedRestVersion).
4bc00 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
4bc20 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 ption(sprintf('PEAR.repository.%
4bc40 73 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 s.does.not.supports.any.of.%s.pr
4bc60 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 75 72 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 otocols.',.$url,.implode(',.',.$
4bc80 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 supportedVersions)));.}..$reader
4bca0 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 .=.$this->readerMap[$selectedRes
4bcc0 74 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 tVersion['version']];.$packageDe
4bce0 66 69 6e 69 74 69 6f 6e 73 20 3d 20 24 72 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 finitions.=.$reader->read($selec
4bd00 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 tedRestVersion['baseUrl']);..ret
4bd20 75 72 6e 20 6e 65 77 20 43 68 61 6e 6e 65 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 urn.new.ChannelInfo($channelName
4bd40 2c 20 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 ,.$channelAlias,.$packageDefinit
4bd60 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f ions);.}.........private.functio
4bd80 6e 20 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c n.selectRestVersion($channelXml,
4bda0 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 .$supportedVersions).{.$channelX
4bdc0 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c ml->registerXPathNamespace('ns',
4bde0 20 73 65 6c 66 3a 3a 43 48 41 4e 4e 45 4c 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 .self::CHANNEL_NS);..foreach.($s
4be00 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a upportedVersions.as.$version).{.
4be20 24 78 70 61 74 68 54 65 73 74 20 3d 20 22 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d $xpathTest.=."ns:servers/ns:prim
4be40 61 72 79 2f 6e 73 3a 72 65 73 74 2f 6e 73 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 ary/ns:rest/ns:baseurl[@type='{$
4be60 76 65 72 73 69 6f 6e 7d 27 5d 22 3b 0a 24 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e version}']";.$testResult.=.$chan
4be80 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 68 28 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 nelXml->xpath($xpathTest);.if.(c
4bea0 6f 75 6e 74 28 24 74 65 73 74 52 65 73 75 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 ount($testResult).>.0).{.return.
4bec0 61 72 72 61 79 28 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 array('version'.=>.$version,.'ba
4bee0 73 65 55 72 6c 27 20 3d 3e 20 28 73 74 72 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 seUrl'.=>.(string).$testResult[0
4bf00 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ]);.}.}..return.null;.}.}.<?php.
4bf20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 ...........namespace.Composer\Re
4bf40 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 pository\Pear;.......class.Packa
4bf60 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 geInfo.{.private.$channelName;.p
4bf80 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 rivate.$packageName;.private.$li
4bfa0 63 65 6e 73 65 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e cense;.private.$shortDescription
4bfc0 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 ;.private.$description;.private.
4bfe0 24 72 65 6c 65 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $releases;..........public.funct
4c000 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 ion.__construct($channelName,.$p
4c020 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6c 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 63 ackageName,.$license,.$shortDesc
4c040 72 69 70 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 73 ription,.$description,.$releases
4c060 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 ).{.$this->channelName.=.$channe
4c080 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 lName;.$this->packageName.=.$pac
4c0a0 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 kageName;.$this->license.=.$lice
4c0c0 6e 73 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 nse;.$this->shortDescription.=.$
4c0e0 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 shortDescription;.$this->descrip
4c100 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 tion.=.$description;.$this->rele
4c120 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ases.=.$releases;.}.....public.f
4c140 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 unction.getChannelName().{.retur
4c160 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c n.$this->channelName;.}.....publ
4c180 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 ic.function.getPackageName().{.r
4c1a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a eturn.$this->packageName;.}.....
4c1c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 public.function.getDescription()
4c1e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a .{.return.$this->description;.}.
4c200 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 63 ....public.function.getShortDesc
4c220 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 ription().{.return.$this->shortD
4c240 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f escription;.}.....public.functio
4c260 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c n.getLicense().{.return.$this->l
4c280 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 icense;.}.....public.function.ge
4c2a0 74 52 65 6c 65 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 tReleases().{.return.$this->rele
4c2c0 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ases;.}.}.<?php............names
4c2e0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a pace.Composer\Repository\Pear;..
4c300 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 0a .....class.DependencyConstraint.
4c320 7b 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 {.private.$type;.private.$constr
4c340 61 69 6e 74 3b 0a 70 72 69 76 61 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 aint;.private.$channelName;.priv
4c360 61 74 65 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ate.$packageName;........public.
4c380 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 79 70 65 2c 20 24 63 6f 6e function.__construct($type,.$con
4c3a0 73 74 72 61 69 6e 74 2c 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e straint,.$channelName,.$packageN
4c3c0 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 24 74 68 69 ame).{.$this->type.=.$type;.$thi
4c3e0 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 s->constraint.=.$constraint;.$th
4c400 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a is->channelName.=.$channelName;.
4c420 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d $this->packageName.=.$packageNam
4c440 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c e;.}..public.function.getChannel
4c460 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 Name().{.return.$this->channelNa
4c480 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 me;.}..public.function.getConstr
4c4a0 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e aint().{.return.$this->constrain
4c4c0 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 t;.}..public.function.getPackage
4c4e0 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 Name().{.return.$this->packageNa
4c500 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 me;.}..public.function.getType()
4c520 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 .{.return.$this->type;.}.}.<?php
4c540 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 ............namespace.Composer\R
4c560 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 epository\Pear;...........class.
4c580 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 ChannelRest11Reader.extends.Base
4c5a0 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 ChannelReader.{.private.$depende
4c5c0 6e 63 79 52 65 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ncyReader;..public.function.__co
4c5e0 6e 73 74 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 nstruct($rfs).{.parent::__constr
4c600 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 uct($rfs);..$this->dependencyRea
4c620 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 der.=.new.PackageDependencyParse
4c640 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 r();.}.........public.function.r
4c660 65 61 64 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 ead($baseUrl).{.return.$this->re
4c680 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a adChannelPackages($baseUrl);.}..
4c6a0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e .......private.function.readChan
4c6c0 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 nelPackages($baseUrl).{.$result.
4c6e0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 =.array();..$xml.=.$this->reques
4c700 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d tXml($baseUrl,."/c/categories.xm
4c720 6c 22 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 l");.$xml->registerXPathNamespac
4c740 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 e('ns',.self::ALL_CATEGORIES_NS)
4c760 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 ;.foreach.($xml->xpath('ns:c').a
4c780 73 20 24 6e 6f 64 65 29 20 7b 0a 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 s.$node).{.$categoryName.=.(stri
4c7a0 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 ng).$node;.$categoryPackages.=.$
4c7c0 74 68 69 73 2d 3e 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 this->readCategoryPackages($base
4c7e0 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 Url,.$categoryName);.$result.=.a
4c800 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 rray_merge($result,.$categoryPac
4c820 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a kages);.}..return.$result;.}....
4c840 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 ......private.function.readCateg
4c860 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e oryPackages($baseUrl,.$categoryN
4c880 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 ame).{.$result.=.array();..$cate
4c8a0 67 6f 72 79 50 61 74 68 20 3d 20 27 2f 63 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 goryPath.=.'/c/'.urlencode($cate
4c8c0 67 6f 72 79 4e 61 6d 65 29 2e 27 2f 70 61 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 goryName).'/packagesinfo.xml';.$
4c8e0 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c xml.=.$this->requestXml($baseUrl
4c900 2c 20 24 63 61 74 65 67 6f 72 79 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 ,.$categoryPath);.$xml->register
4c920 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 XPathNamespace('ns',.self::CATEG
4c940 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 ORY_PACKAGES_INFO_NS);.foreach.(
4c960 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b $xml->xpath('ns:pi').as.$node).{
4c980 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b .$packageInfo.=.$this->parsePack
4c9a0 61 67 65 28 24 6e 6f 64 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 age($node);.$result[].=.$package
4c9c0 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a Info;.}..return.$result;.}......
4c9e0 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 ..private.function.parsePackage(
4ca00 24 70 61 63 6b 61 67 65 49 6e 66 6f 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 $packageInfo).{.$packageInfo->re
4ca20 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a gisterXPathNamespace('ns',.self:
4ca40 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 :CATEGORY_PACKAGES_INFO_NS);.$ch
4ca60 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 annelName.=.(string).$packageInf
4ca80 6f 2d 3e 70 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 o->p->c;.$packageName.=.(string)
4caa0 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 .$packageInfo->p->n;.$license.=.
4cac0 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 (string).$packageInfo->p->l;.$sh
4cae0 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 ortDescription.=.(string).$packa
4cb00 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 geInfo->p->s;.$description.=.(st
4cb20 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 ring).$packageInfo->p->d;..$depe
4cb40 6e 64 65 6e 63 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 ndencies.=.array();.foreach.($pa
4cb60 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 ckageInfo->xpath('ns:deps').as.$
4cb80 6e 6f 64 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 node).{.$dependencyVersion.=.(st
4cba0 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 ring).$node->v;.$dependencyArray
4cbc0 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 .=.unserialize((string).$node->d
4cbe0 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 );..$dependencyInfo.=.$this->dep
4cc00 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e endencyReader->buildDependencyIn
4cc20 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e fo($dependencyArray);..$dependen
4cc40 63 69 65 73 5b 24 64 65 70 65 6e 64 65 6e 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 cies[$dependencyVersion].=.$depe
4cc60 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 ndencyInfo;.}..$releases.=.array
4cc80 28 29 3b 0a 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f ();.$releasesInfo.=.$packageInfo
4cca0 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 2f 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 ->xpath('ns:a/ns:r');.if.($relea
4ccc0 73 65 73 49 6e 66 6f 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 sesInfo).{.foreach.($releasesInf
4cce0 6f 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 o.as.$node).{.$releaseVersion.=.
4cd00 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 (string).$node->v;.$releaseStabi
4cd20 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 lity.=.(string).$node->s;.$relea
4cd40 73 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 ses[$releaseVersion].=.new.Relea
4cd60 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 seInfo(.$releaseStability,.isset
4cd80 28 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 ($dependencies[$releaseVersion])
4cda0 20 3f 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e .?.$dependencies[$releaseVersion
4cdc0 5d 20 3a 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 ].:.new.DependencyInfo(array(),.
4cde0 61 72 72 61 79 28 29 29 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b array()).);.}.}..return.new.Pack
4ce00 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e ageInfo(.$channelName,.$packageN
4ce20 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e ame,.$license,.$shortDescription
4ce40 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d ,.$description,.$releases.);.}.}
4ce60 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
4ce80 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 oser\Repository\Pear;.......clas
4cea0 73 20 52 65 6c 65 61 73 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 62 69 6c 69 s.ReleaseInfo.{.private.$stabili
4cec0 74 79 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a 0a 0a ty;.private.$dependencyInfo;....
4cee0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 ..public.function.__construct($s
4cf00 74 61 62 69 6c 69 74 79 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 74 68 tability,.$dependencyInfo).{.$th
4cf20 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 68 69 is->stability.=.$stability;.$thi
4cf40 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 s->dependencyInfo.=.$dependencyI
4cf60 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 nfo;.}.....public.function.getDe
4cf80 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 pendencyInfo().{.return.$this->d
4cfa0 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ependencyInfo;.}.....public.func
4cfc0 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getStability().{.return.$th
4cfe0 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a is->stability;.}.}.<?php........
4d000 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ....namespace.Composer\Repositor
4d020 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 y\Pear;..use.Composer\Util\Remot
4d040 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c eFilesystem;.........abstract.cl
4d060 61 73 73 20 42 61 73 65 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 ass.BaseChannelReader.{....const
4d080 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e .CHANNEL_NS.=.'http://pear.php.n
4d0a0 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 2e 30 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 et/channel-1.0';.const.ALL_CATEG
4d0c0 4f 52 49 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f ORIES_NS.=.'http://pear.php.net/
4d0e0 64 74 64 2f 72 65 73 74 2e 61 6c 6c 63 61 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 dtd/rest.allcategories';.const.C
4d100 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 ATEGORY_PACKAGES_INFO_NS.=.'http
4d120 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 ://pear.php.net/dtd/rest.categor
4d140 79 70 61 63 6b 61 67 65 69 6e 66 6f 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 ypackageinfo';.const.ALL_PACKAGE
4d160 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f S_NS.=.'http://pear.php.net/dtd/
4d180 72 65 73 74 2e 61 6c 6c 70 61 63 6b 61 67 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c rest.allpackages';.const.ALL_REL
4d1a0 45 41 53 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f EASES_NS.=.'http://pear.php.net/
4d1c0 64 74 64 2f 72 65 73 74 2e 61 6c 6c 72 65 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 dtd/rest.allreleases';.const.PAC
4d1e0 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e KAGE_INFO_NS.=.'http://pear.php.
4d200 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 70 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 net/dtd/rest.package';...private
4d220 20 24 72 66 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e .$rfs;..protected.function.__con
4d240 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a struct(RemoteFilesystem.$rfs).{.
4d260 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 $this->rfs.=.$rfs;.}..........pr
4d280 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 otected.function.requestContent(
4d2a0 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 $origin,.$path).{.$url.=.rtrim($
4d2c0 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 origin,.'/')...'/'...ltrim($path
4d2e0 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 ,.'/');.$content.=.$this->rfs->g
4d300 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 etContents($origin,.$url,.false)
4d320 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e ;.if.(!$content).{.throw.new.\Un
4d340 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 expectedValueException('The.PEAR
4d360 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 .channel.at.'...$url...'.did.not
4d380 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b .respond.');.}..return.$content;
4d3a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 .}..........protected.function.r
4d3c0 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 equestXml($origin,.$path).{...$x
4d3e0 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 ml.=.simplexml_load_string($this
4d400 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 ->requestContent($origin,.$path)
4d420 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 ,."SimpleXMLElement",.LIBXML_NOE
4d440 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 RROR);..if.(false.==.$xml).{.$ur
4d460 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 l.=.rtrim($origin,.'/')...'/'...
4d480 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e ltrim($path,.'/');.throw.new.\Un
4d4a0 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 expectedValueException(sprintf('
4d4c0 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 The.PEAR.channel.at.'...$origin.
4d4e0 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 ..'.is.broken..(Invalid.XML.at.f
4d500 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ile.`%s`)',.$path));.}..return.$
4d520 78 6d 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 xml;.}.}.<?php............namesp
4d540 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 ace.Composer\Repository\Pear;..u
4d560 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 se.Composer\Downloader\Transport
4d580 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 Exception;.............class.Cha
4d5a0 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 43 68 61 nnelRest10Reader.extends.BaseCha
4d5c0 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 70 65 6e 64 65 6e 63 79 nnelReader.{.private.$dependency
4d5e0 52 65 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 Reader;..public.function.__const
4d600 72 75 63 74 28 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ruct($rfs).{.parent::__construct
4d620 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 ($rfs);..$this->dependencyReader
4d640 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 .=.new.PackageDependencyParser()
4d660 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 ;.}.........public.function.read
4d680 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 ($baseUrl).{.return.$this->readP
4d6a0 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 ackages($baseUrl);.}.........pri
4d6c0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 vate.function.readPackages($base
4d6e0 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 50 Url).{.$result.=.array();..$xmlP
4d700 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 ath.=.'/p/packages.xml';.$xml.=.
4d720 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c $this->requestXml($baseUrl,.$xml
4d740 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 Path);.$xml->registerXPathNamesp
4d760 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 ace('ns',.self::ALL_PACKAGES_NS)
4d780 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 27 29 20 61 ;.foreach.($xml->xpath('ns:p').a
4d7a0 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e s.$node).{.$packageName.=.(strin
4d7c0 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e g).$node;.$packageInfo.=.$this->
4d7e0 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 readPackage($baseUrl,.$packageNa
4d800 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d me);.$result[].=.$packageInfo;.}
4d820 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 ..return.$result;.}..........pri
4d840 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 vate.function.readPackage($baseU
4d860 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 rl,.$packageName).{.$xmlPath.=.'
4d880 2f 70 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 /p/'...strtolower($packageName).
4d8a0 2e 20 27 2f 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 ..'/info.xml';.$xml.=.$this->req
4d8c0 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d uestXml($baseUrl,.$xmlPath);.$xm
4d8e0 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 l->registerXPathNamespace('ns',.
4d900 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 self::PACKAGE_INFO_NS);..$channe
4d920 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 lName.=.(string).$xml->c;.$packa
4d940 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 geName.=.(string).$xml->n;.$lice
4d960 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 nse.=.(string).$xml->l;.$shortDe
4d980 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 scription.=.(string).$xml->s;.$d
4d9a0 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a escription.=.(string).$xml->d;..
4d9c0 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c return.new.PackageInfo(.$channel
4d9e0 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 Name,.$packageName,.$license,.$s
4da00 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 hortDescription,.$description,.$
4da20 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 this->readPackageReleases($baseU
4da40 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rl,.$packageName).);.}..........
4da60 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c .private.function.readPackageRel
4da80 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a eases($baseUrl,.$packageName).{.
4daa0 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 74 72 79 20 7b 0a 24 78 6d 6c 50 61 $result.=.array();..try.{.$xmlPa
4dac0 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 th.=.'/r/'...strtolower($package
4dae0 4e 61 6d 65 29 20 2e 20 27 2f 61 6c 6c 72 65 6c 65 61 73 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c Name)...'/allreleases.xml';.$xml
4db00 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 .=.$this->requestXml($baseUrl,.$
4db20 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d xmlPath);.$xml->registerXPathNam
4db40 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f espace('ns',.self::ALL_RELEASES_
4db60 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 72 27 NS);.foreach.($xml->xpath('ns:r'
4db80 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 ).as.$node).{.$releaseVersion.=.
4dba0 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 (string).$node->v;.$releaseStabi
4dbc0 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 0a 74 72 79 20 7b lity.=.(string).$node->s;..try.{
4dbe0 0a 24 72 65 73 75 6c 74 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 .$result[$releaseVersion].=.new.
4dc00 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 2c 0a ReleaseInfo(.$releaseStability,.
4dc20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 $this->readPackageReleaseDepende
4dc40 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 ncies($baseUrl,.$packageName,.$r
4dc60 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 29 0a 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 eleaseVersion).);.}.catch.(Trans
4dc80 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 portException.$exception).{.if.(
4dca0 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 30 34 29 20 7b 0a $exception->getCode().!=.404).{.
4dcc0 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 throw.$exception;.}.}.}.}.catch.
4dce0 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 20 (TransportException.$exception).
4dd00 7b 0a 69 66 20 28 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 64 65 28 29 20 21 3d 20 34 {.if.($exception->getCode().!=.4
4dd20 30 34 29 20 7b 0a 74 68 72 6f 77 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 04).{.throw.$exception;.}.}..ret
4dd40 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 urn.$result;.}...........private
4dd60 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 61 63 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 .function.readPackageReleaseDepe
4dd80 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c ndencies($baseUrl,.$packageName,
4dda0 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 20 3d .$version).{.$dependencyReader.=
4ddc0 20 6e 65 77 20 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 28 29 3b 0a .new.PackageDependencyParser();.
4dde0 0a 24 64 65 70 74 68 50 61 74 68 20 3d 20 27 2f 72 2f 27 20 2e 20 73 74 72 74 6f 6c 6f 77 65 72 .$depthPath.=.'/r/'...strtolower
4de00 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 64 65 70 73 2e 27 20 2e 20 24 76 65 72 ($packageName)...'/deps.'...$ver
4de20 73 69 6f 6e 20 2e 20 27 2e 74 78 74 27 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d sion...'.txt';.$content.=.$this-
4de40 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 62 61 73 65 55 72 6c 2c 20 24 64 65 70 74 68 >requestContent($baseUrl,.$depth
4de60 50 61 74 68 29 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 Path);.$dependencyArray.=.unseri
4de80 61 6c 69 7a 65 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 64 65 70 65 alize($content);.$result.=.$depe
4dea0 6e 64 65 6e 63 79 52 65 61 64 65 72 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 ndencyReader->buildDependencyInf
4dec0 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 o($dependencyArray);..return.$re
4dee0 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 sult;.}.}.<?php............names
4df00 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 pace.Composer\Repository;..use.C
4df20 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
4df40 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 65 70 6f 73 69 74 6f 72 79 49 6e ;.........interface.RepositoryIn
4df60 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e terface.extends.\Countable.{.con
4df80 73 74 20 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 45 st.SEARCH_FULLTEXT.=.0;.const.SE
4dfa0 41 52 43 48 5f 4e 41 4d 45 20 3d 20 31 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ARCH_NAME.=.1;.........public.fu
4dfc0 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 nction.hasPackage(PackageInterfa
4dfe0 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ce.$package);..........public.fu
4e000 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 nction.findPackage($name,.$versi
4e020 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 on);..........public.function.fi
4e040 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c ndPackages($name,.$version.=.nul
4e060 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 l);.......public.function.getPac
4e080 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e kages();.........public.function
4e0a0 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 3b 0a 7d 0a 3c 3f .search($query,.$mode.=.0);.}.<?
4e0c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
4e0e0 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 r\Repository;..use.Composer\IO\I
4e100 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 OInterface;.use.Composer\Json\Js
4e120 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 onFile;.use.Composer\Package\Loa
4e140 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 74 69 66 der\ArrayLoader;.....class.Artif
4e160 61 63 74 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 actRepository.extends.ArrayRepos
4e180 69 74 6f 72 79 0a 7b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 72 6f itory.{..protected.$loader;..pro
4e1a0 74 65 63 74 65 64 20 24 6c 6f 6f 6b 75 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tected.$lookup;..public.function
4e1c0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 .__construct(array.$repoConfig,.
4e1e0 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f IOInterface.$io).{.if.(!extensio
4e200 6e 5f 6c 6f 61 64 65 64 28 27 7a 69 70 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 n_loaded('zip')).{.throw.new.\Ru
4e220 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 61 72 74 69 66 61 63 74 20 72 65 70 ntimeException('The.artifact.rep
4e240 6f 73 69 74 6f 72 79 20 72 65 71 75 69 72 65 73 20 50 48 50 5c 27 73 20 7a 69 70 20 65 78 74 65 ository.requires.PHP\'s.zip.exte
4e260 6e 73 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 nsion');.}..$this->loader.=.new.
4e280 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 20 3d 20 24 ArrayLoader();.$this->lookup.=.$
4e2a0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 repoConfig['url'];.$this->io.=.$
4e2c0 69 6f 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 io;.}..protected.function.initia
4e2e0 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a lize().{.parent::initialize();..
4e300 24 74 68 69 73 2d 3e 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 6c 6f 6f 6b $this->scanDirectory($this->look
4e320 75 70 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6e 44 69 72 up);.}..private.function.scanDir
4e340 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b ectory($path).{.$io.=.$this->io;
4e360 0a 0a 24 64 69 72 65 63 74 6f 72 79 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 ..$directory.=.new.\RecursiveDir
4e380 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 70 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 ectoryIterator($path);.$iterator
4e3a0 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f .=.new.\RecursiveIteratorIterato
4e3c0 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 24 72 65 67 65 78 20 3d 20 6e 65 77 20 5c 52 65 67 r($directory);.$regex.=.new.\Reg
4e3e0 65 78 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 27 2f 5e 2e 2b 5c 2e 28 7a 69 exIterator($iterator,.'/^.+\.(zi
4e400 70 7c 70 68 61 72 29 24 2f 69 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 67 65 78 20 61 73 p|phar)$/i');.foreach.($regex.as
4e420 20 24 66 69 6c 65 29 20 7b 0a 0a 69 66 20 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 .$file).{..if.(!$file->isFile())
4e440 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 .{.continue;.}..$package.=.$this
4e460 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 66 69 6c 65 29 3b ->getComposerInformation($file);
4e480 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 .if.(!$package).{.if.($io->isVer
4e4a0 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 46 69 6c 65 20 bose()).{.$io->writeError("File.
4e4c0 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 6d 65 28 29 7d 3c <comment>{$file->getBasename()}<
4e4e0 2f 63 6f 6d 6d 65 6e 74 3e 20 64 6f 65 73 6e 27 74 20 73 65 65 6d 20 74 6f 20 68 6f 6c 64 20 61 /comment>.doesn't.seem.to.hold.a
4e500 20 70 61 63 6b 61 67 65 22 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 .package");.}.continue;.}..if.($
4e520 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 io->isVerbose()).{.$template.=.'
4e540 46 6f 75 6e 64 20 70 61 63 6b 61 67 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 28 3c Found.package.<info>%s</info>.(<
4e560 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 20 69 6e 20 66 69 6c 65 20 3c 69 comment>%s</comment>).in.file.<i
4e580 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 nfo>%s</info>';.$io->writeError(
4e5a0 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 sprintf($template,.$package->get
4e5c0 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 Name(),.$package->getPrettyVersi
4e5e0 6f 6e 28 29 2c 20 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 6d 65 28 29 29 29 3b 0a 7d 0a on(),.$file->getBasename()));.}.
4e600 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a .$this->addPackage($package);.}.
4e620 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 61 74 }.........private.function.locat
4e640 65 46 69 6c 65 28 5c 5a 69 70 41 72 63 68 69 76 65 20 24 7a 69 70 2c 20 24 66 69 6c 65 6e 61 6d eFile(\ZipArchive.$zip,.$filenam
4e660 65 29 0a 7b 0a 24 69 6e 64 65 78 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 66 61 6c e).{.$indexOfShortestMatch.=.fal
4e680 73 65 3b 0a 24 6c 65 6e 67 74 68 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 2d 31 3b se;.$lengthOfShortestMatch.=.-1;
4e6a0 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 7a 69 70 2d 3e 6e 75 6d 46 69 6c ..for.($i.=.0;.$i.<.$zip->numFil
4e6c0 65 73 3b 20 24 69 2b 2b 29 20 7b 0a 24 73 74 61 74 20 3d 20 24 7a 69 70 2d 3e 73 74 61 74 49 6e es;.$i++).{.$stat.=.$zip->statIn
4e6e0 64 65 78 28 24 69 29 3b 0a 69 66 20 28 73 74 72 63 6d 70 28 62 61 73 65 6e 61 6d 65 28 24 73 74 dex($i);.if.(strcmp(basename($st
4e700 61 74 5b 27 6e 61 6d 65 27 5d 29 2c 20 24 66 69 6c 65 6e 61 6d 65 29 20 3d 3d 3d 20 30 29 20 7b at['name']),.$filename).===.0).{
4e720 0a 24 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28 24 73 74 61 74 5b .$directoryName.=.dirname($stat[
4e740 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 24 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 20 3d 3d 20 'name']);.if.($directoryName.==.
4e760 27 2e 27 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 24 69 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 '.').{.....return.$i;.}..if.(str
4e780 70 6f 73 28 24 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 2c 20 27 5c 5c 27 29 20 21 3d 3d 20 66 61 pos($directoryName,.'\\').!==.fa
4e7a0 6c 73 65 20 7c 7c 0a 73 74 72 70 6f 73 28 24 64 69 72 65 63 74 6f 72 79 4e 61 6d 65 2c 20 27 2f lse.||.strpos($directoryName,.'/
4e7c0 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 ').!==.false).{...continue;.}..$
4e7e0 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 73 74 61 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a length.=.strlen($stat['name']);.
4e800 69 66 20 28 24 69 6e 64 65 78 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 3d 20 66 61 6c if.($indexOfShortestMatch.==.fal
4e820 73 65 20 7c 7c 20 24 6c 65 6e 67 74 68 20 3c 20 24 6c 65 6e 67 74 68 4f 66 53 68 6f 72 74 65 73 se.||.$length.<.$lengthOfShortes
4e840 74 4d 61 74 63 68 29 20 7b 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 7a 69 70 2d 3e 67 65 tMatch).{...$contents.=.$zip->ge
4e860 74 46 72 6f 6d 49 6e 64 65 78 28 24 69 29 3b 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 21 3d tFromIndex($i);.if.($contents.!=
4e880 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 65 78 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 =.false).{.$indexOfShortestMatch
4e8a0 20 3d 20 24 69 3b 0a 24 6c 65 6e 67 74 68 4f 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 20 3d 20 .=.$i;.$lengthOfShortestMatch.=.
4e8c0 24 6c 65 6e 67 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 64 65 78 4f $length;.}.}.}.}..return.$indexO
4e8e0 66 53 68 6f 72 74 65 73 74 4d 61 74 63 68 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 fShortestMatch;.}..private.funct
4e900 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 5c 53 70 6c 46 ion.getComposerInformation(\SplF
4e920 69 6c 65 49 6e 66 6f 20 24 66 69 6c 65 29 0a 7b 0a 24 7a 69 70 20 3d 20 6e 65 77 20 5c 5a 69 70 ileInfo.$file).{.$zip.=.new.\Zip
4e940 41 72 63 68 69 76 65 28 29 3b 0a 24 7a 69 70 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 2d 3e 67 65 74 Archive();.$zip->open($file->get
4e960 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 24 7a 69 70 2d 3e 6e 75 6d Pathname());..if.(0.==.$zip->num
4e980 46 69 6c 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 Files).{.return.false;.}..$found
4e9a0 46 69 6c 65 49 6e 64 65 78 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 61 74 65 46 69 6c 65 28 24 7a FileIndex.=.$this->locateFile($z
4e9c0 69 70 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 ip,.'composer.json');.if.(false.
4e9e0 3d 3d 3d 20 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 78 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 ===.$foundFileIndex).{.return.fa
4ea00 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 20 3d lse;.}..$configurationFileName.=
4ea20 20 24 7a 69 70 2d 3e 67 65 74 4e 61 6d 65 49 6e 64 65 78 28 24 66 6f 75 6e 64 46 69 6c 65 49 6e .$zip->getNameIndex($foundFileIn
4ea40 64 65 78 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 22 7a 69 70 3a 2f 2f 7b 24 dex);..$composerFile.=."zip://{$
4ea60 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 7d 23 24 63 6f 6e 66 69 67 75 72 61 74 file->getPathname()}#$configurat
4ea80 69 6f 6e 46 69 6c 65 4e 61 6d 65 22 3b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 ionFileName";.$json.=.file_get_c
4eaa0 6f 6e 74 65 6e 74 73 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 0a 24 70 61 63 6b 61 67 ontents($composerFile);..$packag
4eac0 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 e.=.JsonFile::parseJson($json,.$
4eae0 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 24 70 61 63 6b 61 67 65 5b 27 64 69 73 74 27 5d 20 composerFile);.$package['dist'].
4eb00 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 2c 0a 27 75 72 6c 27 20 =.array(.'type'.=>.'zip',.'url'.
4eb20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 0a 27 73 68 61 73 75 6d =>.$file->getPathname(),.'shasum
4eb40 27 20 3d 3e 20 73 68 61 31 5f 66 69 6c 65 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 '.=>.sha1_file($file->getRealPat
4eb60 68 28 29 29 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 h()).);..$package.=.$this->loade
4eb80 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b r->load($package);..return.$pack
4eba0 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 age;.}.}.<?php............namesp
4ebc0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 43 6f ace.Composer\Repository;..use.Co
4ebe0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 mposer\Package\Loader\ArrayLoade
4ec00 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 r;.use.Composer\Package\Loader\V
4ec20 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 alidatingArrayLoader;.......clas
4ec40 73 20 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 61 s.PackageRepository.extends.Arra
4ec60 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a yRepository.{.private.$config;..
4ec80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 .....public.function.__construct
4eca0 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 (array.$config).{.$this->config.
4ecc0 3d 20 24 63 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 =.$config['package'];....if.(!is
4ece0 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 29 29 20 7b 0a _numeric(key($this->config))).{.
4ed00 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e $this->config.=.array($this->con
4ed20 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e fig);.}.}.....protected.function
4ed40 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 .initialize().{.parent::initiali
4ed60 7a 65 28 29 3b 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 ze();..$loader.=.new.ValidatingA
4ed80 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 2c 20 66 61 6c 73 rrayLoader(new.ArrayLoader,.fals
4eda0 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 e);.foreach.($this->config.as.$p
4edc0 61 63 6b 61 67 65 29 20 7b 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 ackage).{.try.{.$package.=.$load
4ede0 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 er->load($package);.}.catch.(\Ex
4ee00 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 ception.$e).{.throw.new.InvalidR
4ee20 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 41 20 72 65 70 6f 73 69 74 6f 72 79 epositoryException('A.repository
4ee40 20 6f 66 20 74 79 70 65 20 22 70 61 63 6b 61 67 65 22 20 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 .of.type."package".contains.an.i
4ee60 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 20 27 2e 24 65 2d nvalid.package.definition:.'.$e-
4ee80 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 5c 6e 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 >getMessage()."\n\nInvalid.packa
4eea0 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 5c 6e 22 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 ge.definition:\n".json_encode($p
4eec0 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 ackage));.}..$this->addPackage($
4eee0 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a package);.}.}.}.<?php...........
4ef00 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a .namespace.Composer\Package;....
4ef20 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 ...class.CompletePackage.extends
4ef40 20 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b .Package.implements.CompletePack
4ef60 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 ageInterface.{.protected.$reposi
4ef80 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 tories;.protected.$license.=.arr
4efa0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6b 65 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 ay();.protected.$keywords;.prote
4efc0 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 63 72 69 cted.$authors;.protected.$descri
4efe0 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 ption;.protected.$homepage;.prot
4f000 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 ected.$scripts.=.array();.protec
4f020 74 65 64 20 24 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 ted.$support.=.array();.protecte
4f040 64 20 24 61 62 61 6e 64 6f 6e 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 d.$abandoned.=.false;.....public
4f060 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 63 72 69 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 .function.setScripts(array.$scri
4f080 70 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 pts).{.$this->scripts.=.$scripts
4f0a0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 ;.}.....public.function.getScrip
4f0c0 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a ts().{.return.$this->scripts;.}.
4f0e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 ......public.function.setReposit
4f100 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 ories($repositories).{.$this->re
4f120 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a positories.=.$repositories;.}...
4f140 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 ..public.function.getRepositorie
4f160 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 s().{.return.$this->repositories
4f180 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 69 63 ;.}.......public.function.setLic
4f1a0 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 ense(array.$license).{.$this->li
4f1c0 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 cense.=.$license;.}.....public.f
4f1e0 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.getLicense().{.return.$t
4f200 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e his->license;.}.......public.fun
4f220 63 74 69 6f 6e 20 73 65 74 4b 65 79 77 6f 72 64 73 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 ction.setKeywords(array.$keyword
4f240 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 s).{.$this->keywords.=.$keywords
4f260 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f ;.}.....public.function.getKeywo
4f280 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a rds().{.return.$this->keywords;.
4f2a0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f }.......public.function.setAutho
4f2c0 72 73 28 61 72 72 61 79 20 24 61 75 74 68 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 rs(array.$authors).{.$this->auth
4f2e0 6f 72 73 20 3d 20 24 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ors.=.$authors;.}.....public.fun
4f300 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getAuthors().{.return.$thi
4f320 73 2d 3e 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s->authors;.}.......public.funct
4f340 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 ion.setDescription($description)
4f360 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 .{.$this->description.=.$descrip
4f380 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 tion;.}.....public.function.getD
4f3a0 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 escription().{.return.$this->des
4f3c0 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f cription;.}.......public.functio
4f3e0 6e 20 73 65 74 48 6f 6d 65 70 61 67 65 28 24 68 6f 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 n.setHomepage($homepage).{.$this
4f400 2d 3e 68 6f 6d 65 70 61 67 65 20 3d 20 24 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 ->homepage.=.$homepage;.}.....pu
4f420 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 blic.function.getHomepage().{.re
4f440 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 turn.$this->homepage;.}.......pu
4f460 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 blic.function.setSupport(array.$
4f480 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 support).{.$this->support.=.$sup
4f4a0 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 port;.}.....public.function.getS
4f4c0 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 upport().{.return.$this->support
4f4e0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f ;.}.....public.function.isAbando
4f500 6e 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e ned().{.return.(boolean).$this->
4f520 61 62 61 6e 64 6f 6e 65 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e abandoned;.}.....public.function
4f540 20 73 65 74 41 62 61 6e 64 6f 6e 65 64 28 24 61 62 61 6e 64 6f 6e 65 64 29 0a 7b 0a 24 74 68 69 .setAbandoned($abandoned).{.$thi
4f560 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 20 3d 20 24 61 62 61 6e 64 6f 6e 65 64 3b 0a 7d 0a 0a 0a 0a s->abandoned.=.$abandoned;.}....
4f580 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 6d 65 6e ...public.function.getReplacemen
4f5a0 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 74 tPackage().{.return.is_string($t
4f5c0 68 69 73 2d 3e 61 62 61 6e 64 6f 6e 65 64 29 20 3f 20 24 74 68 69 73 2d 3e 61 62 61 6e 64 6f 6e his->abandoned).?.$this->abandon
4f5e0 65 64 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ed.:.null;.}.}.<?php............
4f600 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 namespace.Composer\Package\Dumpe
4f620 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 r;..use.Composer\Package\BasePac
4f640 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 kage;.use.Composer\Package\Packa
4f660 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 geInterface;.use.Composer\Packag
4f680 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 e\CompletePackageInterface;.use.
4f6a0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 Composer\Package\RootPackageInte
4f6c0 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d 70 65 72 0a 7b 0a rface;......class.ArrayDumper.{.
4f6e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 67 65 49 6e 74 65 public.function.dump(PackageInte
4f700 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 rface.$package).{.$keys.=.array(
4f720 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 79 70 65 27 2c 0a 27 65 .'binaries'.=>.'bin',.'type',.'e
4f740 78 74 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 27 20 3d 3e 20 27 xtra',.'installationSource'.=>.'
4f760 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 75 74 6f 6c 6f 61 64 27 installation-source',.'autoload'
4f780 2c 0a 27 64 65 76 41 75 74 6f 6c 6f 61 64 27 20 3d 3e 20 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 ,.'devAutoload'.=>.'autoload-dev
4f7a0 27 2c 0a 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 27 20 3d 3e 20 27 6e 6f 74 69 66 69 63 ',.'notificationUrl'.=>.'notific
4f7c0 61 74 69 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 3d 3e 20 27 69 ation-url',.'includePaths'.=>.'i
4f7e0 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 nclude-path',.);..$data.=.array(
4f800 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 );.$data['name'].=.$package->get
4f820 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d PrettyName();.$data['version'].=
4f840 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 .$package->getPrettyVersion();.$
4f860 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 data['version_normalized'].=.$pa
4f880 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 ckage->getVersion();..if.($packa
4f8a0 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 61 72 ge->getTargetDir()).{.$data['tar
4f8c0 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 get-dir'].=.$package->getTargetD
4f8e0 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 ir();.}..if.($package->getSource
4f900 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 Type()).{.$data['source']['type'
4f920 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 24 ].=.$package->getSourceType();.$
4f940 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 data['source']['url'].=.$package
4f960 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 ->getSourceUrl();.$data['source'
4f980 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f ]['reference'].=.$package->getSo
4f9a0 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 20 3d 20 urceReference();.if.($mirrors.=.
4f9c0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 29 20 7b 0a $package->getSourceMirrors()).{.
4f9e0 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 20 3d 20 24 6d 69 $data['source']['mirrors'].=.$mi
4fa00 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 rrors;.}.}..if.($package->getDis
4fa20 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d tType()).{.$data['dist']['type']
4fa40 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 24 64 61 74 .=.$package->getDistType();.$dat
4fa60 61 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 a['dist']['url'].=.$package->get
4fa80 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 DistUrl();.$data['dist']['refere
4faa0 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e nce'].=.$package->getDistReferen
4fac0 63 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3d 20 ce();.$data['dist']['shasum'].=.
4fae0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b $package->getDistSha1Checksum();
4fb00 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 .if.($mirrors.=.$package->getDis
4fb20 74 4d 69 72 72 6f 72 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 tMirrors()).{.$data['dist']['mir
4fb40 72 6f 72 73 27 5d 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 rors'].=.$mirrors;.}.}..if.($pac
4fb60 6b 61 67 65 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 kage->getArchiveExcludes()).{.$d
4fb80 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 ata['archive']['exclude'].=.$pac
4fba0 6b 61 67 65 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 kage->getArchiveExcludes();.}..f
4fbc0 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c oreach.(BasePackage::$supportedL
4fbe0 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 inkTypes.as.$type.=>.$opts).{.if
4fc00 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 .($links.=.$package->{'get'.ucfi
4fc20 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 rst($opts['method'])}()).{.forea
4fc40 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 ch.($links.as.$link).{.$data[$ty
4fc60 70 65 5d 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d pe][$link->getTarget()].=.$link-
4fc80 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 >getPrettyConstraint();.}.ksort(
4fca0 24 64 61 74 61 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 $data[$type]);.}.}..if.($package
4fcc0 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b s.=.$package->getSuggests()).{.k
4fce0 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 sort($packages);.$data['suggest'
4fd00 5d 20 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e ].=.$packages;.}..if.($package->
4fd20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 getReleaseDate()).{.$data['time'
4fd40 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 2d 3e ].=.$package->getReleaseDate()->
4fd60 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 format('Y-m-d.H:i:s');.}..$data.
4fd80 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b =.$this->dumpValues($package,.$k
4fda0 65 79 73 2c 20 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 eys,.$data);..if.($package.insta
4fdc0 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 nceof.CompletePackageInterface).
4fde0 7b 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 {.$keys.=.array(.'scripts',.'lic
4fe00 65 6e 73 65 27 2c 0a 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c ense',.'authors',.'description',
4fe20 0a 27 68 6f 6d 65 70 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 .'homepage',.'keywords',.'reposi
4fe40 74 6f 72 69 65 73 27 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 tories',.'support',.);..$data.=.
4fe60 24 74 68 69 73 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 $this->dumpValues($package,.$key
4fe80 73 2c 20 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 s,.$data);..if.(isset($data['key
4fea0 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 words']).&&.is_array($data['keyw
4fec0 6f 72 64 73 27 5d 29 29 20 7b 0a 73 6f 72 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 ords'])).{.sort($data['keywords'
4fee0 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 ]);.}..if.($package->isAbandoned
4ff00 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 62 61 6e 64 6f 6e 65 64 27 5d 20 3d 20 24 70 61 63 6b ()).{.$data['abandoned'].=.$pack
4ff20 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 3f 3a 20 age->getReplacementPackage().?:.
4ff40 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 true;.}.}..if.($package.instance
4ff60 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6d 69 6e 69 of.RootPackageInterface).{.$mini
4ff80 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 mumStability.=.$package->getMini
4ffa0 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 mumStability();.if.($minimumStab
4ffc0 69 6c 69 74 79 29 20 7b 0a 24 64 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 ility).{.$data['minimum-stabilit
4ffe0 79 27 5d 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 69 66 y'].=.$minimumStability;.}.}..if
50000 20 28 63 6f 75 6e 74 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 .(count($package->getTransportOp
50020 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 64 61 74 61 5b 27 74 72 61 6e 73 70 6f 72 74 tions()).>.0).{.$data['transport
50040 2d 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 72 61 6e 73 70 -options'].=.$package->getTransp
50060 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d ortOptions();.}..return.$data;.}
50080 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 73 28 50 61 ..private.function.dumpValues(Pa
500a0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 ckageInterface.$package,.array.$
500c0 6b 65 79 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6b keys,.array.$data).{.foreach.($k
500e0 65 79 73 20 61 73 20 24 6d 65 74 68 6f 64 20 3d 3e 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 eys.as.$method.=>.$key).{.if.(is
50100 5f 6e 75 6d 65 72 69 63 28 24 6d 65 74 68 6f 64 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 _numeric($method)).{.$method.=.$
50120 6b 65 79 3b 0a 7d 0a 0a 24 67 65 74 74 65 72 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 key;.}..$getter.=.'get'.ucfirst(
50140 24 6d 65 74 68 6f 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 24 67 65 $method);.$value.=.$package->$ge
50160 74 74 65 72 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 tter();..if.(null.!==.$value.&&.
50180 21 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e !(is_array($value).&&.0.===.coun
501a0 74 28 24 76 61 6c 75 65 29 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c t($value))).{.$data[$key].=.$val
501c0 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ue;.}.}..return.$data;.}.}.<?php
501e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
50200 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 ackage\Loader;.....class.Invalid
50220 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 PackageException.extends.\Except
50240 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 72 69 76 61 74 65 20 24 ion.{.private.$errors;.private.$
50260 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 61 3b 0a 0a 70 75 62 6c 69 63 warnings;.private.$data;..public
50280 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 65 72 72 .function.__construct(array.$err
502a0 6f 72 73 2c 20 61 72 72 61 79 20 24 77 61 72 6e 69 6e 67 73 2c 20 61 72 72 61 79 20 24 64 61 74 ors,.array.$warnings,.array.$dat
502c0 61 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a 24 74 a).{.$this->errors.=.$errors;.$t
502e0 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 24 77 61 72 6e 69 6e 67 73 3b 0a 24 74 68 69 73 his->warnings.=.$warnings;.$this
50300 2d 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ->data.=.$data;.parent::__constr
50320 75 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e uct("Invalid.package.information
50340 3a 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 28 :.\n".implode("\n",.array_merge(
50360 24 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $errors,.$warnings)));.}..public
50380 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 .function.getData().{.return.$th
503a0 69 73 2d 3e 64 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 is->data;.}..public.function.get
503c0 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b Errors().{.return.$this->errors;
503e0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 .}..public.function.getWarnings(
50400 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d 0a 7d 0a ).{.return.$this->warnings;.}.}.
50420 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
50440 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ser\Package\Loader;..use.Compose
50460 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4c r\Json\JsonFile;.....class.JsonL
50480 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 oader.{.private.$loader;..public
504a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 .function.__construct(LoaderInte
504c0 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d rface.$loader).{.$this->loader.=
504e0 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$loader;.}......public.function
50500 20 6c 6f 61 64 28 24 6a 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 6a 73 6f 6e 20 69 6e 73 74 61 6e 63 .load($json).{.if.($json.instanc
50520 65 6f 66 20 4a 73 6f 6e 46 69 6c 65 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 6a 73 6f 6e 2d eof.JsonFile).{.$config.=.$json-
50540 3e 72 65 61 64 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 >read();.}.elseif.(file_exists($
50560 6a 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 json)).{.$config.=.JsonFile::par
50580 73 65 4a 73 6f 6e 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 29 2c seJson(file_get_contents($json),
505a0 20 24 6a 73 6f 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6a 73 .$json);.}.elseif.(is_string($js
505c0 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 on)).{.$config.=.JsonFile::parse
505e0 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f Json($json);.}..return.$this->lo
50600 61 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ader->load($config);.}.}.<?php..
50620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
50640 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 6f 61 kage\Loader;.......interface.Loa
50660 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e derInterface.{........public.fun
50680 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6c 61 73 ction.load(array.$package,.$clas
506a0 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 s.=.'Composer\Package\CompletePa
506c0 63 6b 61 67 65 27 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ckage');.}.<?php............name
506e0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a space.Composer\Package\Loader;..
50700 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 use.Composer\Package;.use.Compos
50720 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d er\Package\AliasPackage;.use.Com
50740 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a poser\Package\RootAliasPackage;.
50760 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 use.Composer\Package\RootPackage
50780 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
507a0 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 Version\VersionParser;......clas
507c0 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 s.ArrayLoader.implements.LoaderI
507e0 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 nterface.{.protected.$versionPar
50800 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 4f 70 74 69 6f 6e 73 3b 0a 0a 70 75 ser;.protected.$loadOptions;..pu
50820 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 56 65 72 73 69 6f blic.function.__construct(Versio
50840 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 24 6c 6f 61 64 4f 70 74 nParser.$parser.=.null,.$loadOpt
50860 69 6f 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a ions.=.false).{.if.(!$parser).{.
50880 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 $parser.=.new.VersionParser;.}.$
508a0 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 24 this->versionParser.=.$parser;.$
508c0 74 68 69 73 2d 3e 6c 6f 61 64 4f 70 74 69 6f 6e 73 20 3d 20 24 6c 6f 61 64 4f 70 74 69 6f 6e 73 this->loadOptions.=.$loadOptions
508e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 ;.}..public.function.load(array.
50900 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b $config,.$class.=.'Composer\Pack
50920 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 73 73 age\CompletePackage').{.if.(!iss
50940 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 et($config['name'])).{.throw.new
50960 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e .\UnexpectedValueException('Unkn
50980 6f 77 6e 20 70 61 63 6b 61 67 65 20 68 61 73 20 6e 6f 20 6e 61 6d 65 20 64 65 66 69 6e 65 64 20 own.package.has.no.name.defined.
509a0 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 29 2e 27 29 2e 27 29 3b 0a 7d ('.json_encode($config).').');.}
509c0 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 .if.(!isset($config['version']))
509e0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 .{.throw.new.\UnexpectedValueExc
50a00 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 eption('Package.'.$config['name'
50a20 5d 2e 27 20 68 61 73 20 6e 6f 20 76 65 72 73 69 6f 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d ].'.has.no.version.defined.');.}
50a40 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e ....if.(isset($config['version_n
50a60 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 63 6f 6e 66 ormalized'])).{.$version.=.$conf
50a80 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 20 65 6c 73 65 ig['version_normalized'];.}.else
50aa0 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 .{.$version.=.$this->versionPars
50ac0 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d er->normalize($config['version']
50ae0 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 );.}.$package.=.new.$class($conf
50b00 69 67 5b 27 6e 61 6d 65 27 5d 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 ig['name'],.$version,.$config['v
50b20 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 ersion']);.$package->setType(iss
50b40 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 et($config['type']).?.strtolower
50b60 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a ($config['type']).:.'library');.
50b80 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d .if.(isset($config['target-dir']
50ba0 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e )).{.$package->setTargetDir($con
50bc0 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 fig['target-dir']);.}..if.(isset
50be0 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 ($config['extra']).&&.is_array($
50c00 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 config['extra'])).{.$package->se
50c20 74 45 78 74 72 61 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 tExtra($config['extra']);.}..if.
50c40 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 (isset($config['bin'])).{.if.(!i
50c60 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 s_array($config['bin'])).{.throw
50c80 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
50ca0 50 61 63 6b 61 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 Package.'.$config['name'].'\'s.b
50cc0 69 6e 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 in.key.should.be.an.array,.'.get
50ce0 74 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b type($config['bin']).'.given.');
50d00 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b .}.foreach.($config['bin'].as.$k
50d20 65 79 20 3d 3e 20 24 62 69 6e 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 ey.=>.$bin).{.$config['bin'][$ke
50d40 79 5d 20 3d 20 6c 74 72 69 6d 28 24 62 69 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 y].=.ltrim($bin,.'/');.}.$packag
50d60 65 2d 3e 73 65 74 42 69 6e 61 72 69 65 73 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a e->setBinaries($config['bin']);.
50d80 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c 61 74 69 }..if.(isset($config['installati
50da0 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 73 on-source'])).{.$package->setIns
50dc0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 63 6f 6e 66 69 67 5b 27 69 6e 73 74 61 6c 6c tallationSource($config['install
50de0 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 ation-source']);.}..if.(isset($c
50e00 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 onfig['source'])).{.if.(!isset($
50e20 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 20 7c 7c 20 21 69 73 config['source']['type']).||.!is
50e40 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 20 7c 7c set($config['source']['url']).||
50e60 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 .!isset($config['source']['refer
50e80 65 6e 63 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 ence'])).{.throw.new.\Unexpected
50ea0 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 ValueException(sprintf(."Package
50ec0 20 25 73 27 73 20 73 6f 75 72 63 65 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 .%s's.source.key.should.be.speci
50ee0 66 69 65 64 20 61 73 20 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 75 72 6c 5c 22 3a fied.as.{\"type\":....,.\"url\":
50f00 20 2e 2e 2e 2c 20 5c 22 72 65 66 65 72 65 6e 63 65 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 ....,.\"reference\":....},\n%s.g
50f20 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 6e iven.",.$config['name'],.json_en
50f40 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 code($config['source']).));.}.$p
50f60 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 ackage->setSourceType($config['s
50f80 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 ource']['type']);.$package->setS
50fa0 6f 75 72 63 65 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 ourceUrl($config['source']['url'
50fc0 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 ]);.$package->setSourceReference
50fe0 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 ($config['source']['reference'])
51000 3b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d ;.if.(isset($config['source']['m
51020 69 72 72 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 irrors'])).{.$package->setSource
51040 4d 69 72 72 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 6d 69 72 72 6f Mirrors($config['source']['mirro
51060 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 rs']);.}.}..if.(isset($config['d
51080 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 ist'])).{.if.(!isset($config['di
510a0 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b st']['type']).||.!isset($config[
510c0 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 'dist']['url'])).{.throw.new.\Un
510e0 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a expectedValueException(sprintf(.
51100 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 64 69 73 74 20 6b 65 79 20 73 68 6f 75 6c 64 20 62 65 "Package.%s's.dist.key.should.be
51120 20 73 70 65 63 69 66 69 65 64 20 61 73 20 22 2e 0a 22 7b 5c 22 74 79 70 65 5c 22 3a 20 2e 2e 2e .specified.as.".."{\"type\":....
51140 2c 20 5c 22 75 72 6c 5c 22 3a 20 2e 2e 2e 2c 20 5c 22 72 65 66 65 72 65 6e 63 65 5c 22 3a 20 2e ,.\"url\":....,.\"reference\":..
51160 2e 2e 2c 20 5c 22 73 68 61 73 75 6d 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 2e ..,.\"shasum\":....},\n%s.given.
51180 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 ",.$config['name'],.json_encode(
511a0 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d $config['dist']).));.}.$package-
511c0 3e 73 65 74 44 69 73 74 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 >setDistType($config['dist']['ty
511e0 70 65 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 55 72 6c 28 24 63 6f 6e pe']);.$package->setDistUrl($con
51200 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 fig['dist']['url']);.$package->s
51220 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 etDistReference(isset($config['d
51240 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 ist']['reference']).?.$config['d
51260 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 24 70 61 63 ist']['reference'].:.null);.$pac
51280 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 69 73 73 65 74 28 kage->setDistSha1Checksum(isset(
512a0 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 29 20 3f 20 24 63 6f $config['dist']['shasum']).?.$co
512c0 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 5d 20 3a 20 6e 75 6c 6c 29 3b 0a nfig['dist']['shasum'].:.null);.
512e0 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 72 6f if.(isset($config['dist']['mirro
51300 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f 72 rs'])).{.$package->setDistMirror
51320 73 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 6d 69 72 72 6f 72 73 27 5d 29 3b 0a 7d s($config['dist']['mirrors']);.}
51340 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 .}..foreach.(Package\BasePackage
51360 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 61 73 20 24 74 79 70 65 20 3d ::$supportedLinkTypes.as.$type.=
51380 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 74 79 >.$opts).{.if.(isset($config[$ty
513a0 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 65 74 27 2e 75 63 66 69 72 73 74 28 pe])).{.$method.=.'set'.ucfirst(
513c0 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 7b 24 6d 65 $opts['method']);.$package->{$me
513e0 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 thod}(.$this->versionParser->par
51400 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 70 seLinks(.$package->getName(),.$p
51420 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 24 6f 70 74 ackage->getPrettyVersion(),.$opt
51440 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d s['description'],.$config[$type]
51460 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 .).);.}.}..if.(isset($config['su
51480 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 75 ggest']).&&.is_array($config['su
514a0 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 75 ggest'])).{.foreach.($config['su
514c0 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b ggest'].as.$target.=>.$reason).{
514e0 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 74 72 69 6d 28 24 72 65 .if.('self.version'.===.trim($re
51500 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 74 61 72 ason)).{.$config['suggest'][$tar
51520 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f get].=.$package->getPrettyVersio
51540 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 67 67 65 73 74 73 28 24 n();.}.}.$package->setSuggests($
51560 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 config['suggest']);.}..if.(isset
51580 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 ($config['autoload'])).{.$packag
515a0 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 e->setAutoload($config['autoload
515c0 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c ']);.}..if.(isset($config['autol
515e0 6f 61 64 2d 64 65 76 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 41 75 oad-dev'])).{.$package->setDevAu
51600 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 2d 64 65 76 27 5d 29 3b toload($config['autoload-dev']);
51620 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 .}..if.(isset($config['include-p
51640 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 ath'])).{.$package->setIncludePa
51660 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a ths($config['include-path']);.}.
51680 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a .if.(!empty($config['time'])).{.
516a0 24 74 69 6d 65 20 3d 20 63 74 79 70 65 5f 64 69 67 69 74 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d $time.=.ctype_digit($config['tim
516c0 65 27 5d 29 20 3f 20 27 40 27 2e 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 20 3a 20 24 63 6f e']).?.'@'.$config['time'].:.$co
516e0 6e 66 69 67 5b 27 74 69 6d 65 27 5d 3b 0a 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 nfig['time'];..try.{.$date.=.new
51700 20 5c 44 61 74 65 54 69 6d 65 28 24 74 69 6d 65 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a .\DateTime($time,.new.\DateTimeZ
51720 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 one('UTC'));.$package->setReleas
51740 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f eDate($date);.}.catch.(\Exceptio
51760 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b n.$e).{.}.}..if.(!empty($config[
51780 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 'notification-url'])).{.$package
517a0 2d 3e 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 6e 6f ->setNotificationUrl($config['no
517c0 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 tification-url']);.}..if.(!empty
517e0 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 29 ($config['archive']['exclude']))
51800 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 .{.$package->setArchiveExcludes(
51820 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 3b 0a $config['archive']['exclude']);.
51840 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 61 63 6b 61 }..if.($package.instanceof.Packa
51860 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 69 ge\CompletePackageInterface).{.i
51880 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 f.(isset($config['scripts']).&&.
518a0 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a is_array($config['scripts'])).{.
518c0 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 foreach.($config['scripts'].as.$
518e0 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 event.=>.$listeners).{.$config['
51900 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 20 3d 20 28 61 72 72 61 79 29 20 24 6c 69 73 scripts'][$event].=.(array).$lis
51920 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 teners;.}.$package->setScripts($
51940 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 config['scripts']);.}..if.(!empt
51960 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f y($config['description']).&&.is_
51980 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 string($config['description'])).
519a0 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 {.$package->setDescription($conf
519c0 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 ig['description']);.}..if.(!empt
519e0 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 y($config['homepage']).&&.is_str
51a00 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 ing($config['homepage'])).{.$pac
51a20 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 kage->setHomepage($config['homep
51a40 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6b age']);.}..if.(!empty($config['k
51a60 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 eywords']).&&.is_array($config['
51a80 6b 65 79 77 6f 72 64 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 keywords'])).{.$package->setKeyw
51aa0 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 ords($config['keywords']);.}..if
51ac0 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a .(!empty($config['license'])).{.
51ae0 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 $package->setLicense(is_array($c
51b00 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 onfig['license']).?.$config['lic
51b20 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 ense'].:.array($config['license'
51b40 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 ]));.}..if.(!empty($config['auth
51b60 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 ors']).&&.is_array($config['auth
51b80 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 ors'])).{.$package->setAuthors($
51ba0 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 config['authors']);.}..if.(isset
51bc0 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ($config['support'])).{.$package
51be0 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 ->setSupport($config['support'])
51c00 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 62 61 6e 64 6f 6e 65 ;.}..if.(isset($config['abandone
51c20 64 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 62 61 6e 64 6f 6e 65 64 28 24 d'])).{.$package->setAbandoned($
51c40 63 6f 6e 66 69 67 5b 27 61 62 61 6e 64 6f 6e 65 64 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 config['abandoned']);.}.}..if.($
51c60 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e aliasNormalized.=.$this->getBran
51c80 63 68 41 6c 69 61 73 28 24 63 6f 6e 66 69 67 29 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 chAlias($config)).{.if.($package
51ca0 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 .instanceof.RootPackageInterface
51cc0 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b ).{.$package.=.new.RootAliasPack
51ce0 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 age($package,.$aliasNormalized,.
51d00 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 preg_replace('{(\.9{7})+}',.'.x'
51d20 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ,.$aliasNormalized));.}.else.{.$
51d40 70 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b package.=.new.AliasPackage($pack
51d60 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c age,.$aliasNormalized,.preg_repl
51d80 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e ace('{(\.9{7})+}',.'.x',.$aliasN
51da0 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 61 ormalized));.}.}..if.($this->loa
51dc0 64 4f 70 74 69 6f 6e 73 20 26 26 20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 72 61 6e 73 dOptions.&&.isset($config['trans
51de0 70 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 port-options'])).{.$package->set
51e00 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 63 6f 6e 66 69 67 5b 27 74 72 61 6e 73 70 TransportOptions($config['transp
51e20 6f 72 74 2d 6f 70 74 69 6f 6e 73 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 ort-options']);.}..return.$packa
51e40 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ge;.}........public.function.get
51e60 42 72 61 6e 63 68 41 6c 69 61 73 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 BranchAlias(array.$config).{.if.
51e80 28 28 27 64 65 76 2d 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 (('dev-'.!==.substr($config['ver
51ea0 73 69 6f 6e 27 5d 2c 20 30 2c 20 34 29 20 26 26 20 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 sion'],.0,.4).&&.'-dev'.!==.subs
51ec0 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 2d 34 29 29 0a 7c 7c 20 21 tr($config['version'],.-4)).||.!
51ee0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 isset($config['extra']['branch-a
51f00 6c 69 61 73 27 5d 29 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 lias']).||.!is_array($config['ex
51f20 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 29 20 7b 0a 72 65 74 75 72 tra']['branch-alias']).).{.retur
51f40 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b n;.}..foreach.($config['extra'][
51f60 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 'branch-alias'].as.$sourceBranch
51f80 20 3d 3e 20 24 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 .=>.$targetBranch).{...if.('-dev
51fa0 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 '.!==.substr($targetBranch,.-4))
51fc0 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 .{.continue;.}....$validatedTarg
51fe0 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d etBranch.=.$this->versionParser-
52000 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 >normalizeBranch(substr($targetB
52020 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 ranch,.0,.-4));.if.('-dev'.!==.s
52040 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 ubstr($validatedTargetBranch,.-4
52060 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 72 74 6f 6c 6f 77 )).{.continue;.}....if.(strtolow
52080 65 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 21 3d 3d 20 73 74 72 74 6f er($config['version']).!==.strto
520a0 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 lower($sourceBranch)).{.continue
520c0 3b 0a 7d 0a 0a 0a 20 69 66 20 28 28 24 73 6f 75 72 63 65 50 72 65 66 69 78 20 3d 20 24 74 68 69 ;.}....if.(($sourcePrefix.=.$thi
520e0 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c s->versionParser->parseNumericAl
52100 69 61 73 50 72 65 66 69 78 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 0a 26 26 20 28 24 74 iasPrefix($sourceBranch)).&&.($t
52120 61 72 67 65 74 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 argetPrefix.=.$this->versionPars
52140 65 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 74 61 72 er->parseNumericAliasPrefix($tar
52160 67 65 74 42 72 61 6e 63 68 29 29 0a 26 26 20 28 73 74 72 69 70 6f 73 28 24 74 61 72 67 65 74 50 getBranch)).&&.(stripos($targetP
52180 72 65 66 69 78 2c 20 24 73 6f 75 72 63 65 50 72 65 66 69 78 29 20 21 3d 3d 20 30 29 0a 29 20 7b refix,.$sourcePrefix).!==.0).).{
521a0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 54 .continue;.}..return.$validatedT
521c0 61 72 67 65 74 42 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a argetBranch;.}.}.}.<?php........
521e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c ....namespace.Composer\Package\L
52200 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 oader;..use.Composer\Package;.us
52220 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a e.Composer\Package\BasePackage;.
52240 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 use.Composer\Package\LinkConstra
52260 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f int\VersionConstraint;.use.Compo
52280 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 ser\Package\Version\VersionParse
522a0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 r;.use.Composer\Repository\Platf
522c0 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 ormRepository;.....class.Validat
522e0 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 ingArrayLoader.implements.Loader
52300 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 41 4c 4c 20 3d 20 31 3b Interface.{.const.CHECK_ALL.=.1;
52320 0a 63 6f 6e 73 74 20 43 48 45 43 4b 5f 55 4e 42 4f 55 4e 44 5f 43 4f 4e 53 54 52 41 49 4e 54 53 .const.CHECK_UNBOUND_CONSTRAINTS
52340 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 .=.1;..private.$loader;.private.
52360 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b $versionParser;.private.$errors;
52380 0a 70 72 69 76 61 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e .private.$warnings;.private.$con
523a0 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 70 72 69 76 61 74 fig;.private.$strictName;.privat
523c0 65 20 24 66 6c 61 67 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e e.$flags;..public.function.__con
523e0 73 74 72 75 63 74 28 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 2c 20 struct(LoaderInterface.$loader,.
52400 24 73 74 72 69 63 74 4e 61 6d 65 20 3d 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 $strictName.=.true,.VersionParse
52420 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a r.$parser.=.null,.$flags.=.0).{.
52440 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 24 74 68 69 73 2d 3e $this->loader.=.$loader;.$this->
52460 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 20 3f 3a 20 6e 65 77 20 56 versionParser.=.$parser.?:.new.V
52480 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e 61 6d ersionParser();.$this->strictNam
524a0 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 3d 20 e.=.$strictName;.$this->flags.=.
524c0 24 66 6c 61 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 $flags;.}..public.function.load(
524e0 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 array.$config,.$class.=.'Compose
52500 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 24 74 r\Package\CompletePackage').{.$t
52520 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 his->errors.=.array();.$this->wa
52540 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 rnings.=.array();.$this->config.
52560 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e 61 6d =.$config;..if.($this->strictNam
52580 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 6e 61 6d 65 27 e).{.$this->validateRegex('name'
525a0 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 2f 5b 41 ,.'[A-Za-z0-9][A-Za-z0-9_.-]*/[A
525c0 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 27 2c 20 74 72 75 65 29 -Za-z0-9][A-Za-z0-9_.-]*',.true)
525e0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 ;.}.else.{.$this->validateString
52600 28 27 6e 61 6d 65 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 ('name',.true);.}..if.(!empty($t
52620 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 72 79 20 7b his->config['version'])).{.try.{
52640 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 .$this->versionParser->normalize
52660 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 63 61 ($this->config['version']);.}.ca
52680 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 tch.(\Exception.$e).{.$this->err
526a0 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 69 6f 6e 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 ors[].=.'version.:.invalid.value
526c0 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 3a .('.$this->config['version'].'):
526e0 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 .'.$e->getMessage();.unset($this
52700 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 ->config['version']);.}.}..$this
52720 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 74 79 70 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a ->validateRegex('type',.'[A-Za-z
52740 30 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 0-9-]+');.$this->validateString(
52760 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 'target-dir');.$this->validateAr
52780 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 ray('extra');.$this->validateFla
527a0 74 41 72 72 61 79 28 27 62 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 tArray('bin');.$this->validateAr
527c0 72 61 79 28 27 73 63 72 69 70 74 73 27 29 3b 20 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 ray('scripts');...$this->validat
527e0 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 eString('description');.$this->v
52800 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d 65 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 alidateUrl('homepage');.$this->v
52820 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 alidateFlatArray('keywords',.'[A
52840 2d 5a 61 2d 7a 30 2d 39 20 2e 5f 2d 5d 2b 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 -Za-z0-9.._-]+');..if.(isset($th
52860 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 is->config['license'])).{.if.(is
52880 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d _string($this->config['license']
528a0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e )).{.$this->validateRegex('licen
528c0 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c se',.'[A-Za-z0-9+..()-]+');.}.el
528e0 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c se.{.$this->validateFlatArray('l
52900 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a icense',.'[A-Za-z0-9+..()-]+');.
52920 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 }.}..$this->validateString('time
52940 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 ');.if.(!empty($this->config['ti
52960 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 me'])).{.try.{.$date.=.new.\Date
52980 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2c 20 6e 65 77 20 Time($this->config['time'],.new.
529a0 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 \DateTimeZone('UTC'));.}.catch.(
529c0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d \Exception.$e).{.$this->errors[]
529e0 20 3d 20 27 74 69 6d 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 .=.'time.:.invalid.value.('.$thi
52a00 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d s->config['time'].'):.'.$e->getM
52a20 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 essage();.unset($this->config['t
52a40 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 ime']);.}.}..if.($this->validate
52a60 41 72 72 61 79 28 27 61 75 74 68 6f 72 73 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 Array('authors').&&.!empty($this
52a80 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ->config['authors'])).{.foreach.
52aa0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 20 61 73 20 24 6b 65 ($this->config['authors'].as.$ke
52ac0 79 20 3d 3e 20 24 61 75 74 68 6f 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 y.=>.$author).{.if.(!is_array($a
52ae0 75 74 68 6f 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 uthor)).{.$this->errors[].=.'aut
52b00 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 hors.'.$key.'.:.should.be.an.arr
52b20 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 61 75 74 68 6f 72 29 2e 27 20 67 69 76 65 6e 27 3b ay,.'.gettype($author).'.given';
52b40 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b .unset($this->config['authors'][
52b60 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 61 72 72 $key]);.continue;.}.foreach.(arr
52b80 61 79 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 65 6d 61 69 6c 27 2c 20 27 6e 61 6d 65 27 2c 20 ay('homepage',.'email',.'name',.
52ba0 27 72 6f 6c 65 27 29 20 61 73 20 24 61 75 74 68 6f 72 44 61 74 61 29 20 7b 0a 69 66 20 28 69 73 'role').as.$authorData).{.if.(is
52bc0 73 65 74 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 20 26 26 20 21 69 73 set($author[$authorData]).&&.!is
52be0 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 29 20 7b _string($author[$authorData])).{
52c00 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b .$this->errors[].=.'authors.'.$k
52c20 65 79 2e 27 2e 27 2e 24 61 75 74 68 6f 72 44 61 74 61 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 ey.'.'.$authorData.'.:.invalid.v
52c40 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 alue,.must.be.a.string';.unset($
52c60 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 24 61 this->config['authors'][$key][$a
52c80 75 74 68 6f 72 44 61 74 61 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 uthorData]);.}.}.if.(isset($auth
52ca0 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 or['homepage']).&&.!$this->filte
52cc0 72 55 72 6c 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 74 68 rUrl($author['homepage'])).{.$th
52ce0 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 is->warnings[].=.'authors.'.$key
52d00 2e 27 2e 68 6f 6d 65 70 61 67 65 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 .'.homepage.:.invalid.value.('.$
52d20 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 author['homepage'].'),.must.be.a
52d40 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e n.http/https.URL';.unset($this->
52d60 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 68 6f 6d 65 70 61 67 config['authors'][$key]['homepag
52d80 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c e']);.}.if.(isset($author['email
52da0 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 ']).&&.!filter_var($author['emai
52dc0 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 l'],.FILTER_VALIDATE_EMAIL)).{.$
52de0 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b this->warnings[].=.'authors.'.$k
52e00 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 61 ey.'.email.:.invalid.value.('.$a
52e20 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c uthor['email'].'),.must.be.a.val
52e40 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e id.email.address';.unset($this->
52e60 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 27 65 6d 61 69 6c 27 5d config['authors'][$key]['email']
52e80 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 );.}.if.(empty($this->config['au
52ea0 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 thors'][$key])).{.unset($this->c
52ec0 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 onfig['authors'][$key]);.}.}.if.
52ee0 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 (empty($this->config['authors'])
52f00 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 ).{.unset($this->config['authors
52f20 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 ']);.}.}..if.($this->validateArr
52f40 61 79 28 27 73 75 70 70 6f 72 74 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 ay('support').&&.!empty($this->c
52f60 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 onfig['support'])).{.foreach.(ar
52f80 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 ray('issues',.'forum',.'wiki',.'
52fa0 73 6f 75 72 63 65 27 2c 20 27 65 6d 61 69 6c 27 2c 20 27 69 72 63 27 29 20 61 73 20 24 6b 65 79 source',.'email',.'irc').as.$key
52fc0 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 ).{.if.(isset($this->config['sup
52fe0 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 port'][$key]).&&.!is_string($thi
53000 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 s->config['support'][$key])).{.$
53020 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 this->errors[].=.'support.'.$key
53040 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 .'.:.invalid.value,.must.be.a.st
53060 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 ring';.unset($this->config['supp
53080 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 ort'][$key]);.}.}..if.(isset($th
530a0 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 20 is->config['support']['email']).
530c0 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 &&.!filter_var($this->config['su
530e0 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 pport']['email'],.FILTER_VALIDAT
53100 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 E_EMAIL)).{.$this->warnings[].=.
53120 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 'support.email.:.invalid.value.(
53140 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 '.$this->config['support']['emai
53160 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 l'].'),.must.be.a.valid.email.ad
53180 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 dress';.unset($this->config['sup
531a0 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 port']['email']);.}..if.(isset($
531c0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 20 this->config['support']['irc']).
531e0 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 &&.!$this->filterUrl($this->conf
53200 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 2c 20 61 72 72 61 79 28 27 69 72 63 ig['support']['irc'],.array('irc
53220 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 '))).{.$this->warnings[].=.'supp
53240 6f 72 74 2e 69 72 63 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 ort.irc.:.invalid.value.('.$this
53260 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 2e 27 29 2c 20 6d ->config['support']['irc'].'),.m
53280 75 73 74 20 62 65 20 61 20 69 72 63 3a 2f 2f 3c 73 65 72 76 65 72 3e 2f 3c 63 68 61 6e 6e 65 6c ust.be.a.irc://<server>/<channel
532a0 3e 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 >.URL';.unset($this->config['sup
532c0 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 port']['irc']);.}..foreach.(arra
532e0 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f y('issues',.'forum',.'wiki',.'so
53300 75 72 63 65 27 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 urce').as.$key).{.if.(isset($thi
53320 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 s->config['support'][$key]).&&.!
53340 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 $this->filterUrl($this->config['
53360 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 support'][$key])).{.$this->warni
53380 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 ngs[].=.'support.'.$key.'.:.inva
533a0 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 lid.value.('.$this->config['supp
533c0 6f 72 74 27 5d 5b 24 6b 65 79 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f ort'][$key].'),.must.be.an.http/
533e0 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b https.URL';.unset($this->config[
53400 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 'support'][$key]);.}.}.if.(empty
53420 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e ($this->config['support'])).{.un
53440 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d set($this->config['support']);.}
53460 0a 7d 0a 0a 24 75 6e 62 6f 75 6e 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 .}..$unboundConstraint.=.new.Ver
53480 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 sionConstraint('=',.$this->versi
534a0 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 27 64 65 76 2d 6d 61 73 74 65 72 27 onParser->normalize('dev-master'
534c0 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 ));..foreach.(array_keys(BasePac
534e0 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c kage::$supportedLinkTypes).as.$l
53500 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 inkType).{.if.($this->validateAr
53520 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 29 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 ray($linkType).&&.isset($this->c
53540 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 onfig[$linkType])).{.foreach.($t
53560 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 his->config[$linkType].as.$packa
53580 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d ge.=>.$constraint).{.if.(!preg_m
535a0 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 70 61 atch('{^[A-Za-z0-9_./-]+$}',.$pa
535c0 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c ckage)).{.$this->warnings[].=.$l
535e0 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 inkType.'.'.$package.'.:.invalid
53600 20 6b 65 79 2c 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6d 75 73 74 20 62 65 20 73 74 72 69 .key,.package.names.must.be.stri
53620 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e 6c 79 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e ngs.containing.only.[A-Za-z0-9_.
53640 2f 2d 5d 27 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 73 74 72 61 69 /-]';.}.if.(!is_string($constrai
53660 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 nt)).{.$this->errors[].=.$linkTy
53680 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 pe.'.'.$package.'.:.invalid.valu
536a0 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 e,.must.be.a.string.containing.a
536c0 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 .version.constraint';.unset($thi
536e0 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b s->config[$linkType][$package]);
53700 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 21 3d 3d 20 24 63 .}.elseif.('self.version'.!==.$c
53720 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 72 79 20 7b 0a 24 6c 69 6e 6b 43 6f 6e 73 74 72 61 69 onstraint).{.try.{.$linkConstrai
53740 6e 74 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 nt.=.$this->versionParser->parse
53760 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 20 63 61 74 63 Constraints($constraint);.}.catc
53780 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 h.(\Exception.$e).{.$this->error
537a0 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a s[].=.$linkType.'.'.$package.'.:
537c0 20 69 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 28 27 2e 24 .invalid.version.constraint.('.$
537e0 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 e->getMessage().')';.unset($this
53800 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a ->config[$linkType][$package]);.
53820 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 0a 28 24 74 68 69 73 2d 3e 66 6c 61 67 continue;.}....if.(.($this->flag
53840 73 20 26 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 55 4e 42 4f 55 4e 44 5f 43 4f 4e 53 54 52 41 49 s.&.self::CHECK_UNBOUND_CONSTRAI
53860 4e 54 53 29 0a 26 26 20 27 72 65 71 75 69 72 65 27 20 3d 3d 3d 20 24 6c 69 6e 6b 54 79 70 65 0a NTS).&&.'require'.===.$linkType.
53880 26 26 20 24 6c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 75 6e 62 &&.$linkConstraint->matches($unb
538a0 6f 75 6e 64 43 6f 6e 73 74 72 61 69 6e 74 29 0a 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 50 oundConstraint).&&.!preg_match(P
538c0 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b latformRepository::PLATFORM_PACK
538e0 41 47 45 5f 52 45 47 45 58 2c 20 24 70 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e AGE_REGEX,.$package).).{.$this->
53900 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b warnings[].=.$linkType.'.'.$pack
53920 61 67 65 2e 27 20 3a 20 75 6e 62 6f 75 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 age.'.:.unbound.version.constrai
53940 6e 74 73 20 28 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 29 20 73 68 6f 75 6c 64 20 62 65 20 nts.('.$constraint.').should.be.
53960 61 76 6f 69 64 65 64 27 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e avoided';.}.}.}.}.}..if.($this->
53980 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 67 67 65 73 74 27 29 20 26 26 20 21 65 6d 70 validateArray('suggest').&&.!emp
539a0 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a ty($this->config['suggest'])).{.
539c0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 foreach.($this->config['suggest'
539e0 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b ].as.$package.=>.$description).{
53a00 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 29 20 7b .if.(!is_string($description)).{
53a20 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 73 75 67 67 65 73 74 2e 27 2e 24 70 .$this->errors[].=.'suggest.'.$p
53a40 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 ackage.'.:.invalid.value,.must.b
53a60 65 20 61 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 62 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 e.a.string.describing.why.the.pa
53a80 63 6b 61 67 65 20 69 73 20 73 75 67 67 65 73 74 65 64 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 ckage.is.suggested';.unset($this
53aa0 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a ->config['suggest'][$package]);.
53ac0 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 }.}.}..if.($this->validateString
53ae0 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 29 20 26 26 20 21 65 6d 70 74 79 28 ('minimum-stability').&&.!empty(
53b00 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 $this->config['minimum-stability
53b20 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 '])).{.if.(!isset(BasePackage::$
53b40 73 74 61 62 69 6c 69 74 69 65 73 5b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d stabilities[$this->config['minim
53b60 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 um-stability']])).{.$this->error
53b80 73 5b 5d 20 3d 20 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 3a 20 69 6e 76 61 6c s[].=.'minimum-stability.:.inval
53ba0 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d id.value.('.$this->config['minim
53bc0 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f um-stability'].'),.must.be.one.o
53be0 66 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 f.'.implode(',.',.array_keys(Bas
53c00 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 3b 0a 75 6e 73 65 74 28 ePackage::$stabilities));.unset(
53c20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 $this->config['minimum-stability
53c40 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 ']);.}.}..if.($this->validateArr
53c60 61 79 28 27 61 75 74 6f 6c 6f 61 64 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e ay('autoload').&&.!empty($this->
53c80 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 config['autoload'])).{.$types.=.
53ca0 61 72 72 61 79 28 27 70 73 72 2d 30 27 2c 20 27 70 73 72 2d 34 27 2c 20 27 63 6c 61 73 73 6d 61 array('psr-0',.'psr-4',.'classma
53cc0 70 27 2c 20 27 66 69 6c 65 73 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f p',.'files');.foreach.($this->co
53ce0 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 74 79 nfig['autoload'].as.$type.=>.$ty
53d00 70 65 43 6f 6e 66 69 67 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 79 70 65 2c peConfig).{.if.(!in_array($type,
53d20 20 24 74 79 70 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 .$types)).{.$this->errors[].=.'a
53d40 75 74 6f 6c 6f 61 64 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 79 70 65 utoload.:.invalid.value.('.$type
53d60 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c .'),.must.be.one.of.'.implode(',
53d80 20 27 2c 20 24 74 79 70 65 73 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 .',.$types);.unset($this->config
53da0 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 69 66 20 28 24 74 79 70 ['autoload'][$type]);.}.if.($typ
53dc0 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 43 e.===.'psr-4').{.foreach.($typeC
53de0 6f 6e 66 69 67 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a onfig.as.$namespace.=>.$dirs).{.
53e00 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 21 3d 3d 20 27 27 20 26 26 20 27 5c 5c 27 20 21 3d if.($namespace.!==.''.&&.'\\'.!=
53e20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 2d 31 29 29 20 7b 0a 24 74 68 69 =.substr($namespace,.-1)).{.$thi
53e40 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 34 20 3a 20 s->errors[].=.'autoload.psr-4.:.
53e60 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 6e 61 6d 65 73 70 61 63 65 2e 27 29 2c 20 invalid.value.('.$namespace.'),.
53e80 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 namespaces.must.end.with.a.names
53ea0 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2c 20 73 68 6f 75 6c 64 20 62 65 20 27 2e 24 6e 61 6d pace.separator,.should.be.'.$nam
53ec0 65 73 70 61 63 65 2e 27 5c 5c 27 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 espace.'\\';.}.}.}.}.}..if.(!emp
53ee0 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 27 70 73 ty($this->config['autoload']['ps
53f00 72 2d 34 27 5d 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 r-4']).&&.!empty($this->config['
53f20 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d target-dir'])).{.$this->errors[]
53f40 20 3d 20 27 74 61 72 67 65 74 2d 64 69 72 20 3a 20 74 68 69 73 20 63 61 6e 20 6e 6f 74 20 62 65 .=.'target-dir.:.this.can.not.be
53f60 20 75 73 65 64 20 74 6f 67 65 74 68 65 72 20 77 69 74 68 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 .used.together.with.the.autoload
53f80 2e 70 73 72 2d 34 20 73 65 74 74 69 6e 67 2c 20 72 65 6d 6f 76 65 20 74 61 72 67 65 74 2d 64 69 .psr-4.setting,.remove.target-di
53fa0 72 20 74 6f 20 75 70 67 72 61 64 65 20 74 6f 20 70 73 72 2d 34 27 3b 0a 0a 20 0a 20 75 6e 73 65 r.to.upgrade.to.psr-4';.....unse
53fc0 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 27 70 73 72 t($this->config['autoload']['psr
53fe0 2d 34 27 5d 29 3b 0a 7d 0a 0a 0a 20 0a 0a 0a 20 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 -4']);.}..........$this->validat
54000 65 46 6c 61 74 41 72 72 61 79 28 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 24 74 68 69 eFlatArray('include-path');.$thi
54020 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 74 72 61 6e 73 70 6f 72 74 2d 6f 70 74 69 s->validateArray('transport-opti
54040 6f 6e 73 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 ons');....if.(isset($this->confi
54060 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 69 g['extra']['branch-alias'])).{.i
54080 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 f.(!is_array($this->config['extr
540a0 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 a']['branch-alias'])).{.$this->e
540c0 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 20 3a 20 rrors[].=.'extra.branch-alias.:.
540e0 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 76 65 72 73 69 6f 6e 73 20 3d 3e 20 must.be.an.array.of.versions.=>.
54100 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 aliases';.}.else.{.foreach.($thi
54120 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 s->config['extra']['branch-alias
54140 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 74 61 72 67 65 74 42 72 '].as.$sourceBranch.=>.$targetBr
54160 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 anch).{...if.('-dev'.!==.substr(
54180 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 $targetBranch,.-4)).{.$this->war
541a0 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e nings[].=.'extra.branch-alias.'.
541c0 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 $sourceBranch.'.:.the.target.bra
541e0 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 65 6e 64 nch.('.$targetBranch.').must.end
54200 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 .in.-dev';.unset($this->config['
54220 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 extra']['branch-alias'][$sourceB
54240 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 76 61 6c 69 64 61 ranch]);..continue;.}....$valida
54260 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e tedTargetBranch.=.$this->version
54280 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 73 75 62 73 74 72 28 24 Parser->normalizeBranch(substr($
542a0 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 66 20 28 27 2d 64 65 76 targetBranch,.0,.-4));.if.('-dev
542c0 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 '.!==.substr($validatedTargetBra
542e0 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 nch,.-4)).{.$this->warnings[].=.
54300 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 'extra.branch-alias.'.$sourceBra
54320 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 nch.'.:.the.target.branch.('.$ta
54340 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 62 65 20 61 20 70 61 72 73 65 61 62 6c rgetBranch.').must.be.a.parseabl
54360 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 e.number.like.2.0-dev';.unset($t
54380 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 his->config['extra']['branch-ali
543a0 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b as'][$sourceBranch]);..continue;
543c0 0a 7d 0a 0a 0a 20 69 66 20 28 28 24 73 6f 75 72 63 65 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 .}....if.(($sourcePrefix.=.$this
543e0 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 ->versionParser->parseNumericAli
54400 61 73 50 72 65 66 69 78 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 0a 26 26 20 28 24 74 61 asPrefix($sourceBranch)).&&.($ta
54420 72 67 65 74 50 72 65 66 69 78 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 rgetPrefix.=.$this->versionParse
54440 72 2d 3e 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 73 50 72 65 66 69 78 28 24 74 61 72 67 r->parseNumericAliasPrefix($targ
54460 65 74 42 72 61 6e 63 68 29 29 0a 26 26 20 28 73 74 72 69 70 6f 73 28 24 74 61 72 67 65 74 50 72 etBranch)).&&.(stripos($targetPr
54480 65 66 69 78 2c 20 24 73 6f 75 72 63 65 50 72 65 66 69 78 29 20 21 3d 3d 20 30 29 0a 29 20 7b 0a efix,.$sourcePrefix).!==.0).).{.
544a0 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 $this->warnings[].=.'extra.branc
544c0 68 2d 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 h-alias.'.$sourceBranch.'.:.the.
544e0 74 61 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 target.branch.('.$targetBranch.'
54500 29 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 6e 75 6d 65 72 69 63 20 61 6c 69 61 73 20 66 ).is.not.a.valid.numeric.alias.f
54520 6f 72 20 74 68 69 73 20 76 65 72 73 69 6f 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 or.this.version';.unset($this->c
54540 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 onfig['extra']['branch-alias'][$
54560 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 sourceBranch]);.}.}.}.}..if.($th
54580 69 73 2d 3e 65 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 50 is->errors).{.throw.new.InvalidP
545a0 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 ackageException($this->errors,.$
545c0 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 this->warnings,.$config);.}..$pa
545e0 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 ckage.=.$this->loader->load($thi
54600 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 s->config,.$class);.$this->confi
54620 67 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 g.=.null;..return.$package;.}..p
54640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 6e 67 73 28 29 0a 7b 0a 72 ublic.function.getWarnings().{.r
54660 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 eturn.$this->warnings;.}..public
54680 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .function.getErrors().{.return.$
546a0 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f this->errors;.}..private.functio
546c0 6e 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 n.validateRegex($property,.$rege
546e0 78 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 x,.$mandatory.=.false).{.if.(!$t
54700 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 his->validateString($property,.$
54720 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 mandatory)).{.return.false;.}..i
54740 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 f.(!preg_match('{^'.$regex.'$}u'
54760 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 ,.$this->config[$property])).{.$
54780 6d 65 73 73 61 67 65 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 message.=.$property.'.:.invalid.
547a0 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 value.('.$this->config[$property
547c0 5d 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 69 66 20 28 24 ].'),.must.match.'.$regex;.if.($
547e0 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 mandatory).{.$this->errors[].=.$
54800 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 message;.}.else.{.$this->warning
54820 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 s[].=.$message;.}.unset($this->c
54840 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 onfig[$property]);..return.false
54860 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ;.}..return.true;.}..private.fun
54880 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 ction.validateString($property,.
548a0 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 $mandatory.=.false).{.if.(isset(
548c0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 $this->config[$property]).&&.!is
548e0 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d _string($this->config[$property]
54900 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 )).{.$this->errors[].=.$property
54920 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 74 72 69 6e 67 2c 20 27 2e 67 65 74 74 79 .'.:.should.be.a.string,.'.getty
54940 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 pe($this->config[$property]).'.g
54960 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 iven';.unset($this->config[$prop
54980 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 erty]);..return.false;.}..if.(!i
549a0 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c sset($this->config[$property]).|
549c0 7c 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 |.trim($this->config[$property])
549e0 20 3d 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 .===.'').{.if.($mandatory).{.$th
54a00 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 is->errors[].=.$property.'.:.mus
54a20 74 20 62 65 20 70 72 65 73 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f t.be.present';.}.unset($this->co
54a40 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b nfig[$property]);..return.false;
54a60 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .}..return.true;.}..private.func
54a80 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d tion.validateArray($property,.$m
54aa0 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 andatory.=.false).{.if.(isset($t
54ac0 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 61 his->config[$property]).&&.!is_a
54ae0 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 rray($this->config[$property])).
54b00 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 {.$this->errors[].=.$property.'.
54b20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 :.should.be.an.array,.'.gettype(
54b40 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 $this->config[$property]).'.give
54b60 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 n';.unset($this->config[$propert
54b80 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 y]);..return.false;.}..if.(!isse
54ba0 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 21 t($this->config[$property]).||.!
54bc0 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 count($this->config[$property]))
54be0 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f .{.if.($mandatory).{.$this->erro
54c00 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 rs[].=.$property.'.:.must.be.pre
54c20 73 65 6e 74 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 61 74 20 6c 65 61 73 74 20 6f 6e 65 20 65 6c sent.and.contain.at.least.one.el
54c40 65 6d 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 ement';.}.unset($this->config[$p
54c60 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 roperty]);..return.false;.}..ret
54c80 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 urn.true;.}..private.function.va
54ca0 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 lidateFlatArray($property,.$rege
54cc0 78 20 3d 20 6e 75 6c 6c 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a x.=.null,.$mandatory.=.false).{.
54ce0 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 if.(!$this->validateArray($prope
54d00 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 rty,.$mandatory)).{.return.false
54d20 3b 0a 7d 0a 0a 24 70 61 73 73 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ;.}..$pass.=.true;.foreach.($thi
54d40 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 s->config[$property].as.$key.=>.
54d60 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 $value).{.if.(!is_string($value)
54d80 20 26 26 20 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 .&&.!is_numeric($value)).{.$this
54da0 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e ->errors[].=.$property.'.'.$key.
54dc0 27 20 3a 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 6f 72 20 69 6e 74 2c 20 27 2e 67 '.:.must.be.a.string.or.int,.'.g
54de0 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 ettype($value).'.given';.unset($
54e00 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a this->config[$property][$key]);.
54e20 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 $pass.=.false;..continue;.}..if.
54e40 28 24 72 65 67 65 78 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 ($regex.&&.!preg_match('{^'.$reg
54e60 65 78 2e 27 24 7d 75 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e ex.'$}u',.$value)).{.$this->warn
54e80 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 ings[].=.$property.'.'.$key.'.:.
54ea0 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 76 61 6c 75 65 2e 27 29 2c 20 6d 75 73 74 invalid.value.('.$value.'),.must
54ec0 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f .match.'.$regex;.unset($this->co
54ee0 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 nfig[$property][$key]);.$pass.=.
54f00 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 3b 0a 7d 0a 0a 70 72 69 false;.}.}..return.$pass;.}..pri
54f20 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 6c 28 24 70 72 6f 70 65 vate.function.validateUrl($prope
54f40 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 rty,.$mandatory.=.false).{.if.(!
54f60 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c $this->validateString($property,
54f80 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a .$mandatory)).{.return.false;.}.
54fa0 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f .if.(!$this->filterUrl($this->co
54fc0 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 nfig[$property])).{.$this->warni
54fe0 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 ngs[].=.$property.'.:.invalid.va
55000 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e lue.('.$this->config[$property].
55020 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a '),.must.be.an.http/https.URL';.
55040 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b unset($this->config[$property]);
55060 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a ..return.false;.}..return.true;.
55080 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 }..private.function.filterUrl($v
550a0 61 6c 75 65 2c 20 61 72 72 61 79 20 24 73 63 68 65 6d 65 73 20 3d 20 61 72 72 61 79 28 27 68 74 alue,.array.$schemes.=.array('ht
550c0 74 70 27 2c 20 27 68 74 74 70 73 27 29 29 0a 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3d 3d 3d 20 tp',.'https')).{.if.($value.===.
550e0 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 62 69 74 73 20 3d 20 70 61 '').{.return.true;.}..$bits.=.pa
55100 72 73 65 5f 75 72 6c 28 24 76 61 6c 75 65 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 62 69 74 73 rse_url($value);.if.(empty($bits
55120 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 74 79 28 24 62 69 74 73 5b 27 68 6f 73 74 ['scheme']).||.empty($bits['host
55140 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f '])).{.return.false;.}..if.(!in_
55160 61 72 72 61 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 2c 20 24 73 63 68 65 6d 65 73 2c array($bits['scheme'],.$schemes,
55180 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 .true)).{.return.false;.}..retur
551a0 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d n.true;.}.}.<?php............nam
551c0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a espace.Composer\Package\Loader;.
551e0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 .use.Composer\Package\BasePackag
55200 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 e;.use.Composer\Package\AliasPac
55220 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 kage;.use.Composer\Config;.use.C
55240 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 omposer\Factory;.use.Composer\Pa
55260 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 ckage\Version\VersionParser;.use
55280 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d .Composer\Repository\RepositoryM
552a0 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c anager;.use.Composer\Repository\
552c0 56 63 73 5c 48 67 44 72 69 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 Vcs\HgDriver;.use.Composer\IO\Nu
552e0 6c 6c 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 llIO;.use.Composer\Util\ProcessE
55300 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 xecutor;.use.Composer\Util\Git.a
55320 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e s.GitUtil;.use.Composer\Util\Svn
55340 20 61 73 20 53 76 6e 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 50 .as.SvnUtil;.........class.RootP
55360 61 63 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 72 61 79 4c 6f 61 64 65 72 ackageLoader.extends.ArrayLoader
55380 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 63 6f .{.private.$manager;.private.$co
553a0 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 nfig;.private.$process;..public.
553c0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 70 6f 73 69 74 6f 72 79 4d function.__construct(RepositoryM
553e0 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c anager.$manager,.Config.$config,
55400 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 6c 6c 2c 20 50 .VersionParser.$parser.=.null,.P
55420 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a rocessExecutor.$process.=.null).
55440 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 24 74 68 {.$this->manager.=.$manager;.$th
55460 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f is->config.=.$config;.$this->pro
55480 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 cess.=.$process.?:.new.ProcessEx
554a0 65 63 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 ecutor();.parent::__construct($p
554c0 61 72 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 arser);.}..public.function.load(
554e0 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 array.$config,.$class.=.'Compose
55500 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 r\Package\RootPackage').{.if.(!i
55520 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 63 6f 6e 66 69 67 sset($config['name'])).{.$config
55540 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 5f 5f 72 6f 6f 74 5f 5f 27 3b 0a 7d 0a 69 66 20 28 21 69 73 ['name'].=.'__root__';.}.if.(!is
55560 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 0a 20 69 66 20 set($config['version'])).{...if.
55580 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 (getenv('COMPOSER_ROOT_VERSION')
555a0 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f ).{.$version.=.getenv('COMPOSER_
555c0 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f ROOT_VERSION');.}.else.{.$versio
555e0 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 n.=.$this->guessVersion($config)
55600 3b 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d ;.}..if.(!$version).{.$version.=
55620 20 27 31 2e 30 2e 30 27 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 20 .'1.0.0';.}..$config['version'].
55640 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 =.$version;.}..$realPackage.=.$p
55660 61 63 6b 61 67 65 20 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 64 28 24 63 6f 6e 66 69 67 2c 20 24 ackage.=.parent::load($config,.$
55680 63 6c 61 73 73 29 3b 0a 0a 69 66 20 28 24 72 65 61 6c 50 61 63 6b 61 67 65 20 69 6e 73 74 61 6e class);..if.($realPackage.instan
556a0 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 ceof.AliasPackage).{.$realPackag
556c0 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 69 e.=.$package->getAliasOf();.}..i
556e0 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c f.(isset($config['minimum-stabil
55700 69 74 79 27 5d 29 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 4d 69 6e 69 6d ity'])).{.$realPackage->setMinim
55720 75 6d 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 umStability(VersionParser::norma
55740 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 lizeStability($config['minimum-s
55760 74 61 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 tability']));.}..$aliases.=.arra
55780 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a y();.$stabilityFlags.=.array();.
557a0 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 $references.=.array();.foreach.(
557c0 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 29 20 array('require',.'require-dev').
557e0 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 as.$linkType).{.if.(isset($confi
55800 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 24 6c 69 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 g[$linkType])).{.$linkInfo.=.Bas
55820 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 5b 24 6c ePackage::$supportedLinkTypes[$l
55840 69 6e 6b 54 79 70 65 5d 3b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 67 65 74 27 2e 75 63 66 69 72 73 inkType];.$method.=.'get'.ucfirs
55860 74 28 24 6c 69 6e 6b 49 6e 66 6f 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 6c 69 6e 6b 73 20 3d t($linkInfo['method']);.$links.=
55880 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 6c 50 61 63 6b 61 67 65 2d .array();.foreach.($realPackage-
558a0 3e 24 6d 65 74 68 6f 64 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c >$method().as.$link).{.$links[$l
558c0 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f ink->getTarget()].=.$link->getCo
558e0 6e 73 74 72 61 69 6e 74 28 29 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d nstraint()->getPrettyString();.}
55900 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 69 61 73 65 .$aliases.=.$this->extractAliase
55920 73 28 24 6c 69 6e 6b 73 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 s($links,.$aliases);.$stabilityF
55940 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c lags.=.$this->extractStabilityFl
55960 61 67 73 28 24 6c 69 6e 6b 73 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 72 65 ags($links,.$stabilityFlags,.$re
55980 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 alPackage->getMinimumStability()
559a0 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 52 );.$references.=.$this->extractR
559c0 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b 73 2c 20 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a eferences($links,.$references);.
559e0 7d 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 24 61 }.}..$realPackage->setAliases($a
55a00 6c 69 61 73 65 73 29 3b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 53 74 61 62 69 6c liases);.$realPackage->setStabil
55a20 69 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 29 3b 0a 24 72 65 61 6c ityFlags($stabilityFlags);.$real
55a40 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 24 72 65 66 65 72 65 6e 63 Package->setReferences($referenc
55a60 65 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d es);..if.(isset($config['prefer-
55a80 73 74 61 62 6c 65 27 5d 29 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 stable'])).{.$realPackage->setPr
55aa0 65 66 65 72 53 74 61 62 6c 65 28 28 62 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 5b 27 70 72 65 66 65 eferStable((bool).$config['prefe
55ac0 72 2d 73 74 61 62 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 72 65 70 6f 73 20 3d 20 46 61 63 74 6f 72 79 r-stable']);.}..$repos.=.Factory
55ae0 3a 3a 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 6e 75 6c 6c ::createDefaultRepositories(null
55b00 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 29 ,.$this->config,.$this->manager)
55b20 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 ;.foreach.($repos.as.$repo).{.$t
55b40 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 his->manager->addRepository($rep
55b60 6f 29 3b 0a 7d 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 o);.}.$realPackage->setRepositor
55b80 69 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 ies($this->config->getRepositori
55ba0 65 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 es());..return.$package;.}..priv
55bc0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 61 72 72 61 ate.function.extractAliases(arra
55be0 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 y.$requires,.array.$aliases).{.f
55c00 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e oreach.($requires.as.$reqName.=>
55c20 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 .$reqVersion).{.if.(preg_match('
55c40 7b 5e 28 5b 5e 2c 5c 73 23 5d 2b 29 28 3f 3a 23 5b 5e 20 5d 2b 29 3f 20 2b 61 73 20 2b 28 5b 5e {^([^,\s#]+)(?:#[^.]+)?.+as.+([^
55c60 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 ,\s]+)$}',.$reqVersion,.$match))
55c80 20 7b 0a 24 61 6c 69 61 73 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 .{.$aliases[].=.array(.'package'
55ca0 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 2c 0a 27 76 65 72 73 69 .=>.strtolower($reqName),.'versi
55cc0 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 on'.=>.$this->versionParser->nor
55ce0 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a malize($match[1],.$reqVersion),.
55d00 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 'alias'.=>.$match[2],.'alias_nor
55d20 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 malized'.=>.$this->versionParser
55d40 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 32 5d 2c 20 24 72 65 71 56 65 72 73 69 ->normalize($match[2],.$reqVersi
55d60 6f 6e 29 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a on),.);.}.}..return.$aliases;.}.
55d80 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 53 74 61 62 69 6c 69 .private.function.extractStabili
55da0 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 tyFlags(array.$requires,.array.$
55dc0 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 stabilityFlags,.$minimumStabilit
55de0 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a y).{.$stabilities.=.BasePackage:
55e00 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 :$stabilities;.$minimumStability
55e20 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 .=.$stabilities[$minimumStabilit
55e40 79 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 y];.foreach.($requires.as.$reqNa
55e60 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f me.=>.$reqVersion).{...if.(preg_
55e80 6d 61 74 63 68 28 27 7b 5e 5b 5e 40 5d 2a 3f 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 match('{^[^@]*?@('.implode('|',.
55ea0 61 72 72 61 79 5f 6b 65 79 73 28 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 array_keys($stabilities)).')$}i'
55ec0 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6e 61 6d 65 20 ,.$reqVersion,.$match)).{.$name.
55ee0 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 =.strtolower($reqName);.$stabili
55f00 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a ty.=.$stabilities[VersionParser:
55f20 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 5d 3b :normalizeStability($match[1])];
55f40 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d ..if.(isset($stabilityFlags[$nam
55f60 65 5d 29 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 e]).&&.$stabilityFlags[$name].>.
55f80 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 $stability).{.continue;.}.$stabi
55fa0 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a lityFlags[$name].=.$stability;..
55fc0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 continue;.}......$reqVersion.=.p
55fe0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 reg_replace('{^([^,\s@]+).as..+$
56000 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 }',.'$1',.$reqVersion);.if.(preg
56020 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 _match('{^[^,\s@]+$}',.$reqVersi
56040 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e on).&&.'stable'.!==.($stabilityN
56060 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c ame.=.VersionParser::parseStabil
56080 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 ity($reqVersion))).{.$name.=.str
560a0 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 tolower($reqName);.$stability.=.
560c0 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 5d 3b 0a 69 66 $stabilities[$stabilityName];.if
560e0 20 28 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 29 .((isset($stabilityFlags[$name])
56100 20 26 26 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 .&&.$stabilityFlags[$name].>.$st
56120 61 62 69 6c 69 74 79 29 20 7c 7c 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3e ability).||.($minimumStability.>
56140 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 .$stability)).{.continue;.}.$sta
56160 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b bilityFlags[$name].=.$stability;
56180 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a .}.}..return.$stabilityFlags;.}.
561a0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 52 65 66 65 72 65 6e .private.function.extractReferen
561c0 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 65 66 65 ces(array.$requires,.array.$refe
561e0 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 rences).{.foreach.($requires.as.
56200 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 7b 0a 24 72 65 71 56 $reqName.=>.$reqVersion).{.$reqV
56220 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 ersion.=.preg_replace('{^([^,\s@
56240 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 ]+).as..+$}',.'$1',.$reqVersion)
56260 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b ;.if.(preg_match('{^[^,\s@]+?#([
56280 61 2d 66 30 2d 39 5d 2b 29 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 a-f0-9]+)$}',.$reqVersion,.$matc
562a0 68 29 20 26 26 20 27 64 65 76 27 20 3d 3d 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 h).&&.'dev'.===.($stabilityName.
562c0 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 =.VersionParser::parseStability(
562e0 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f $reqVersion))).{.$name.=.strtolo
56300 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 wer($reqName);.$references[$name
56320 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 ].=.$match[1];.}.}..return.$refe
56340 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 rences;.}..private.function.gues
56360 73 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 66 75 sVersion(array.$config).{.if.(fu
56380 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 24 76 nction_exists('proc_open')).{.$v
563a0 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 ersion.=.$this->guessGitVersion(
563c0 24 63 6f 6e 66 69 67 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 $config);.if.(null.!==.$version)
563e0 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 20 .{.return.$version;.}..$version.
56400 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 =.$this->guessHgVersion($config)
56420 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 72 65 74 75 72 ;.if.(null.!==.$version).{.retur
56440 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 75 65 n.$version;.}..return.$this->gue
56460 73 73 53 76 6e 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 ssSvnVersion($config);.}.}..priv
56480 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 61 72 72 ate.function.guessGitVersion(arr
564a0 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 ay.$config).{.GitUtil::cleanEnv(
564c0 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e );....if.(0.===.$this->process->
564e0 65 78 65 63 75 74 65 28 27 67 69 74 20 64 65 73 63 72 69 62 65 20 2d 2d 65 78 61 63 74 2d 6d 61 execute('git.describe.--exact-ma
56500 74 63 68 20 2d 2d 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 74 72 79 20 7b 0a 72 tch.--tags',.$output)).{.try.{.r
56520 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d eturn.$this->versionParser->norm
56540 61 6c 69 7a 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c alize(trim($output));.}.catch.(\
56560 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d Exception.$e).{.}.}....if.(0.===
56580 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 62 72 .$this->process->execute('git.br
565a0 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 76 20 2d 76 27 2c anch.--no-color.--no-abbrev.-v',
565c0 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 .$output)).{.$branches.=.array()
565e0 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c 73 65 3b 0a 24 76 65 72 ;.$isFeatureBranch.=.false;.$ver
56600 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e sion.=.null;....foreach.($this->
56620 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 process->splitLines($output).as.
56640 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d $branch).{.if.($branch.&&.preg_m
56660 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 5c 28 6e 6f 20 62 72 61 6e 63 68 5c 29 7c atch('{^(?:\*.).*(\(no.branch\)|
56680 5c 28 64 65 74 61 63 68 65 64 20 66 72 6f 6d 20 5c 53 2b 5c 29 7c 5c 53 2b 29 20 2a 28 5b 61 2d \(detached.from.\S+\)|\S+).*([a-
566a0 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 29 f0-9]+)..*$}',.$branch,.$match))
566c0 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 5b 31 5d 20 3d 3d 3d 20 27 28 6e 6f 20 62 72 61 6e 63 68 .{.if.($match[1].===.'(no.branch
566e0 29 27 20 7c 7c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 31 5d 2c 20 30 2c 20 31 30 29 20 3d )'.||.substr($match[1],.0,.10).=
56700 3d 3d 20 27 28 64 65 74 61 63 68 65 64 20 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 ==.'(detached.').{.$version.=.'d
56720 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 ev-'.$match[2];.$isFeatureBranch
56740 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 .=.true;.}.else.{.$version.=.$th
56760 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e is->versionParser->normalizeBran
56780 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 ch($match[1]);.$isFeatureBranch.
567a0 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 =.0.===.strpos($version,.'dev-')
567c0 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e ;.if.('9999999-dev'.===.$version
567e0 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b ).{.$version.=.'dev-'.$match[1];
56800 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 .}.}.}..if.($branch.&&.!preg_mat
56820 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 ch('{^.*[^/]+/HEAD.}',.$branch))
56840 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 .{.if.(preg_match('{^(?:\*.)?.*(
56860 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 61 6e 63 68 \S+).*([a-f0-9]+)..*$}',.$branch
56880 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 24 6d 61 74 63 ,.$match)).{.$branches[].=.$matc
568a0 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 75 72 65 42 72 61 6e h[1];.}.}.}..if.(!$isFeatureBran
568c0 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 76 65 72 ch).{.return.$version;.}....$ver
568e0 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 69 6f sion.=.$this->guessFeatureVersio
56900 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 62 72 61 6e 63 68 65 73 2c 20 n($config,.$version,.$branches,.
56920 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 25 63 61 6e 64 69 64 61 74 65 25 2e 2e 25 62 72 61 6e 'git.rev-list.%candidate%..%bran
56940 63 68 25 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 72 ch%');..return.$version;.}.}..pr
56960 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 48 67 56 65 72 73 69 6f 6e 28 61 72 ivate.function.guessHgVersion(ar
56980 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 ray.$config).{...if.(0.===.$this
569a0 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 61 6e 63 68 27 2c 20 ->process->execute('hg.branch',.
569c0 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 $output)).{.$branch.=.trim($outp
569e0 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 ut);.$version.=.$this->versionPa
56a00 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b 0a rser->normalizeBranch($branch);.
56a20 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 $isFeatureBranch.=.0.===.strpos(
56a40 24 76 65 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 0a 69 66 20 28 27 39 39 39 39 39 39 39 $version,.'dev-');..if.('9999999
56a60 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d -dev'.===.$version).{.$version.=
56a80 20 27 64 65 76 2d 27 2e 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 73 46 65 61 74 .'dev-'.$branch;.}..if.(!$isFeat
56aa0 75 72 65 42 72 61 6e 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a ureBranch).{.return.$version;.}.
56ac0 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 67 65 74 63 ...$config.=.array('url'.=>.getc
56ae0 77 64 28 29 29 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 48 67 44 72 69 76 65 72 28 24 63 wd());.$driver.=.new.HgDriver($c
56b00 6f 6e 66 69 67 2c 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 onfig,.new.NullIO(),.$this->conf
56b20 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d ig,.$this->process);.$branches.=
56b40 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 .array_keys($driver->getBranches
56b60 28 29 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 ());....$version.=.$this->guessF
56b80 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c eatureVersion($config,.$version,
56ba0 20 24 62 72 61 6e 63 68 65 73 2c 20 27 68 67 20 6c 6f 67 20 2d 72 20 22 6e 6f 74 20 61 6e 63 65 .$branches,.'hg.log.-r."not.ance
56bc0 73 74 6f 72 73 28 5c 27 25 63 61 6e 64 69 64 61 74 65 25 5c 27 29 20 61 6e 64 20 61 6e 63 65 73 stors(\'%candidate%\').and.ances
56be0 74 6f 72 73 28 5c 27 25 62 72 61 6e 63 68 25 5c 27 29 22 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 tors(\'%branch%\')".--template."
56c00 7b 6e 6f 64 65 7d 5c 5c 6e 22 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a {node}\\n"');..return.$version;.
56c20 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 46 65 61 74 75 }.}..private.function.guessFeatu
56c40 72 65 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f reVersion(array.$config,.$versio
56c60 6e 2c 20 61 72 72 61 79 20 24 62 72 61 6e 63 68 65 73 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 n,.array.$branches,.$scmCmdline)
56c80 0a 7b 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 .{.....if.((isset($config['extra
56ca0 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 63 ']['branch-alias']).&&.!isset($c
56cc0 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 onfig['extra']['branch-alias'][$
56ce0 76 65 72 73 69 6f 6e 5d 29 29 0a 7c 7c 20 73 74 72 70 6f 73 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 version])).||.strpos(json_encode
56d00 28 24 63 6f 6e 66 69 67 29 2c 20 27 22 73 65 6c 66 2e 76 65 72 73 69 6f 6e 22 27 29 0a 29 20 7b ($config),.'"self.version"').).{
56d20 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 64 65 76 2d 7d .$branch.=.preg_replace('{^dev-}
56d40 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6c 65 6e 67 74 68 20 3d 20 50 48 50 5f ',.'',.$version);.$length.=.PHP_
56d60 49 4e 54 5f 4d 41 58 3b 0a 0a 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 61 6e 63 68 65 73 20 3d 20 INT_MAX;..$nonFeatureBranches.=.
56d80 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 6e 2d 66 65 61 74 '';.if.(!empty($config['non-feat
56da0 75 72 65 2d 62 72 61 6e 63 68 65 73 27 5d 29 29 20 7b 0a 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 ure-branches'])).{.$nonFeatureBr
56dc0 61 6e 63 68 65 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 63 6f 6e 66 69 67 5b 27 6e anches.=.implode('|',.$config['n
56de0 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e 63 68 65 73 27 5d 29 3b 0a 7d 0a 0a 66 6f 72 65 61 on-feature-branches']);.}..forea
56e00 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 0a ch.($branches.as.$candidate).{..
56e20 20 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 26 26 20 70 .if.($candidate.===.$branch.&&.p
56e40 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 27 20 2e 20 24 6e 6f 6e 46 65 61 74 75 72 65 42 72 61 reg_match('{^('...$nonFeatureBra
56e60 6e 63 68 65 73 20 2e 20 27 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 72 65 nches...')$}',.$candidate)).{.re
56e80 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 63 61 6e 64 69 64 61 turn.$version;.}....if.($candida
56ea0 74 65 20 3d 3d 3d 20 24 62 72 61 6e 63 68 20 7c 7c 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b te.===.$branch.||.!preg_match('{
56ec0 5e 28 6d 61 73 74 65 72 7c 74 72 75 6e 6b 7c 64 65 66 61 75 6c 74 7c 64 65 76 65 6c 6f 70 7c 5c ^(master|trunk|default|develop|\
56ee0 64 2b 5c 2e 2e 2b 29 24 7d 27 2c 20 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6d 61 74 63 68 29 29 d+\..+)$}',.$candidate,.$match))
56f00 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6d 64 4c 69 6e 65 20 3d 20 73 74 72 5f 72 .{.continue;.}..$cmdLine.=.str_r
56f20 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 63 61 6e 64 69 64 61 74 65 25 27 2c 20 27 25 62 72 eplace(array('%candidate%',.'%br
56f40 61 6e 63 68 25 27 29 2c 20 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 62 72 61 6e anch%'),.array($candidate,.$bran
56f60 63 68 29 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 ch),.$scmCmdline);.if.(0.!==.$th
56f80 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 4c 69 6e 65 2c 20 24 is->process->execute($cmdLine,.$
56fa0 6f 75 74 70 75 74 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c output)).{.continue;.}..if.(strl
56fc0 65 6e 28 24 6f 75 74 70 75 74 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6c 65 6e 67 74 68 en($output).<.$length).{.$length
56fe0 20 3d 20 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 .=.strlen($output);.$version.=.$
57000 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 this->versionParser->normalizeBr
57020 61 6e 63 68 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 anch($candidate);.if.('9999999-d
57040 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 ev'.===.$version).{.$version.=.'
57060 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e dev-'.$match[1];.}.}.}.}..return
57080 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 .$version;.}..private.function.g
570a0 75 65 73 73 53 76 6e 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a uessSvnVersion(array.$config).{.
570c0 53 76 6e 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d SvnUtil::cleanEnv();....if.(0.==
570e0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 =.$this->process->execute('svn.i
57100 6e 66 6f 20 2d 2d 78 6d 6c 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 74 72 75 6e 6b 50 61 nfo.--xml',.$output)).{.$trunkPa
57120 74 68 20 3d 20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d th.=.isset($config['trunk-path']
57140 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 63 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 ).?.preg_quote($config['trunk-pa
57160 74 68 27 5d 2c 20 27 23 27 29 20 3a 20 27 74 72 75 6e 6b 27 3b 0a 24 62 72 61 6e 63 68 65 73 50 th'],.'#').:.'trunk';.$branchesP
57180 61 74 68 20 3d 20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 ath.=.isset($config['branches-pa
571a0 74 68 27 5d 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 63 6f 6e 66 69 67 5b 27 62 72 61 6e th']).?.preg_quote($config['bran
571c0 63 68 65 73 2d 70 61 74 68 27 5d 2c 20 27 23 27 29 20 3a 20 27 62 72 61 6e 63 68 65 73 27 3b 0a ches-path'],.'#').:.'branches';.
571e0 24 74 61 67 73 50 61 74 68 20 3d 20 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 61 67 73 2d $tagsPath.=.isset($config['tags-
57200 70 61 74 68 27 5d 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 63 6f 6e 66 69 67 5b 27 74 61 path']).?.preg_quote($config['ta
57220 67 73 2d 70 61 74 68 27 5d 2c 20 27 23 27 29 20 3a 20 27 74 61 67 73 27 3b 0a 0a 24 75 72 6c 50 gs-path'],.'#').:.'tags';..$urlP
57240 61 74 74 65 72 6e 20 3d 20 27 23 3c 75 72 6c 3e 2e 2a 2f 28 27 2e 24 74 72 75 6e 6b 50 61 74 68 attern.=.'#<url>.*/('.$trunkPath
57260 2e 27 7c 28 27 2e 24 62 72 61 6e 63 68 65 73 50 61 74 68 2e 27 7c 27 2e 20 24 74 61 67 73 50 61 .'|('.$branchesPath.'|'..$tagsPa
57280 74 68 20 2e 27 29 2f 28 2e 2a 29 29 3c 2f 75 72 6c 3e 23 27 3b 0a 0a 69 66 20 28 70 72 65 67 5f th..')/(.*))</url>#';..if.(preg_
572a0 6d 61 74 63 68 28 24 75 72 6c 50 61 74 74 65 72 6e 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 match($urlPattern,.$output,.$mat
572c0 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 ches)).{.if.(isset($matches[2]).
572e0 26 26 20 28 24 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 &&.($branchesPath.===.$matches[2
57300 5d 20 7c 7c 20 24 74 61 67 73 50 61 74 68 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 ].||.$tagsPath.===.$matches[2]))
57320 20 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 .{...$version.=.$this->versionPa
57340 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 65 73 5b 33 rser->normalizeBranch($matches[3
57360 5d 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 ]);.if.('9999999-dev'.===.$versi
57380 6f 6e 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 65 73 on).{.$version.=.'dev-'.$matches
573a0 5b 33 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 [3];.}..return.$version;.}..retu
573c0 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 rn.$this->versionParser->normali
573e0 7a 65 28 74 72 69 6d 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c ze(trim($matches[1]));.}.}.}.}.<
57400 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
57420 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a er\Package;..use.Composer\Json\J
57440 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c sonFile;.use.Composer\Installer\
57460 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 InstallationManager;.use.Compose
57480 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a r\Repository\RepositoryManager;.
574a0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f use.Composer\Util\ProcessExecuto
574c0 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 r;.use.Composer\Repository\Array
574e0 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 Repository;.use.Composer\Package
57500 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \Dumper\ArrayDumper;.use.Compose
57520 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 r\Package\Loader\ArrayLoader;.us
57540 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 e.Composer\Package\Version\Versi
57560 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 onParser;.use.Composer\Util\Git.
57580 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e as.GitUtil;.use.Composer\IO\IOIn
575a0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 63 6b 65 72 0a 7b 0a 70 terface;........class.Locker.{.p
575c0 72 69 76 61 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 rivate.$lockFile;.private.$repos
575e0 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 itoryManager;.private.$installat
57600 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 ionManager;.private.$hash;.priva
57620 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 64 75 6d 70 65 72 3b 0a 70 72 69 te.$loader;.private.$dumper;.pri
57640 76 61 74 65 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 vate.$process;.private.$lockData
57660 43 61 63 68 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e Cache;...........public.function
57680 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 4a 73 .__construct(IOInterface.$io,.Js
576a0 6f 6e 46 69 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 onFile.$lockFile,.RepositoryMana
576c0 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 49 6e 73 74 61 6c 6c 61 ger.$repositoryManager,.Installa
576e0 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 tionManager.$installationManager
57700 2c 20 24 68 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 20 3d 20 24 6c 6f ,.$hash).{.$this->lockFile.=.$lo
57720 63 6b 46 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 ckFile;.$this->repositoryManager
57740 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e .=.$repositoryManager;.$this->in
57760 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f stallationManager.=.$installatio
57780 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 3b 0a 24 nManager;.$this->hash.=.$hash;.$
577a0 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 6e this->loader.=.new.ArrayLoader(n
577c0 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 ull,.true);.$this->dumper.=.new.
577e0 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 ArrayDumper();.$this->process.=.
57800 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a new.ProcessExecutor($io);.}.....
57820 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 29 0a 7b 0a 69 ..public.function.isLocked().{.i
57840 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b f.(!$this->lockFile->exists()).{
57860 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d .return.false;.}..$data.=.$this-
57880 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 >getLockData();..return.isset($d
578a0 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ata['packages']);.}.......public
578c0 20 66 75 6e 63 74 69 6f 6e 20 69 73 46 72 65 73 68 28 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 74 .function.isFresh().{.$lock.=.$t
578e0 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 his->lockFile->read();..return.$
57900 74 68 69 73 2d 3e 68 61 73 68 20 3d 3d 3d 20 24 6c 6f 63 6b 5b 27 68 61 73 68 27 5d 3b 0a 7d 0a this->hash.===.$lock['hash'];.}.
57920 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 ........public.function.getLocke
57940 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 dRepository($withDevReqs.=.false
57960 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 ).{.$lockData.=.$this->getLockDa
57980 74 61 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 ta();.$packages.=.new.ArrayRepos
579a0 69 74 6f 72 79 28 29 3b 0a 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 6c 6f 63 itory();..$lockedPackages.=.$loc
579c0 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 kData['packages'];.if.($withDevR
579e0 65 71 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b eqs).{.if.(isset($lockData['pack
57a00 61 67 65 73 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d ages-dev'])).{.$lockedPackages.=
57a20 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 2c 20 24 6c .array_merge($lockedPackages,.$l
57a40 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 20 65 6c 73 65 ockData['packages-dev']);.}.else
57a60 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
57a80 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 72 The.lock.file.does.not.contain.r
57aa0 65 71 75 69 72 65 2d 64 65 76 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2c 20 72 75 6e 20 69 6e 73 74 equire-dev.information,.run.inst
57ac0 61 6c 6c 20 77 69 74 68 20 74 68 65 20 2d 2d 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 20 6f 72 20 all.with.the.--no-dev.option.or.
57ae0 72 75 6e 20 75 70 64 61 74 65 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 6f 73 65 20 70 61 63 6b run.update.to.install.those.pack
57b00 61 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 ages.');.}.}..if.(empty($lockedP
57b20 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a ackages)).{.return.$packages;.}.
57b40 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 5b 30 5d 5b 27 6e .if.(isset($lockedPackages[0]['n
57b60 61 6d 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 ame'])).{.foreach.($lockedPackag
57b80 65 73 20 61 73 20 24 69 6e 66 6f 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 2d 3e 61 64 64 50 61 63 es.as.$info).{.$packages->addPac
57ba0 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 69 6e 66 6f 29 29 kage($this->loader->load($info))
57bc0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 74 68 72 6f 77 20 ;.}..return.$packages;.}..throw.
57be0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 72 20 63 6f 6d 70 new.\RuntimeException('Your.comp
57c00 6f 73 65 72 2e 6c 6f 63 6b 20 77 61 73 20 63 72 65 61 74 65 64 20 62 65 66 6f 72 65 20 32 30 31 oser.lock.was.created.before.201
57c20 32 2d 30 39 2d 31 35 2c 20 61 6e 64 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 61 6e 2-09-15,.and.is.not.supported.an
57c40 79 6d 6f 72 65 2e 20 52 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 22 20 74 6f 20 ymore..Run."composer.update".to.
57c60 67 65 6e 65 72 61 74 65 20 61 20 6e 65 77 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a generate.a.new.one.');.}........
57c80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 public.function.getPlatformRequi
57ca0 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a rements($withDevReqs.=.false).{.
57cc0 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 $lockData.=.$this->getLockData()
57ce0 3b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 ;.$versionParser.=.new.VersionPa
57d00 72 73 65 72 28 29 3b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b rser();.$requirements.=.array();
57d20 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d ..if.(!empty($lockData['platform
57d40 27 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 '])).{.$requirements.=.$versionP
57d60 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 arser->parseLinks(.'__ROOT__',.'
57d80 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 1.0.0',.'requires',.isset($lockD
57da0 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c ata['platform']).?.$lockData['pl
57dc0 61 74 66 6f 72 6d 27 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 69 atform'].:.array().);.}..if.($wi
57de0 74 68 44 65 76 52 65 71 73 20 26 26 20 21 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 thDevReqs.&&.!empty($lockData['p
57e00 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e latform-dev'])).{.$devRequiremen
57e20 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 ts.=.$versionParser->parseLinks(
57e40 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 .'__ROOT__',.'1.0.0',.'requires'
57e60 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 ,.isset($lockData['platform-dev'
57e80 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3a ]).?.$lockData['platform-dev'].:
57ea0 20 61 72 72 61 79 28 29 0a 29 3b 0a 0a 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 .array().);..$requirements.=.arr
57ec0 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 2c 20 24 64 65 76 52 65 71 75 ay_merge($requirements,.$devRequ
57ee0 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 6d 65 6e irements);.}..return.$requiremen
57f00 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 ts;.}..public.function.getMinimu
57f20 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 mStability().{.$lockData.=.$this
57f40 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 ->getLockData();..return.isset($
57f60 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f lockData['minimum-stability']).?
57f80 20 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 .$lockData['minimum-stability'].
57fa0 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 :.'stable';.}..public.function.g
57fc0 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d etStabilityFlags().{.$lockData.=
57fe0 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 .$this->getLockData();..return.i
58000 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 sset($lockData['stability-flags'
58020 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 ]).?.$lockData['stability-flags'
58040 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ].:.array();.}..public.function.
58060 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 getPreferStable().{.$lockData.=.
58080 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 $this->getLockData();......retur
580a0 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 n.isset($lockData['prefer-stable
580c0 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d ']).?.$lockData['prefer-stable']
580e0 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 .:.null;.}..public.function.getP
58100 72 65 66 65 72 4c 6f 77 65 73 74 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 referLowest().{.$lockData.=.$thi
58120 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 69 73 s->getLockData();......return.is
58140 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 5d 29 20 set($lockData['prefer-lowest']).
58160 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 27 5d 20 3a 20 6e ?.$lockData['prefer-lowest'].:.n
58180 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 ull;.}..public.function.getAlias
581a0 65 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 es().{.$lockData.=.$this->getLoc
581c0 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 kData();..return.isset($lockData
581e0 5b 27 61 6c 69 61 73 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 ['aliases']).?.$lockData['aliase
58200 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s'].:.array();.}..public.functio
58220 6e 20 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 n.getLockData().{.if.(null.!==.$
58240 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 this->lockDataCache).{.return.$t
58260 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 his->lockDataCache;.}..if.(!$thi
58280 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e s->lockFile->exists()).{.throw.n
582a0 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 ew.\LogicException('No.lockfile.
582c0 66 6f 75 6e 64 2e 20 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 found..Unable.to.read.locked.pac
582e0 6b 61 67 65 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 kages');.}..return.$this->lockDa
58300 74 61 43 61 63 68 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 taCache.=.$this->lockFile->read(
58320 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 );.}.................public.func
58340 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 tion.setLockData(array.$packages
58360 2c 20 24 64 65 76 50 61 63 6b 61 67 65 73 2c 20 61 72 72 61 79 20 24 70 6c 61 74 66 6f 72 6d 52 ,.$devPackages,.array.$platformR
58380 65 71 73 2c 20 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 20 61 72 72 61 79 20 24 61 6c eqs,.$platformDevReqs,.array.$al
583a0 69 61 73 65 73 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 61 72 72 61 79 20 iases,.$minimumStability,.array.
583c0 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 20 $stabilityFlags,.$preferStable,.
583e0 24 70 72 65 66 65 72 4c 6f 77 65 73 74 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a $preferLowest).{.$lock.=.array(.
58400 27 5f 72 65 61 64 6d 65 27 20 3d 3e 20 61 72 72 61 79 28 27 54 68 69 73 20 66 69 6c 65 20 6c 6f '_readme'.=>.array('This.file.lo
58420 63 6b 73 20 74 68 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 6f 66 20 79 6f 75 72 20 70 72 6f cks.the.dependencies.of.your.pro
58440 6a 65 63 74 20 74 6f 20 61 20 6b 6e 6f 77 6e 20 73 74 61 74 65 27 2c 0a 27 52 65 61 64 20 6d 6f ject.to.a.known.state',.'Read.mo
58460 72 65 20 61 62 6f 75 74 20 69 74 20 61 74 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 re.about.it.at.http://getcompose
58480 72 2e 6f 72 67 2f 64 6f 63 2f 30 31 2d 62 61 73 69 63 2d 75 73 61 67 65 2e 6d 64 23 63 6f 6d 70 r.org/doc/01-basic-usage.md#comp
584a0 6f 73 65 72 2d 6c 6f 63 6b 2d 74 68 65 2d 6c 6f 63 6b 2d 66 69 6c 65 27 2c 0a 27 54 68 69 73 20 oser-lock-the-lock-file',.'This.
584c0 66 69 6c 65 20 69 73 20 40 67 65 6e 65 72 27 2e 27 61 74 65 64 20 61 75 74 6f 6d 61 74 69 63 61 file.is.@gener'.'ated.automatica
584e0 6c 6c 79 27 29 2c 0a 27 68 61 73 68 27 20 3d 3e 20 24 74 68 69 73 2d 3e 68 61 73 68 2c 0a 27 70 lly'),.'hash'.=>.$this->hash,.'p
58500 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 ackages'.=>.null,.'packages-dev'
58520 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a .=>.null,.'aliases'.=>.array(),.
58540 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 20 3d 3e 20 24 6d 69 6e 69 6d 75 6d 53 'minimum-stability'.=>.$minimumS
58560 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 20 3d 3e 20 24 tability,.'stability-flags'.=>.$
58580 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 20 stabilityFlags,.'prefer-stable'.
585a0 3d 3e 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 0a 27 70 72 65 66 65 72 2d 6c 6f 77 65 73 74 =>.$preferStable,.'prefer-lowest
585c0 27 20 3d 3e 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 '.=>.$preferLowest,.);..foreach.
585e0 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f ($aliases.as.$package.=>.$versio
58600 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 ns).{.foreach.($versions.as.$ver
58620 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 6b 5b 27 61 6c 69 61 73 65 73 sion.=>.$alias).{.$lock['aliases
58640 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 5b '][].=.array(.'alias'.=>.$alias[
58660 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 'alias'],.'alias_normalized'.=>.
58680 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 0a 27 76 65 72 $alias['alias_normalized'],.'ver
586a0 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 sion'.=>.$version,.'package'.=>.
586c0 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 $package,.);.}.}..$lock['package
586e0 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 s'].=.$this->lockPackages($packa
58700 67 65 73 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 ges);.if.(null.!==.$devPackages)
58720 20 7b 0a 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 20 3d 20 24 74 68 69 73 .{.$lock['packages-dev'].=.$this
58740 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a ->lockPackages($devPackages);.}.
58760 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 .$lock['platform'].=.$platformRe
58780 71 73 3b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3d 20 24 70 6c 61 qs;.$lock['platform-dev'].=.$pla
587a0 74 66 6f 72 6d 44 65 76 52 65 71 73 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 tformDevReqs;..if.(empty($lock['
587c0 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b packages']).&&.empty($lock['pack
587e0 61 67 65 73 2d 64 65 76 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 6c 61 74 ages-dev']).&&.empty($lock['plat
58800 66 6f 72 6d 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d form']).&&.empty($lock['platform
58820 2d 64 65 76 27 5d 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e -dev'])).{.if.($this->lockFile->
58840 65 78 69 73 74 73 28 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 exists()).{.unlink($this->lockFi
58860 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b le->getPath());.}..return.false;
58880 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 20 7c 7c 20 24 6c .}..if.(!$this->isLocked().||.$l
588a0 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 29 20 7b 0a ock.!==.$this->getLockData()).{.
588c0 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 72 69 74 65 28 24 6c 6f 63 6b 29 3b 0a 24 $this->lockFile->write($lock);.$
588e0 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 this->lockDataCache.=.null;..ret
58900 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 urn.true;.}..return.false;.}..pr
58920 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 61 72 72 61 ivate.function.lockPackages(arra
58940 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f 63 6b 65 64 20 3d 20 61 72 72 61 79 28 29 y.$packages).{.$locked.=.array()
58960 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 ;..foreach.($packages.as.$packag
58980 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 e).{.if.($package.instanceof.Ali
589a0 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 asPackage).{.continue;.}..$name.
589c0 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 76 65 =.$package->getPrettyName();.$ve
589e0 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 rsion.=.$package->getPrettyVersi
58a00 6f 6e 28 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 7c 7c 20 21 24 76 65 72 73 69 6f 6e 29 20 on();..if.(!$name.||.!$version).
58a20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 {.throw.new.\LogicException(spri
58a40 6e 74 66 28 0a 27 50 61 63 6b 61 67 65 20 22 25 73 22 20 68 61 73 20 6e 6f 20 76 65 72 73 69 6f ntf(.'Package."%s".has.no.versio
58a60 6e 20 6f 72 20 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 64 27 n.or.name.and.can.not.be.locked'
58a80 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a 24 73 70 65 63 20 3d 20 24 74 68 69 73 2d ,.$package.));.}..$spec.=.$this-
58aa0 3e 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 67 65 29 3b 0a 75 6e 73 65 74 28 24 >dumper->dump($package);.unset($
58ac0 73 70 65 63 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 spec['version_normalized']);....
58ae0 24 74 69 6d 65 20 3d 20 69 73 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 29 20 3f 20 24 $time.=.isset($spec['time']).?.$
58b00 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 spec['time'].:.null;.unset($spec
58b20 5b 27 74 69 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 ['time']);.if.($package->isDev()
58b40 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 .&&.$package->getInstallationSou
58b60 72 63 65 28 29 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 29 20 7b 0a 0a 20 24 74 69 6d 65 20 3d 20 rce().===.'source').{...$time.=.
58b80 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 28 24 70 61 63 6b 61 67 65 29 20 $this->getPackageTime($package).
58ba0 3f 3a 20 24 74 69 6d 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 29 20 ?:.$time;.}.if.(null.!==.$time).
58bc0 7b 0a 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3d 20 24 74 69 6d 65 3b 0a 7d 0a 0a 75 6e 73 65 {.$spec['time'].=.$time;.}..unse
58be0 74 28 24 73 70 65 63 5b 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 3b t($spec['installation-source']);
58c00 0a 0a 24 6c 6f 63 6b 65 64 5b 5d 20 3d 20 24 73 70 65 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c ..$locked[].=.$spec;.}..usort($l
58c20 6f 63 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 ocked,.function.($a,.$b).{.$comp
58c40 61 72 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 28 24 61 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 arison.=.strcmp($a['name'],.$b['
58c60 6e 61 6d 65 27 5d 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 name']);..if.(0.!==.$comparison)
58c80 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 61 72 69 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 .{.return.$comparison;.}....retu
58ca0 72 6e 20 73 74 72 63 6d 70 28 24 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 rn.strcmp($a['version'],.$b['ver
58cc0 73 69 6f 6e 27 5d 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a sion']);.});..return.$locked;.}.
58ce0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 .......private.function.getPacka
58d00 67 65 54 69 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 geTime(PackageInterface.$package
58d20 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f ).{.if.(!function_exists('proc_o
58d40 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d pen')).{.return.null;.}..$path.=
58d60 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e .realpath($this->installationMan
58d80 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b ager->getInstallPath($package));
58da0 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 .$sourceType.=.$package->getSour
58dc0 63 65 54 79 70 65 28 29 3b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 ceType();.$datetime.=.null;..if.
58de0 28 24 70 61 74 68 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 73 6f 75 72 63 65 54 79 70 65 2c 20 ($path.&&.in_array($sourceType,.
58e00 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 67 27 29 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 array('git',.'hg'))).{.$sourceRe
58e20 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 f.=.$package->getSourceReference
58e40 28 29 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 ().?:.$package->getDistReference
58e60 28 29 3b 0a 73 77 69 74 63 68 20 28 24 73 6f 75 72 63 65 54 79 70 65 29 20 7b 0a 63 61 73 65 20 ();.switch.($sourceType).{.case.
58e80 27 67 69 74 27 3a 0a 47 69 74 55 74 69 6c 3a 3a 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 69 66 20 'git':.GitUtil::cleanEnv();..if.
58ea0 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 (0.===.$this->process->execute('
58ec0 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 74 20 27 2e 50 72 6f 63 65 git.log.-n1.--pretty=%ct.'.Proce
58ee0 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 ssExecutor::escape($sourceRef),.
58f00 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b $output,.$path).&&.preg_match('{
58f20 5e 5c 73 2a 5c 64 2b 5c 73 2a 24 7d 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 64 61 74 65 ^\s*\d+\s*$}',.$output)).{.$date
58f40 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 69 6d 28 24 6f time.=.new.\DateTime('@'.trim($o
58f60 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 utput),.new.\DateTimeZone('UTC')
58f80 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 67 27 3a 0a 69 66 20 28 30 20 3d 3d );.}.break;..case.'hg':.if.(0.==
58fa0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 6c 6f =.$this->process->execute('hg.lo
58fc0 67 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 68 67 64 61 74 65 7d 22 20 2d 72 20 g.--template."{date|hgdate}".-r.
58fe0 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 '.ProcessExecutor::escape($sourc
59000 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d eRef),.$output,.$path).&&.preg_m
59020 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 64 2b 29 5c 73 2a 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 atch('{^\s*(\d+)\s*}',.$output,.
59040 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 $match)).{.$datetime.=.new.\Date
59060 54 69 6d 65 28 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d Time('@'.$match[1],.new.\DateTim
59080 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 eZone('UTC'));.}.break;.}.}..ret
590a0 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3f 20 24 64 61 74 65 74 69 6d 65 2d 3e 66 6f 72 6d 61 urn.$datetime.?.$datetime->forma
590c0 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 t('Y-m-d.H:i:s').:.null;.}.}.<?p
590e0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
59100 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f \Package;..use.Composer\Reposito
59120 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e ry\RepositoryInterface;.......in
59140 74 65 72 66 61 63 65 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a terface.PackageInterface.{......
59160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a public.function.getName();......
59180 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 .public.function.getPrettyName()
591a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 ;..........public.function.getNa
591c0 6d 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 mes();.......public.function.set
591e0 49 64 28 24 69 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 Id($id);.......public.function.g
59200 65 74 49 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 etId();.......public.function.is
59220 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 Dev();.......public.function.get
59240 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Type();.......public.function.ge
59260 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tTargetDir();.......public.funct
59280 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ion.getExtra();.......public.fun
592a0 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 ction.setInstallationSource($typ
592c0 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 e);.......public.function.getIns
592e0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tallationSource();.......public.
59300 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a function.getSourceType();.......
59320 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a public.function.getSourceUrl();.
59340 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 ......public.function.getSourceU
59360 72 6c 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 rls();.......public.function.get
59380 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 SourceReference();.......public.
593a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 3b 0a 0a 0a 0a function.getSourceMirrors();....
593c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 ...public.function.getDistType()
593e0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 ;.......public.function.getDistU
59400 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 rl();.......public.function.getD
59420 69 73 74 55 72 6c 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e istUrls();.......public.function
59440 20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .getDistReference();.......publi
59460 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 c.function.getDistSha1Checksum()
59480 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 4d ;.......public.function.getDistM
594a0 69 72 72 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 irrors();.......public.function.
594c0 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 getVersion();.......public.funct
594e0 69 6f 6e 20 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ion.getPrettyVersion();.......pu
59500 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a blic.function.getReleaseDate();.
59520 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 ......public.function.getStabili
59540 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ty();........public.function.get
59560 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Requires();........public.functi
59580 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 on.getConflicts();........public
595a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a .function.getProvides();........
595c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a public.function.getReplaces();..
595e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 ......public.function.getDevRequ
59600 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ires();........public.function.g
59620 65 74 53 75 67 67 65 73 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 etSuggests();............public.
59640 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a function.getAutoload();.........
59660 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 ...public.function.getDevAutoloa
59680 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 d();........public.function.getI
596a0 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ncludePaths();.......public.func
596c0 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 tion.setRepository(RepositoryInt
596e0 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 erface.$repository);.......publi
59700 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 0a 0a 0a c.function.getRepository();.....
59720 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b ..public.function.getBinaries();
59740 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 6e 69 71 75 65 .......public.function.getUnique
59760 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Name();.......public.function.ge
59780 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 tNotificationUrl();.......public
597a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 .function.__toString();.......pu
597c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b blic.function.getPrettyString();
597e0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 .......public.function.getArchiv
59800 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eExcludes();.......public.functi
59820 6f 6e 20 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 7d 0a 3c 3f 70 68 on.getTransportOptions();.}.<?ph
59840 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
59860 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 Package;..use.Composer\Repositor
59880 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f y\RepositoryInterface;.use.Compo
598a0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 ser\Repository\PlatformRepositor
598c0 79 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 61 63 6b y;.......abstract.class.BasePack
598e0 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a age.implements.PackageInterface.
59900 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 {.public.static.$supportedLinkTy
59920 70 65 73 20 3d 20 61 72 72 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 pes.=.array(.'require'.=>.array(
59940 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 27 6d 65 'description'.=>.'requires',.'me
59960 74 68 6f 64 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 thod'.=>.'requires'),.'conflict'
59980 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 6f 6e 66 .=>.array('description'.=>.'conf
599a0 6c 69 63 74 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 licts',.'method'.=>.'conflicts')
599c0 2c 0a 27 70 72 6f 76 69 64 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f ,.'provide'.=>.array('descriptio
599e0 6e 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 70 n'.=>.'provides',.'method'.=>.'p
59a00 72 6f 76 69 64 65 73 27 29 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 rovides'),.'replace'.=>.array('d
59a20 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d 65 74 68 escription'.=>.'replaces',.'meth
59a40 6f 64 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 od'.=>.'replaces'),.'require-dev
59a60 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 72 65 71 '.=>.array('description'.=>.'req
59a80 75 69 72 65 73 20 28 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 74 68 6f uires.(for.development)',.'metho
59aa0 64 27 20 3d 3e 20 27 64 65 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e 73 74 20 d'.=>.'devRequires'),.);..const.
59ac0 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 STABILITY_STABLE.=.0;.const.STAB
59ae0 49 4c 49 54 59 5f 52 43 20 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 42 45 ILITY_RC.=.5;.const.STABILITY_BE
59b00 54 41 20 3d 20 31 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 20 3d TA.=.10;.const.STABILITY_ALPHA.=
59b20 20 31 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 3b 0a 0a .15;.const.STABILITY_DEV.=.20;..
59b40 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 public.static.$stabilities.=.arr
59b60 61 79 28 0a 27 73 74 61 62 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f ay(.'stable'.=>.self::STABILITY_
59b80 53 54 41 42 4c 45 2c 0a 27 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f STABLE,.'RC'.=>.self::STABILITY_
59ba0 52 43 2c 0a 27 62 65 74 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 RC,.'beta'.=>.self::STABILITY_BE
59bc0 54 41 2c 0a 27 61 6c 70 68 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 TA,.'alpha'.=>.self::STABILITY_A
59be0 4c 50 48 41 2c 0a 27 64 65 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 44 LPHA,.'dev'.=>.self::STABILITY_D
59c00 45 56 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 24 69 64 3b 0a 0a 70 72 6f 74 65 63 74 EV,.);......public.$id;..protect
59c20 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 4e 61 6d 65 3b ed.$name;.protected.$prettyName;
59c40 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 ..protected.$repository;.protect
59c60 65 64 20 24 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ed.$transportOptions;.......publ
59c80 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b ic.function.__construct($name).{
59ca0 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 .$this->prettyName.=.$name;.$thi
59cc0 73 2d 3e 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 s->name.=.strtolower($name);.$th
59ce0 69 73 2d 3e 69 64 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 is->id.=.-1;.$this->transportOpt
59d00 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ions.=.array();.}.....public.fun
59d20 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ction.getName().{.return.$this->
59d40 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 name;.}.....public.function.getP
59d60 72 65 74 74 79 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 rettyName().{.return.$this->pret
59d80 74 79 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tyName;.}.....public.function.ge
59da0 74 4e 61 6d 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 tNames().{.$names.=.array(.$this
59dc0 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 ->getName().=>.true,.);..foreach
59de0 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 .($this->getProvides().as.$link)
59e00 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 .{.$names[$link->getTarget()].=.
59e20 74 72 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c true;.}..foreach.($this->getRepl
59e40 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d aces().as.$link).{.$names[$link-
59e60 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 >getTarget()].=.true;.}..return.
59e80 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 array_keys($names);.}.....public
59ea0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 .function.setId($id).{.$this->id
59ec0 20 3d 20 24 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 .=.$id;.}.....public.function.ge
59ee0 74 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a 0a tId().{.return.$this->id;.}.....
59f00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 52 65 public.function.setRepository(Re
59f20 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b positoryInterface.$repository).{
59f40 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 73 .if.($this->repository.&&.$repos
59f60 69 74 6f 72 79 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 74 itory.!==.$this->repository).{.t
59f80 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 70 61 63 6b hrow.new.\LogicException('A.pack
59fa0 61 67 65 20 63 61 6e 20 6f 6e 6c 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 6f 6e 65 20 72 65 70 age.can.only.be.added.to.one.rep
59fc0 6f 73 69 74 6f 72 79 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d ository');.}.$this->repository.=
59fe0 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$repository;.}.....public.funct
5a000 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion.getRepository().{.return.$th
5a020 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->repository;.}.....public.fun
5a040 63 74 69 6f 6e 20 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 ction.getTransportOptions().{.re
5a060 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 3b 0a 7d 0a turn.$this->transportOptions;.}.
5a080 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 72 61 6e 73 70 6f ......public.function.setTranspo
5a0a0 72 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 rtOptions(array.$options).{.$thi
5a0c0 73 2d 3e 74 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a s->transportOptions.=.$options;.
5a0e0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 6c 61 74 66 6f }.......public.function.isPlatfo
5a100 72 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f rm().{.return.$this->getReposito
5a120 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f ry().instanceof.PlatformReposito
5a140 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 ry;.}.......public.function.getU
5a160 6e 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4e niqueName().{.return.$this->getN
5a180 61 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 7d ame().'-'.$this->getVersion();.}
5a1a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 50 61 63 6b 61 67 65 ..public.function.equals(Package
5a1c0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 Interface.$package).{.$self.=.$t
5a1e0 68 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 his;.if.($this.instanceof.AliasP
5a200 61 63 6b 61 67 65 29 20 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 6c 69 61 ackage).{.$self.=.$this->getAlia
5a220 73 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 sOf();.}.if.($package.instanceof
5a240 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 .AliasPackage).{.$package.=.$pac
5a260 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 kage->getAliasOf();.}..return.$p
5a280 61 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ackage.===.$self;.}.......public
5a2a0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.__toString().{.return.
5a2c0 24 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 $this->getUniqueName();.}..publi
5a2e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 72 c.function.getPrettyString().{.r
5a300 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 27 eturn.$this->getPrettyName().'.'
5a320 2e 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 .$this->getPrettyVersion();.}..p
5a340 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 73 ublic.function.__clone().{.$this
5a360 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d ->repository.=.null;.$this->id.=
5a380 20 2d 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 .-1;.}.}.<?php............namesp
5a3a0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 3b 0a 0a 75 ace.Composer\Package\Version;..u
5a3c0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 se.Composer\DependencyResolver\P
5a3e0 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 ool;.use.Composer\Package\Packag
5a400 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 eInterface;.use.Composer\Package
5a420 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \Loader\ArrayLoader;.use.Compose
5a440 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a r\Package\Dumper\ArrayDumper;...
5a460 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 53 65 6c 65 63 74 6f 72 0a 7b 0a 70 72 69 76 ....class.VersionSelector.{.priv
5a480 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 72 3b 0a 0a 70 75 ate.$pool;..private.$parser;..pu
5a4a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 blic.function.__construct(Pool.$
5a4c0 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a pool).{.$this->pool.=.$pool;.}..
5a4e0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 42 65 73 74 ........public.function.findBest
5a500 43 61 6e 64 69 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 74 61 72 67 65 74 50 Candidate($packageName,.$targetP
5a520 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 ackageVersion.=.null).{.$constra
5a540 69 6e 74 20 3d 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 24 74 int.=.$targetPackageVersion.?.$t
5a560 68 69 73 2d 3e 67 65 74 50 61 72 73 65 72 28 29 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e his->getParser()->parseConstrain
5a580 74 73 28 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c ts($targetPackageVersion).:.null
5a5a0 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 ;.$candidates.=.$this->pool->wha
5a5c0 74 50 72 6f 76 69 64 65 73 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d tProvides(strtolower($packageNam
5a5e0 65 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 24 63 e),.$constraint,.true);..if.(!$c
5a600 61 6e 64 69 64 61 74 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 andidates).{.return.false;.}....
5a620 24 70 61 63 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 66 $package.=.reset($candidates);.f
5a640 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 oreach.($candidates.as.$candidat
5a660 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 e).{.if.(version_compare($packag
5a680 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 e->getVersion(),.$candidate->get
5a6a0 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 Version(),.'<')).{.$package.=.$c
5a6c0 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a andidate;.}.}..return.$package;.
5a6e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f }.................public.functio
5a700 6e 20 66 69 6e 64 52 65 63 6f 6d 6d 65 6e 64 65 64 52 65 71 75 69 72 65 56 65 72 73 69 6f 6e 28 n.findRecommendedRequireVersion(
5a720 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 76 65 PackageInterface.$package).{.$ve
5a740 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a rsion.=.$package->getVersion();.
5a760 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 72 65 74 75 72 6e if.(!$package->isDev()).{.return
5a780 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 66 6f 72 6d 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f .$this->transformVersion($versio
5a7a0 6e 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c n,.$package->getPrettyVersion(),
5a7c0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 3b 0a 7d 0a 0a 24 .$package->getStability());.}..$
5a7e0 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e loader.=.new.ArrayLoader($this->
5a800 67 65 74 50 61 72 73 65 72 28 29 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 getParser());.$dumper.=.new.Arra
5a820 79 44 75 6d 70 65 72 28 29 3b 0a 24 65 78 74 72 61 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 67 65 74 yDumper();.$extra.=.$loader->get
5a840 42 72 61 6e 63 68 41 6c 69 61 73 28 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 6b 61 BranchAlias($dumper->dump($packa
5a860 67 65 29 29 3b 0a 69 66 20 28 24 65 78 74 72 61 29 20 7b 0a 24 65 78 74 72 61 20 3d 20 70 72 65 ge));.if.($extra).{.$extra.=.pre
5a880 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 64 2b 5c 2e 5c 64 2b 5c 2e 5c 64 2b 29 28 5c 2e 39 g_replace('{^(\d+\.\d+\.\d+)(\.9
5a8a0 39 39 39 39 39 39 29 2d 64 65 76 24 7d 27 2c 20 27 24 31 2e 30 27 2c 20 24 65 78 74 72 61 2c 20 999999)-dev$}',.'$1.0',.$extra,.
5a8c0 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 29 20 7b 0a 24 65 78 74 72 -1,.$count);.if.($count).{.$extr
5a8e0 61 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 39 39 39 39 39 39 39 27 2c 20 27 2e 30 27 a.=.str_replace('.9999999',.'.0'
5a900 2c 20 24 65 78 74 72 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 66 ,.$extra);..return.$this->transf
5a920 6f 72 6d 56 65 72 73 69 6f 6e 28 24 65 78 74 72 61 2c 20 24 65 78 74 72 61 2c 20 27 64 65 76 27 ormVersion($extra,.$extra,.'dev'
5a940 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 );.}.}..return.$package->getPret
5a960 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e tyVersion();.}..private.function
5a980 20 74 72 61 6e 73 66 6f 72 6d 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 .transformVersion($version,.$pre
5a9a0 74 74 79 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 0a 20 0a 20 24 73 ttyVersion,.$stability).{.....$s
5a9c0 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e emanticVersionParts.=.explode('.
5a9e0 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 6f 70 20 3d 20 27 7e 27 3b 0a 0a 0a 20 69 66 20 28 ',.$version);.$op.=.'~';....if.(
5aa00 63 6f 75 6e 74 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 29 20 3d 3d 20 count($semanticVersionParts).==.
5aa20 34 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 30 5c 44 3f 7d 27 2c 20 24 73 65 6d 61 4.&&.preg_match('{^0\D?}',.$sema
5aa40 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 5d 29 29 20 7b 0a 0a 20 69 66 20 28 24 73 nticVersionParts[3])).{...if.($s
5aa60 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 30 5d 20 3d 3d 3d 20 27 30 27 29 20 emanticVersionParts[0].===.'0').
5aa80 7b 0a 69 66 20 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 31 5d 20 3d {.if.($semanticVersionParts[1].=
5aaa0 3d 3d 20 27 30 27 29 20 7b 0a 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b ==.'0').{.$semanticVersionParts[
5aac0 33 5d 20 3d 20 27 2a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6d 61 6e 74 69 63 56 65 72 73 3].=.'*';.}.else.{.$semanticVers
5aae0 69 6f 6e 50 61 72 74 73 5b 32 5d 20 3d 20 27 2a 27 3b 0a 75 6e 73 65 74 28 24 73 65 6d 61 6e 74 ionParts[2].=.'*';.unset($semant
5ab00 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 5d 29 3b 0a 7d 0a 24 6f 70 20 3d 20 27 27 3b 0a icVersionParts[3]);.}.$op.=.'';.
5ab20 7d 20 65 6c 73 65 20 7b 0a 75 6e 73 65 74 28 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 }.else.{.unset($semanticVersionP
5ab40 61 72 74 73 5b 32 5d 2c 20 24 73 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 5b 33 arts[2],.$semanticVersionParts[3
5ab60 5d 29 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 73 ]);.}.$version.=.implode('.',.$s
5ab80 65 6d 61 6e 74 69 63 56 65 72 73 69 6f 6e 50 61 72 74 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 emanticVersionParts);.}.else.{.r
5aba0 65 74 75 72 6e 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 eturn.$prettyVersion;.}....if.($
5abc0 73 74 61 62 69 6c 69 74 79 20 21 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 76 65 72 73 69 6f stability.!=.'stable').{.$versio
5abe0 6e 20 2e 3d 20 27 40 27 2e 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e n..=.'@'.$stability;.}....return
5ac00 20 24 6f 70 2e 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 .$op.$version;.}..private.functi
5ac20 6f 6e 20 67 65 74 50 61 72 73 65 72 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 72 73 on.getParser().{.if.($this->pars
5ac40 65 72 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 72 20 3d 20 6e er.===.null).{.$this->parser.=.n
5ac60 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ew.VersionParser();.}..return.$t
5ac80 68 69 73 2d 3e 70 61 72 73 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a his->parser;.}.}.<?php..........
5aca0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 ..namespace.Composer\Package\Ver
5acc0 73 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 sion;..use.Composer\Package\Base
5ace0 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 Package;.use.Composer\Package\Pa
5ad00 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ckageInterface;.use.Composer\Pac
5ad20 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c kage\Link;.use.Composer\Package\
5ad40 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a LinkConstraint\EmptyConstraint;.
5ad60 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 use.Composer\Package\LinkConstra
5ad80 69 6e 74 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 int\MultiConstraint;.use.Compose
5ada0 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e r\Package\LinkConstraint\Version
5adc0 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 50 Constraint;.......class.VersionP
5ade0 61 72 73 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6d 6f 64 69 66 69 65 72 arser.{.private.static.$modifier
5ae00 52 65 67 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 73 74 61 62 6c 65 7c 62 65 74 61 7c 62 Regex.=.'[._-]?(?:(stable|beta|b
5ae20 7c 52 43 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b 2e 2d 5d 3f 28 |RC|alpha|a|patch|pl|p)(?:[.-]?(
5ae40 5c 64 2b 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 \d+))?)?([.-]?dev)?';........pub
5ae60 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 61 62 69 6c 69 lic.static.function.parseStabili
5ae80 74 79 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 ty($version).{.$version.=.preg_r
5aea0 65 70 6c 61 63 65 28 27 7b 23 2e 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b eplace('{#.+$}i',.'',.$version);
5aec0 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e ..if.('dev-'.===.substr($version
5aee0 2c 20 30 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 ,.0,.4).||.'-dev'.===.substr($ve
5af00 72 73 69 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 rsion,.-4)).{.return.'dev';.}..p
5af20 72 65 67 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 reg_match('{'.self::$modifierReg
5af40 65 78 2e 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 29 2c 20 ex.'$}i',.strtolower($version),.
5af60 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 33 5d 29 29 20 $match);.if.(!empty($match[3])).
5af80 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d {.return.'dev';.}..if.(!empty($m
5afa0 61 74 63 68 5b 31 5d 29 29 20 7b 0a 69 66 20 28 27 62 65 74 61 27 20 3d 3d 3d 20 24 6d 61 74 63 atch[1])).{.if.('beta'.===.$matc
5afc0 68 5b 31 5d 20 7c 7c 20 27 62 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 h[1].||.'b'.===.$match[1]).{.ret
5afe0 75 72 6e 20 27 62 65 74 61 27 3b 0a 7d 0a 69 66 20 28 27 61 6c 70 68 61 27 20 3d 3d 3d 20 24 6d urn.'beta';.}.if.('alpha'.===.$m
5b000 61 74 63 68 5b 31 5d 20 7c 7c 20 27 61 27 20 3d 3d 3d 20 24 6d 61 74 63 68 5b 31 5d 29 20 7b 0a atch[1].||.'a'.===.$match[1]).{.
5b020 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 72 63 27 20 3d 3d 3d 20 24 return.'alpha';.}.if.('rc'.===.$
5b040 6d 61 74 63 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 7d 0a 7d 0a 0a 72 65 match[1]).{.return.'RC';.}.}..re
5b060 74 75 72 6e 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 turn.'stable';.}..public.static.
5b080 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 function.normalizeStability($sta
5b0a0 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 bility).{.$stability.=.strtolowe
5b0c0 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 r($stability);..return.$stabilit
5b0e0 79 20 3d 3d 3d 20 27 72 63 27 20 3f 20 27 52 43 27 20 3a 20 24 73 74 61 62 69 6c 69 74 79 3b 0a y.===.'rc'.?.'RC'.:.$stability;.
5b100 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 }..public.static.function.format
5b120 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 Version(PackageInterface.$packag
5b140 65 2c 20 24 74 72 75 6e 63 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 21 24 70 61 63 e,.$truncate.=.true).{.if.(!$pac
5b160 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b kage->isDev().||.!in_array($pack
5b180 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 68 67 27 age->getSourceType(),.array('hg'
5b1a0 2c 20 27 67 69 74 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ,.'git'))).{.return.$package->ge
5b1c0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 72 75 6e tPrettyVersion();.}....if.($trun
5b1e0 63 61 74 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 cate.&&.strlen($package->getSour
5b200 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b 0a 72 65 74 75 72 6e 20 ceReference()).===.40).{.return.
5b220 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 $package->getPrettyVersion()...'
5b240 20 27 20 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 .'...substr($package->getSourceR
5b260 65 66 65 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 eference(),.0,.7);.}..return.$pa
5b280 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 ckage->getPrettyVersion()...'.'.
5b2a0 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 ..$package->getSourceReference()
5b2c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 ;.}..........public.function.nor
5b2e0 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 malize($version,.$fullVersion.=.
5b300 6e 75 6c 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 76 65 72 73 69 6f 6e null).{.$version.=.trim($version
5b320 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 20 7b 0a );.if.(null.===.$fullVersion).{.
5b340 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 $fullVersion.=.$version;.}....if
5b360 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 .(preg_match('{^([^,\s]+).+as.+(
5b380 5b 5e 2c 5c 73 5d 2b 29 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 [^,\s]+)$}',.$version,.$match)).
5b3a0 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 {.$version.=.$match[1];.}....if.
5b3c0 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 2b 5d 2b 29 5c 2b 5b 5e 5c 73 5d (preg_match('{^([^,\s+]+)\+[^\s]
5b3e0 2b 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 76 65 72 73 +$}',.$version,.$match)).{.$vers
5b400 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d ion.=.$match[1];.}....if.(preg_m
5b420 61 74 63 68 28 27 7b 5e 28 3f 3a 64 65 76 2d 29 3f 28 3f 3a 6d 61 73 74 65 72 7c 74 72 75 6e 6b atch('{^(?:dev-)?(?:master|trunk
5b440 7c 64 65 66 61 75 6c 74 29 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 |default)$}i',.$version)).{.retu
5b460 72 6e 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 27 64 65 76 2d 27 20 rn.'9999999-dev';.}..if.('dev-'.
5b480 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 ===.strtolower(substr($version,.
5b4a0 30 2c 20 34 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 73 75 62 73 74 72 28 24 0,.4))).{.return.'dev-'.substr($
5b4c0 76 65 72 73 69 6f 6e 2c 20 34 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 version,.4);.}....if.(preg_match
5b4e0 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 ('{^v?(\d{1,3})(\.\d+)?(\.\d+)?(
5b500 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 \.\d+)?'.self::$modifierRegex.'$
5b520 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 }i',.$version,.$matches)).{.$ver
5b540 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 sion.=.$matches[1]..(!empty($mat
5b560 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e ches[2]).?.$matches[2].:.'.0')..
5b580 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b (!empty($matches[3]).?.$matches[
5b5a0 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 3].:.'.0')..(!empty($matches[4])
5b5c0 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d .?.$matches[4].:.'.0');.$index.=
5b5e0 20 35 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c .5;.}.elseif.(preg_match('{^v?(\
5b600 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d 29 7b 31 2c 36 7d 28 3f 3a 5b 2e 3a 2d 5d d{4}(?:[.:-]?\d{2}){1,6}(?:[.:-]
5b620 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 ?\d{1,3})?)'.self::$modifierRege
5b640 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 20 x.'$}i',.$version,.$matches)).{.
5b660 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 44 7d 27 ..$version.=.preg_replace('{\D}'
5b680 2c 20 27 2d 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 24 69 6e 64 65 78 20 3d 20 32 3b ,.'-',.$matches[1]);.$index.=.2;
5b6a0 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 34 .}.elseif.(preg_match('{^v?(\d{4
5b6c0 2c 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c ,})(\.\d+)?(\.\d+)?(\.\d+)?'.sel
5b6e0 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 76 65 72 73 69 6f f::$modifierRegex.'$}i',.$versio
5b700 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 n,.$matches)).{.$version.=.$matc
5b720 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 hes[1]..(!empty($matches[2]).?.$
5b740 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 matches[2].:.'.0')..(!empty($mat
5b760 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e ches[3]).?.$matches[3].:.'.0')..
5b780 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b (!empty($matches[4]).?.$matches[
5b7a0 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 24 69 6e 64 65 78 20 3d 20 35 3b 0a 7d 0a 0a 0a 20 69 66 20 4].:.'.0');.$index.=.5;.}....if.
5b7c0 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 (isset($index)).{.if.(!empty($ma
5b7e0 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 29 20 7b 0a 69 66 20 28 27 73 74 61 62 6c 65 27 20 3d tches[$index])).{.if.('stable'.=
5b800 3d 3d 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 ==.$matches[$index]).{.return.$v
5b820 65 72 73 69 6f 6e 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 ersion;.}.$version..=.'-'...$thi
5b840 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 s->expandStability($matches[$ind
5b860 65 78 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 ex])...(!empty($matches[$index+1
5b880 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 20 3a 20 27 27 29 3b 0a 7d ]).?.$matches[$index+1].:.'');.}
5b8a0 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 2b 32 5d 29 ..if.(!empty($matches[$index+2])
5b8c0 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 ).{.$version..=.'-dev';.}..retur
5b8e0 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 n.$version;.}....if.(preg_match(
5b900 27 7b 28 2e 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 '{(.*?)[.-]?dev$}i',.$version,.$
5b920 6d 61 74 63 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f match)).{.try.{.return.$this->no
5b940 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 rmalizeBranch($match[1]);.}.catc
5b960 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 24 65 78 74 72 61 4d h.(\Exception.$e).{.}.}..$extraM
5b980 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 20 2b essage.=.'';.if.(preg_match('{.+
5b9a0 61 73 20 2b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 2e 27 24 7d 27 2c as.+'.preg_quote($version).'$}',
5b9c0 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 .$fullVersion)).{.$extraMessage.
5b9e0 3d 20 27 20 69 6e 20 22 27 2e 24 66 75 6c 6c 56 65 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 =.'.in."'.$fullVersion.'",.the.a
5ba00 6c 69 61 73 20 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 27 3b 0a lias.must.be.an.exact.version';.
5ba20 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 27 2e 70 72 65 67 5f 71 }.elseif.(preg_match('{^'.preg_q
5ba40 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 2e 27 20 2b 61 73 20 2b 7d 27 2c 20 24 66 75 6c 6c 56 uote($version).'.+as.+}',.$fullV
5ba60 65 72 73 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 ersion)).{.$extraMessage.=.'.in.
5ba80 22 27 2e 24 66 75 6c 6c 56 65 72 73 69 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 73 6f "'.$fullVersion.'",.the.alias.so
5baa0 75 72 63 65 20 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 74 20 76 65 72 73 69 6f 6e 2c 20 69 urce.must.be.an.exact.version,.i
5bac0 66 20 69 74 20 69 73 20 61 20 62 72 61 6e 63 68 20 6e 61 6d 65 20 79 6f 75 20 73 68 6f 75 6c 64 f.it.is.a.branch.name.you.should
5bae0 20 70 72 65 66 69 78 20 69 74 20 77 69 74 68 20 64 65 76 2d 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 .prefix.it.with.dev-';.}..throw.
5bb00 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 49 new.\UnexpectedValueException('I
5bb20 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e 67 20 22 27 2e 24 76 65 72 73 69 6f nvalid.version.string."'.$versio
5bb40 6e 2e 27 22 27 2e 24 65 78 74 72 61 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a n.'"'.$extraMessage);.}.........
5bb60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4e 75 6d 65 72 69 63 41 6c 69 61 public.function.parseNumericAlia
5bb80 73 50 72 65 66 69 78 28 24 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 sPrefix($branch).{.if.(preg_matc
5bba0 68 28 27 2f 5e 28 3f 50 3c 76 65 72 73 69 6f 6e 3e 28 5c 64 2b 5c 5c 2e 29 2a 5c 64 2b 29 28 3f h('/^(?P<version>(\d+\\.)*\d+)(?
5bbc0 3a 5c 2e 78 29 3f 2d 64 65 76 24 2f 69 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 65 :\.x)?-dev$/i',.$branch,.$matche
5bbe0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 27 76 65 72 73 69 6f 6e 27 5d s)).{.return.$matches['version']
5bc00 2e 22 2e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .".";.}..return.false;.}........
5bc20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 public.function.normalizeBranch(
5bc40 24 6e 61 6d 65 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 74 72 69 6d 28 24 6e 61 6d 65 29 3b 0a 0a 69 $name).{.$name.=.trim($name);..i
5bc60 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 6d 61 73 74 65 72 f.(in_array($name,.array('master
5bc80 27 2c 20 27 74 72 75 6e 6b 27 2c 20 27 64 65 66 61 75 6c 74 27 29 29 29 20 7b 0a 72 65 74 75 72 ',.'trunk',.'default'))).{.retur
5bca0 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 69 66 n.$this->normalize($name);.}..if
5bcc0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 76 3f 28 5c 64 2b 29 28 5c 2e 28 3f 3a 5c 64 2b .(preg_match('#^v?(\d+)(\.(?:\d+
5bce0 7c 5b 78 58 2a 5d 29 29 3f 28 5c 2e 28 3f 3a 5c 64 2b 7c 5b 78 58 2a 5d 29 29 3f 28 5c 2e 28 3f |[xX*]))?(\.(?:\d+|[xX*]))?(\.(?
5bd00 3a 5c 64 2b 7c 5b 78 58 2a 5d 29 29 3f 24 23 69 27 2c 20 24 6e 61 6d 65 2c 20 24 6d 61 74 63 68 :\d+|[xX*]))?$#i',.$name,.$match
5bd20 65 73 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 27 3b 0a 66 6f 72 20 28 24 69 20 3d 20 es)).{.$version.=.'';.for.($i.=.
5bd40 31 3b 20 24 69 20 3c 20 35 3b 20 24 69 2b 2b 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 69 1;.$i.<.5;.$i++).{.$version..=.i
5bd60 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 29 20 3f 20 73 74 72 5f 72 65 70 6c 61 63 65 sset($matches[$i]).?.str_replace
5bd80 28 61 72 72 61 79 28 27 2a 27 2c 20 27 58 27 29 2c 20 27 78 27 2c 20 24 6d 61 74 63 68 65 73 5b (array('*',.'X'),.'x',.$matches[
5bda0 24 69 5d 29 20 3a 20 27 2e 78 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 $i]).:.'.x';.}..return.str_repla
5bdc0 63 65 28 27 78 27 2c 20 27 39 39 39 39 39 39 39 27 2c 20 24 76 65 72 73 69 6f 6e 29 2e 27 2d 64 ce('x',.'9999999',.$version).'-d
5bde0 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 24 6e 61 6d 65 3b 0a 7d 0a 0a ev';.}..return.'dev-'.$name;.}..
5be00 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 69 6e 6b .......public.function.parseLink
5be20 73 28 24 73 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 2c 20 24 64 65 73 63 s($source,.$sourceVersion,.$desc
5be40 72 69 70 74 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 3d 20 61 72 72 61 79 28 ription,.$links).{.$res.=.array(
5be60 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e );.foreach.($links.as.$target.=>
5be80 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f .$constraint).{.if.('self.versio
5bea0 6e 27 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e n'.===.$constraint).{.$parsedCon
5bec0 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 straint.=.$this->parseConstraint
5bee0 73 28 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 s($sourceVersion);.}.else.{.$par
5bf00 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 sedConstraint.=.$this->parseCons
5bf20 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 72 65 73 5b 73 74 72 traints($constraint);.}.$res[str
5bf40 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 73 6f tolower($target)].=.new.Link($so
5bf60 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 urce,.$target,.$parsedConstraint
5bf80 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a ,.$description,.$constraint);.}.
5bfa0 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$res;.}........public.fu
5bfc0 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 nction.parseConstraints($constra
5bfe0 69 6e 74 73 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e ints).{.$prettyConstraint.=.$con
5c000 73 74 72 61 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e straints;..if.(preg_match('{^([^
5c020 2c 5c 73 5d 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 ,\s]*?)@('.implode('|',.array_ke
5c040 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 ys(BasePackage::$stabilities)).'
5c060 29 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a )$}i',.$constraints,.$match)).{.
5c080 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 20 $constraints.=.empty($match[1]).
5c0a0 3f 20 27 2a 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d ?.'*'.:.$match[1];.}..if.(preg_m
5c0c0 61 74 63 68 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b 5e 2c 5c 73 40 5d 2b 3f atch('{^(dev-[^,\s@]+?|[^,\s@]+?
5c0e0 5c 2e 78 2d 64 65 76 29 23 2e 2b 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 \.x-dev)#.+$}i',.$constraints,.$
5c100 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 6d 61 74 63 68 5b match)).{.$constraints.=.$match[
5c120 31 5d 3b 0a 7d 0a 0a 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 1];.}..$orConstraints.=.preg_spl
5c140 69 74 28 27 7b 5c 73 2a 5c 7c 5c 7c 3f 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 6f 6e 73 74 72 it('{\s*\|\|?\s*}',.trim($constr
5c160 61 69 6e 74 73 29 29 3b 0a 24 6f 72 47 72 6f 75 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f aints));.$orGroups.=.array();.fo
5c180 72 65 61 63 68 20 28 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 reach.($orConstraints.as.$constr
5c1a0 61 69 6e 74 73 29 20 7b 0a 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 65 67 5f aints).{.$andConstraints.=.preg_
5c1c0 73 70 6c 69 74 28 27 7b 28 3f 3c 21 5e 7c 61 73 7c 5b 3d 3e 3c 20 2c 5d 29 20 2a 28 3f 3c 21 2d split('{(?<!^|as|[=><.,]).*(?<!-
5c1e0 29 5b 2c 20 5d 28 3f 21 2d 29 20 2a 28 3f 21 2c 7c 61 73 7c 24 29 7d 27 2c 20 24 63 6f 6e 73 74 )[,.](?!-).*(?!,|as|$)}',.$const
5c200 72 61 69 6e 74 73 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e raints);.if.(count($andConstrain
5c220 74 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 ts).>.1).{.$constraintObjects.=.
5c240 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 array();.foreach.($andConstraint
5c260 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f s.as.$constraint).{.$constraintO
5c280 62 6a 65 63 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 bjects.=.array_merge($constraint
5c2a0 4f 62 6a 65 63 74 73 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 Objects,.$this->parseConstraint(
5c2c0 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 $constraint));.}.}.else.{.$const
5c2e0 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 raintObjects.=.$this->parseConst
5c300 72 61 69 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 raint($andConstraints[0]);.}..if
5c320 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 .(1.===.count($constraintObjects
5c340 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 )).{.$constraint.=.$constraintOb
5c360 6a 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d jects[0];.}.else.{.$constraint.=
5c380 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 .new.MultiConstraint($constraint
5c3a0 4f 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 24 63 6f 6e 73 Objects);.}..$orGroups[].=.$cons
5c3c0 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6f 72 47 72 traint;.}..if.(1.===.count($orGr
5c3e0 6f 75 70 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 72 6f 75 70 73 oups)).{.$constraint.=.$orGroups
5c400 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 [0];.}.else.{.$constraint.=.new.
5c420 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 66 61 6c 73 65 MultiConstraint($orGroups,.false
5c440 29 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 );.}..$constraint->setPrettyStri
5c460 6e 67 28 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 ng($prettyConstraint);..return.$
5c480 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 constraint;.}..private.function.
5c4a0 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 parseConstraint($constraint).{.i
5c4c0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f 29 40 28 27 2e 69 f.(preg_match('{^([^,\s]+?)@('.i
5c4e0 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 mplode('|',.array_keys(BasePacka
5c500 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 63 6f 6e 73 ge::$stabilities)).')$}i',.$cons
5c520 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d traint,.$match)).{.$constraint.=
5c540 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 73 .$match[1];.if.($match[2].!==.'s
5c560 74 61 62 6c 65 27 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 20 3d 20 24 table').{.$stabilityModifier.=.$
5c580 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b match[2];.}.}..if.(preg_match('{
5c5a0 5e 5b 78 58 2a 5d 28 5c 2e 5b 78 58 2a 5d 29 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e ^[xX*](\.[xX*])*$}i',.$constrain
5c5c0 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 45 6d 70 74 79 43 6f 6e 73 t)).{.return.array(new.EmptyCons
5c5e0 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 52 65 67 65 78 20 3d 20 27 28 5c 64 traint);.}..$versionRegex.=.'(\d
5c600 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 +)(?:\.(\d+))?(?:\.(\d+))?(?:\.(
5c620 5c 64 2b 29 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 3b 0a 0a 0a \d+))?'.self::$modifierRegex;...
5c640 20 0a 20 0a 20 0a 20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 7e 3e 3f 27 2e .........if.(preg_match('{^~>?'.
5c660 24 76 65 72 73 69 6f 6e 52 65 67 65 78 2e 27 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 $versionRegex.'$}i',.$constraint
5c680 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 63 6f 6e 73 74 ,.$matches)).{.if.(substr($const
5c6a0 72 61 69 6e 74 2c 20 30 2c 20 32 29 20 3d 3d 3d 20 27 7e 3e 27 29 20 7b 0a 74 68 72 6f 77 20 6e raint,.0,.2).===.'~>').{.throw.n
5c6c0 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 ew.\UnexpectedValueException(.'C
5c6e0 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e ould.not.parse.version.constrain
5c700 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 3a 20 27 2e 0a 27 49 6e 76 61 6c 69 64 20 6f t.'.$constraint.':.'..'Invalid.o
5c720 70 65 72 61 74 6f 72 20 22 7e 3e 22 2c 20 79 6f 75 20 70 72 6f 62 61 62 6c 79 20 6d 65 61 6e 74 perator."~>",.you.probably.meant
5c740 20 74 6f 20 75 73 65 20 74 68 65 20 22 7e 22 20 6f 70 65 72 61 74 6f 72 27 0a 29 3b 0a 7d 0a 0a .to.use.the."~".operator'.);.}..
5c760 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 26 26 20 27 27 20 21 ..if.(isset($matches[4]).&&.''.!
5c780 3d 3d 20 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 34 3b ==.$matches[4]).{.$position.=.4;
5c7a0 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 26 26 .}.elseif.(isset($matches[3]).&&
5c7c0 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e .''.!==.$matches[3]).{.$position
5c7e0 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 .=.3;.}.elseif.(isset($matches[2
5c800 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 ]).&&.''.!==.$matches[2]).{.$pos
5c820 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 ition.=.2;.}.else.{.$position.=.
5c840 31 3b 0a 7d 0a 0a 0a 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 27 27 3b 0a 69 1;.}....$stabilitySuffix.=.'';.i
5c860 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 29 20 7b 0a 24 73 74 61 62 69 f.(!empty($matches[5])).{.$stabi
5c880 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e litySuffix..=.'-'...$this->expan
5c8a0 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 65 73 5b 35 5d 29 20 2e 20 28 21 65 6d 70 74 dStability($matches[5])...(!empt
5c8c0 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 36 5d 20 3a 20 27 y($matches[6]).?.$matches[6].:.'
5c8e0 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 37 5d 29 29 20 ');.}..if.(!empty($matches[7])).
5c900 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a {.$stabilitySuffix..=.'-dev';.}.
5c920 0a 69 66 20 28 21 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 20 7b 0a 24 73 74 61 62 69 .if.(!$stabilitySuffix).{.$stabi
5c940 6c 69 74 79 53 75 66 66 69 78 20 3d 20 22 2d 64 65 76 22 3b 0a 7d 0a 24 6c 6f 77 56 65 72 73 69 litySuffix.=."-dev";.}.$lowVersi
5c960 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 on.=.$this->manipulateVersionStr
5c980 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 30 29 20 2e 20 24 73 ing($matches,.$position,.0)...$s
5c9a0 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 tabilitySuffix;.$lowerBound.=.ne
5c9c0 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 w.VersionConstraint('>=',.$lowVe
5c9e0 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 20 3d 20 6d 61 78 rsion);......$highPosition.=.max
5ca00 28 31 2c 20 24 70 6f 73 69 74 69 6f 6e 20 2d 20 31 29 3b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e (1,.$position.-.1);.$highVersion
5ca20 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e .=.$this->manipulateVersionStrin
5ca40 67 28 24 6d 61 74 63 68 65 73 2c 20 24 68 69 67 68 50 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 g($matches,.$highPosition,.1)...
5ca60 27 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f '-dev';.$upperBound.=.new.Versio
5ca80 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a nConstraint('<',.$highVersion);.
5caa0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 .return.array(.$lowerBound,.$upp
5cac0 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 erBound.);.}....if.(preg_match('
5cae0 7b 5e 5c 5e 27 2e 24 76 65 72 73 69 6f 6e 52 65 67 65 78 2e 27 28 24 29 7d 69 27 2c 20 24 63 6f {^\^'.$versionRegex.'($)}i',.$co
5cb00 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 27 30 27 nstraint,.$matches)).{...if.('0'
5cb20 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 7c 7c 20 27 27 20 3d 3d 3d 20 24 6d 61 74 63 .!==.$matches[1].||.''.===.$matc
5cb40 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 20 65 6c 73 65 69 hes[2]).{.$position.=.1;.}.elsei
5cb60 66 20 28 27 30 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 7c 7c 20 27 27 20 3d 3d 3d f.('0'.!==.$matches[2].||.''.===
5cb80 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d .$matches[3]).{.$position.=.2;.}
5cba0 20 65 6c 73 65 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 0a 0a 0a 20 24 73 74 61 .else.{.$position.=.3;.}....$sta
5cbc0 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 27 27 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 bilitySuffix.=.'';.if.(empty($ma
5cbe0 74 63 68 65 73 5b 35 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 37 5d 29 29 tches[5]).&&.empty($matches[7]))
5cc00 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d .{.$stabilitySuffix..=.'-dev';.}
5cc20 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 ..$lowVersion.=.$this->normalize
5cc40 28 73 75 62 73 74 72 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 2e 20 24 73 74 61 62 69 6c 69 74 79 (substr($constraint...$stability
5cc60 53 75 66 66 69 78 2c 20 31 29 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 Suffix,.1));.$lowerBound.=.new.V
5cc80 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 ersionConstraint('>=',.$lowVersi
5cca0 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e on);......$highVersion.=.$this->
5ccc0 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 manipulateVersionString($matches
5cce0 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 ,.$position,.1)...'-dev';.$upper
5cd00 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c Bound.=.new.VersionConstraint('<
5cd20 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 ',.$highVersion);..return.array(
5cd40 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a .$lowerBound,.$upperBound.);.}..
5cd60 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c ..if.(preg_match('{^(\d+)(?:\.(\
5cd80 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 5c 2e 5b 78 58 2a 5d 24 7d 27 2c 20 24 63 6f d+))?(?:\.(\d+))?\.[xX*]$}',.$co
5cda0 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 nstraint,.$matches)).{.if.(isset
5cdc0 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 ($matches[3]).&&.''.!==.$matches
5cde0 5b 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 [3]).{.$position.=.3;.}.elseif.(
5ce00 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 isset($matches[2]).&&.''.!==.$ma
5ce20 74 63 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 tches[2]).{.$position.=.2;.}.els
5ce40 65 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f e.{.$position.=.1;.}..$lowVersio
5ce60 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 n.=.$this->manipulateVersionStri
5ce80 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 29 20 2e 20 22 2d 64 65 76 22 ng($matches,.$position)..."-dev"
5cea0 3b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 ;.$highVersion.=.$this->manipula
5cec0 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 teVersionString($matches,.$posit
5cee0 69 6f 6e 2c 20 31 29 20 2e 20 22 2d 64 65 76 22 3b 0a 0a 69 66 20 28 24 6c 6f 77 56 65 72 73 69 ion,.1)..."-dev";..if.($lowVersi
5cf00 6f 6e 20 3d 3d 3d 20 22 30 2e 30 2e 30 2e 30 2d 64 65 76 22 29 20 7b 0a 72 65 74 75 72 6e 20 61 on.===."0.0.0.0-dev").{.return.a
5cf20 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 rray(new.VersionConstraint('<',.
5cf40 24 68 69 67 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 $highVersion));.}..return.array(
5cf60 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f .new.VersionConstraint('>=',.$lo
5cf80 77 56 65 72 73 69 6f 6e 29 2c 0a 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 wVersion),.new.VersionConstraint
5cfa0 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ('<',.$highVersion),.);.}....if.
5cfc0 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 50 3c 66 72 6f 6d 3e 27 2e 24 76 65 72 73 69 (preg_match('{^(?P<from>'.$versi
5cfe0 6f 6e 52 65 67 65 78 2e 27 29 20 2b 2d 20 2b 28 3f 50 3c 74 6f 3e 27 2e 24 76 65 72 73 69 6f 6e onRegex.').+-.+(?P<to>'.$version
5d000 52 65 67 65 78 2e 27 29 28 24 29 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 Regex.')($)}i',.$constraint,.$ma
5d020 74 63 68 65 73 29 29 20 7b 0a 0a 20 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 tches)).{...$lowStabilitySuffix.
5d040 3d 20 27 27 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 26 26 20 =.'';.if.(empty($matches[6]).&&.
5d060 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 38 5d 29 29 20 7b 0a 24 6c 6f 77 53 74 61 62 69 6c empty($matches[8])).{.$lowStabil
5d080 69 74 79 53 75 66 66 69 78 20 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 itySuffix.=.'-dev';.}..$lowVersi
5d0a0 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 65 73 5b 27 on.=.$this->normalize($matches['
5d0c0 66 72 6f 6d 27 5d 29 3b 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 from']);.$lowerBound.=.new.Versi
5d0e0 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 20 2e onConstraint('>=',.$lowVersion..
5d100 20 24 6c 6f 77 53 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 29 3b 0a 0a 24 68 69 67 68 56 65 72 .$lowStabilitySuffix);..$highVer
5d120 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 30 5d 3b 0a 69 66 20 28 28 21 65 6d 70 74 79 sion.=.$matches[10];.if.((!empty
5d140 28 24 6d 61 74 63 68 65 73 5b 31 31 5d 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 ($matches[11]).&&.!empty($matche
5d160 73 5b 31 32 5d 29 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 34 5d 29 20 s[12])).||.!empty($matches[14]).
5d180 7c 7c 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 31 36 5d 29 29 20 7b 0a 24 68 69 67 68 ||.!empty($matches[16])).{.$high
5d1a0 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 Version.=.$this->normalize($matc
5d1c0 68 65 73 5b 27 74 6f 27 5d 29 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 hes['to']);.$upperBound.=.new.Ve
5d1e0 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 3d 27 2c 20 24 68 69 67 68 56 65 72 73 69 rsionConstraint('<=',.$highVersi
5d200 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 69 67 68 4d 61 74 63 68 20 3d 20 61 72 72 61 79 on);.}.else.{.$highMatch.=.array
5d220 28 27 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 30 5d 2c 20 24 6d 61 74 63 68 65 73 5b 31 31 5d 2c ('',.$matches[10],.$matches[11],
5d240 20 24 6d 61 74 63 68 65 73 5b 31 32 5d 2c 20 24 6d 61 74 63 68 65 73 5b 31 33 5d 29 3b 0a 24 68 .$matches[12],.$matches[13]);.$h
5d260 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 ighVersion.=.$this->manipulateVe
5d280 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 68 69 67 68 4d 61 74 63 68 2c 20 65 6d 70 74 79 28 24 6d rsionString($highMatch,.empty($m
5d2a0 61 74 63 68 65 73 5b 31 31 5d 29 20 3f 20 31 20 3a 20 32 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 atches[11]).?.1.:.2,.1)...'-dev'
5d2c0 3b 0a 24 75 70 70 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 ;.$upperBound.=.new.VersionConst
5d2e0 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 raint('<',.$highVersion);.}..ret
5d300 75 72 6e 20 61 72 72 61 79 28 0a 24 6c 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 65 72 42 6f urn.array(.$lowerBound,.$upperBo
5d320 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3c und.);.}....if.(preg_match('{^(<
5d340 3e 7c 21 3d 7c 3e 3d 3f 7c 3c 3d 3f 7c 3d 3d 3f 29 3f 5c 73 2a 28 2e 2a 29 7d 27 2c 20 24 63 6f >|!=|>=?|<=?|==?)?\s*(.*)}',.$co
5d360 6e 73 74 72 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 72 79 20 7b 0a 24 76 65 nstraint,.$matches)).{.try.{.$ve
5d380 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 65 rsion.=.$this->normalize($matche
5d3a0 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 s[2]);..if.(!empty($stabilityMod
5d3c0 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 ifier).&&.$this->parseStability(
5d3e0 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 76 65 72 73 69 $version).===.'stable').{.$versi
5d400 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 3b 0a on..=.'-'...$stabilityModifier;.
5d420 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 7b }.elseif.('<'.===.$matches[1]).{
5d440 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 27 20 2e 20 73 65 6c 66 3a 3a 24 6d .if.(!preg_match('/-'...self::$m
5d460 6f 64 69 66 69 65 72 52 65 67 65 78 20 2e 20 27 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 odifierRegex...'$/',.strtolower(
5d480 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 $matches[2]))).{.$version..=.'-d
5d4a0 65 76 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 ev';.}.}..return.array(new.Versi
5d4c0 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c onConstraint($matches[1].?:.'=',
5d4e0 20 24 76 65 72 73 69 6f 6e 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e .$version));.}.catch.(\Exception
5d500 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f .$e).{.}.}..$message.=.'Could.no
5d520 74 20 70 61 72 73 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f t.parse.version.constraint.'.$co
5d540 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a 24 6d 65 73 73 nstraint;.if.(isset($e)).{.$mess
5d560 61 67 65 20 2e 3d 20 27 3a 20 27 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d age..=.':.'..$e->getMessage();.}
5d580 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 ..throw.new.\UnexpectedValueExce
5d5a0 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ption($message);.}.............p
5d5c0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f rivate.function.manipulateVersio
5d5e0 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 24 69 6e nString($matches,.$position,.$in
5d600 63 72 65 6d 65 6e 74 20 3d 20 30 2c 20 24 70 61 64 20 3d 20 27 30 27 29 0a 7b 0a 66 6f 72 20 28 crement.=.0,.$pad.=.'0').{.for.(
5d620 24 69 20 3d 20 34 3b 20 24 69 20 3e 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 69 66 20 28 24 69 20 3e $i.=.4;.$i.>.0;.$i--).{.if.($i.>
5d640 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3d 20 24 70 61 .$position).{.$matches[$i].=.$pa
5d660 64 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 20 3d 3d 20 24 70 6f 73 69 74 69 6f 6e 20 26 26 20 d;.}.elseif.($i.==.$position.&&.
5d680 24 69 6e 63 72 65 6d 65 6e 74 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 2b 3d 20 24 69 $increment).{.$matches[$i].+=.$i
5d6a0 6e 63 72 65 6d 65 6e 74 3b 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3c 20 30 ncrement;...if.($matches[$i].<.0
5d6c0 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3d 20 24 70 61 64 3b 0a 24 70 6f 73 69 74 69 ).{.$matches[$i].=.$pad;.$positi
5d6e0 6f 6e 2d 2d 3b 0a 0a 0a 20 69 66 20 28 24 69 20 3d 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 3b 0a on--;....if.($i.==.1).{.return;.
5d700 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 27 2e }.}.}.}..return.$matches[1]...'.
5d720 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 '...$matches[2]...'.'...$matches
5d740 5b 33 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 7d 0a 0a 70 72 69 76 [3]...'.'...$matches[4];.}..priv
5d760 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 73 74 ate.function.expandStability($st
5d780 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 ability).{.$stability.=.strtolow
5d7a0 65 72 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 74 61 62 69 6c er($stability);..switch.($stabil
5d7c0 69 74 79 29 20 7b 0a 63 61 73 65 20 27 61 27 3a 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b ity).{.case.'a':.return.'alpha';
5d7e0 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 63 61 73 65 20 27 .case.'b':.return.'beta';.case.'
5d800 70 27 3a 0a 63 61 73 65 20 27 70 6c 27 3a 0a 72 65 74 75 72 6e 20 27 70 61 74 63 68 27 3b 0a 63 p':.case.'pl':.return.'patch';.c
5d820 61 73 65 20 27 72 63 27 3a 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 64 65 66 61 75 6c 74 3a 0a ase.'rc':.return.'RC';.default:.
5d840 72 65 74 75 72 6e 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 return.$stability;.}.}........pu
5d860 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 blic.function.parseNameVersionPa
5d880 69 72 73 28 61 72 72 61 79 20 24 70 61 69 72 73 29 0a 7b 0a 24 70 61 69 72 73 20 3d 20 61 72 72 irs(array.$pairs).{.$pairs.=.arr
5d8a0 61 79 5f 76 61 6c 75 65 73 28 24 70 61 69 72 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 ay_values($pairs);.$result.=.arr
5d8c0 61 79 28 29 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 ay();..for.($i.=.0,.$count.=.cou
5d8e0 6e 74 28 24 70 61 69 72 73 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b nt($pairs);.$i.<.$count;.$i++).{
5d900 0a 24 70 61 69 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e 3d 3a 20 5d .$pair.=.preg_replace('{^([^=:.]
5d920 2b 29 5b 3d 3a 20 5d 28 2e 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 74 72 69 6d 28 24 70 +)[=:.](.*)$}',.'$1.$2',.trim($p
5d940 61 69 72 73 5b 24 69 5d 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 airs[$i]));.if.(false.===.strpos
5d960 28 24 70 61 69 72 2c 20 27 20 27 29 20 26 26 20 69 73 73 65 74 28 24 70 61 69 72 73 5b 24 69 2b ($pair,.'.').&&.isset($pairs[$i+
5d980 31 5d 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 69 72 73 5b 24 1]).&&.false.===.strpos($pairs[$
5d9a0 69 2b 31 5d 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 69 72 20 2e 3d 20 27 20 27 2e 24 70 61 69 72 i+1],.'/')).{.$pair..=.'.'.$pair
5d9c0 73 5b 24 69 2b 31 5d 3b 0a 24 69 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 s[$i+1];.$i++;.}..if.(strpos($pa
5d9e0 69 72 2c 20 27 20 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e ir,.'.')).{.list($name,.$version
5da00 29 20 3d 20 65 78 70 6c 6f 64 65 28 22 20 22 2c 20 24 70 61 69 72 2c 20 32 29 3b 0a 24 72 65 73 ).=.explode(".",.$pair,.2);.$res
5da20 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 ult[].=.array('name'.=>.$name,.'
5da40 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a version'.=>.$version);.}.else.{.
5da60 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 69 $result[].=.array('name'.=>.$pai
5da80 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 r);.}.}..return.$result;.}.}.<?p
5daa0 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
5dac0 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6d 70 6c 65 \Package;.......interface.Comple
5dae0 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 tePackageInterface.extends.Packa
5db00 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 geInterface.{......public.functi
5db20 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 on.getScripts();.........public.
5db40 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 0a 0a 0a 0a function.getRepositories();.....
5db60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a ..public.function.getLicense();.
5db80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 ......public.function.getKeyword
5dba0 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 s();.......public.function.getDe
5dbc0 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 scription();.......public.functi
5dbe0 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 on.getHomepage();.........public
5dc00 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 .function.getAuthors();.......pu
5dc20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 0a 0a 0a 0a blic.function.getSupport();.....
5dc40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 3b ..public.function.isAbandoned();
5dc60 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 .......public.function.getReplac
5dc80 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ementPackage();.}.<?php.........
5dca0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a ...namespace.Composer\Package;..
5dcc0 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 .....interface.RootPackageInterf
5dce0 61 63 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 ace.extends.CompletePackageInter
5dd00 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 face.{......public.function.getA
5dd20 6c 69 61 73 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 liases();.......public.function.
5dd40 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 getMinimumStability();.........p
5dd60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 ublic.function.getStabilityFlags
5dd80 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ();.........public.function.getR
5dda0 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eferences();.......public.functi
5ddc0 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c on.getPreferStable();.......publ
5dde0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 ic.function.setRequires(array.$r
5de00 65 71 75 69 72 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 equires);.......public.function.
5de20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 setDevRequires(array.$devRequire
5de40 73 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 s);.}.<?php............namespace
5de60 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 .Composer\Package;.......class.R
5de80 6f 6f 74 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 ootPackage.extends.CompletePacka
5dea0 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 ge.implements.RootPackageInterfa
5dec0 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 ce.{.protected.$minimumStability
5dee0 20 3d 20 27 73 74 61 62 6c 65 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 53 74 .=.'stable';.protected.$preferSt
5df00 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 able.=.false;.protected.$stabili
5df20 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 tyFlags.=.array();.protected.$re
5df40 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 ferences.=.array();.protected.$a
5df60 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 liases.=.array();.......public.f
5df80 75 6e 63 74 69 6f 6e 20 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 24 6d 69 6e unction.setMinimumStability($min
5dfa0 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 6d 53 imumStability).{.$this->minimumS
5dfc0 74 61 62 69 6c 69 74 79 20 3d 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a tability.=.$minimumStability;.}.
5dfe0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 ....public.function.getMinimumSt
5e000 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 75 ability().{.return.$this->minimu
5e020 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 mStability;.}.......public.funct
5e040 69 6f 6e 20 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 73 74 61 ion.setStabilityFlags(array.$sta
5e060 62 69 6c 69 74 79 46 6c 61 67 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 bilityFlags).{.$this->stabilityF
5e080 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 lags.=.$stabilityFlags;.}.....pu
5e0a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 blic.function.getStabilityFlags(
5e0c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 ).{.return.$this->stabilityFlags
5e0e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 ;.}.......public.function.setPre
5e100 66 65 72 53 74 61 62 6c 65 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 29 0a 7b 0a 24 74 68 69 73 ferStable($preferStable).{.$this
5e120 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a ->preferStable.=.$preferStable;.
5e140 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 }.....public.function.getPreferS
5e160 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 table().{.return.$this->preferSt
5e180 61 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 able;.}.......public.function.se
5e1a0 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b tReferences(array.$references).{
5e1c0 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e 63 65 73 .$this->references.=.$references
5e1e0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 66 65 72 ;.}.....public.function.getRefer
5e200 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 ences().{.return.$this->referenc
5e220 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 es;.}.......public.function.setA
5e240 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e liases(array.$aliases).{.$this->
5e260 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 aliases.=.$aliases;.}.....public
5e280 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 .function.getAliases().{.return.
5e2a0 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a $this->aliases;.}.}.<?php.......
5e2c0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c .....namespace.Composer\Package\
5e2e0 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 72 63 68 69 76 Archiver;.......interface.Archiv
5e300 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 erInterface.{...........public.f
5e320 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 72 67 65 unction.archive($sources,.$targe
5e340 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d 20 61 72 t,.$format,.array.$excludes.=.ar
5e360 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ray());..........public.function
5e380 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 65 29 3b .supports($format,.$sourceType);
5e3a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
5e3c0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 mposer\Package\Archiver;.......c
5e3e0 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e lass.ComposerExcludeFilter.exten
5e400 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 ds.BaseExcludeFilter.{.....publi
5e420 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 c.function.__construct($sourcePa
5e440 74 68 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 0a 7b 0a 70 61 72 65 6e th,.array.$excludeRules).{.paren
5e460 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 24 74 68 t::__construct($sourcePath);.$th
5e480 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e is->excludePatterns.=.$this->gen
5e4a0 65 72 61 74 65 50 61 74 74 65 72 6e 73 28 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 3b 0a 7d 0a eratePatterns($excludeRules);.}.
5e4c0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
5e4e0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c poser\Package\Archiver;.......cl
5e500 61 73 73 20 50 68 61 72 41 72 63 68 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 72 63 68 ass.PharArchiver.implements.Arch
5e520 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 iverInterface.{.protected.static
5e540 20 24 66 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 27 7a 69 70 27 20 3d 3e 20 5c 50 68 61 .$formats.=.array(.'zip'.=>.\Pha
5e560 72 3a 3a 5a 49 50 2c 0a 27 74 61 72 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 54 41 52 2c 0a 29 3b 0a r::ZIP,.'tar'.=>.\Phar::TAR,.);.
5e580 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 ....public.function.archive($sou
5e5a0 72 63 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 rces,.$target,.$format,.array.$e
5e5c0 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 6f 75 72 63 65 73 20 3d 20 xcludes.=.array()).{.$sources.=.
5e5e0 72 65 61 6c 70 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 0a 20 69 66 20 28 66 69 6c 65 5f realpath($sources);....if.(file_
5e600 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 61 72 67 65 exists($target)).{.unlink($targe
5e620 74 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 t);.}..try.{.$phar.=.new.\PharDa
5e640 74 61 28 24 74 61 72 67 65 74 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a ta($target,.null,.null,.static::
5e660 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 24 66 69 6c 65 73 20 3d 20 6e 65 77 $formats[$format]);.$files.=.new
5e680 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 28 24 73 6f 75 72 63 65 73 2c .ArchivableFilesFinder($sources,
5e6a0 20 24 65 78 63 6c 75 64 65 73 29 3b 0a 24 70 68 61 72 2d 3e 62 75 69 6c 64 46 72 6f 6d 49 74 65 .$excludes);.$phar->buildFromIte
5e6c0 72 61 74 6f 72 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 73 29 3b 0a 0a 72 65 74 75 72 6e rator($files,.$sources);..return
5e6e0 20 24 74 61 72 67 65 74 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 .$target;.}.catch.(\UnexpectedVa
5e700 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 lueException.$e).{.$message.=.sp
5e720 72 69 6e 74 66 28 22 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 69 76 65 20 rintf("Could.not.create.archive.
5e740 27 25 73 27 20 66 72 6f 6d 20 27 25 73 27 3a 20 25 73 22 2c 0a 24 74 61 72 67 65 74 2c 0a 24 73 '%s'.from.'%s':.%s",.$target,.$s
5e760 6f 75 72 63 65 73 2c 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 0a 74 68 72 ources,.$e->getMessage().);..thr
5e780 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 ow.new.\RuntimeException($messag
5e7a0 65 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 e,.$e->getCode(),.$e);.}.}.....p
5e7c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c ublic.function.supports($format,
5e7e0 20 24 73 6f 75 72 63 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 74 61 .$sourceType).{.return.isset(sta
5e800 74 69 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 tic::$formats[$format]);.}.}.<?p
5e820 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
5e840 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Package\Archiver;..use.Symfony\
5e860 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 Component\Finder;.....abstract.c
5e880 6c 61 73 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 lass.BaseExcludeFilter.{....prot
5e8a0 65 63 74 65 64 20 24 73 6f 75 72 63 65 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ected.$sourcePath;.....protected
5e8c0 20 24 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$excludePatterns;.....public.fu
5e8e0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a nction.__construct($sourcePath).
5e900 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 50 61 74 68 20 3d 20 24 73 6f 75 72 63 65 50 61 74 {.$this->sourcePath.=.$sourcePat
5e920 68 3b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 h;.$this->excludePatterns.=.arra
5e940 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f y();.}............public.functio
5e960 6e 20 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c 75 64 65 n.filter($relativePath,.$exclude
5e980 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 ).{.foreach.($this->excludePatte
5e9a0 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 44 61 74 61 29 20 7b 0a 6c 69 73 74 28 24 70 61 74 rns.as.$patternData).{.list($pat
5e9c0 74 65 72 6e 2c 20 24 6e 65 67 61 74 65 2c 20 24 73 74 72 69 70 4c 65 61 64 69 6e 67 53 6c 61 73 tern,.$negate,.$stripLeadingSlas
5e9e0 68 29 20 3d 20 24 70 61 74 74 65 72 6e 44 61 74 61 3b 0a 0a 69 66 20 28 24 73 74 72 69 70 4c 65 h).=.$patternData;..if.($stripLe
5ea00 61 64 69 6e 67 53 6c 61 73 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 72 65 adingSlash).{.$path.=.substr($re
5ea20 6c 61 74 69 76 65 50 61 74 68 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d lativePath,.1);.}.else.{.$path.=
5ea40 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 .$relativePath;.}..if.(preg_matc
5ea60 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 65 78 63 6c 75 64 65 20 3d h($pattern,.$path)).{.$exclude.=
5ea80 20 21 24 6e 65 67 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 63 6c 75 64 65 3b .!$negate;.}.}..return.$exclude;
5eaa0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 .}..........protected.function.p
5eac0 61 72 73 65 4c 69 6e 65 73 28 61 72 72 61 79 20 24 6c 69 6e 65 73 2c 20 24 6c 69 6e 65 50 61 72 arseLines(array.$lines,.$linePar
5eae0 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 72 72 61 ser).{.return.array_filter(.arra
5eb00 79 5f 6d 61 70 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 75 73 65 20 28 24 6c 69 y_map(.function.($line).use.($li
5eb20 6e 65 50 61 72 73 65 72 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e 65 29 3b neParser).{.$line.=.trim($line);
5eb40 0a 0a 69 66 20 28 21 24 6c 69 6e 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6c 69 ..if.(!$line.||.0.===.strpos($li
5eb60 6e 65 2c 20 27 23 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 61 ne,.'#')).{.return;.}..return.ca
5eb80 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 6c 69 6e 65 50 61 72 73 65 72 2c 20 24 6c 69 6e 65 29 ll_user_func($lineParser,.$line)
5eba0 3b 0a 7d 2c 0a 24 6c 69 6e 65 73 0a 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 74 74 65 72 ;.},.$lines.),.function.($patter
5ebc0 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 72 6e 20 21 3d 3d 20 6e 75 6c 6c 3b 0a 7d n).{.return.$pattern.!==.null;.}
5ebe0 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e .);.}.........protected.function
5ec00 20 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 73 28 24 72 75 6c 65 73 29 0a 7b 0a 24 70 61 74 .generatePatterns($rules).{.$pat
5ec20 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 terns.=.array();.foreach.($rules
5ec40 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 74 68 69 73 .as.$rule).{.$patterns[].=.$this
5ec60 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 ->generatePattern($rule);.}..ret
5ec80 75 72 6e 20 24 70 61 74 74 65 72 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 urn.$patterns;.}.........protect
5eca0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c ed.function.generatePattern($rul
5ecc0 65 29 0a 7b 0a 24 6e 65 67 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 61 74 74 65 72 6e 20 3d e).{.$negate.=.false;.$pattern.=
5ece0 20 27 23 27 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 20 24 72 75 6c .'#';..if.(strlen($rule).&&.$rul
5ed00 65 5b 30 5d 20 3d 3d 3d 20 27 21 27 29 20 7b 0a 24 6e 65 67 61 74 65 20 3d 20 74 72 75 65 3b 0a e[0].===.'!').{.$negate.=.true;.
5ed20 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 $rule.=.substr($rule,.1);.}..if.
5ed40 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 (strlen($rule).&&.$rule[0].===.'
5ed60 2f 27 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 5e 2f 27 3b 0a 24 72 75 6c 65 20 3d 20 /').{.$pattern..=.'^/';.$rule.=.
5ed80 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 74 72 6c substr($rule,.1);.}.elseif.(strl
5eda0 65 6e 28 24 72 75 6c 65 29 20 2d 20 31 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 en($rule).-.1.===.strpos($rule,.
5edc0 27 2f 27 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 24 72 75 6c 65 20 3d '/')).{.$pattern..=.'/';.$rule.=
5ede0 20 73 75 62 73 74 72 28 24 72 75 6c 65 2c 20 30 2c 20 2d 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 .substr($rule,.0,.-1);.}.elseif.
5ee00 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 2f 27 29 29 20 7b (false.===.strpos($rule,.'/')).{
5ee20 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 7d 0a 0a 0a 20 24 70 61 74 74 65 72 6e 20 .$pattern..=.'/';.}....$pattern.
5ee40 2e 3d 20 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 .=.substr(Finder\Glob::toRegex($
5ee60 72 75 6c 65 29 2c 20 32 2c 20 2d 32 29 20 2e 20 27 28 3f 3d 24 7c 2f 29 27 3b 0a 0a 72 65 74 75 rule),.2,.-2)...'(?=$|/)';..retu
5ee80 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 20 2e 20 27 23 27 2c 20 24 6e 65 67 61 74 65 rn.array($pattern...'#',.$negate
5eea0 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ,.false);.}.}.<?php............n
5eec0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 amespace.Composer\Package\Archiv
5eee0 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 er;.........class.GitExcludeFilt
5ef00 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a er.extends.BaseExcludeFilter.{..
5ef20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
5ef40 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 $sourcePath).{.parent::__constru
5ef60 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 ct($sourcePath);..if.(file_exist
5ef80 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 29 20 7b 0a s($sourcePath.'/.gitignore')).{.
5efa0 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e $this->excludePatterns.=.$this->
5efc0 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e parseLines(.file($sourcePath.'/.
5efe0 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 gitignore'),.array($this,.'parse
5f000 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 GitIgnoreLine').);.}.if.(file_ex
5f020 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 ists($sourcePath.'/.gitattribute
5f040 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 s')).{.$this->excludePatterns.=.
5f060 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 array_merge(.$this->excludePatte
5f080 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f rns,.$this->parseLines(.file($so
5f0a0 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 73 27 29 2c 0a 61 72 72 urcePath.'/.gitattributes'),.arr
5f0c0 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e ay($this,.'parseGitAttributesLin
5f0e0 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e').));.}.}.........public.funct
5f100 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a ion.parseGitIgnoreLine($line).{.
5f120 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 6c return.$this->generatePattern($l
5f140 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ine);.}.........public.function.
5f160 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a parseGitAttributesLine($line).{.
5f180 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 23 5c 73 2b 23 27 2c 20 24 6c 69 $parts.=.preg_split('#\s+#',.$li
5f1a0 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 72 74 73 29 20 21 3d 20 32 29 20 7b 0a ne);..if.(count($parts).!=.2).{.
5f1c0 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 72 74 73 5b 31 5d 20 3d 3d return.null;.}..if.($parts[1].==
5f1e0 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 =.'export-ignore').{.return.$thi
5f200 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 70 61 72 74 73 5b 30 5d 29 3b 0a 7d s->generatePattern($parts[0]);.}
5f220 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
5f240 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 Composer\Package\Archiver;..use.
5f260 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 75 73 65 20 53 Composer\Util\Filesystem;..use.S
5f280 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a ymfony\Component\Finder;........
5f2a0 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 20 65 78 ..class.ArchivableFilesFinder.ex
5f2c0 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 tends.\FilterIterator.{....prote
5f2e0 63 74 65 64 20 24 66 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 cted.$finder;........public.func
5f300 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 73 2c 20 61 72 72 61 79 tion.__construct($sources,.array
5f320 20 24 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 .$excludes).{.$fs.=.new.Filesyst
5f340 65 6d 28 29 3b 0a 0a 24 73 6f 75 72 63 65 73 20 3d 20 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 em();..$sources.=.$fs->normalize
5f360 50 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 Path($sources);..$filters.=.arra
5f380 79 28 0a 6e 65 77 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 y(.new.HgExcludeFilter($sources)
5f3a0 2c 0a 6e 65 77 20 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 ,.new.GitExcludeFilter($sources)
5f3c0 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 ,.new.ComposerExcludeFilter($sou
5f3e0 72 63 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6e rces,.$excludes),.);..$this->fin
5f400 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 28 29 3b 0a 0a 24 66 69 6c der.=.new.Finder\Finder();..$fil
5f420 74 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 24 66 69 ter.=.function.(\SplFileInfo.$fi
5f440 6c 65 29 20 75 73 65 20 28 24 73 6f 75 72 63 65 73 2c 20 24 66 69 6c 74 65 72 73 2c 20 24 66 73 le).use.($sources,.$filters,.$fs
5f460 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 4c 69 6e 6b 28 29 20 26 26 20 73 74 72 70 6f ).{.if.($file->isLink().&&.strpo
5f480 73 28 24 66 69 6c 65 2d 3e 67 65 74 4c 69 6e 6b 54 61 72 67 65 74 28 29 2c 20 24 73 6f 75 72 63 s($file->getLinkTarget(),.$sourc
5f4a0 65 73 29 20 21 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 72 es).!==.0).{.return.false;.}..$r
5f4c0 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5e 27 elativePath.=.preg_replace(.'#^'
5f4e0 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 6f 75 72 63 65 73 2c 20 27 23 27 29 2e 27 23 27 2c 0a .preg_quote($sources,.'#').'#',.
5f500 27 27 2c 0a 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 2d 3e 67 65 '',.$fs->normalizePath($file->ge
5f520 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 65 78 63 6c 75 64 65 20 3d 20 66 61 6c 73 tRealPath()).);..$exclude.=.fals
5f540 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 e;.foreach.($filters.as.$filter)
5f560 20 7b 0a 24 65 78 63 6c 75 64 65 20 3d 20 24 66 69 6c 74 65 72 2d 3e 66 69 6c 74 65 72 28 24 72 .{.$exclude.=.$filter->filter($r
5f580 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 elativePath,.$exclude);.}..retur
5f5a0 6e 20 21 24 65 78 63 6c 75 64 65 3b 0a 7d 3b 0a 0a 69 66 20 28 6d 65 74 68 6f 64 5f 65 78 69 73 n.!$exclude;.};..if.(method_exis
5f5c0 74 73 28 24 66 69 6c 74 65 72 2c 20 27 62 69 6e 64 54 6f 27 29 29 20 7b 0a 24 66 69 6c 74 65 72 ts($filter,.'bindTo')).{.$filter
5f5e0 20 3d 20 24 66 69 6c 74 65 72 2d 3e 62 69 6e 64 54 6f 28 6e 75 6c 6c 29 3b 0a 7d 0a 0a 24 74 68 .=.$filter->bindTo(null);.}..$th
5f600 69 73 2d 3e 66 69 6e 64 65 72 0a 2d 3e 69 6e 28 24 73 6f 75 72 63 65 73 29 0a 2d 3e 66 69 6c 74 is->finder.->in($sources).->filt
5f620 65 72 28 24 66 69 6c 74 65 72 29 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 74 72 75 65 29 0a 2d 3e er($filter).->ignoreVCS(true).->
5f640 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a ignoreDotFiles(false);..parent::
5f660 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 2d 3e 67 65 74 49 74 __construct($this->finder->getIt
5f680 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 erator());.}..public.function.ac
5f6a0 63 65 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 cept().{.return.!$this->getInner
5f6c0 49 74 65 72 61 74 6f 72 28 29 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 69 73 44 69 72 28 29 3b 0a Iterator()->current()->isDir();.
5f6e0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
5f700 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 omposer\Package\Archiver;..use.C
5f720 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 omposer\Downloader\DownloadManag
5f740 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 er;.use.Composer\Package\Package
5f760 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c Interface;.use.Composer\Package\
5f780 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 RootPackageInterface;.use.Compos
5f7a0 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 er\Util\Filesystem;.use.Composer
5f7c0 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 \Json\JsonFile;......class.Archi
5f7e0 76 65 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d veManager.{.protected.$downloadM
5f800 61 6e 61 67 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 72 73 20 3d 20 anager;..protected.$archivers.=.
5f820 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 76 65 72 77 72 69 74 array();.....protected.$overwrit
5f840 65 46 69 6c 65 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eFiles.=.true;.....public.functi
5f860 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 on.__construct(DownloadManager.$
5f880 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f downloadManager).{.$this->downlo
5f8a0 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 7d 0a adManager.=.$downloadManager;.}.
5f8c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 63 68 69 76 65 72 28 ....public.function.addArchiver(
5f8e0 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 72 63 68 69 76 65 72 29 0a 7b 0a 24 ArchiverInterface.$archiver).{.$
5f900 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 5b 5d 20 3d 20 24 61 72 63 68 69 76 65 72 3b 0a 7d this->archivers[].=.$archiver;.}
5f920 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 76 65 72 .........public.function.setOver
5f940 77 72 69 74 65 46 69 6c 65 73 28 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 29 0a 7b 0a 24 74 writeFiles($overwriteFiles).{.$t
5f960 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 24 6f 76 65 72 77 72 69 74 65 his->overwriteFiles.=.$overwrite
5f980 46 69 6c 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a Files;..return.$this;.}.........
5f9a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 public.function.getPackageFilena
5f9c0 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a me(PackageInterface.$package).{.
5f9e0 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 $nameParts.=.array(preg_replace(
5fa00 27 23 5b 5e 61 2d 7a 30 2d 39 2d 5f 5d 23 69 27 2c 20 27 2d 27 2c 20 24 70 61 63 6b 61 67 65 2d '#[^a-z0-9-_]#i',.'-',.$package-
5fa20 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b >getName()));..if.(preg_match('{
5fa40 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 ^[a-f0-9]{40}$}',.$package->getD
5fa60 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 istReference())).{.$nameParts.=.
5fa80 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 array_merge($nameParts,.array($p
5faa0 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 63 ackage->getDistReference(),.$pac
5fac0 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a kage->getDistType()));.}.else.{.
5fae0 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 $nameParts.=.array_merge($namePa
5fb00 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 rts,.array($package->getPrettyVe
5fb20 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 rsion(),.$package->getDistRefere
5fb40 6e 63 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 nce()));.}..if.($package->getSou
5fb60 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 5b 5d 20 3d rceReference()).{.$nameParts[].=
5fb80 20 73 75 62 73 74 72 28 73 68 61 31 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 .substr(sha1($package->getSource
5fba0 52 65 66 65 72 65 6e 63 65 28 29 29 2c 20 30 2c 20 36 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 Reference()),.0,.6);.}..$name.=.
5fbc0 69 6d 70 6c 6f 64 65 28 27 2d 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 50 implode('-',.array_filter($nameP
5fbe0 61 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b 0a 72 65 74 75 72 6e 20 21 65 6d arts,.function.($p).{.return.!em
5fc00 70 74 79 28 24 70 29 3b 0a 7d 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 pty($p);.}));..return.str_replac
5fc20 65 28 27 2f 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e('/',.'-',.$name);.}...........
5fc40 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 50 61 63 6b 61 67 65 .public.function.archive(Package
5fc60 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 74 61 Interface.$package,.$format,.$ta
5fc80 72 67 65 74 44 69 72 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 29 29 20 7b rgetDir).{.if.(empty($format)).{
5fca0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
5fcc0 74 69 6f 6e 28 27 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 65 20 73 70 65 63 69 66 69 65 64 27 29 tion('Format.must.be.specified')
5fce0 3b 0a 7d 0a 0a 0a 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 66 ;.}....$usableArchiver.=.null;.f
5fd00 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 20 61 73 20 24 61 72 63 oreach.($this->archivers.as.$arc
5fd20 68 69 76 65 72 29 20 7b 0a 69 66 20 28 24 61 72 63 68 69 76 65 72 2d 3e 73 75 70 70 6f 72 74 73 hiver).{.if.($archiver->supports
5fd40 28 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 ($format,.$package->getSourceTyp
5fd60 65 28 29 29 29 20 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 20 3d 20 24 61 72 63 68 69 e())).{.$usableArchiver.=.$archi
5fd80 76 65 72 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 ver;.break;.}.}....if.(null.===.
5fda0 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 $usableArchiver).{.throw.new.\Ru
5fdc0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4e 6f 20 61 72 63 68 69 ntimeException(sprintf('No.archi
5fde0 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 74 20 25 73 20 66 6f 72 6d 61 74 27 2c ver.found.to.support.%s.format',
5fe00 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 .$format));.}..$filesystem.=.new
5fe20 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 .Filesystem();.$packageName.=.$t
5fe40 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 24 70 61 63 6b 61 67 65 his->getPackageFilename($package
5fe60 29 3b 0a 0a 0a 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f );....$filesystem->ensureDirecto
5fe80 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 ryExists($targetDir);.$target.=.
5fea0 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 realpath($targetDir).'/'.$packag
5fec0 65 4e 61 6d 65 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e eName.'.'.$format;.$filesystem->
5fee0 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 ensureDirectoryExists(dirname($t
5ff00 61 72 67 65 74 29 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 arget));..if.(!$this->overwriteF
5ff20 69 6c 65 73 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a iles.&&.file_exists($target)).{.
5ff40 72 65 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 return.$target;.}..if.($package.
5ff60 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 instanceof.RootPackageInterface)
5ff80 20 7b 0a 24 73 6f 75 72 63 65 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e 27 29 3b 0a .{.$sourcePath.=.realpath('.');.
5ffa0 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 73 6f 75 72 63 65 50 61 74 68 20 3d 20 73 79 73 5f 67 65 74 }.else.{...$sourcePath.=.sys_get
5ffc0 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 65 27 2e _temp_dir().'/composer_archive'.
5ffe0 75 6e 69 71 69 64 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 uniqid();.$filesystem->ensureDir
60000 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 0a 20 24 74 ectoryExists($sourcePath);....$t
60020 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 his->downloadManager->download($
60040 70 61 63 6b 61 67 65 2c 20 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 66 69 package,.$sourcePath);....if.(fi
60060 6c 65 5f 65 78 69 73 74 73 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 20 3d 20 24 73 le_exists($composerJsonPath.=.$s
60080 6f 75 72 63 65 50 61 74 68 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 ourcePath.'/composer.json')).{.$
600a0 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6d 70 6f 73 65 jsonFile.=.new.JsonFile($compose
600c0 72 4a 73 6f 6e 50 61 74 68 29 3b 0a 24 6a 73 6f 6e 44 61 74 61 20 3d 20 24 6a 73 6f 6e 46 69 6c rJsonPath);.$jsonData.=.$jsonFil
600e0 65 2d 3e 72 65 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6a 73 6f 6e 44 61 74 61 5b e->read();.if.(!empty($jsonData[
60100 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 'archive']['exclude'])).{.$packa
60120 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 24 6a 73 6f 6e 44 61 74 61 ge->setArchiveExcludes($jsonData
60140 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a ['archive']['exclude']);.}.}.}..
60160 0a 20 24 74 65 6d 70 54 61 72 67 65 74 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 ..$tempTarget.=.sys_get_temp_dir
60180 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 76 65 27 2e 75 6e 69 71 69 64 28 29 2e ().'/composer_archive'.uniqid().
601a0 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 '.'.$format;.$filesystem->ensure
601c0 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 65 6d 70 54 61 72 DirectoryExists(dirname($tempTar
601e0 67 65 74 29 29 3b 0a 0a 24 61 72 63 68 69 76 65 50 61 74 68 20 3d 20 24 75 73 61 62 6c 65 41 72 get));..$archivePath.=.$usableAr
60200 63 68 69 76 65 72 2d 3e 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 50 61 74 68 2c 20 24 74 65 chiver->archive($sourcePath,.$te
60220 6d 70 54 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 mpTarget,.$format,.$package->get
60240 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 3b 0a 72 65 6e 61 6d 65 28 24 61 72 63 68 ArchiveExcludes());.rename($arch
60260 69 76 65 50 61 74 68 2c 20 24 74 61 72 67 65 74 29 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 6b ivePath,.$target);....if.(!$pack
60280 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 age.instanceof.RootPackageInterf
602a0 61 63 65 29 20 7b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 ace).{.$filesystem->removeDirect
602c0 6f 72 79 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 7d 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d ory($sourcePath);.}.$filesystem-
602e0 3e 72 65 6d 6f 76 65 28 24 74 65 6d 70 54 61 72 67 65 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 >remove($tempTarget);..return.$t
60300 61 72 67 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 arget;.}.}.<?php............name
60320 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b space.Composer\Package\Archiver;
60340 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a ..use.Symfony\Component\Finder;.
60360 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 ......class.HgExcludeFilter.exte
60380 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 63 6f 6e 73 74 20 48 47 nds.BaseExcludeFilter.{.const.HG
603a0 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f _IGNORE_REGEX.=.1;.const.HG_IGNO
603c0 52 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 RE_GLOB.=.2;......protected.$pat
603e0 74 65 72 6e 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ternMode;.......public.function.
60400 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e __construct($sourcePath).{.paren
60420 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 24 74 t::__construct($sourcePath);..$t
60440 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f his->patternMode.=.self::HG_IGNO
60460 52 45 5f 52 45 47 45 58 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 RE_REGEX;..if.(file_exists($sour
60480 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 cePath.'/.hgignore')).{.$this->e
604a0 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e xcludePatterns.=.$this->parseLin
604c0 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 es(.file($sourcePath.'/.hgignore
604e0 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c '),.array($this,.'parseHgIgnoreL
60500 69 6e 65 27 29 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ine').);.}.}.........public.func
60520 74 69 6f 6e 20 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a tion.parseHgIgnoreLine($line).{.
60540 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 73 79 6e 74 61 78 5c 73 2a 3a 5c 73 2a 28 if.(preg_match('#^syntax\s*:\s*(
60560 67 6c 6f 62 7c 72 65 67 65 78 70 29 24 23 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 glob|regexp)$#',.$line,.$matches
60580 29 29 20 7b 0a 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 67 6c 6f 62 27 29 )).{.if.($matches[1].===.'glob')
605a0 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 .{.$this->patternMode.=.self::HG
605c0 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 _IGNORE_GLOB;.}.else.{.$this->pa
605e0 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 tternMode.=.self::HG_IGNORE_REGE
60600 58 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d X;.}..return.null;.}..if.($this-
60620 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f >patternMode.==.self::HG_IGNORE_
60640 47 4c 4f 42 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f GLOB).{.return.$this->patternFro
60660 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 mGlob($line);.}.else.{.return.$t
60680 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 3b 0a 7d 0a his->patternFromRegex($line);.}.
606a0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 }.........protected.function.pat
606c0 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 0a 7b 0a 24 70 61 74 74 65 72 6e 20 3d ternFromGlob($line).{.$pattern.=
606e0 20 27 23 27 2e 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 .'#'.substr(Finder\Glob::toRegex
60700 28 24 6c 69 6e 65 29 2c 20 32 2c 20 2d 31 29 2e 27 23 27 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 ($line),.2,.-1).'#';.$pattern.=.
60720 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5b 5e 2f 5d 2a 27 2c 20 27 2e 2a 27 2c 20 24 70 61 74 74 str_replace('[^/]*',.'.*',.$patt
60740 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 ern);..return.array($pattern,.fa
60760 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e lse,.true);.}.........public.fun
60780 63 74 69 6f 6e 20 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 0a 7b 0a ction.patternFromRegex($line).{.
607a0 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f ..$pattern.=.'#'.preg_replace('/
607c0 28 28 3f 3a 5c 5c 5c 5c 5c 5c 5c 5c 29 2a 29 28 5c 5c 5c 5c 3f 29 23 2f 27 2c 20 27 5c 31 5c 32 ((?:\\\\\\\\)*)(\\\\?)#/',.'\1\2
607e0 5c 32 5c 5c 23 27 2c 20 24 6c 69 6e 65 29 2e 27 23 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 \2\\#',.$line).'#';..return.arra
60800 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f y($pattern,.false,.true);.}.}.<?
60820 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
60840 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 41 6c 69 61 73 50 61 r\Package;.....class.RootAliasPa
60860 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 ckage.extends.AliasPackage.imple
60880 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 ments.RootPackageInterface.{.pub
608a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 6f 6f 74 50 61 63 lic.function.__construct(RootPac
608c0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e kageInterface.$aliasOf,.$version
608e0 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f ,.$prettyVersion).{.parent::__co
60900 6e 73 74 72 75 63 74 28 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 nstruct($aliasOf,.$version,.$pre
60920 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ttyVersion);.}.....public.functi
60940 6f 6e 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getAliases().{.return.$this->
60960 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 aliasOf->getAliases();.}.....pub
60980 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 lic.function.getMinimumStability
609a0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4d ().{.return.$this->aliasOf->getM
609c0 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 inimumStability();.}.....public.
609e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 function.getStabilityFlags().{.r
60a00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 74 61 62 69 6c 69 eturn.$this->aliasOf->getStabili
60a20 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tyFlags();.}.....public.function
60a40 20 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getReferences().{.return.$this-
60a60 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 7d 0a 0a 0a 0a >aliasOf->getReferences();.}....
60a80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 .public.function.getPreferStable
60aa0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 50 ().{.return.$this->aliasOf->getP
60ac0 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 referStable();.}.....public.func
60ae0 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 29 tion.setRequires(array.$require)
60b00 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 52 65 71 .{.return.$this->aliasOf->setReq
60b20 75 69 72 65 73 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 uires($require);.}.....public.fu
60b40 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 nction.setDevRequires(array.$dev
60b60 52 65 71 75 69 72 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 Require).{.return.$this->aliasOf
60b80 2d 3e 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 24 64 65 76 52 65 71 75 69 72 65 29 3b 0a 7d ->setDevRequires($devRequire);.}
60ba0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 70 61 ..public.function.__clone().{.pa
60bc0 72 65 6e 74 3a 3a 5f 5f 63 6c 6f 6e 65 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 rent::__clone();.$this->aliasOf.
60be0 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 7d 0a 3c 3f 70 68 =.clone.$this->aliasOf;.}.}.<?ph
60c00 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
60c20 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 Package;..use.Composer\Package\V
60c40 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 ersion\VersionParser;.use.Compos
60c60 65 72 5c 55 74 69 6c 5c 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c er\Util\ComposerMirror;.......cl
60c80 61 73 73 20 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 0a ass.Package.extends.BasePackage.
60ca0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 {.protected.$type;.protected.$ta
60cc0 72 67 65 74 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e rgetDir;.protected.$installation
60ce0 53 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 54 79 70 65 3b 0a 70 Source;.protected.$sourceType;.p
60d00 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 rotected.$sourceUrl;.protected.$
60d20 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 sourceReference;.protected.$sour
60d40 63 65 4d 69 72 72 6f 72 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 54 79 70 65 3b 0a ceMirrors;.protected.$distType;.
60d60 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 protected.$distUrl;.protected.$d
60d80 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 istReference;.protected.$distSha
60da0 31 43 68 65 63 6b 73 75 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 4d 69 72 72 6f 72 1Checksum;.protected.$distMirror
60dc0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 s;.protected.$version;.protected
60de0 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6c 65 .$prettyVersion;.protected.$rele
60e00 61 73 65 44 61 74 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 20 3d 20 61 72 72 61 aseDate;.protected.$extra.=.arra
60e20 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 61 72 69 65 73 20 3d 20 61 72 72 61 79 y();.protected.$binaries.=.array
60e40 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 ();.protected.$dev;.protected.$s
60e60 74 61 62 69 6c 69 74 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 66 69 63 61 74 69 6f tability;.protected.$notificatio
60e80 6e 55 72 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 nUrl;..protected.$requires.=.arr
60ea0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 20 3d 20 61 72 72 ay();.protected.$conflicts.=.arr
60ec0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 20 3d 20 61 72 72 61 ay();.protected.$provides.=.arra
60ee0 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 y();.protected.$replaces.=.array
60f00 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 ();.protected.$devRequires.=.arr
60f20 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 ay();.protected.$suggests.=.arra
60f40 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 y();.protected.$autoload.=.array
60f60 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 41 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 ();.protected.$devAutoload.=.arr
60f80 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 ay();.protected.$includePaths.=.
60fa0 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 63 68 69 76 65 45 78 63 6c 75 array();.protected.$archiveExclu
60fc0 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 des.=.array();.........public.fu
60fe0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 nction.__construct($name,.$versi
61000 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f on,.$prettyVersion).{.parent::__
61020 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f construct($name);..$this->versio
61040 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 n.=.$version;.$this->prettyVersi
61060 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 on.=.$prettyVersion;..$this->sta
61080 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 bility.=.VersionParser::parseSta
610a0 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 bility($version);.$this->dev.=.$
610c0 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 0a 0a this->stability.===.'dev';.}....
610e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 .public.function.isDev().{.retur
61100 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 n.$this->dev;.}.....public.funct
61120 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 ion.setType($type).{.$this->type
61140 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.$type;.}.....public.function.
61160 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 20 3f getType().{.return.$this->type.?
61180 3a 20 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 :.'library';.}.....public.functi
611a0 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on.getStability().{.return.$this
611c0 2d 3e 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ->stability;.}.....public.functi
611e0 6f 6e 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 74 on.setTargetDir($targetDir).{.$t
61200 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 3b 0a 7d 0a 0a his->targetDir.=.$targetDir;.}..
61220 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 ...public.function.getTargetDir(
61240 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 ).{.if.(null.===.$this->targetDi
61260 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6c 74 72 69 6d 28 70 72 65 r).{.return;.}..return.ltrim(pre
61280 67 5f 72 65 70 6c 61 63 65 28 27 7b 20 28 3f 3a 5e 7c 5b 5c 5c 5c 5c 2f 5d 2b 29 20 5c 2e 5c 2e g_replace('{.(?:^|[\\\\/]+).\.\.
612a0 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 28 3f 3a 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c ?.(?:[\\\\/]+|$).(?:\.\.?.(?:[\\
612c0 5c 5c 2f 5d 2b 7c 24 29 20 29 2a 7d 78 27 2c 20 27 2f 27 2c 20 24 74 68 69 73 2d 3e 74 61 72 67 \\/]+|$).)*}x',.'/',.$this->targ
612e0 65 74 44 69 72 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 etDir),.'/');.}.....public.funct
61300 69 6f 6e 20 73 65 74 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 0a 7b 0a 24 74 68 ion.setExtra(array.$extra).{.$th
61320 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 is->extra.=.$extra;.}.....public
61340 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .function.getExtra().{.return.$t
61360 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f his->extra;.}.....public.functio
61380 6e 20 73 65 74 42 69 6e 61 72 69 65 73 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 65 73 29 0a 7b n.setBinaries(array.$binaries).{
613a0 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a .$this->binaries.=.$binaries;.}.
613c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 ....public.function.getBinaries(
613e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 0a ).{.return.$this->binaries;.}...
61400 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f ..public.function.setInstallatio
61420 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 nSource($type).{.$this->installa
61440 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 tionSource.=.$type;.}.....public
61460 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 .function.getInstallationSource(
61480 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f ).{.return.$this->installationSo
614a0 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 urce;.}.....public.function.setS
614c0 6f 75 72 63 65 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 ourceType($type).{.$this->source
614e0 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Type.=.$type;.}.....public.funct
61500 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion.getSourceType().{.return.$th
61520 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e is->sourceType;.}.....public.fun
61540 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 ction.setSourceUrl($url).{.$this
61560 2d 3e 73 6f 75 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->sourceUrl.=.$url;.}.....public
61580 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 .function.getSourceUrl().{.retur
615a0 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this->sourceUrl;.}.....public
615c0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 .function.setSourceReference($re
615e0 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 ference).{.$this->sourceReferenc
61600 65 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e.=.$reference;.}.....public.fun
61620 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 ction.getSourceReference().{.ret
61640 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a urn.$this->sourceReference;.}...
61660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f ..public.function.setSourceMirro
61680 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 rs($mirrors).{.$this->sourceMirr
616a0 6f 72 73 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ors.=.$mirrors;.}.....public.fun
616c0 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 ction.getSourceMirrors().{.retur
616e0 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 n.$this->sourceMirrors;.}.....pu
61700 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 0a 7b 0a blic.function.getSourceUrls().{.
61720 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 73 28 24 74 68 69 73 2d 3e 73 6f 75 return.$this->getUrls($this->sou
61740 72 63 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 4d 69 72 72 6f 72 73 2c 20 24 74 rceUrl,.$this->sourceMirrors,.$t
61760 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 2c 20 24 74 68 69 73 2d 3e 73 6f 75 his->sourceReference,.$this->sou
61780 72 63 65 54 79 70 65 2c 20 27 73 6f 75 72 63 65 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rceType,.'source');.}.....public
617a0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 .function.setDistType($type).{.$
617c0 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 this->distType.=.$type;.}.....pu
617e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 blic.function.getDistType().{.re
61800 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c turn.$this->distType;.}.....publ
61820 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 ic.function.setDistUrl($url).{.$
61840 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c this->distUrl.=.$url;.}.....publ
61860 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 ic.function.getDistUrl().{.retur
61880 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 n.$this->distUrl;.}.....public.f
618a0 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 unction.setDistReference($refere
618c0 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 20 3d 20 24 72 nce).{.$this->distReference.=.$r
618e0 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 eference;.}.....public.function.
61900 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 getDistReference().{.return.$thi
61920 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s->distReference;.}.....public.f
61940 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 24 73 68 61 unction.setDistSha1Checksum($sha
61960 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 1checksum).{.$this->distSha1Chec
61980 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ksum.=.$sha1checksum;.}.....publ
619a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 ic.function.getDistSha1Checksum(
619c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 ).{.return.$this->distSha1Checks
619e0 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 um;.}.....public.function.setDis
61a00 74 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 tMirrors($mirrors).{.$this->dist
61a20 4d 69 72 72 6f 72 73 20 3d 20 24 6d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Mirrors.=.$mirrors;.}.....public
61a40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 .function.getDistMirrors().{.ret
61a60 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 urn.$this->distMirrors;.}.....pu
61a80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 73 28 29 0a 7b 0a 72 65 blic.function.getDistUrls().{.re
61aa0 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 73 28 24 74 68 69 73 2d 3e 64 69 73 74 55 turn.$this->getUrls($this->distU
61ac0 72 6c 2c 20 24 74 68 69 73 2d 3e 64 69 73 74 4d 69 72 72 6f 72 73 2c 20 24 74 68 69 73 2d 3e 64 rl,.$this->distMirrors,.$this->d
61ae0 69 73 74 52 65 66 65 72 65 6e 63 65 2c 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 2c 20 27 istReference,.$this->distType,.'
61b00 64 69 73 74 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 dist');.}.....public.function.ge
61b20 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 tVersion().{.return.$this->versi
61b40 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 on;.}.....public.function.getPre
61b60 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 ttyVersion().{.return.$this->pre
61b80 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ttyVersion;.}.......public.funct
61ba0 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 65 54 69 6d 65 20 24 72 65 ion.setReleaseDate(\DateTime.$re
61bc0 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 20 leaseDate).{.$this->releaseDate.
61be0 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e =.$releaseDate;.}.....public.fun
61c00 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.getReleaseDate().{.return.
61c20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c $this->releaseDate;.}.......publ
61c40 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 ic.function.setRequires(array.$r
61c60 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 equires).{.$this->requires.=.$re
61c80 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 quires;.}.....public.function.ge
61ca0 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 tRequires().{.return.$this->requ
61cc0 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ires;.}.......public.function.se
61ce0 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c 69 63 74 73 29 0a 7b 0a 24 tConflicts(array.$conflicts).{.$
61d00 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a this->conflicts.=.$conflicts;.}.
61d20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 ....public.function.getConflicts
61d40 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b 0a 7d 0a ().{.return.$this->conflicts;.}.
61d60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 76 69 64 65 ......public.function.setProvide
61d80 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 s(array.$provides).{.$this->prov
61da0 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ides.=.$provides;.}.....public.f
61dc0 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 unction.getProvides().{.return.$
61de0 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 this->provides;.}.......public.f
61e00 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 61 79 20 24 72 65 70 6c 61 unction.setReplaces(array.$repla
61e20 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 3d 20 24 72 65 70 6c 61 63 ces).{.$this->replaces.=.$replac
61e40 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 es;.}.....public.function.getRep
61e60 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 laces().{.return.$this->replaces
61e80 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 ;.}.......public.function.setDev
61ea0 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 72 65 73 29 0a 7b 0a 24 Requires(array.$devRequires).{.$
61ec0 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 76 52 65 71 75 69 72 65 73 this->devRequires.=.$devRequires
61ee0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 ;.}.....public.function.getDevRe
61f00 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 quires().{.return.$this->devRequ
61f20 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ires;.}.......public.function.se
61f40 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 74 73 29 0a 7b 0a 24 74 68 tSuggests(array.$suggests).{.$th
61f60 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a 0a is->suggests.=.$suggests;.}.....
61f80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 29 0a 7b 0a public.function.getSuggests().{.
61fa0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a return.$this->suggests;.}.......
61fc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 public.function.setAutoload(arra
61fe0 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 20 3d y.$autoload).{.$this->autoload.=
62000 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$autoload;.}.....public.functio
62020 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e n.getAutoload().{.return.$this->
62040 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f autoload;.}.......public.functio
62060 6e 20 73 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 20 24 64 65 76 41 75 74 6f 6c n.setDevAutoload(array.$devAutol
62080 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 41 75 74 6f 6c 6f 61 64 20 3d 20 24 64 65 76 oad).{.$this->devAutoload.=.$dev
620a0 41 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Autoload;.}.....public.function.
620c0 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getDevAutoload().{.return.$this-
620e0 3e 64 65 76 41 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >devAutoload;.}.......public.fun
62100 63 74 69 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 20 24 69 6e 63 ction.setIncludePaths(array.$inc
62120 6c 75 64 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 ludePaths).{.$this->includePaths
62140 20 3d 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .=.$includePaths;.}.....public.f
62160 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 unction.getIncludePaths().{.retu
62180 72 6e 20 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->includePaths;.}.......
621a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 public.function.setNotificationU
621c0 72 6c 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f rl($notificationUrl).{.$this->no
621e0 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 20 3d 20 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c tificationUrl.=.$notificationUrl
62200 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 ;.}.....public.function.getNotif
62220 69 63 61 74 69 6f 6e 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 74 icationUrl().{.return.$this->not
62240 69 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ificationUrl;.}.......public.fun
62260 63 74 69 6f 6e 20 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 61 72 72 61 79 20 24 ction.setArchiveExcludes(array.$
62280 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 excludes).{.$this->archiveExclud
622a0 65 73 20 3d 20 24 65 78 63 6c 75 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e es.=.$excludes;.}.....public.fun
622c0 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 ction.getArchiveExcludes().{.ret
622e0 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 3b 0a 7d 0a 0a 0a urn.$this->archiveExcludes;.}...
62300 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 56 65 72 ......public.function.replaceVer
62320 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b sion($version,.$prettyVersion).{
62340 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 .$this->version.=.$version;.$thi
62360 73 2d 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f s->prettyVersion.=.$prettyVersio
62380 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 n;..$this->stability.=.VersionPa
623a0 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a rser::parseStability($version);.
623c0 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d $this->dev.=.$this->stability.==
623e0 3d 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 =.'dev';.}..protected.function.g
62400 65 74 55 72 6c 73 28 24 75 72 6c 2c 20 24 6d 69 72 72 6f 72 73 2c 20 24 72 65 66 2c 20 24 74 79 etUrls($url,.$mirrors,.$ref,.$ty
62420 70 65 2c 20 24 75 72 6c 54 79 70 65 29 0a 7b 0a 69 66 20 28 21 24 75 72 6c 29 20 7b 0a 72 65 74 pe,.$urlType).{.if.(!$url).{.ret
62440 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 24 75 72 6c 73 20 3d 20 61 72 72 61 79 28 24 75 72 urn.array();.}.$urls.=.array($ur
62460 6c 29 3b 0a 69 66 20 28 24 6d 69 72 72 6f 72 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 69 l);.if.($mirrors).{.foreach.($mi
62480 72 72 6f 72 73 20 61 73 20 24 6d 69 72 72 6f 72 29 20 7b 0a 69 66 20 28 24 75 72 6c 54 79 70 65 rrors.as.$mirror).{.if.($urlType
624a0 20 3d 3d 3d 20 27 64 69 73 74 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 72 6c 20 3d 20 43 6f 6d 70 .===.'dist').{.$mirrorUrl.=.Comp
624c0 6f 73 65 72 4d 69 72 72 6f 72 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 6d 69 72 72 6f 72 5b 27 oserMirror::processUrl($mirror['
624e0 75 72 6c 27 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 url'],.$this->name,.$this->versi
62500 6f 6e 2c 20 24 72 65 66 2c 20 24 74 79 70 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 75 72 6c on,.$ref,.$type);.}.elseif.($url
62520 54 79 70 65 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 20 26 26 20 24 74 79 70 65 20 3d 3d 3d 20 27 Type.===.'source'.&&.$type.===.'
62540 67 69 74 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 72 6c 20 3d 20 43 6f 6d 70 6f 73 65 72 4d 69 72 git').{.$mirrorUrl.=.ComposerMir
62560 72 6f 72 3a 3a 70 72 6f 63 65 73 73 47 69 74 55 72 6c 28 24 6d 69 72 72 6f 72 5b 27 75 72 6c 27 ror::processGitUrl($mirror['url'
62580 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 29 3b 0a 7d 20 ],.$this->name,.$url,.$type);.}.
625a0 65 6c 73 65 69 66 20 28 24 75 72 6c 54 79 70 65 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 20 26 26 elseif.($urlType.===.'source'.&&
625c0 20 24 74 79 70 65 20 3d 3d 3d 20 27 68 67 27 29 20 7b 0a 24 6d 69 72 72 6f 72 55 72 6c 20 3d 20 .$type.===.'hg').{.$mirrorUrl.=.
625e0 43 6f 6d 70 6f 73 65 72 4d 69 72 72 6f 72 3a 3a 70 72 6f 63 65 73 73 48 67 55 72 6c 28 24 6d 69 ComposerMirror::processHgUrl($mi
62600 72 72 6f 72 5b 27 75 72 6c 27 5d 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 75 72 6c 2c 20 rror['url'],.$this->name,.$url,.
62620 24 74 79 70 65 29 3b 0a 7d 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 69 72 72 6f 72 55 $type);.}.if.(!in_array($mirrorU
62640 72 6c 2c 20 24 75 72 6c 73 29 29 20 7b 0a 24 66 75 6e 63 20 3d 20 24 6d 69 72 72 6f 72 5b 27 70 rl,.$urls)).{.$func.=.$mirror['p
62660 72 65 66 65 72 72 65 64 27 5d 20 3f 20 27 61 72 72 61 79 5f 75 6e 73 68 69 66 74 27 20 3a 20 27 referred'].?.'array_unshift'.:.'
62680 61 72 72 61 79 5f 70 75 73 68 27 3b 0a 24 66 75 6e 63 28 24 75 72 6c 73 2c 20 24 6d 69 72 72 6f array_push';.$func($urls,.$mirro
626a0 72 55 72 6c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 73 3b 0a 7d 0a 7d 0a rUrl);.}.}.}..return.$urls;.}.}.
626c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
626e0 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ser\Package;..use.Composer\Packa
62700 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 ge\LinkConstraint\VersionConstra
62720 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f int;.use.Composer\Package\Versio
62740 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 6c 69 61 73 n\VersionParser;.....class.Alias
62760 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c Package.extends.BasePackage.impl
62780 65 6d 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a ements.CompletePackageInterface.
627a0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 {.protected.$version;.protected.
627c0 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 3b 0a $prettyVersion;.protected.$dev;.
627e0 70 72 6f 74 65 63 74 65 64 20 24 61 6c 69 61 73 4f 66 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 protected.$aliasOf;.protected.$r
62800 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 ootPackageAlias.=.false;.protect
62820 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 ed.$stability;..protected.$requi
62840 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 6c 69 63 74 73 3b 0a 70 72 6f 74 65 res;.protected.$conflicts;.prote
62860 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6c 61 cted.$provides;.protected.$repla
62880 63 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 63 6f 6d 6d 65 6e 64 73 3b 0a 70 72 6f 74 ces;.protected.$recommends;.prot
628a0 65 63 74 65 64 20 24 73 75 67 67 65 73 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ected.$suggests;.........public.
628c0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 function.__construct(PackageInte
628e0 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 rface.$aliasOf,.$version,.$prett
62900 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 yVersion).{.parent::__construct(
62920 24 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 65 $aliasOf->getName());..$this->ve
62940 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 56 rsion.=.$version;.$this->prettyV
62960 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e ersion.=.$prettyVersion;.$this->
62980 61 6c 69 61 73 4f 66 20 3d 20 24 61 6c 69 61 73 4f 66 3b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 aliasOf.=.$aliasOf;.$this->stabi
629a0 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 lity.=.VersionParser::parseStabi
629c0 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 76 20 3d 20 24 74 68 lity($version);.$this->dev.=.$th
629e0 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 0a 0a 20 66 6f 72 65 is->stability.===.'dev';....fore
62a00 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 73 27 2c 20 27 64 65 76 52 65 71 75 69 ach.(array('requires',.'devRequi
62a20 72 65 73 27 29 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 res').as.$type).{.$links.=.$alia
62a40 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 66 sOf->{'get'.ucfirst($type)}();.f
62a60 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6c 69 6e oreach.($links.as.$index.=>.$lin
62a80 6b 29 20 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c k).{...if.('self.version'.===.$l
62aa0 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6c ink->getPrettyConstraint()).{.$l
62ac0 69 6e 6b 73 5b 24 69 6e 64 65 78 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 inks[$index].=.new.Link($link->g
62ae0 65 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 etSource(),.$link->getTarget(),.
62b00 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 new.VersionConstraint('=',.$this
62b20 2d 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f ->version),.$type,.$prettyVersio
62b40 6e 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 24 6c 69 6e 6b 73 3b 0a 7d n);.}.}.$this->$type.=.$links;.}
62b60 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 ....foreach.(array('conflicts',.
62b80 27 70 72 6f 76 69 64 65 73 27 2c 20 27 72 65 70 6c 61 63 65 73 27 29 20 61 73 20 24 74 79 70 65 'provides',.'replaces').as.$type
62ba0 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 61 6c 69 61 73 4f 66 2d 3e 7b 27 67 65 74 27 2e 75 63 ).{.$links.=.$aliasOf->{'get'.uc
62bc0 66 69 72 73 74 28 24 74 79 70 65 29 7d 28 29 3b 0a 24 6e 65 77 4c 69 6e 6b 73 20 3d 20 61 72 72 first($type)}();.$newLinks.=.arr
62be0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 ay();.foreach.($links.as.$link).
62c00 7b 0a 0a 20 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d 3d 20 24 6c 69 6e 6b {...if.('self.version'.===.$link
62c20 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 7b 0a 24 6e 65 77 4c ->getPrettyConstraint()).{.$newL
62c40 69 6e 6b 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 6c 69 6e 6b 2d 3e 67 65 74 53 6f 75 72 inks[].=.new.Link($link->getSour
62c60 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e 65 77 20 56 65 ce(),.$link->getTarget(),.new.Ve
62c80 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 rsionConstraint('=',.$this->vers
62ca0 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a ion),.$type,.$prettyVersion);.}.
62cc0 7d 0a 24 74 68 69 73 2d 3e 24 74 79 70 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 }.$this->$type.=.array_merge($li
62ce0 6e 6b 73 2c 20 24 6e 65 77 4c 69 6e 6b 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e nks,.$newLinks);.}.}..public.fun
62d00 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 4f 66 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 ction.getAliasOf().{.return.$thi
62d20 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->aliasOf;.}.....public.functio
62d40 6e 20 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 n.getVersion().{.return.$this->v
62d60 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ersion;.}.....public.function.ge
62d80 74 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 tStability().{.return.$this->sta
62da0 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 bility;.}.....public.function.ge
62dc0 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tPrettyVersion().{.return.$this-
62de0 3e 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >prettyVersion;.}.....public.fun
62e00 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 ction.isDev().{.return.$this->de
62e20 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 v;.}.....public.function.getRequ
62e40 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b ires().{.return.$this->requires;
62e60 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 .}.....public.function.getConfli
62e80 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 3b cts().{.return.$this->conflicts;
62ea0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 76 69 64 .}.....public.function.getProvid
62ec0 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d es().{.return.$this->provides;.}
62ee0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 .....public.function.getReplaces
62f00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a ().{.return.$this->replaces;.}..
62f20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 ...public.function.getDevRequire
62f40 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b s().{.return.$this->devRequires;
62f60 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .}...........public.function.set
62f80 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 RootPackageAlias($value).{.retur
62fa0 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 20 3d 20 24 76 61 6c n.$this->rootPackageAlias.=.$val
62fc0 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 6f 6f ue;.}......public.function.isRoo
62fe0 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e tPackageAlias().{.return.$this->
63000 72 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rootPackageAlias;.}......public.
63020 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getType().{.return.$thi
63040 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 s->aliasOf->getType();.}.public.
63060 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 44 69 72 28 29 0a 7b 0a 72 65 74 75 72 6e function.getTargetDir().{.return
63080 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b .$this->aliasOf->getTargetDir();
630a0 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a .}.public.function.getExtra().{.
630c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 45 78 74 72 61 28 return.$this->aliasOf->getExtra(
630e0 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 );.}.public.function.setInstalla
63100 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 tionSource($type).{.$this->alias
63120 4f 66 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 Of->setInstallationSource($type)
63140 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 ;.}.public.function.getInstallat
63160 69 6f 6e 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 ionSource().{.return.$this->alia
63180 73 4f 66 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 7d 0a sOf->getInstallationSource();.}.
631a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a public.function.getSourceType().
631c0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 {.return.$this->aliasOf->getSour
631e0 63 65 54 79 70 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 ceType();.}.public.function.getS
63200 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 ourceUrl().{.return.$this->alias
63220 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e Of->getSourceUrl();.}.public.fun
63240 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 ction.getSourceUrls().{.return.$
63260 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 73 28 29 3b 0a this->aliasOf->getSourceUrls();.
63280 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 }.public.function.getSourceRefer
632a0 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e ence().{.return.$this->aliasOf->
632c0 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 getSourceReference();.}.public.f
632e0 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 unction.setSourceReference($refe
63300 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e rence).{.return.$this->aliasOf->
63320 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a setSourceReference($reference);.
63340 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f }.public.function.setSourceMirro
63360 72 73 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 rs($mirrors).{.return.$this->ali
63380 61 73 4f 66 2d 3e 73 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 asOf->setSourceMirrors($mirrors)
633a0 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 4d 69 72 ;.}.public.function.getSourceMir
633c0 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e rors().{.return.$this->aliasOf->
633e0 67 65 74 53 6f 75 72 63 65 4d 69 72 72 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e getSourceMirrors();.}.public.fun
63400 63 74 69 6f 6e 20 67 65 74 44 69 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ction.getDistType().{.return.$th
63420 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 70 75 is->aliasOf->getDistType();.}.pu
63440 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 28 29 0a 7b 0a 72 65 74 blic.function.getDistUrl().{.ret
63460 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 urn.$this->aliasOf->getDistUrl()
63480 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 55 72 6c 73 28 ;.}.public.function.getDistUrls(
634a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 ).{.return.$this->aliasOf->getDi
634c0 73 74 55 72 6c 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 stUrls();.}.public.function.getD
634e0 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 istReference().{.return.$this->a
63500 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 70 75 liasOf->getDistReference();.}.pu
63520 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 blic.function.setDistReference($
63540 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 reference).{.return.$this->alias
63560 4f 66 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 Of->setDistReference($reference)
63580 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 ;.}.public.function.getDistSha1C
635a0 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f hecksum().{.return.$this->aliasO
635c0 66 2d 3e 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 70 75 62 6c f->getDistSha1Checksum();.}.publ
635e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 ic.function.setTransportOptions(
63600 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e array.$options).{.return.$this->
63620 61 6c 69 61 73 4f 66 2d 3e 73 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 24 6f 70 aliasOf->setTransportOptions($op
63640 74 69 6f 6e 73 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 72 61 tions);.}.public.function.getTra
63660 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nsportOptions().{.return.$this->
63680 61 6c 69 61 73 4f 66 2d 3e 67 65 74 54 72 61 6e 73 70 6f 72 74 4f 70 74 69 6f 6e 73 28 29 3b 0a aliasOf->getTransportOptions();.
636a0 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 4d 69 72 72 6f 72 73 }.public.function.setDistMirrors
636c0 28 24 6d 69 72 72 6f 72 73 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 ($mirrors).{.return.$this->alias
636e0 4f 66 2d 3e 73 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 24 6d 69 72 72 6f 72 73 29 3b 0a 7d 0a Of->setDistMirrors($mirrors);.}.
63700 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 4d 69 72 72 6f 72 73 28 29 public.function.getDistMirrors()
63720 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 .{.return.$this->aliasOf->getDis
63740 74 4d 69 72 72 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 tMirrors();.}.public.function.ge
63760 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 tScripts().{.return.$this->alias
63780 4f 66 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Of->getScripts();.}.public.funct
637a0 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getLicense().{.return.$this-
637c0 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 >aliasOf->getLicense();.}.public
637e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 6e .function.getAutoload().{.return
63800 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a .$this->aliasOf->getAutoload();.
63820 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 }.public.function.getDevAutoload
63840 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 ().{.return.$this->aliasOf->getD
63860 65 76 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 evAutoload();.}.public.function.
63880 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 getIncludePaths().{.return.$this
638a0 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 7d 0a ->aliasOf->getIncludePaths();.}.
638c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 public.function.getRepositories(
638e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 ).{.return.$this->aliasOf->getRe
63900 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 positories();.}.public.function.
63920 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getReleaseDate().{.return.$this-
63940 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 3b 0a 7d 0a 70 75 >aliasOf->getReleaseDate();.}.pu
63960 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 29 0a 7b 0a 72 65 blic.function.getBinaries().{.re
63980 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 turn.$this->aliasOf->getBinaries
639a0 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 ();.}.public.function.getKeyword
639c0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 s().{.return.$this->aliasOf->get
639e0 4b 65 79 77 6f 72 64 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 Keywords();.}.public.function.ge
63a00 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 tDescription().{.return.$this->a
63a20 6c 69 61 73 4f 66 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 3b 0a 7d 0a 70 75 62 6c liasOf->getDescription();.}.publ
63a40 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 ic.function.getHomepage().{.retu
63a60 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 48 6f 6d 65 70 61 67 65 28 29 rn.$this->aliasOf->getHomepage()
63a80 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 65 73 74 73 28 ;.}.public.function.getSuggests(
63aa0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 ).{.return.$this->aliasOf->getSu
63ac0 67 67 65 73 74 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 ggests();.}.public.function.getA
63ae0 75 74 68 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 uthors().{.return.$this->aliasOf
63b00 2d 3e 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ->getAuthors();.}.public.functio
63b20 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 n.getSupport().{.return.$this->a
63b40 6c 69 61 73 4f 66 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 liasOf->getSupport();.}.public.f
63b60 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 0a 7b 0a 72 unction.getNotificationUrl().{.r
63b80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 6f 74 69 66 69 63 eturn.$this->aliasOf->getNotific
63ba0 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ationUrl();.}.public.function.ge
63bc0 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tArchiveExcludes().{.return.$thi
63be0 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 s->aliasOf->getArchiveExcludes()
63c00 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 61 6e 64 6f 6e 65 64 28 ;.}.public.function.isAbandoned(
63c20 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 69 73 41 62 61 ).{.return.$this->aliasOf->isAba
63c40 6e 64 6f 6e 65 64 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 ndoned();.}.public.function.getR
63c60 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 eplacementPackage().{.return.$th
63c80 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 is->aliasOf->getReplacementPacka
63ca0 67 65 28 29 3b 0a 7d 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 ge();.}.public.function.__toStri
63cc0 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 5f 5f 74 6f 53 74 72 69 6e 67 ng().{.return.parent::__toString
63ce0 28 29 2e 27 20 28 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d ().'.(alias.of.'.$this->aliasOf-
63d00 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >getVersion().')';.}.}.<?php....
63d20 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ........namespace.Composer\Packa
63d40 67 65 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f ge;..use.Composer\Package\LinkCo
63d60 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 nstraint\LinkConstraintInterface
63d80 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 6e 6b 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 ;.......class.Link.{.protected.$
63da0 73 6f 75 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 3b 0a 70 72 6f 74 65 source;.protected.$target;.prote
63dc0 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 73 cted.$constraint;.protected.$des
63de0 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 43 6f 6e 73 74 cription;.protected.$prettyConst
63e00 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e raint;...........public.function
63e20 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 4c .__construct($source,.$target,.L
63e40 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 inkConstraintInterface.$constrai
63e60 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 72 65 6c 61 74 nt.=.null,.$description.=.'relat
63e80 65 73 20 74 6f 27 2c 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c es.to',.$prettyConstraint.=.null
63ea0 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 ).{.$this->source.=.strtolower($
63ec0 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 73 74 72 74 6f 6c 6f source);.$this->target.=.strtolo
63ee0 77 65 72 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 wer($target);.$this->constraint.
63f00 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f =.$constraint;.$this->descriptio
63f20 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 n.=.$description;.$this->prettyC
63f40 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d onstraint.=.$prettyConstraint;.}
63f60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 29 0a 7b 0a ..public.function.getSource().{.
63f80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 return.$this->source;.}..public.
63fa0 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 function.getTarget().{.return.$t
63fc0 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 his->target;.}..public.function.
63fe0 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e getConstraint().{.return.$this->
64000 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 constraint;.}..public.function.g
64020 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 etPrettyConstraint().{.if.(null.
64040 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 ===.$this->prettyConstraint).{.t
64060 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
64080 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 69 6e 6b 20 25 73 20 68 61 73 20 62 65 65 6e 20 6d 69 73 on(sprintf('Link.%s.has.been.mis
640a0 63 6f 6e 66 69 67 75 72 65 64 20 61 6e 64 20 68 61 64 20 6e 6f 20 70 72 65 74 74 79 43 6f 6e 73 configured.and.had.no.prettyCons
640c0 74 72 61 69 6e 74 20 67 69 76 65 6e 2e 27 2c 20 24 74 68 69 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 traint.given.',.$this));.}..retu
640e0 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 rn.$this->prettyConstraint;.}..p
64100 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 ublic.function.__toString().{.re
64120 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 turn.$this->source.'.'.$this->de
64140 73 63 72 69 70 74 69 6f 6e 2e 27 20 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 28 27 scription.'.'.$this->target.'.('
64160 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 2e 27 29 27 3b 0a 7d 0a 0a 70 75 62 6c 69 .$this->constraint.')';.}..publi
64180 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 61 63 6b 61 c.function.getPrettyString(Packa
641a0 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 0a 7b 0a 72 65 geInterface.$sourcePackage).{.re
641c0 74 75 72 6e 20 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 turn.$sourcePackage->getPrettySt
641e0 72 69 6e 67 28 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 2e 27 20 ring().'.'.$this->description.'.
64200 27 2e 24 74 68 69 73 2d 3e 74 61 72 67 65 74 2e 27 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 '.$this->target.'.'.$this->const
64220 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 27 3b 0a 7d 0a 7d raint->getPrettyString().'';.}.}
64240 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
64260 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a oser\Package\LinkConstraint;....
64280 0a 0a 0a 63 6c 61 73 73 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 ...class.EmptyConstraint.impleme
642a0 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 nts.LinkConstraintInterface.{.pr
642c0 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 6c 69 63 20 66 otected.$prettyString;..public.f
642e0 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e unction.matches(LinkConstraintIn
64300 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 terface.$provider).{.return.true
64320 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 ;.}..public.function.setPrettySt
64340 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 ring($prettyString).{.$this->pre
64360 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 ttyString.=.$prettyString;.}..pu
64380 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a blic.function.getPrettyString().
643a0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 {.if.($this->prettyString).{.ret
643c0 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 urn.$this->prettyString;.}..retu
643e0 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 rn.$this->__toString();.}..publi
64400 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.__toString().{.return
64420 20 27 5b 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .'[]';.}.}.<?php............name
64440 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 space.Composer\Package\LinkConst
64460 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 raint;........class.MultiConstra
64480 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 int.implements.LinkConstraintInt
644a0 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b erface.{.protected.$constraints;
644c0 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 70 72 6f 74 65 63 .protected.$prettyString;.protec
644e0 74 65 64 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ted.$conjunctive;........public.
64500 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 63 6f 6e 73 function.__construct(array.$cons
64520 74 72 61 69 6e 74 73 2c 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 74 72 75 65 29 0a 7b 0a traints,.$conjunctive.=.true).{.
64540 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 $this->constraints.=.$constraint
64560 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 24 63 6f 6e 6a 75 6e 63 s;.$this->conjunctive.=.$conjunc
64580 74 69 76 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 tive;.}..public.function.matches
645a0 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 (LinkConstraintInterface.$provid
645c0 65 72 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 er).{.if.(false.===.$this->conju
645e0 6e 63 74 69 76 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 nctive).{.foreach.($this->constr
64600 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 24 63 6f 6e aints.as.$constraint).{.if.($con
64620 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 straint->matches($provider)).{.r
64640 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d eturn.true;.}.}..return.false;.}
64660 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 ..foreach.($this->constraints.as
64680 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 21 24 63 6f 6e 73 74 72 61 69 6e 74 .$constraint).{.if.(!$constraint
646a0 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 ->matches($provider)).{.return.f
646c0 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 alse;.}.}..return.true;.}..publi
646e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 c.function.setPrettyString($pret
64700 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 tyString).{.$this->prettyString.
64720 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$prettyString;.}..public.funct
64740 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 ion.getPrettyString().{.if.($thi
64760 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d s->prettyString).{.return.$this-
64780 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e >prettyString;.}..return.$this->
647a0 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e __toString();.}..public.function
647c0 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 .__toString().{.$constraints.=.a
647e0 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 rray();.foreach.($this->constrai
64800 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e nts.as.$constraint).{.$constrain
64820 74 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 ts[].=.$constraint->__toString()
64840 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 24 74 68 69 73 2d 3e 63 ;.}..return.'['.implode($this->c
64860 6f 6e 6a 75 6e 63 74 69 76 65 20 3f 20 27 20 27 20 3a 20 27 20 7c 7c 20 27 2c 20 24 63 6f 6e 73 onjunctive.?.'.'.:.'.||.',.$cons
64880 74 72 61 69 6e 74 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a traints).']';.}.}.<?php.........
648a0 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ...namespace.Composer\Package\Li
648c0 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 nkConstraint;.........class.Vers
648e0 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f ionConstraint.extends.SpecificCo
64900 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 nstraint.{.private.$operator;.pr
64920 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ivate.$version;........public.fu
64940 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 nction.__construct($operator,.$v
64960 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 ersion).{.if.('='.===.$operator)
64980 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3e 27 .{.$operator.=.'==';.}..if.('<>'
649a0 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 21 .===.$operator).{.$operator.=.'!
649c0 3d 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 =';.}..$this->operator.=.$operat
649e0 6f 72 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d or;.$this->version.=.$version;.}
64a00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 ..public.function.versionCompare
64a20 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e ($a,.$b,.$operator,.$compareBran
64a40 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 61 49 73 42 72 61 6e 63 68 20 3d 20 27 64 65 ches.=.false).{.$aIsBranch.=.'de
64a60 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 34 29 3b 0a 24 62 49 73 42 72 v-'.===.substr($a,.0,.4);.$bIsBr
64a80 61 6e 63 68 20 3d 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 2c 20 30 2c 20 anch.=.'dev-'.===.substr($b,.0,.
64aa0 34 29 3b 0a 69 66 20 28 24 61 49 73 42 72 61 6e 63 68 20 26 26 20 24 62 49 73 42 72 61 6e 63 68 4);.if.($aIsBranch.&&.$bIsBranch
64ac0 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 6f 72 20 3d 3d 20 27 3d 3d 27 20 26 26 20 ).{.return.$operator.==.'=='.&&.
64ae0 24 61 20 3d 3d 3d 20 24 62 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 63 6f 6d 70 61 72 65 42 72 61 $a.===.$b;.}....if.(!$compareBra
64b00 6e 63 68 65 73 20 26 26 20 28 24 61 49 73 42 72 61 6e 63 68 20 7c 7c 20 24 62 49 73 42 72 61 6e nches.&&.($aIsBranch.||.$bIsBran
64b20 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 76 ch)).{.return.false;.}..return.v
64b40 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 ersion_compare($a,.$b,.$operator
64b60 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 );.}.......public.function.match
64b80 53 70 65 63 69 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 Specific(VersionConstraint.$prov
64ba0 69 64 65 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a ider,.$compareBranches.=.false).
64bc0 7b 0a 73 74 61 74 69 63 20 24 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 69 {.static.$cache.=.array();.if.(i
64be0 73 73 65 74 28 24 63 61 63 68 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 74 68 sset($cache[$this->operator][$th
64c00 69 73 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 is->version][$provider->operator
64c20 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 63 6f 6d 70 61 72 65 42 72 ][$provider->version][$compareBr
64c40 61 6e 63 68 65 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 63 68 65 5b 24 74 68 69 73 2d anches])).{.return.$cache[$this-
64c60 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 70 72 6f 76 >operator][$this->version][$prov
64c80 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 ider->operator][$provider->versi
64ca0 6f 6e 5d 5b 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e on][$compareBranches];.}..return
64cc0 20 24 63 61 63 68 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 74 68 69 73 2d 3e .$cache[$this->operator][$this->
64ce0 76 65 72 73 69 6f 6e 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 70 version][$provider->operator][$p
64d00 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 rovider->version][$compareBranch
64d20 65 73 5d 20 3d 0a 24 74 68 69 73 2d 3e 64 6f 4d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 es].=.$this->doMatchSpecific($pr
64d40 6f 76 69 64 65 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 0a 0a ovider,.$compareBranches);.}....
64d60 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 4d 61 74 63 68 53 70 65 63 69 ...private.function.doMatchSpeci
64d80 66 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 2c fic(VersionConstraint.$provider,
64da0 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6e 6f .$compareBranches.=.false).{.$no
64dc0 45 71 75 61 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 EqualOp.=.str_replace('=',.'',.$
64de0 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 this->operator);.$providerNoEqua
64e00 6c 4f 70 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3d 27 2c 20 27 27 2c 20 24 70 72 6f 76 lOp.=.str_replace('=',.'',.$prov
64e20 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 29 3b 0a 0a 24 69 73 45 71 75 61 6c 4f 70 20 3d 20 27 ider->operator);..$isEqualOp.=.'
64e40 3d 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 4e 6f 6e 45 =='.===.$this->operator;.$isNonE
64e60 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f qualOp.=.'!='.===.$this->operato
64e80 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 72 45 71 75 61 6c 4f 70 20 3d 20 27 3d 3d 27 20 3d 3d 3d r;.$isProviderEqualOp.=.'=='.===
64ea0 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 24 69 73 50 72 6f 76 69 64 65 .$provider->operator;.$isProvide
64ec0 72 4e 6f 6e 45 71 75 61 6c 4f 70 20 3d 20 27 21 3d 27 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 rNonEqualOp.=.'!='.===.$provider
64ee0 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 24 69 73 4e 6f 6e 45 71 75 61 6c ->operator;......if.($isNonEqual
64f00 4f 70 20 7c 7c 20 24 69 73 50 72 6f 76 69 64 65 72 4e 6f 6e 45 71 75 61 6c 4f 70 29 20 7b 0a 72 Op.||.$isProviderNonEqualOp).{.r
64f20 65 74 75 72 6e 20 21 24 69 73 45 71 75 61 6c 4f 70 20 26 26 20 21 24 69 73 50 72 6f 76 69 64 65 eturn.!$isEqualOp.&&.!$isProvide
64f40 72 45 71 75 61 6c 4f 70 0a 7c 7c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 rEqualOp.||.$this->versionCompar
64f60 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 e($provider->version,.$this->ver
64f80 73 69 6f 6e 2c 20 27 21 3d 27 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a 7d sion,.'!=',.$compareBranches);.}
64fa0 0a 0a 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d ......if.($this->operator.!=.'==
64fc0 27 20 26 26 20 24 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 '.&&.$noEqualOp.==.$providerNoEq
64fe0 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 ualOp).{.return.true;.}..if.($th
65000 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 is->versionCompare($provider->ve
65020 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 rsion,.$this->version,.$this->op
65040 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 20 0a erator,.$compareBranches)).{....
65060 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 .if.($provider->version.==.$this
65080 2d 3e 76 65 72 73 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 ->version.&&.$provider->operator
650a0 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 74 68 69 73 2d .==.$providerNoEqualOp.&&.$this-
650c0 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 >operator.!=.$noEqualOp).{.retur
650e0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 n.false;.}..return.true;.}..retu
65100 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 rn.false;.}..public.function.__t
65120 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 oString().{.return.$this->operat
65140 6f 72 2e 27 20 27 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 or.'.'.$this->version;.}.}.<?php
65160 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ............namespace.Composer\P
65180 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 ackage\LinkConstraint;.......abs
651a0 74 72 61 63 74 20 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 tract.class.SpecificConstraint.i
651c0 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 mplements.LinkConstraintInterfac
651e0 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 e.{.protected.$prettyString;..pu
65200 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 blic.function.matches(LinkConstr
65220 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 aintInterface.$provider).{.if.($
65240 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 provider.instanceof.MultiConstra
65260 69 6e 74 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 int).{...return.$provider->match
65280 65 73 28 24 74 68 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 es($this);.}.elseif.($provider.i
652a0 6e 73 74 61 6e 63 65 6f 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nstanceof.$this).{.return.$this-
652c0 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 >matchSpecific($provider);.}..re
652e0 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 turn.true;.}..public.function.se
65300 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 tPrettyString($prettyString).{.$
65320 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 this->prettyString.=.$prettyStri
65340 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 ng;.}..public.function.getPretty
65360 53 74 72 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 String().{.if.($this->prettyStri
65380 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 ng).{.return.$this->prettyString
653a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b ;.}..return.$this->__toString();
653c0 0a 7d 0a 0a 0a 20 0a 20 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .}.......}.<?php............name
653e0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 space.Composer\Package\LinkConst
65400 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 raint;.......interface.LinkConst
65420 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e raintInterface.{.public.function
65440 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 .matches(LinkConstraintInterface
65460 20 24 70 72 6f 76 69 64 65 72 29 3b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .$provider);.public.function.set
65480 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 3b 0a 70 75 62 PrettyString($prettyString);.pub
654a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a lic.function.getPrettyString();.
654c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a public.function.__toString();.}.
654e0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
65500 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 ser;..use.Composer\IO\IOInterfac
65520 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b e;.use.Composer\Util\Filesystem;
65540 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 .use.Symfony\Component\Finder\Fi
65560 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 74 nder;.......class.Cache.{.privat
65580 65 20 73 74 61 74 69 63 20 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 66 61 6c 73 65 e.static.$cacheCollected.=.false
655a0 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 3b 0a 70 72 ;.private.$io;.private.$root;.pr
655c0 69 76 61 74 65 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 ivate.$enabled.=.true;.private.$
655e0 77 68 69 74 65 6c 69 73 74 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a whitelist;.private.$filesystem;.
65600 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
65620 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 2c 20 24 ct(IOInterface.$io,.$cacheDir,.$
65640 77 68 69 74 65 6c 69 73 74 20 3d 20 27 61 2d 7a 30 2d 39 2e 27 2c 20 46 69 6c 65 73 79 73 74 65 whitelist.=.'a-z0-9.',.Filesyste
65660 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 m.$filesystem.=.null).{.$this->i
65680 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 20 3d 20 72 74 72 69 6d 28 24 63 61 o.=.$io;.$this->root.=.rtrim($ca
656a0 63 68 65 44 69 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 24 74 68 69 73 2d 3e 77 68 69 cheDir,.'/\\')...'/';.$this->whi
656c0 74 65 6c 69 73 74 20 3d 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 telist.=.$whitelist;.$this->file
656e0 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 system.=.$filesystem.?:.new.File
65700 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 6f system();..if.(!is_dir($this->ro
65720 6f 74 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 2c 20 ot)).{.if.(!@mkdir($this->root,.
65740 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 3d 20 0777,.true)).{.$this->enabled.=.
65760 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 false;.}.}.}..public.function.is
65780 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 Enabled().{.return.$this->enable
657a0 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 28 29 0a d;.}..public.function.getRoot().
657c0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 {.return.$this->root;.}..public.
657e0 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 function.read($file).{.$file.=.p
65800 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 reg_replace('{[^'.$this->whiteli
65820 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 st.']}i',.'-',.$file);.if.($this
65840 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e ->enabled.&&.file_exists($this->
65860 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e root...$file)).{.if.($this->io->
65880 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 isDebug()).{.$this->io->writeErr
658a0 6f 72 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c or('Reading.'.$this->root...$fil
658c0 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 69 6c 65 e.'.from.cache');.}..return.file
658e0 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c _get_contents($this->root...$fil
65900 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 e);.}..return.false;.}..public.f
65920 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 0a unction.write($file,.$contents).
65940 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 20 3d 20 {.if.($this->enabled).{.$file.=.
65960 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c preg_replace('{[^'.$this->whitel
65980 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 24 74 68 ist.']}i',.'-',.$file);..if.($th
659a0 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e is->io->isDebug()).{.$this->io->
659c0 77 72 69 74 65 45 72 72 6f 72 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f writeError('Writing.'.$this->roo
659e0 74 20 2e 20 24 66 69 6c 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 74 72 79 t...$file.'.into.cache');.}..try
65a00 20 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 .{.return.file_put_contents($thi
65a20 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 20 63 s->root...$file,.$contents);.}.c
65a40 61 74 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 atch.(\ErrorException.$e).{.if.(
65a60 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c preg_match('{^file_put_contents\
65a80 28 5c 29 3a 20 4f 6e 6c 79 20 28 5b 30 2d 39 5d 2b 29 20 6f 66 20 28 5b 30 2d 39 5d 2b 29 20 62 (\):.Only.([0-9]+).of.([0-9]+).b
65aa0 79 74 65 73 20 77 72 69 74 74 65 6e 7d 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 ytes.written}',.$e->getMessage()
65ac0 2c 20 24 6d 29 29 20 7b 0a 0a 20 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 ,.$m)).{...unlink($this->root...
65ae0 24 66 69 6c 65 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 3c 77 $file);..$message.=.sprintf(.'<w
65b00 61 72 6e 69 6e 67 3e 57 72 69 74 69 6e 67 20 25 31 24 73 20 69 6e 74 6f 20 63 61 63 68 65 20 66 arning>Writing.%1$s.into.cache.f
65b20 61 69 6c 65 64 20 61 66 74 65 72 20 25 32 24 75 20 6f 66 20 25 33 24 75 20 62 79 74 65 73 20 77 ailed.after.%2$u.of.%3$u.bytes.w
65b40 72 69 74 74 65 6e 2c 20 6f 6e 6c 79 20 25 34 24 75 20 62 79 74 65 73 20 6f 66 20 66 72 65 65 20 ritten,.only.%4$u.bytes.of.free.
65b60 73 70 61 63 65 20 61 76 61 69 6c 61 62 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 0a 24 74 68 69 space.available</warning>',.$thi
65b80 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 0a 24 6d 5b 31 5d 2c 0a 24 6d 5b 32 5d 2c 0a 40 s->root...$file,.$m[1],.$m[2],.@
65ba0 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 64 69 disk_free_space($this->root...di
65bc0 72 6e 61 6d 65 28 24 66 69 6c 65 29 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 rname($file)).);..$this->io->wri
65be0 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 teError($message);..return.false
65c00 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 ;.}..throw.$e;.}.}..return.false
65c20 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 72 6f 6d ;.}.....public.function.copyFrom
65c40 28 24 66 69 6c 65 2c 20 24 73 6f 75 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e ($file,.$source).{.if.($this->en
65c60 61 62 6c 65 64 29 20 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b abled).{.$file.=.preg_replace('{
65c80 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c [^'.$this->whitelist.']}i',.'-',
65ca0 20 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 .$file);.$this->filesystem->ensu
65cc0 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d reDirectoryExists(dirname($this-
65ce0 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d >root...$file));..if.($this->io-
65d00 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 >isDebug()).{.$this->io->writeEr
65d20 72 6f 72 28 27 57 72 69 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 ror('Writing.'.$this->root...$fi
65d40 6c 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 6f 70 le.'.into.cache');.}..return.cop
65d60 79 28 24 73 6f 75 72 63 65 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b y($source,.$this->root...$file);
65d80 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .}..return.false;.}.....public.f
65da0 75 6e 63 74 69 6f 6e 20 63 6f 70 79 54 6f 28 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 0a 7b unction.copyTo($file,.$target).{
65dc0 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 .$file.=.preg_replace('{[^'.$thi
65de0 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b s->whitelist.']}i',.'-',.$file);
65e00 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 .if.($this->enabled.&&.file_exis
65e20 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 74 6f 75 63 68 ts($this->root...$file)).{.touch
65e40 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 ($this->root...$file);..if.($thi
65e60 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 s->io->isDebug()).{.$this->io->w
65e80 72 69 74 65 45 72 72 6f 72 28 27 52 65 61 64 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 riteError('Reading.'.$this->root
65ea0 20 2e 20 24 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 ...$file.'.from.cache');.}..retu
65ec0 72 6e 20 63 6f 70 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 74 61 rn.copy($this->root...$file,.$ta
65ee0 72 67 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 rget);.}..return.false;.}..publi
65f00 63 20 66 75 6e 63 74 69 6f 6e 20 67 63 49 73 4e 65 63 65 73 73 61 72 79 28 29 0a 7b 0a 72 65 74 c.function.gcIsNecessary().{.ret
65f20 75 72 6e 20 28 21 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 26 26 20 21 urn.(!self::$cacheCollected.&&.!
65f40 6d 74 5f 72 61 6e 64 28 30 2c 20 35 30 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 mt_rand(0,.50));.}..public.funct
65f60 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 ion.remove($file).{.$file.=.preg
65f80 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e _replace('{[^'.$this->whitelist.
65fa0 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 ']}i',.'-',.$file);.if.($this->e
65fc0 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f nabled.&&.file_exists($this->roo
65fe0 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 t...$file)).{.return.$this->file
66000 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 system->unlink($this->root...$fi
66020 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 le);.}..return.false;.}..public.
66040 66 75 6e 63 74 69 6f 6e 20 67 63 28 24 74 74 6c 2c 20 24 6d 61 78 53 69 7a 65 29 0a 7b 0a 69 66 function.gc($ttl,.$maxSize).{.if
66060 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a 24 65 78 70 69 72 65 20 3d 20 6e 65 .($this->enabled).{.$expire.=.ne
66080 77 20 5c 44 61 74 65 54 69 6d 65 28 29 3b 0a 24 65 78 70 69 72 65 2d 3e 6d 6f 64 69 66 79 28 27 w.\DateTime();.$expire->modify('
660a0 2d 27 2e 24 74 74 6c 2e 27 20 73 65 63 6f 6e 64 73 27 29 3b 0a 0a 24 66 69 6e 64 65 72 20 3d 20 -'.$ttl.'.seconds');..$finder.=.
660c0 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 64 61 74 65 28 27 75 6e 74 69 6c 20 $this->getFinder()->date('until.
660e0 27 2e 24 65 78 70 69 72 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 '.$expire->format('Y-m-d.H:i:s')
66100 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a );.foreach.($finder.as.$file).{.
66120 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d $this->filesystem->unlink($file-
66140 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 69 7a 65 20 3d >getPathname());.}..$totalSize.=
66160 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 74 68 69 73 2d 3e .$this->filesystem->size($this->
66180 72 6f 6f 74 29 3b 0a 69 66 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 root);.if.($totalSize.>.$maxSize
661a0 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 ).{.$iterator.=.$this->getFinder
661c0 28 29 2d 3e 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 2d 3e 67 65 74 49 74 65 ()->sortByAccessedTime()->getIte
661e0 72 61 74 6f 72 28 29 3b 0a 77 68 69 6c 65 20 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 rator();.while.($totalSize.>.$ma
66200 78 53 69 7a 65 20 26 26 20 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 xSize.&&.$iterator->valid()).{.$
66220 66 69 6c 65 70 61 74 68 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 63 75 72 72 65 6e 74 28 29 2d filepath.=.$iterator->current()-
66240 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 3b 0a 24 74 6f 74 61 6c 53 69 7a 65 20 2d 3d 20 24 74 >getPathname();.$totalSize.-=.$t
66260 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 73 69 7a 65 28 24 66 69 6c 65 70 61 74 68 29 his->filesystem->size($filepath)
66280 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c ;.$this->filesystem->unlink($fil
662a0 65 70 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 7d 0a 0a epath);.$iterator->next();.}.}..
662c0 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 self::$cacheCollected.=.true;..r
662e0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a eturn.true;.}..return.false;.}..
66300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 public.function.sha1($file).{.$f
66320 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e ile.=.preg_replace('{[^'.$this->
66340 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 whitelist.']}i',.'-',.$file);.if
66360 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 .($this->enabled.&&.file_exists(
66380 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 $this->root...$file)).{.return.s
663a0 68 61 31 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d ha1_file($this->root...$file);.}
663c0 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ..return.false;.}..public.functi
663e0 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f on.sha256($file).{.$file.=.preg_
66400 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 replace('{[^'.$this->whitelist.'
66420 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e ]}i',.'-',.$file);.if.($this->en
66440 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 abled.&&.file_exists($this->root
66460 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 68 61 73 68 5f 66 69 6c 65 28 27 73 ...$file)).{.return.hash_file('s
66480 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a ha256',.$this->root...$file);.}.
664a0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 .return.false;.}..protected.func
664c0 74 69 6f 6e 20 67 65 74 46 69 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 46 69 6e 64 65 72 tion.getFinder().{.return.Finder
664e0 3a 3a 63 72 65 61 74 65 28 29 2d 3e 69 6e 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 2d 3e 66 69 6c ::create()->in($this->root)->fil
66500 65 73 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 es();.}.}.<?php............names
66520 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 pace.Composer\DependencyResolver
66540 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 ;..use.Composer\Package\PackageI
66560 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6f 6c 69 63 79 49 6e nterface;.....interface.PolicyIn
66580 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f terface.{.public.function.versio
665a0 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 nCompare(PackageInterface.$a,.Pa
665c0 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 70 ckageInterface.$b,.$operator);.p
665e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 ublic.function.findUpdatePackage
66600 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 s(Pool.$pool,.array.$installedMa
66620 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 70 p,.PackageInterface.$package);.p
66640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 50 61 63 ublic.function.selectPreferedPac
66660 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c kages(Pool.$pool,.array.$install
66680 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 3c 3f 70 68 70 edMap,.array.$literals);.}.<?php
666a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
666c0 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c ependencyResolver;.....class.Rul
666e0 65 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 eSet.implements.\IteratorAggrega
66700 74 65 2c 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 0a 20 63 6f 6e 73 74 20 54 59 50 45 5f 50 41 te,.\Countable.{...const.TYPE_PA
66720 43 4b 41 47 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 4a 4f 42 20 3d 20 31 3b 0a 63 CKAGE.=.0;.const.TYPE_JOB.=.1;.c
66740 6f 6e 73 74 20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 20 34 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 onst.TYPE_LEARNED.=.4;.......pub
66760 6c 69 63 20 24 72 75 6c 65 42 79 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 lic.$ruleById;..protected.static
66780 20 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 0a 2d 31 20 3d 3e 20 27 55 4e 4b 4e 4f 57 4e 27 .$types.=.array(.-1.=>.'UNKNOWN'
667a0 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 20 3d 3e 20 27 50 41 43 4b 41 47 45 ,.self::TYPE_PACKAGE.=>.'PACKAGE
667c0 27 2c 0a 73 65 6c 66 3a 3a 54 59 50 45 5f 4a 4f 42 20 3d 3e 20 27 4a 4f 42 27 2c 0a 73 65 6c 66 ',.self::TYPE_JOB.=>.'JOB',.self
667e0 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3e 20 27 4c 45 41 52 4e 45 44 27 2c 0a 29 3b 0a ::TYPE_LEARNED.=>.'LEARNED',.);.
66800 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 65 .protected.$rules;.protected.$ne
66820 78 74 52 75 6c 65 49 64 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 42 79 48 61 73 xtRuleId;..protected.$rulesByHas
66840 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 h;..public.function.__construct(
66860 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 20 3d 20 30 3b 0a 0a 66 6f 72 65 ).{.$this->nextRuleId.=.0;..fore
66880 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 54 79 70 65 73 28 29 20 61 73 20 24 74 79 70 65 29 ach.($this->getTypes().as.$type)
668a0 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 .{.$this->rules[$type].=.array()
668c0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 20 3d 20 61 72 72 61 79 28 ;.}..$this->rulesByHash.=.array(
668e0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 52 75 6c 65 20 24 );.}..public.function.add(Rule.$
66900 72 75 6c 65 2c 20 24 74 79 70 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a rule,.$type).{.if.(!isset(self::
66920 24 74 79 70 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4f 75 74 $types[$type])).{.throw.new.\Out
66940 4f 66 42 6f 75 6e 64 73 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 72 75 6c 65 20 OfBoundsException('Unknown.rule.
66960 74 79 70 65 3a 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 type:.'...$type);.}..if.(!isset(
66980 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 $this->rules[$type])).{.$this->r
669a0 75 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d ules[$type].=.array();.}..$this-
669c0 3e 72 75 6c 65 73 5b 24 74 79 70 65 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 24 74 68 69 73 2d 3e >rules[$type][].=.$rule;.$this->
669e0 72 75 6c 65 42 79 49 64 5b 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 5d 20 3d 20 24 72 ruleById[$this->nextRuleId].=.$r
66a00 75 6c 65 3b 0a 24 72 75 6c 65 2d 3e 73 65 74 54 79 70 65 28 24 74 79 70 65 29 3b 0a 0a 24 72 75 ule;.$rule->setType($type);..$ru
66a20 6c 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 29 3b 0a 24 74 le->setId($this->nextRuleId);.$t
66a40 68 69 73 2d 3e 6e 65 78 74 52 75 6c 65 49 64 2b 2b 3b 0a 0a 24 68 61 73 68 20 3d 20 24 72 75 6c his->nextRuleId++;..$hash.=.$rul
66a60 65 2d 3e 67 65 74 48 61 73 68 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e e->getHash();.if.(!isset($this->
66a80 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 75 rulesByHash[$hash])).{.$this->ru
66aa0 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 61 79 28 24 72 75 6c 65 29 3b lesByHash[$hash].=.array($rule);
66ac0 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 .}.else.{.$this->rulesByHash[$ha
66ae0 73 68 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 sh][].=.$rule;.}.}..public.funct
66b00 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 65 78 74 ion.count().{.return.$this->next
66b20 52 75 6c 65 49 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6c 65 42 RuleId;.}..public.function.ruleB
66b40 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 42 79 49 yId($id).{.return.$this->ruleByI
66b60 64 5b 24 69 64 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 d[$id];.}..public.function.getRu
66b80 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 0a les().{.return.$this->rules;.}..
66ba0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a public.function.getIterator().{.
66bc0 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 return.new.RuleSetIterator($this
66be0 2d 3e 67 65 74 52 75 6c 65 73 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ->getRules());.}..public.functio
66c00 6e 20 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 n.getIteratorFor($types).{.if.(!
66c20 69 73 5f 61 72 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 is_array($types)).{.$types.=.arr
66c40 61 79 28 24 74 79 70 65 73 29 3b 0a 7d 0a 0a 24 61 6c 6c 52 75 6c 65 73 20 3d 20 24 74 68 69 73 ay($types);.}..$allRules.=.$this
66c60 2d 3e 67 65 74 52 75 6c 65 73 28 29 3b 0a 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ->getRules();.$rules.=.array();.
66c80 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 24 72 75 .foreach.($types.as.$type).{.$ru
66ca0 6c 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 61 6c 6c 52 75 6c 65 73 5b 24 74 79 70 65 5d 3b 0a 7d les[$type].=.$allRules[$type];.}
66cc0 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 ..return.new.RuleSetIterator($ru
66ce0 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 les);.}..public.function.getIter
66d00 61 74 6f 72 57 69 74 68 6f 75 74 28 24 74 79 70 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 atorWithout($types).{.if.(!is_ar
66d20 72 61 79 28 24 74 79 70 65 73 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 24 74 ray($types)).{.$types.=.array($t
66d40 79 70 65 73 29 3b 0a 7d 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 75 6c ypes);.}..$rules.=.$this->getRul
66d60 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 es();..foreach.($types.as.$type)
66d80 20 7b 0a 75 6e 73 65 74 28 24 72 75 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 .{.unset($rules[$type]);.}..retu
66da0 72 6e 20 6e 65 77 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 28 24 72 75 6c 65 73 29 3b 0a rn.new.RuleSetIterator($rules);.
66dc0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 73 28 29 0a 7b 0a }..public.function.getTypes().{.
66de0 24 74 79 70 65 73 20 3d 20 73 65 6c 66 3a 3a 24 74 79 70 65 73 3b 0a 75 6e 73 65 74 28 24 74 79 $types.=.self::$types;.unset($ty
66e00 70 65 73 5b 2d 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 79 pes[-1]);..return.array_keys($ty
66e20 70 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e pes);.}..public.function.contain
66e40 73 45 71 75 61 6c 28 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d sEqual($rule).{.if.(isset($this-
66e60 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 29 29 >rulesByHash[$rule->getHash()]))
66e80 20 7b 0a 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 3d 20 24 74 68 69 73 2d .{.$potentialDuplicates.=.$this-
66ea0 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 72 75 6c 65 2d 3e 67 65 74 48 61 73 68 28 29 5d 3b 0a >rulesByHash[$rule->getHash()];.
66ec0 66 6f 72 65 61 63 68 20 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 73 20 61 73 foreach.($potentialDuplicates.as
66ee0 20 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 20 7b 0a 69 66 20 28 24 72 75 6c .$potentialDuplicate).{.if.($rul
66f00 65 2d 3e 65 71 75 61 6c 73 28 24 70 6f 74 65 6e 74 69 61 6c 44 75 70 6c 69 63 61 74 65 29 29 20 e->equals($potentialDuplicate)).
66f20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c {.return.true;.}.}.}..return.fal
66f40 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 74 79 se;.}..public.function.getPretty
66f60 53 74 72 69 6e 67 28 50 6f 6f 6c 20 24 70 6f 6f 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 73 74 72 String(Pool.$pool.=.null).{.$str
66f80 69 6e 67 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 ing.=."\n";.foreach.($this->rule
66fa0 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 72 75 6c 65 73 29 20 7b 0a 24 73 74 72 69 6e 67 20 s.as.$type.=>.$rules).{.$string.
66fc0 2e 3d 20 73 74 72 5f 70 61 64 28 73 65 6c 66 3a 3a 24 74 79 70 65 73 5b 24 74 79 70 65 5d 2c 20 .=.str_pad(self::$types[$type],.
66fe0 38 2c 20 27 20 27 29 20 2e 20 22 3a 20 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 8,.'.')...":.";.foreach.($rules.
67000 61 73 20 24 72 75 6c 65 29 20 7b 0a 24 73 74 72 69 6e 67 20 2e 3d 20 28 24 70 6f 6f 6c 20 3f 20 as.$rule).{.$string..=.($pool.?.
67020 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 6f 6f 6c 29 20 3a 20 $rule->getPrettyString($pool).:.
67040 24 72 75 6c 65 29 2e 22 5c 6e 22 3b 0a 7d 0a 24 73 74 72 69 6e 67 20 2e 3d 20 22 5c 6e 5c 6e 22 $rule)."\n";.}.$string..=."\n\n"
67060 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 72 69 6e 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ;.}..return.$string;.}..public.f
67080 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 unction.__toString().{.return.$t
670a0 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a his->getPrettyString(null);.}.}.
670c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f <?php............namespace.Compo
670e0 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 ser\DependencyResolver;.....clas
67100 73 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 s.SolverBugException.extends.\Ru
67120 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ntimeException.{.public.function
67140 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a .__construct($message).{.parent:
67160 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 0a 24 6d 65 73 73 61 67 65 2e 22 5c 6e 54 68 69 73 20 65 :__construct(.$message."\nThis.e
67180 78 63 65 70 74 69 6f 6e 20 77 61 73 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 63 61 75 73 65 64 20 xception.was.most.likely.caused.
671a0 62 79 20 61 20 62 75 67 20 69 6e 20 43 6f 6d 70 6f 73 65 72 2e 5c 6e 22 2e 0a 22 50 6c 65 61 73 by.a.bug.in.Composer.\n".."Pleas
671c0 65 20 72 65 70 6f 72 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 79 6f 75 20 72 61 6e 2c 20 74 68 e.report.the.command.you.ran,.th
671e0 65 20 65 78 61 63 74 20 65 72 72 6f 72 20 79 6f 75 20 72 65 63 65 69 76 65 64 2c 20 61 6e 64 20 e.exact.error.you.received,.and.
67200 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 6e 20 68 74 74 70 73 3a 2f 2f 67 69 your.composer.json.on.https://gi
67220 74 68 75 62 2e 63 6f 6d 2f 63 6f 6d 70 6f 73 65 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 73 73 75 65 thub.com/composer/composer/issue
67240 73 20 2d 20 74 68 61 6e 6b 20 79 6f 75 21 5c 6e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a s.-.thank.you!\n");.}.}.<?php...
67260 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 .........namespace.Composer\Depe
67280 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ndencyResolver;..use.Composer\Pa
672a0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ckage\PackageInterface;.use.Comp
672c0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 oser\Package\AliasPackage;.use.C
672e0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 omposer\Package\BasePackage;.use
67300 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
67320 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 \VersionConstraint;......class.D
67340 65 66 61 75 6c 74 50 6f 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 79 49 6e efaultPolicy.implements.PolicyIn
67360 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b terface.{.private.$preferStable;
67380 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 3b 0a 0a 70 75 62 6c 69 63 20 .private.$preferLowest;..public.
673a0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 72 65 66 65 72 53 74 61 62 function.__construct($preferStab
673c0 6c 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 66 61 6c 73 le.=.false,.$preferLowest.=.fals
673e0 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 e).{.$this->preferStable.=.$pref
67400 65 72 53 74 61 62 6c 65 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 erStable;.$this->preferLowest.=.
67420 24 70 72 65 66 65 72 4c 6f 77 65 73 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $preferLowest;.}..public.functio
67440 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.versionCompare(PackageInterfac
67460 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 e.$a,.PackageInterface.$b,.$oper
67480 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 ator).{.if.($this->preferStable.
674a0 26 26 20 28 24 73 74 61 62 41 20 3d 20 24 61 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 &&.($stabA.=.$a->getStability())
674c0 20 21 3d 3d 20 28 24 73 74 61 62 42 20 3d 20 24 62 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 .!==.($stabB.=.$b->getStability(
674e0 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 ))).{.return.BasePackage::$stabi
67500 6c 69 74 69 65 73 5b 24 73 74 61 62 41 5d 20 3c 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 lities[$stabA].<.BasePackage::$s
67520 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 42 5d 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 61 69 tabilities[$stabB];.}..$constrai
67540 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 nt.=.new.VersionConstraint($oper
67560 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f ator,.$b->getVersion());.$versio
67580 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 n.=.new.VersionConstraint('==',.
675a0 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 $a->getVersion());..return.$cons
675c0 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 2c 20 traint->matchSpecific($version,.
675e0 74 72 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 true);.}..public.function.findUp
67600 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 datePackages(Pool.$pool,.array.$
67620 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 installedMap,.PackageInterface.$
67640 70 61 63 6b 61 67 65 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 20 3d 20 66 61 6c 73 65 29 package,.$mustMatchName.=.false)
67660 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 .{.$packages.=.array();..foreach
67680 20 28 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e .($pool->whatProvides($package->
676a0 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 getName(),.null,.$mustMatchName)
676c0 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 .as.$candidate).{.if.($candidate
676e0 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 .!==.$package).{.$packages[].=.$
67700 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 candidate;.}.}..return.$packages
67720 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 74 79 ;.}..public.function.getPriority
67740 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 (Pool.$pool,.PackageInterface.$p
67760 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 6f 72 ackage).{.return.$pool->getPrior
67780 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 3b 0a ity($package->getRepository());.
677a0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 72 65 }..public.function.selectPrefere
677c0 64 50 61 63 6b 61 67 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 dPackages(Pool.$pool,.array.$ins
677e0 74 61 6c 6c 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 71 talledMap,.array.$literals,.$req
67800 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 uiredPackage.=.null).{.$packages
67820 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 72 65 .=.$this->groupLiteralsByNamePre
67840 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 ferInstalled($pool,.$installedMa
67860 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 p,.$literals);..foreach.($packag
67880 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 es.as.&$literals).{.$policy.=.$t
678a0 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 his;.usort($literals,.function.(
678c0 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e $a,.$b).use.($policy,.$pool,.$in
678e0 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a stalledMap,.$requiredPackage).{.
67900 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d 70 61 72 65 42 79 50 72 69 6f 72 69 74 return.$policy->compareByPriorit
67920 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c yPreferInstalled($pool,.$install
67940 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 edMap,.$pool->literalToPackage($
67960 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c a),.$pool->literalToPackage($b),
67980 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a 7d 0a .$requiredPackage,.true);.});.}.
679a0 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c .foreach.($packages.as.&$literal
679c0 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 42 s).{.$literals.=.$this->pruneToB
679e0 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 estVersion($pool,.$literals);..$
67a00 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 literals.=.$this->pruneToHighest
67a20 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 PriorityOrInstalled($pool,.$inst
67a40 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 alledMap,.$literals);..$literals
67a60 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 70 6f .=.$this->pruneRemoteAliases($po
67a80 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 63 ol,.$literals);.}..$selected.=.c
67aa0 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 all_user_func_array('array_merge
67ac0 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 74 65 ',.$packages);....usort($selecte
67ae0 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c 69 63 d,.function.($a,.$b).use.($polic
67b00 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 y,.$pool,.$installedMap,.$requir
67b20 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 6f 6d edPackage).{.return.$policy->com
67b40 70 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 pareByPriorityPreferInstalled($p
67b60 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 ool,.$installedMap,.$pool->liter
67b80 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 61 29 2c 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 alToPackage($a),.$pool->literalT
67ba0 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b oPackage($b),.$requiredPackage);
67bc0 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 .});..return.$selected;.}..prote
67be0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d cted.function.groupLiteralsByNam
67c00 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 ePreferInstalled(Pool.$pool,.arr
67c20 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 ay.$installedMap,.$literals).{.$
67c40 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 packages.=.array();.foreach.($li
67c60 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 4e 61 terals.as.$literal).{.$packageNa
67c80 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 me.=.$pool->literalToPackage($li
67ca0 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 teral)->getName();..if.(!isset($
67cc0 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a 24 70 61 63 6b packages[$packageName])).{.$pack
67ce0 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a ages[$packageName].=.array();.}.
67d00 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 .if.(isset($installedMap[abs($li
67d20 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 70 61 63 6b 61 teral)])).{.array_unshift($packa
67d40 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 ges[$packageName],.$literal);.}.
67d60 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 5b 5d else.{.$packages[$packageName][]
67d80 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 .=.$literal;.}.}..return.$packag
67da0 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 61 72 es;.}.....public.function.compar
67dc0 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 eByPriorityPreferInstalled(Pool.
67de0 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 63 6b $pool,.array.$installedMap,.Pack
67e00 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 ageInterface.$a,.PackageInterfac
67e20 65 20 24 62 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 24 e.$b,.$requiredPackage.=.null,.$
67e40 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 61 2d ignoreReplace.=.false).{.if.($a-
67e60 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 70 6f >getRepository().===.$b->getRepo
67e80 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 29 20 sitory()).{...if.($a->getName().
67ea0 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 20 3d ===.$b->getName()).{.$aAliased.=
67ec0 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 62 41 .$a.instanceof.AliasPackage;.$bA
67ee0 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b liased.=.$b.instanceof.AliasPack
67f00 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 65 64 age;.if.($aAliased.&&.!$bAliased
67f20 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 73 65 ).{.return.-1;...}.if.(!$aAliase
67f40 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 7d 0a d.&&.$bAliased).{.return.1;...}.
67f60 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 20 28 }..if.(!$ignoreReplace).{...if.(
67f80 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 75 72 $this->replaces($a,.$b)).{.retur
67fa0 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 62 2c n.1;...}.if.($this->replaces($b,
67fc0 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 0a 0a 20 0a 20 69 66 20 28 .$a)).{.return.-1;...}......if.(
67fe0 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 28 24 $requiredPackage.&&.false.!==.($
68000 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 27 pos.=.strpos($requiredPackage,.'
68020 2f 27 29 29 29 20 7b 0a 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 /'))).{.$requiredVendor.=.substr
68040 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 0a 24 61 ($requiredPackage,.0,.$pos);..$a
68060 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 61 2d 3e 67 65 74 4e 61 6d IsSameVendor.=.substr($a->getNam
68080 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f e(),.0,.$pos).===.$requiredVendo
680a0 72 3b 0a 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 62 2d 3e 67 r;.$bIsSameVendor.=.substr($b->g
680c0 65 74 4e 61 6d 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 etName(),.0,.$pos).===.$required
680e0 56 65 6e 64 6f 72 3b 0a 0a 69 66 20 28 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 21 3d 3d 20 Vendor;..if.($bIsSameVendor.!==.
68100 24 61 49 73 53 61 6d 65 56 65 6e 64 6f 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 49 73 53 61 6d $aIsSameVendor).{.return.$aIsSam
68120 65 56 65 6e 64 6f 72 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 eVendor.?.-1.:.1;.}.}.}....if.($
68140 61 2d 3e 69 64 20 3d 3d 3d 20 24 62 2d 3e 69 64 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a a->id.===.$b->id).{.return.0;.}.
68160 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 69 64 20 3c 20 24 62 2d 3e 69 64 29 20 3f 20 2d 31 20 3a .return.($a->id.<.$b->id).?.-1.:
68180 20 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 .1;.}..if.(isset($installedMap[$
681a0 61 2d 3e 69 64 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 a->id])).{.return.-1;.}..if.(iss
681c0 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 69 64 5d 29 29 20 7b 0a 72 65 74 et($installedMap[$b->id])).{.ret
681e0 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f urn.1;.}..return.($this->getPrio
68200 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f rity($pool,.$a).>.$this->getPrio
68220 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a rity($pool,.$b)).?.-1.:.1;.}....
68240 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 ........protected.function.repla
68260 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 2c 20 50 61 ces(PackageInterface.$source,.Pa
68280 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 66 6f 72 65 61 63 ckageInterface.$target).{.foreac
682a0 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 h.($source->getReplaces().as.$li
682c0 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d nk).{.if.($link->getTarget().===
682e0 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 .$target->getName()....).{.retur
68300 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 n.true;.}.}..return.false;.}..pr
68320 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 otected.function.pruneToBestVers
68340 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 6f 70 ion(Pool.$pool,.$literals).{.$op
68360 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3f 20 27 erator.=.$this->preferLowest.?.'
68380 3c 27 20 3a 20 27 3e 27 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 <'.:.'>';.$bestLiterals.=.array(
683a0 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 $literals[0]);.$bestPackage.=.$p
683c0 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b ool->literalToPackage($literals[
683e0 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 0]);.foreach.($literals.as.$i.=>
68400 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e .$literal).{.if.(0.===.$i).{.con
68420 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 tinue;.}..$package.=.$pool->lite
68440 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 ralToPackage($literal);..if.($th
68460 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 is->versionCompare($package,.$be
68480 73 74 50 61 63 6b 61 67 65 2c 20 24 6f 70 65 72 61 74 6f 72 29 29 20 7b 0a 24 62 65 73 74 50 61 stPackage,.$operator)).{.$bestPa
684a0 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 20 ckage.=.$package;.$bestLiterals.
684c0 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 =.array($literal);.}.elseif.($th
684e0 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 is->versionCompare($package,.$be
68500 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 62 65 73 74 4c 69 74 65 72 61 6c stPackage,.'==')).{.$bestLiteral
68520 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 65 73 s[].=.$literal;.}.}..return.$bes
68540 74 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 tLiterals;.}.....protected.funct
68560 69 6f 6e 20 70 72 75 6e 65 54 6f 48 69 67 68 65 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 ion.pruneToHighestPriorityOrInst
68580 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c alled(Pool.$pool,.array.$install
685a0 65 64 4d 61 70 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 73 65 6c 65 63 edMap,.array.$literals).{.$selec
685c0 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e 75 6c 6c ted.=.array();..$priority.=.null
685e0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 ;..foreach.($literals.as.$litera
68600 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f l).{.$package.=.$pool->literalTo
68620 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 Package($literal);..if.(isset($i
68640 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 73 nstalledMap[$package->id])).{.$s
68660 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a elected[].=.$literal;.continue;.
68680 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 24 70 72 }..if.(null.===.$priority).{.$pr
686a0 69 6f 72 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 69 74 79 28 24 70 6f 6f iority.=.$this->getPriority($poo
686c0 6c 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 65 74 50 l,.$package);.}..if.($this->getP
686e0 72 69 6f 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 20 21 3d 20 24 70 72 69 riority($pool,.$package).!=.$pri
68700 6f 72 69 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d ority).{.break;.}..$selected[].=
68720 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a .$literal;.}..return.$selected;.
68740 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 }.......protected.function.prune
68760 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 RemoteAliases(Pool.$pool,.array.
68780 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 66 61 $literals).{.$hasLocalAlias.=.fa
687a0 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 lse;..foreach.($literals.as.$lit
687c0 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 eral).{.$package.=.$pool->litera
687e0 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b lToPackage($literal);..if.($pack
68800 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 age.instanceof.AliasPackage.&&.$
68820 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b package->isRootPackageAlias()).{
68840 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d .$hasLocalAlias.=.true;.break;.}
68860 0a 7d 0a 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 20 7b 0a 72 65 74 75 72 .}..if.(!$hasLocalAlias).{.retur
68880 6e 20 24 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d 20 61 72 72 61 n.$literals;.}..$selected.=.arra
688a0 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 y();.foreach.($literals.as.$lite
688c0 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c ral).{.$package.=.$pool->literal
688e0 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 ToPackage($literal);..if.($packa
68900 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 24 70 ge.instanceof.AliasPackage.&&.$p
68920 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 29 29 20 7b 0a ackage->isRootPackageAlias()).{.
68940 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 $selected[].=.$literal;.}.}..ret
68960 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a urn.$selected;.}.}.<?php........
68980 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 ....namespace.Composer\Dependenc
689a0 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 63 69 73 69 6f 6e 73 yResolver;.......class.Decisions
689c0 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c 43 6f 75 6e 74 61 62 6c .implements.\Iterator,.\Countabl
689e0 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 20 30 3b 0a e.{.const.DECISION_LITERAL.=.0;.
68a00 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 31 3b 0a 0a 70 72 6f 74 const.DECISION_REASON.=.1;..prot
68a20 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e ected.$pool;.protected.$decision
68a40 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 Map;.protected.$decisionQueue.=.
68a60 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 array();..public.function.__cons
68a80 74 72 75 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f truct($pool).{.$this->pool.=.$po
68aa0 6f 6c 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d 20 61 72 72 61 79 28 29 ol;.$this->decisionMap.=.array()
68ac0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 28 24 6c 69 74 ;.}..public.function.decide($lit
68ae0 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 77 68 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 eral,.$level,.$why).{.$this->add
68b00 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 Decision($literal,.$level);.$thi
68b20 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 61 72 72 61 79 28 0a 73 65 6c 66 s->decisionQueue[].=.array(.self
68b40 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 20 3d 3e 20 24 6c 69 74 65 72 61 6c 2c 0a ::DECISION_LITERAL.=>.$literal,.
68b60 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 3e 20 24 77 68 79 2c 0a 29 self::DECISION_REASON.=>.$why,.)
68b80 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 74 69 73 66 79 28 24 6c 69 ;.}..public.function.satisfy($li
68ba0 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 teral).{.$packageId.=.abs($liter
68bc0 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 69 al);..return.(.$literal.>.0.&&.i
68be0 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 sset($this->decisionMap[$package
68c00 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b Id]).&&.$this->decisionMap[$pack
68c20 61 67 65 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c 20 30 20 26 26 20 69 73 ageId].>.0.||.$literal.<.0.&&.is
68c40 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 set($this->decisionMap[$packageI
68c60 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 d]).&&.$this->decisionMap[$packa
68c80 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 geId].<.0.);.}..public.function.
68ca0 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 conflict($literal).{.$packageId.
68cc0 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 28 0a 28 69 73 73 65 =.abs($literal);..return.(.(isse
68ce0 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d t($this->decisionMap[$packageId]
68d00 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 ).&&.$this->decisionMap[$package
68d20 49 64 5d 20 3e 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3c 20 30 29 20 7c 7c 0a 28 69 73 73 Id].>.0.&&.$literal.<.0).||.(iss
68d40 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 et($this->decisionMap[$packageId
68d60 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 ]).&&.$this->decisionMap[$packag
68d80 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 0a 29 3b 0a 7d 0a 0a eId].<.0.&&.$literal.>.0).);.}..
68da0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c public.function.decided($literal
68dc0 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 74 68 OrPackageId).{.return.!empty($th
68de0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 is->decisionMap[abs($literalOrPa
68e00 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 ckageId)]);.}..public.function.u
68e20 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a ndecided($literalOrPackageId).{.
68e40 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b return.empty($this->decisionMap[
68e60 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 5d 29 3b 0a 7d 0a 0a 70 abs($literalOrPackageId)]);.}..p
68e80 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 24 6c ublic.function.decidedInstall($l
68ea0 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 iteralOrPackageId).{.$packageId.
68ec0 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 72 65 74 =.abs($literalOrPackageId);..ret
68ee0 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 urn.isset($this->decisionMap[$pa
68f00 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b ckageId]).&&.$this->decisionMap[
68f20 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $packageId].>.0;.}..public.funct
68f40 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b ion.decisionLevel($literalOrPack
68f60 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 ageId).{.$packageId.=.abs($liter
68f80 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d alOrPackageId);.if.(isset($this-
68fa0 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 72 65 74 >decisionMap[$packageId])).{.ret
68fc0 75 72 6e 20 61 62 73 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b urn.abs($this->decisionMap[$pack
68fe0 61 67 65 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ageId]);.}..return.0;.}..public.
69000 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 4f 72 function.decisionRule($literalOr
69020 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c PackageId).{.$packageId.=.abs($l
69040 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 iteralOrPackageId);..foreach.($t
69060 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 64 65 63 his->decisionQueue.as.$i.=>.$dec
69080 69 73 69 6f 6e 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 61 62 73 28 ision).{.if.($packageId.===.abs(
690a0 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c $decision[self::DECISION_LITERAL
690c0 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 ])).{.return.$decision[self::DEC
690e0 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b ISION_REASON];.}.}..return.null;
69100 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 74 4f 66 66 73 65 74 28 24 71 75 .}..public.function.atOffset($qu
69120 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 eueOffset).{.return.$this->decis
69140 69 6f 6e 51 75 65 75 65 5b 24 71 75 65 75 65 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 ionQueue[$queueOffset];.}..publi
69160 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 4f 66 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 c.function.validOffset($queueOff
69180 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3e 3d 20 30 20 set).{.return.$queueOffset.>=.0.
691a0 26 26 20 24 71 75 65 75 65 4f 66 66 73 65 74 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 &&.$queueOffset.<.count($this->d
691c0 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ecisionQueue);.}..public.functio
691e0 6e 20 6c 61 73 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 n.lastReason().{.return.$this->d
69200 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ecisionQueue[count($this->decisi
69220 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 onQueue).-.1][self::DECISION_REA
69240 53 4f 4e 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 61 73 74 4c 69 74 SON];.}..public.function.lastLit
69260 65 72 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 eral().{.return.$this->decisionQ
69280 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 ueue[count($this->decisionQueue)
692a0 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 7d .-.1][self::DECISION_LITERAL];.}
692c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a 7b 0a 77 68 69 6c ..public.function.reset().{.whil
692e0 65 20 28 24 64 65 63 69 73 69 6f 6e 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e e.($decision.=.array_pop($this->
69300 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f decisionQueue)).{.$this->decisio
69320 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f nMap[abs($decision[self::DECISIO
69340 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 N_LITERAL])].=.0;.}.}..public.fu
69360 6e 63 74 69 6f 6e 20 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 6f 66 66 73 65 74 29 0a 7b 0a nction.resetToOffset($offset).{.
69380 77 68 69 6c 65 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 while.(count($this->decisionQueu
693a0 65 29 20 3e 20 24 6f 66 66 73 65 74 20 2b 20 31 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 e).>.$offset.+.1).{.$decision.=.
693c0 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b array_pop($this->decisionQueue);
693e0 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 64 65 63 69 73 69 6f .$this->decisionMap[abs($decisio
69400 6e 5b 73 65 6c 66 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 29 5d 20 3d 20 30 3b n[self::DECISION_LITERAL])].=.0;
69420 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 4c 61 73 74 .}.}..public.function.revertLast
69440 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 74 68 69 ().{.$this->decisionMap[abs($thi
69460 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 29 5d 20 3d 20 30 3b 0a 61 72 72 61 79 5f 70 6f s->lastLiteral())].=.0;.array_po
69480 70 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c p($this->decisionQueue);.}..publ
694a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 ic.function.count().{.return.cou
694c0 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 nt($this->decisionQueue);.}..pub
694e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 65 6e 64 28 24 74 68 69 lic.function.rewind().{.end($thi
69500 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e s->decisionQueue);.}..public.fun
69520 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 75 72 72 65 6e 74 ction.current().{.return.current
69540 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 ($this->decisionQueue);.}..publi
69560 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6b 65 79 28 24 74 c.function.key().{.return.key($t
69580 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 his->decisionQueue);.}..public.f
695a0 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 76 28 24 74 68 unction.next().{.return.prev($th
695c0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 is->decisionQueue);.}..public.fu
695e0 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d nction.valid().{.return.false.!=
69600 3d 20 63 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 3b =.current($this->decisionQueue);
69620 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d 70 74 79 28 29 0a 7b 0a .}..public.function.isEmpty().{.
69640 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 return.count($this->decisionQueu
69660 65 29 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 e).===.0;.}..protected.function.
69680 61 64 64 44 65 63 69 73 69 6f 6e 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 29 0a 7b 0a addDecision($literal,.$level).{.
696a0 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 24 70 72 $packageId.=.abs($literal);..$pr
696c0 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 eviousDecision.=.isset($this->de
696e0 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 3f 20 24 74 68 69 73 2d 3e cisionMap[$packageId]).?.$this->
69700 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3a 20 6e 75 6c 6c 3b 0a decisionMap[$packageId].:.null;.
69720 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 21 3d 20 30 29 20 7b 0a 24 6c if.($previousDecision.!=.0).{.$l
69740 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 iteralString.=.$this->pool->lite
69760 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 3b 0a 24 70 61 63 6b 61 67 65 20 ralToString($literal);.$package.
69780 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 =.$this->pool->literalToPackage(
697a0 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 $literal);.throw.new.SolverBugEx
697c0 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 64 65 63 69 64 65 20 24 6c 69 74 65 ception(."Trying.to.decide.$lite
697e0 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2c 20 65 76 65 6e 20 ralString.on.level.$level,.even.
69800 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 20 77 61 73 20 70 72 65 76 69 6f 75 73 6c 79 20 64 though.$package.was.previously.d
69820 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e 74 29 20 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 ecided.as.".(int).$previousDecis
69840 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 ion.".".);.}..if.($literal.>.0).
69860 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d {.$this->decisionMap[$packageId]
69880 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 .=.$level;.}.else.{.$this->decis
698a0 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 2d 24 6c 65 76 65 6c 3b 0a 7d 0a ionMap[$packageId].=.-$level;.}.
698c0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
698e0 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a omposer\DependencyResolver;.....
69900 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 0a 7b 0a 70 75 62 6c 69 63 ....class.RuleWatchNode.{.public
69920 20 24 77 61 74 63 68 31 3b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 32 3b 0a 0a 70 72 6f 74 65 .$watch1;.public.$watch2;..prote
69940 63 74 65 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f cted.$rule;.......public.functio
69960 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 n.__construct($rule).{.$this->ru
69980 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e le.=.$rule;..$literals.=.$rule->
699a0 6c 69 74 65 72 61 6c 73 3b 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 63 6f 75 6e 74 literals;..$this->watch1.=.count
699c0 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 30 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 20 3a ($literals).>.0.?.$literals[0].:
699e0 20 30 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 .0;.$this->watch2.=.count($liter
69a00 61 6c 73 29 20 3e 20 31 20 3f 20 24 6c 69 74 65 72 61 6c 73 5b 31 5d 20 3a 20 30 3b 0a 7d 0a 0a als).>.1.?.$literals[1].:.0;.}..
69a20 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 61 74 63 68 32 4f 6e ........public.function.watch2On
69a40 48 69 67 68 65 73 74 28 44 65 63 69 73 69 6f 6e 73 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a Highest(Decisions.$decisions).{.
69a60 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c $literals.=.$this->rule->literal
69a80 73 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3c 20 33 29 20 s;....if.(count($literals).<.3).
69aa0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 30 3b 0a 0a 66 {.return;.}..$watchLevel.=.0;..f
69ac0 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b oreach.($literals.as.$literal).{
69ae0 0a 24 6c 65 76 65 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 .$level.=.$decisions->decisionLe
69b00 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 24 77 61 vel($literal);..if.($level.>.$wa
69b20 74 63 68 4c 65 76 65 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 24 6c 69 74 tchLevel).{.$this->watch2.=.$lit
69b40 65 72 61 6c 3b 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a eral;.$watchLevel.=.$level;.}.}.
69b60 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 28 }.......public.function.getRule(
69b80 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ).{.return.$this->rule;.}.......
69ba0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 .public.function.getOtherWatch($
69bc0 6c 69 74 65 72 61 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 literal).{.if.($this->watch1.==.
69be0 24 6c 69 74 65 72 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 32 $literal).{.return.$this->watch2
69c00 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 74 63 68 31 3b ;.}.else.{.return.$this->watch1;
69c20 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 .}.}........public.function.move
69c40 57 61 74 63 68 28 24 66 72 6f 6d 2c 20 24 74 6f 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 Watch($from,.$to).{.if.($this->w
69c60 61 74 63 68 31 20 3d 3d 20 24 66 72 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 atch1.==.$from).{.$this->watch1.
69c80 3d 20 24 74 6f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d 20 =.$to;.}.else.{.$this->watch2.=.
69ca0 24 74 6f 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 $to;.}.}.}.<?php............name
69cc0 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
69ce0 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 r;.....class.SolverProblemsExcep
69d00 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b tion.extends.\RuntimeException.{
69d20 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$problems;.protected.
69d40 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $installedMap;..public.function.
69d60 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 72 6f 62 6c 65 6d 73 2c 20 61 72 72 __construct(array.$problems,.arr
69d80 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c ay.$installedMap).{.$this->probl
69da0 65 6d 73 20 3d 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 ems.=.$problems;.$this->installe
69dc0 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f dMap.=.$installedMap;..parent::_
69de0 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 _construct($this->createMessage(
69e00 29 2c 20 32 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 ),.2);.}..protected.function.cre
69e20 61 74 65 4d 65 73 73 61 67 65 28 29 0a 7b 0a 24 74 65 78 74 20 3d 20 22 5c 6e 22 3b 0a 66 6f 72 ateMessage().{.$text.=."\n";.for
69e40 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 61 73 20 24 69 20 3d 3e 20 24 each.($this->problems.as.$i.=>.$
69e60 70 72 6f 62 6c 65 6d 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 50 72 6f 62 6c 65 6d 20 22 problem).{.$text..=."..Problem."
69e80 2e 28 24 69 2b 31 29 2e 24 70 72 6f 62 6c 65 6d 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e .($i+1).$problem->getPrettyStrin
69ea0 67 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a g($this->installedMap)."\n";.}..
69ec0 69 66 20 28 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 if.(strpos($text,.'could.not.be.
69ee0 66 6f 75 6e 64 27 29 20 7c 7c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 6e 6f 20 6d 61 74 found').||.strpos($text,.'no.mat
69f00 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 27 29 29 20 7b 0a 24 74 65 78 74 20 2e ching.package.found')).{.$text..
69f20 3d 20 22 5c 6e 50 6f 74 65 6e 74 69 61 6c 20 63 61 75 73 65 73 3a 5c 6e 20 2d 20 41 20 74 79 70 =."\nPotential.causes:\n.-.A.typ
69f40 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 5c 6e 20 2d 20 54 68 65 20 70 61 o.in.the.package.name\n.-.The.pa
69f60 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 20 73 74 61 62 ckage.is.not.available.in.a.stab
69f80 6c 65 2d 65 6e 6f 75 67 68 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 79 le-enough.version.according.to.y
69fa0 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 73 65 74 74 69 6e 67 5c 6e 20 our.minimum-stability.setting\n.
69fc0 20 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 67 72 6f 75 70 73 2e 67 6f 6f 67 6c 65 2e 63 6f 6d ..see.<https://groups.google.com
69fe0 2f 64 2f 74 6f 70 69 63 2f 63 6f 6d 70 6f 73 65 72 2d 64 65 76 2f 5f 67 33 41 53 65 49 46 6c 72 /d/topic/composer-dev/_g3ASeIFlr
6a000 63 2f 64 69 73 63 75 73 73 69 6f 6e 3e 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 5c c/discussion>.for.more.details.\
6a020 6e 5c 6e 52 65 61 64 20 3c 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f n\nRead.<http://getcomposer.org/
6a040 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 3e doc/articles/troubleshooting.md>
6a060 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6d 6d 6f 6e 20 70 72 6f 62 6c 65 6d 73 2e 22 3b 0a .for.further.common.problems.";.
6a080 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 }..return.$text;.}..public.funct
6a0a0 69 6f 6e 20 67 65 74 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ion.getProblems().{.return.$this
6a0c0 2d 3e 70 72 6f 62 6c 65 6d 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->problems;.}.}.<?php...........
6a0e0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
6a100 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c solver;..use.Composer\Package\Al
6a120 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 61 63 74 69 6f iasPackage;.....class.Transactio
6a140 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 n.{.protected.$policy;.protected
6a160 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b .$pool;.protected.$installedMap;
6a180 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 .protected.$decisions;.protected
6a1a0 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .$transaction;..public.function.
6a1c0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 __construct($policy,.$pool,.$ins
6a1e0 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e talledMap,.$decisions).{.$this->
6a200 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 policy.=.$policy;.$this->pool.=.
6a220 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e $pool;.$this->installedMap.=.$in
6a240 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 24 stalledMap;.$this->decisions.=.$
6a260 64 65 63 69 73 69 6f 6e 73 3b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 decisions;.$this->transaction.=.
6a280 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f array();.}..public.function.getO
6a2a0 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 perations().{.$installMeansUpdat
6a2c0 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 3b 0a 0a 24 75 eMap.=.$this->findUpdates();..$u
6a2e0 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 20 pdateMap.=.array();.$installMap.
6a300 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 =.array();.$uninstallMap.=.array
6a320 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 ();..foreach.($this->decisions.a
6a340 73 20 24 69 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 s.$i.=>.$decision).{.$literal.=.
6a360 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 $decision[Decisions::DECISION_LI
6a380 54 45 52 41 4c 5d 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 TERAL];.$reason.=.$decision[Deci
6a3a0 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 61 63 6b 61 sions::DECISION_REASON];..$packa
6a3c0 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 ge.=.$this->pool->literalToPacka
6a3e0 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 72 61 6c 20 3e ge($literal);....if.(($literal.>
6a400 20 30 29 20 3d 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 .0).==.(isset($this->installedMa
6a420 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d p[$package->id]))).{.continue;.}
6a440 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 ..if.($literal.>.0).{.if.(isset(
6a460 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 $installMeansUpdateMap[abs($lite
6a480 72 61 6c 29 5d 29 20 26 26 20 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 ral)]).&&.!$package.instanceof.A
6a4a0 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 6f 75 72 63 65 20 3d 20 24 69 6e 73 74 61 6c liasPackage).{.$source.=.$instal
6a4c0 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 3b 0a lMeansUpdateMap[abs($literal)];.
6a4e0 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 61 72 72 61 .$updateMap[$package->id].=.arra
6a500 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 73 6f 75 72 63 y(.'package'.=>.$package,.'sourc
6a520 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 e'.=>.$source,.'reason'.=>.$reas
6a540 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 on,.);....unset($installMeansUpd
6a560 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 24 69 67 6e 6f 72 65 52 ateMap[abs($literal)]);.$ignoreR
6a580 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 emove[$source->id].=.true;.}.els
6a5a0 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 e.{.$installMap[$package->id].=.
6a5c0 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 array(.'package'.=>.$package,.'r
6a5e0 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 eason'.=>.$reason,.);.}.}.}..for
6a600 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 20 3d 3e 20 each.($this->decisions.as.$i.=>.
6a620 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f $decision).{.$literal.=.$decisio
6a640 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a n[Decisions::DECISION_LITERAL];.
6a660 24 72 65 61 73 6f 6e 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 $reason.=.$decision[Decisions::D
6a680 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 ECISION_REASON];.$package.=.$thi
6a6a0 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 s->pool->literalToPackage($liter
6a6c0 61 6c 29 3b 0a 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 0a 69 73 73 65 74 al);..if.($literal.<=.0.&&.isset
6a6e0 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 ($this->installedMap[$package->i
6a700 64 5d 29 20 26 26 0a 21 69 73 73 65 74 28 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 70 61 63 d]).&&.!isset($ignoreRemove[$pac
6a720 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 kage->id])).{.$uninstallMap[$pac
6a740 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 65 27 20 3d 3e 20 kage->id].=.array(.'package'.=>.
6a760 24 70 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 $package,.'reason'.=>.$reason,.)
6a780 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 ;.}.}..$this->transactionFromMap
6a7a0 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e s($installMap,.$updateMap,.$unin
6a7c0 73 74 61 6c 6c 4d 61 70 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 stallMap);..return.$this->transa
6a7e0 63 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 72 61 ction;.}..protected.function.tra
6a800 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 nsactionFromMaps($installMap,.$u
6a820 70 64 61 74 65 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 0a 7b 0a 24 71 75 65 75 pdateMap,.$uninstallMap).{.$queu
6a840 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 6f 70 65 72 61 74 69 e.=.array_map(function.($operati
6a860 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 on).{.return.$operation['package
6a880 27 5d 3b 0a 7d 2c 0a 24 74 68 69 73 2d 3e 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 '];.},.$this->findRootPackages($
6a8a0 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 29 3b 0a 0a 24 76 69 73 installMap,.$updateMap).);..$vis
6a8c0 69 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 ited.=.array();..while.(!empty($
6a8e0 71 75 65 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 queue)).{.$package.=.array_pop($
6a900 71 75 65 75 65 29 3b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 69 queue);.$packageId.=.$package->i
6a920 64 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 d;..if.(!isset($visited[$package
6a940 49 64 5d 29 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b Id])).{.array_push($queue,.$pack
6a960 61 67 65 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 age);..if.($package.instanceof.A
6a980 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 liasPackage).{.array_push($queue
6a9a0 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 6c 73 ,.$package->getAliasOf());.}.els
6a9c0 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 e.{.foreach.($package->getRequir
6a9e0 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 es().as.$link).{.$possibleRequir
6aa00 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 es.=.$this->pool->whatProvides($
6aa20 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e link->getTarget(),.$link->getCon
6aa40 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 straint());..foreach.($possibleR
6aa60 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 equires.as.$require).{.array_pus
6aa80 68 28 24 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 69 73 h($queue,.$require);.}.}.}..$vis
6aaa0 69 74 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 ited[$package->id].=.true;.}.els
6aac0 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 e.{.if.(isset($installMap[$packa
6aae0 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 69 6e 73 74 61 geId])).{.$this->install(.$insta
6ab00 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 69 llMap[$packageId]['package'],.$i
6ab20 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a nstallMap[$packageId]['reason'].
6ab40 29 3b 0a 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d );.unset($installMap[$packageId]
6ab60 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 );.}.if.(isset($updateMap[$packa
6ab80 67 65 49 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 70 64 61 74 65 geId])).{.$this->update(.$update
6aba0 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a 24 75 70 64 61 Map[$packageId]['source'],.$upda
6abc0 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 75 teMap[$packageId]['package'],.$u
6abe0 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 pdateMap[$packageId]['reason'].)
6ac00 3b 0a 75 6e 73 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b ;.unset($updateMap[$packageId]);
6ac20 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 61 .}.}.}..foreach.($uninstallMap.a
6ac40 73 20 24 75 6e 69 6e 73 74 61 6c 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c s.$uninstall).{.$this->uninstall
6ac60 28 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e 69 6e 73 74 61 ($uninstall['package'],.$uninsta
6ac80 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ll['reason']);.}.}..protected.fu
6aca0 6e 63 74 69 6f 6e 20 66 69 6e 64 52 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c nction.findRootPackages($install
6acc0 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 Map,.$updateMap).{.$packages.=.$
6ace0 69 6e 73 74 61 6c 6c 4d 61 70 20 2b 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 6f 6f 74 73 20 installMap.+.$updateMap;.$roots.
6ad00 3d 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 =.$packages;..foreach.($packages
6ad20 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a .as.$packageId.=>.$operation).{.
6ad40 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d $package.=.$operation['package']
6ad60 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 67 65 49 64 5d ;..if.(!isset($roots[$packageId]
6ad80 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b )).{.continue;.}..foreach.($pack
6ada0 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 age->getRequires().as.$link).{.$
6adc0 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e possibleRequires.=.$this->pool->
6ade0 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c whatProvides($link->getTarget(),
6ae00 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 .$link->getConstraint());..forea
6ae20 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 ch.($possibleRequires.as.$requir
6ae40 65 29 20 7b 0a 75 6e 73 65 74 28 24 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d 3e 69 64 5d 29 e).{.unset($roots[$require->id])
6ae60 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d 0a 0a 70 72 6f 74 65 ;.}.}.}..return.$roots;.}..prote
6ae80 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 28 29 0a 7b 0a 24 69 cted.function.findUpdates().{.$i
6aea0 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a nstallMeansUpdateMap.=.array();.
6aec0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 20 24 69 .foreach.($this->decisions.as.$i
6aee0 20 3d 3e 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 .=>.$decision).{.$literal.=.$dec
6af00 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 ision[Decisions::DECISION_LITERA
6af20 4c 5d 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 L];.$package.=.$this->pool->lite
6af40 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 70 61 ralToPackage($literal);..if.($pa
6af60 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b ckage.instanceof.AliasPackage).{
6af80 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 .continue;.}....if.($literal.<=.
6afa0 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 0.&&.isset($this->installedMap[$
6afc0 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 package->id])).{.$updates.=.$thi
6afe0 73 2d 3e 70 6f 6c 69 63 79 2d 3e 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 74 s->policy->findUpdatePackages($t
6b000 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 his->pool,.$this->installedMap,.
6b020 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 70 $package);..$literals.=.array($p
6b040 61 63 6b 61 67 65 2d 3e 69 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 70 64 61 74 65 73 20 ackage->id);..foreach.($updates.
6b060 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 75 70 64 as.$update).{.$literals[].=.$upd
6b080 61 74 65 2d 3e 69 64 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 ate->id;.}..foreach.($literals.a
6b0a0 73 20 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 75 70 64 61 74 65 4c s.$updateLiteral).{.if.($updateL
6b0c0 69 74 65 72 61 6c 20 21 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d iteral.!==.$literal).{.$installM
6b0e0 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c eansUpdateMap[abs($updateLiteral
6b100 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 )].=.$package;.}.}.}.}..return.$
6b120 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 3b 0a 7d 0a 0a 70 72 6f 74 65 63 installMeansUpdateMap;.}..protec
6b140 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 ted.function.install($package,.$
6b160 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f reason).{.if.($package.instanceo
6b180 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e f.AliasPackage).{.return.$this->
6b1a0 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 markAliasInstalled($package,.$re
6b1c0 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d ason);.}..$this->transaction[].=
6b1e0 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 .new.Operation\InstallOperation(
6b200 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 $package,.$reason);.}..protected
6b220 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 .function.update($from,.$to,.$re
6b240 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e ason).{.$this->transaction[].=.n
6b260 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 66 72 ew.Operation\UpdateOperation($fr
6b280 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 om,.$to,.$reason);.}..protected.
6b2a0 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 function.uninstall($package,.$re
6b2c0 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 ason).{.if.($package.instanceof.
6b2e0 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 AliasPackage).{.return.$this->ma
6b300 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 rkAliasUninstalled($package,.$re
6b320 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d ason);.}..$this->transaction[].=
6b340 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f .new.Operation\UninstallOperatio
6b360 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 n($package,.$reason);.}..protect
6b380 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 ed.function.markAliasInstalled($
6b3a0 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 package,.$reason).{.$this->trans
6b3c0 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 action[].=.new.Operation\MarkAli
6b3e0 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 asInstalledOperation($package,.$
6b400 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d reason);.}..protected.function.m
6b420 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 arkAliasUninstalled($package,.$r
6b440 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 eason).{.$this->transaction[].=.
6b460 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c new.Operation\MarkAliasUninstall
6b480 65 64 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a edOperation($package,.$reason);.
6b4a0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
6b4c0 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 omposer\DependencyResolver\Opera
6b4e0 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b tion;..use.Composer\Package\Pack
6b500 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 6e 69 6e 73 74 ageInterface;.......class.Uninst
6b520 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 allOperation.extends.SolverOpera
6b540 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a tion.{.protected.$package;......
6b560 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 ..public.function.__construct(Pa
6b580 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e ckageInterface.$package,.$reason
6b5a0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 .=.null).{.parent::__construct($
6b5c0 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b reason);..$this->package.=.$pack
6b5e0 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 age;.}.......public.function.get
6b600 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 Package().{.return.$this->packag
6b620 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f e;.}.......public.function.getJo
6b640 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a bType().{.return.'uninstall';.}.
6b660 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 ....public.function.__toString()
6b680 0a 7b 0a 72 65 74 75 72 6e 20 27 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d .{.return.'Uninstalling.'.$this-
6b6a0 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 >package->getPrettyName().'.('.$
6b6c0 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 this->formatVersion($this->packa
6b6e0 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ge).')';.}.}.<?php............na
6b700 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c mespace.Composer\DependencyResol
6b720 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ver\Operation;..use.Composer\Pac
6b740 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 kage\PackageInterface;.......cla
6b760 73 73 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 ss.UpdateOperation.extends.Solve
6b780 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 69 74 69 61 6c 50 rOperation.{.protected.$initialP
6b7a0 61 63 6b 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 50 61 63 6b 61 67 65 ackage;.protected.$targetPackage
6b7c0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ;.........public.function.__cons
6b7e0 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c truct(PackageInterface.$initial,
6b800 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 72 65 61 73 .PackageInterface.$target,.$reas
6b820 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 on.=.null).{.parent::__construct
6b840 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 ($reason);..$this->initialPackag
6b860 65 20 3d 20 24 69 6e 69 74 69 61 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 e.=.$initial;.$this->targetPacka
6b880 67 65 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ge.=.$target;.}.......public.fun
6b8a0 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 ction.getInitialPackage().{.retu
6b8c0 72 6e 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a rn.$this->initialPackage;.}.....
6b8e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 ..public.function.getTargetPacka
6b900 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 ge().{.return.$this->targetPacka
6b920 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a ge;.}.......public.function.getJ
6b940 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 75 70 64 61 74 65 27 3b 0a 7d 0a 0a 0a obType().{.return.'update';.}...
6b960 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b ..public.function.__toString().{
6b980 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 69 6e 69 74 69 .return.'Updating.'.$this->initi
6b9a0 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e alPackage->getPrettyName().'.('.
6b9c0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 69 6e 69 74 $this->formatVersion($this->init
6b9e0 69 61 6c 50 61 63 6b 61 67 65 29 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 69 73 2d 3e 74 61 72 67 ialPackage).').to.'..$this->targ
6ba00 65 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 20 27 20 28 27 etPackage->getPrettyName()..'.('
6ba20 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 74 61 72 .$this->formatVersion($this->tar
6ba40 67 65 74 50 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a getPackage).')';.}.}.<?php......
6ba60 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 ......namespace.Composer\Depende
6ba80 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 ncyResolver\Operation;..use.Comp
6baa0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a oser\Package\AliasPackage;......
6bac0 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 .class.MarkAliasInstalledOperati
6bae0 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f on.extends.SolverOperation.{.pro
6bb00 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 tected.$package;........public.f
6bb20 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 unction.__construct(AliasPackage
6bb40 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 .$package,.$reason.=.null).{.par
6bb60 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 ent::__construct($reason);..$thi
6bb80 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 s->package.=.$package;.}.......p
6bba0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 ublic.function.getPackage().{.re
6bbc0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this->package;.}.......pub
6bbe0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 lic.function.getJobType().{.retu
6bc00 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 rn.'markAliasInstalled';.}.....p
6bc20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 ublic.function.__toString().{.re
6bc40 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e turn.'Marking.'.$this->package->
6bc60 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d getPrettyName().'.('.$this->form
6bc80 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 73 20 atVersion($this->package).').as.
6bca0 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 installed,.alias.of.'.$this->pac
6bcc0 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d kage->getAliasOf()->getPrettyNam
6bce0 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 e().'.('.$this->formatVersion($t
6bd00 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e 27 29 27 3b his->package->getAliasOf()).')';
6bd20 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
6bd40 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 Composer\DependencyResolver\Oper
6bd60 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 ation;..use.Composer\Package\Pac
6bd80 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 kageInterface;.......class.Insta
6bda0 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 llOperation.extends.SolverOperat
6bdc0 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a ion.{.protected.$package;.......
6bde0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 .public.function.__construct(Pac
6be00 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 kageInterface.$package,.$reason.
6be20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 =.null).{.parent::__construct($r
6be40 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 eason);..$this->package.=.$packa
6be60 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 ge;.}.......public.function.getP
6be80 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 ackage().{.return.$this->package
6bea0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 ;.}.......public.function.getJob
6bec0 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 0a 0a 0a Type().{.return.'install';.}....
6bee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a .public.function.__toString().{.
6bf00 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b return.'Installing.'.$this->pack
6bf20 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d age->getPrettyName().'.('.$this-
6bf40 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 >formatVersion($this->package).'
6bf60 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 )';.}.}.<?php............namespa
6bf80 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f ce.Composer\DependencyResolver\O
6bfa0 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c peration;..use.Composer\Package\
6bfc0 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f Version\VersionParser;.use.Compo
6bfe0 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a ser\Package\PackageInterface;...
6c000 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 ....abstract.class.SolverOperati
6c020 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 on.implements.OperationInterface
6c040 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .{.protected.$reason;.......publ
6c060 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 20 ic.function.__construct($reason.
6c080 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f =.null).{.$this->reason.=.$reaso
6c0a0 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 n;.}.......public.function.getRe
6c0c0 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b 0a 7d ason().{.return.$this->reason;.}
6c0e0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 56 65 72 73 69 ..protected.function.formatVersi
6c100 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a on(PackageInterface.$package).{.
6c120 72 65 74 75 72 6e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 return.VersionParser::formatVers
6c140 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ion($package);.}.}.<?php........
6c160 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 ....namespace.Composer\Dependenc
6c180 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 yResolver\Operation;..use.Compos
6c1a0 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 er\Package\AliasPackage;.......c
6c1c0 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 lass.MarkAliasUninstalledOperati
6c1e0 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f on.extends.SolverOperation.{.pro
6c200 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 tected.$package;........public.f
6c220 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 6c 69 61 73 50 61 63 6b 61 67 65 unction.__construct(AliasPackage
6c240 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 .$package,.$reason.=.null).{.par
6c260 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 61 73 6f 6e 29 3b 0a 0a 24 74 68 69 ent::__construct($reason);..$thi
6c280 73 2d 3e 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 s->package.=.$package;.}.......p
6c2a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 ublic.function.getPackage().{.re
6c2c0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this->package;.}.......pub
6c2e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 lic.function.getJobType().{.retu
6c300 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 27 3b 0a 7d 0a 0a 0a 0a rn.'markAliasUninstalled';.}....
6c320 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a .public.function.__toString().{.
6c340 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 return.'Marking.'.$this->package
6c360 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f ->getPrettyName().'.('.$this->fo
6c380 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 20 61 rmatVersion($this->package).').a
6c3a0 73 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 68 69 73 2d s.uninstalled,.alias.of.'.$this-
6c3c0 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 50 72 65 74 74 >package->getAliasOf()->getPrett
6c3e0 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f yName().'.('.$this->formatVersio
6c400 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 2e n($this->package->getAliasOf()).
6c420 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ')';.}.}.<?php............namesp
6c440 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c ace.Composer\DependencyResolver\
6c460 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 70 65 72 61 Operation;.......interface.Opera
6c480 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tionInterface.{......public.func
6c4a0 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tion.getJobType();.......public.
6c4c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c function.getReason();.......publ
6c4e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 3c 3f 70 68 ic.function.__toString();.}.<?ph
6c500 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
6c520 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 DependencyResolver;..use.Compose
6c540 72 5c 50 61 63 6b 61 67 65 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f r\Package\BasePackage;.use.Compo
6c560 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f ser\Package\AliasPackage;.use.Co
6c580 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 mposer\Package\Version\VersionPa
6c5a0 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 rser;.use.Composer\Package\LinkC
6c5c0 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 onstraint\LinkConstraintInterfac
6c5e0 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 e;.use.Composer\Package\LinkCons
6c600 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f traint\VersionConstraint;.use.Co
6c620 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d mposer\Package\LinkConstraint\Em
6c640 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f ptyConstraint;.use.Composer\Repo
6c660 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 sitory\RepositoryInterface;.use.
6c680 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 Composer\Repository\CompositeRep
6c6a0 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ository;.use.Composer\Repository
6c6c0 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 \ComposerRepository;.use.Compose
6c6e0 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 r\Repository\InstalledRepository
6c700 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f Interface;.use.Composer\Reposito
6c720 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f ry\PlatformRepository;.use.Compo
6c740 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a ser\Package\PackageInterface;...
6c760 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6f 6f 6c 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 41 .....class.Pool.{.const.MATCH_NA
6c780 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 ME.=.-1;.const.MATCH_NONE.=.0;.c
6c7a0 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 4f 56 onst.MATCH.=.1;.const.MATCH_PROV
6c7c0 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d 20 33 IDE.=.2;.const.MATCH_REPLACE.=.3
6c7e0 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 20 3d 20 34 3b 0a 0a 70 72 6f ;.const.MATCH_FILTERED.=.4;..pro
6c800 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a tected.$repositories.=.array();.
6c820 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 3d 20 61 72 72 61 79 protected.$providerRepos.=.array
6c840 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 ();.protected.$packages.=.array(
6c860 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 );.protected.$packageByName.=.ar
6c880 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 ray();.protected.$packageByExact
6c8a0 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 63 63 65 70 Name.=.array();.protected.$accep
6c8c0 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 tableStabilities;.protected.$sta
6c8e0 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 bilityFlags;.protected.$versionP
6c900 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 arser;.protected.$providerCache.
6c920 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 74 65 72 52 65 71 75 =.array();.protected.$filterRequ
6c940 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c ires;.protected.$whitelist.=.nul
6c960 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 20 3d 20 31 3b 0a 0a 70 75 62 6c 69 63 20 66 75 l;.protected.$id.=.1;..public.fu
6c980 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 nction.__construct($minimumStabi
6c9a0 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 lity.=.'stable',.array.$stabilit
6c9c0 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 52 yFlags.=.array(),.array.$filterR
6c9e0 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 equires.=.array()).{.$stabilitie
6ca00 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 s.=.BasePackage::$stabilities;.$
6ca20 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f this->versionParser.=.new.Versio
6ca40 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c nParser;.$this->acceptableStabil
6ca60 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 61 ities.=.array();.foreach.(BasePa
6ca80 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 20 61 73 20 24 73 74 61 62 69 6c 69 74 ckage::$stabilities.as.$stabilit
6caa0 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 y.=>.$value).{.if.($value.<=.Bas
6cac0 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 ePackage::$stabilities[$minimumS
6cae0 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 tability]).{.$this->acceptableSt
6cb00 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a abilities[$stability].=.$value;.
6cb20 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 }.}.$this->stabilityFlags.=.$sta
6cb40 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 bilityFlags;.$this->filterRequir
6cb60 65 73 20 3d 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 es.=.$filterRequires;.foreach.($
6cb80 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6e 73 filterRequires.as.$name.=>.$cons
6cba0 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 traint).{.if.(preg_match(Platfor
6cbc0 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 mRepository::PLATFORM_PACKAGE_RE
6cbe0 47 45 58 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 74 GEX,.$name)).{.unset($this->filt
6cc00 65 72 52 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 erRequires[$name]);.}.}.}..publi
6cc20 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 68 69 74 65 6c 69 73 74 28 24 77 68 69 74 65 6c 69 c.function.setWhitelist($whiteli
6cc40 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 3d 20 24 77 68 69 74 65 6c st).{.$this->whitelist.=.$whitel
6cc60 69 73 74 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 20 3d 20 61 72 72 61 ist;.$this->providerCache.=.arra
6cc80 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 y();.}........public.function.ad
6cca0 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 dRepository(RepositoryInterface.
6ccc0 24 72 65 70 6f 2c 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b $repo,.$rootAliases.=.array()).{
6cce0 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 .if.($repo.instanceof.CompositeR
6cd00 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 2d 3e 67 65 74 epository).{.$repos.=.$repo->get
6cd20 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6f 73 20 Repositories();.}.else.{.$repos.
6cd40 3d 20 61 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 =.array($repo);.}..foreach.($rep
6cd60 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 os.as.$repo).{.$this->repositori
6cd80 65 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 0a 24 65 78 65 6d 70 74 20 3d 20 24 72 65 70 6f 20 69 es[].=.$repo;..$exempt.=.$repo.i
6cda0 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 7c 7c 20 nstanceof.PlatformRepository.||.
6cdc0 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 $repo.instanceof.InstalledReposi
6cde0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e toryInterface;..if.($repo.instan
6ce00 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f ceof.ComposerRepository.&&.$repo
6ce20 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 ->hasProviders()).{.$this->provi
6ce40 64 65 72 52 65 70 6f 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 24 72 65 70 6f 2d 3e 73 65 74 52 6f derRepos[].=.$repo;.$repo->setRo
6ce60 6f 74 41 6c 69 61 73 65 73 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 3b 0a 24 72 65 70 6f 2d 3e otAliases($rootAliases);.$repo->
6ce80 72 65 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 resetPackageIds();.}.else.{.fore
6cea0 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 ach.($repo->getPackages().as.$pa
6cec0 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e ckage).{.$names.=.$package->getN
6cee0 61 6d 65 73 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 ames();.$stability.=.$package->g
6cf00 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 etStability();.if.($exempt.||.$t
6cf20 68 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 73 2c his->isPackageAcceptable($names,
6cf40 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 .$stability)).{.$package->setId(
6cf60 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 $this->id++);.$this->packages[].
6cf80 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 =.$package;.$this->packageByExac
6cfa0 74 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 70 61 63 6b tName[$package->getName()][$pack
6cfc0 61 67 65 2d 3e 69 64 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 age->id].=.$package;..foreach.($
6cfe0 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 names.as.$provided).{.$this->pac
6d000 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 kageByName[$provided][].=.$packa
6d020 67 65 3b 0a 7d 0a 0a 0a 20 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 ge;.}....$name.=.$package->getNa
6d040 6d 65 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 me();.if.(isset($rootAliases[$na
6d060 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a me][$package->getVersion()])).{.
6d080 24 61 6c 69 61 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 $alias.=.$rootAliases[$name][$pa
6d0a0 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 69 66 20 28 24 70 61 63 6b 61 ckage->getVersion()];.if.($packa
6d0c0 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 ge.instanceof.AliasPackage).{.$p
6d0e0 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b ackage.=.$package->getAliasOf();
6d100 0a 7d 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b .}.$aliasPackage.=.new.AliasPack
6d120 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d age($package,.$alias['alias_norm
6d140 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 alized'],.$alias['alias']);.$ali
6d160 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 asPackage->setRootPackageAlias(t
6d180 72 75 65 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 rue);.$aliasPackage->setId($this
6d1a0 2d 3e 69 64 2b 2b 29 3b 0a 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 ->id++);..$package->getRepositor
6d1c0 79 28 29 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a y()->addPackage($aliasPackage);.
6d1e0 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 $this->packages[].=.$aliasPackag
6d200 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d 65 5b 24 61 6c e;.$this->packageByExactName[$al
6d220 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 61 6c 69 61 73 50 61 63 iasPackage->getName()][$aliasPac
6d240 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 65 kage->id].=.$aliasPackage;..fore
6d260 61 63 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 61 ach.($aliasPackage->getNames().a
6d280 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b s.$name).{.$this->packageByName[
6d2a0 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a $name][].=.$aliasPackage;.}.}.}.
6d2c0 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f }.}.}.}..public.function.getPrio
6d2e0 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a rity(RepositoryInterface.$repo).
6d300 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 65 70 6f {.$priority.=.array_search($repo
6d320 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 0a 69 ,.$this->repositories,.true);..i
6d340 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 f.(false.===.$priority).{.throw.
6d360 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 new.\RuntimeException("Could.not
6d380 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 79 2e 20 .determine.repository.priority..
6d3a0 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 The.repository.was.not.registere
6d3c0 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d 24 70 72 d.in.the.pool.");.}..return.-$pr
6d3e0 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e iority;.}........public.function
6d400 20 70 61 63 6b 61 67 65 42 79 49 64 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .packageById($id).{.return.$this
6d420 2d 3e 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->packages[$id.-.1];.}..........
6d440 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 ..public.function.whatProvides($
6d460 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 name,.LinkConstraintInterface.$c
6d480 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 onstraint.=.null,.$mustMatchName
6d4a0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6b 65 79 20 3d 20 28 28 69 6e 74 29 20 24 6d 75 73 74 4d .=.false).{.$key.=.((int).$mustM
6d4c0 61 74 63 68 4e 61 6d 65 29 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 69 66 20 28 69 73 73 65 74 atchName).$constraint;.if.(isset
6d4e0 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 24 6b 65 ($this->providerCache[$name][$ke
6d500 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 y])).{.return.$this->providerCac
6d520 68 65 5b 24 6e 61 6d 65 5d 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 he[$name][$key];.}..return.$this
6d540 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 24 6b 65 79 5d 20 3d 20 24 ->providerCache[$name][$key].=.$
6d560 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c this->computeWhatProvides($name,
6d580 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 3b 0a 7d .$constraint,.$mustMatchName);.}
6d5a0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 57 68 61 .....private.function.computeWha
6d5c0 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 6d tProvides($name,.$constraint,.$m
6d5e0 75 73 74 4d 61 74 63 68 4e 61 6d 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 63 61 6e 64 69 64 61 ustMatchName.=.false).{.$candida
6d600 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e tes.=.array();..foreach.($this->
6d620 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 61 63 providerRepos.as.$repo).{.foreac
6d640 68 20 28 24 72 65 70 6f 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 74 68 69 73 2c 20 24 6e h.($repo->whatProvides($this,.$n
6d660 61 6d 65 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 ame).as.$candidate).{.$candidate
6d680 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 s[].=.$candidate;.if.($candidate
6d6a0 2d 3e 69 64 20 3c 20 31 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 2d 3e 73 65 74 49 64 28 24 74 ->id.<.1).{.$candidate->setId($t
6d6c0 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 69 his->id++);.$this->packages[$thi
6d6e0 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 7d 0a 0a s->id.-.2].=.$candidate;.}.}.}..
6d700 69 66 20 28 24 6d 75 73 74 4d 61 74 63 68 4e 61 6d 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 if.($mustMatchName).{.$candidate
6d720 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 66 75 s.=.array_filter($candidates,.fu
6d740 6e 63 74 69 6f 6e 20 28 24 63 61 6e 64 69 64 61 74 65 29 20 75 73 65 20 28 24 6e 61 6d 65 29 20 nction.($candidate).use.($name).
6d760 7b 0a 72 65 74 75 72 6e 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d {.return.$candidate->getName().=
6d780 3d 20 24 6e 61 6d 65 3b 0a 7d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 =.$name;.});.if.(isset($this->pa
6d7a0 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 6e ckageByExactName[$name])).{.$can
6d7c0 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 65 didates.=.array_merge($candidate
6d7e0 73 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 45 78 61 63 74 4e 61 6d 65 5b 24 6e 61 s,.$this->packageByExactName[$na
6d800 6d 65 5d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 me]);.}.}.elseif.(isset($this->p
6d820 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 ackageByName[$name])).{.$candida
6d840 74 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 tes.=.array_merge($candidates,.$
6d860 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a this->packageByName[$name]);.}..
6d880 24 6d 61 74 63 68 65 73 20 3d 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 3d 20 61 72 72 $matches.=.$provideMatches.=.arr
6d8a0 61 79 28 29 3b 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 ay();.$nameMatch.=.false;..forea
6d8c0 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b ch.($candidates.as.$candidate).{
6d8e0 0a 24 61 6c 69 61 73 4f 66 43 61 6e 64 69 64 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 0a 20 .$aliasOfCandidate.=.null;......
6d900 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 if.($candidate.instanceof.AliasP
6d920 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 4f 66 43 61 6e 64 69 64 61 74 65 20 3d 20 24 63 ackage).{.$aliasOfCandidate.=.$c
6d940 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 andidate->getAliasOf();.}..if.($
6d960 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 20 21 3d 3d 20 6e 75 6c 6c 20 26 26 20 28 0a 28 21 this->whitelist.!==.null.&&.(.(!
6d980 28 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b ($candidate.instanceof.AliasPack
6d9a0 61 67 65 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 5b age).&&.!isset($this->whitelist[
6d9c0 24 63 61 6e 64 69 64 61 74 65 2d 3e 69 64 5d 29 29 20 7c 7c 0a 28 24 63 61 6e 64 69 64 61 74 65 $candidate->id])).||.($candidate
6d9e0 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 26 26 20 21 69 73 73 .instanceof.AliasPackage.&&.!iss
6da00 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 5b 24 61 6c 69 61 73 4f 66 43 61 6e 64 et($this->whitelist[$aliasOfCand
6da20 69 64 61 74 65 2d 3e 69 64 5d 29 29 0a 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 73 77 idate->id])).)).{.continue;.}.sw
6da40 69 74 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 itch.($this->match($candidate,.$
6da60 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a name,.$constraint)).{.case.self:
6da80 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a :MATCH_NONE:.break;..case.self::
6daa0 4d 41 54 43 48 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 MATCH_NAME:.$nameMatch.=.true;.b
6dac0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 3a 0a 24 6e 61 6d 65 4d 61 reak;..case.self::MATCH:.$nameMa
6dae0 74 63 68 20 3d 20 74 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 tch.=.true;.$matches[].=.$candid
6db00 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 ate;.break;..case.self::MATCH_PR
6db20 4f 56 49 44 45 3a 0a 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 OVIDE:.$provideMatches[].=.$cand
6db40 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f idate;.break;..case.self::MATCH_
6db60 52 45 50 4c 41 43 45 3a 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 REPLACE:.$matches[].=.$candidate
6db80 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 ;.break;..case.self::MATCH_FILTE
6dba0 52 45 44 3a 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 RED:.break;..default:.throw.new.
6dbc0 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 \UnexpectedValueException('Unexp
6dbe0 65 63 74 65 64 20 6d 61 74 63 68 20 74 79 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 ected.match.type');.}.}....if.($
6dc00 6e 61 6d 65 4d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a nameMatch).{.return.$matches;.}.
6dc20 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 70 .return.array_merge($matches,.$p
6dc40 72 6f 76 69 64 65 4d 61 74 63 68 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rovideMatches);.}..public.functi
6dc60 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a on.literalToPackage($literal).{.
6dc80 24 70 61 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 $packageId.=.abs($literal);..ret
6dca0 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 urn.$this->packageById($packageI
6dcc0 64 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f d);.}..public.function.literalTo
6dce0 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 String($literal).{.return.($lite
6dd00 72 61 6c 20 3e 20 30 20 3f 20 27 2b 27 20 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 ral.>.0.?.'+'.:.'-')...$this->li
6dd20 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 70 75 62 teralToPackage($literal);.}..pub
6dd40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 lic.function.literalToPrettyStri
6dd60 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 ng($literal,.$installedMap).{.$p
6dd80 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 ackage.=.$this->literalToPackage
6dda0 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 ($literal);..if.(isset($installe
6ddc0 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d dMap[$package->id])).{.$prefix.=
6dde0 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 .($literal.>.0.?.'keep'.:.'remov
6de00 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 e');.}.else.{.$prefix.=.($litera
6de20 6c 20 3e 20 30 20 3f 20 27 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 l.>.0.?.'install'.:.'don\'t.inst
6de40 61 6c 6c 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 all');.}..return.$prefix.'.'.$pa
6de60 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 ckage->getPrettyString();.}..pub
6de80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 lic.function.isPackageAcceptable
6dea0 28 24 6e 61 6d 65 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 ($name,.$stability).{.foreach.((
6dec0 61 72 72 61 79 29 20 24 6e 61 6d 65 20 61 73 20 24 6e 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 array).$name.as.$n).{...if.(!iss
6dee0 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 et($this->stabilityFlags[$n]).&&
6df00 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 .isset($this->acceptableStabilit
6df20 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b ies[$stability])).{.return.true;
6df40 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 .}....if.(isset($this->stability
6df60 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 Flags[$n]).&&.BasePackage::$stab
6df80 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 ilities[$stability].<=.$this->st
6dfa0 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b abilityFlags[$n]).{.return.true;
6dfc0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .}.}..return.false;.}...........
6dfe0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 private.function.match($candidat
6e000 65 2c 20 24 6e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 e,.$name,.LinkConstraintInterfac
6e020 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 61 6e 64 69 64 61 e.$constraint.=.null).{.$candida
6e040 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a teName.=.$candidate->getName();.
6e060 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e $candidateVersion.=.$candidate->
6e080 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 69 73 44 65 76 20 3d 20 24 63 61 6e 64 69 64 61 74 getVersion();.$isDev.=.$candidat
6e0a0 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 24 69 73 e->getStability().===.'dev';.$is
6e0c0 41 6c 69 61 73 20 3d 20 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c Alias.=.$candidate.instanceof.Al
6e0e0 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 21 24 69 73 44 65 76 20 26 26 20 21 24 69 73 iasPackage;..if.(!$isDev.&&.!$is
6e100 41 6c 69 61 73 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 Alias.&&.isset($this->filterRequ
6e120 69 72 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 20 3d ires[$name])).{.$requireFilter.=
6e140 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d .$this->filterRequires[$name];.}
6e160 20 65 6c 73 65 20 7b 0a 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 20 3d 20 6e 65 77 20 45 6d 70 .else.{.$requireFilter.=.new.Emp
6e180 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 4e tyConstraint;.}..if.($candidateN
6e1a0 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 20 ame.===.$name).{.$pkgConstraint.
6e1c0 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 63 =.new.VersionConstraint('==',.$c
6e1e0 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 andidateVersion);..if.($constrai
6e200 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 nt.===.null.||.$constraint->matc
6e220 68 65 73 28 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 hes($pkgConstraint)).{.return.$r
6e240 65 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 70 6b 67 43 6f 6e 73 74 72 equireFilter->matches($pkgConstr
6e260 61 69 6e 74 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 aint).?.self::MATCH.:.self::MATC
6e280 48 5f 46 49 4c 54 45 52 45 44 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 H_FILTERED;.}..return.self::MATC
6e2a0 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 24 63 61 6e 64 69 64 61 74 H_NAME;.}..$provides.=.$candidat
6e2c0 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 24 63 e->getProvides();.$replaces.=.$c
6e2e0 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 20 69 66 20 28 andidate->getReplaces();....if.(
6e300 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 30 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 70 72 isset($replaces[0]).||.isset($pr
6e320 6f 76 69 64 65 73 5b 30 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 73 ovides[0])).{.foreach.($provides
6e340 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 .as.$link).{.if.($link->getTarge
6e360 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d t().===.$name.&&.($constraint.==
6e380 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 =.null.||.$constraint->matches($
6e3a0 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 link->getConstraint()))).{.retur
6e3c0 6e 20 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d n.$requireFilter->matches($link-
6e3e0 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f >getConstraint()).?.self::MATCH_
6e400 50 52 4f 56 49 44 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a PROVIDE.:.self::MATCH_FILTERED;.
6e420 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6c 61 63 65 73 20 61 73 20 24 6c 69 6e 6b }.}..foreach.($replaces.as.$link
6e440 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 ).{.if.($link->getTarget().===.$
6e460 6e 61 6d 65 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c name.&&.($constraint.===.null.||
6e480 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 .$constraint->matches($link->get
6e4a0 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 Constraint()))).{.return.$requir
6e4c0 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 eFilter->matches($link->getConst
6e4e0 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3a raint()).?.self::MATCH_REPLACE.:
6e500 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 .self::MATCH_FILTERED;.}.}..retu
6e520 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 rn.self::MATCH_NONE;.}..if.(isse
6e540 74 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 28 24 63 6f 6e 73 74 72 61 t($provides[$name]).&&.($constra
6e560 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 int.===.null.||.$constraint->mat
6e580 63 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 ches($provides[$name]->getConstr
6e5a0 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 46 69 6c 74 65 aint()))).{.return.$requireFilte
6e5c0 72 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 r->matches($provides[$name]->get
6e5e0 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 Constraint()).?.self::MATCH_PROV
6e600 49 44 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a 7d 0a 0a 69 IDE.:.self::MATCH_FILTERED;.}..i
6e620 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 28 24 f.(isset($replaces[$name]).&&.($
6e640 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 constraint.===.null.||.$constrai
6e660 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 nt->matches($replaces[$name]->ge
6e680 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 tConstraint()))).{.return.$requi
6e6a0 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d reFilter->matches($replaces[$nam
6e6c0 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 e]->getConstraint()).?.self::MAT
6e6e0 43 48 5f 52 45 50 4c 41 43 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 CH_REPLACE.:.self::MATCH_FILTERE
6e700 44 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d D;.}..return.self::MATCH_NONE;.}
6e720 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
6e740 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 mposer\DependencyResolver;.....c
6e760 6c 61 73 73 20 52 75 6c 65 0a 7b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f lass.Rule.{.const.RULE_INTERNAL_
6e780 41 4c 4c 4f 57 5f 55 50 44 41 54 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 ALLOW_UPDATE.=.1;.const.RULE_JOB
6e7a0 5f 49 4e 53 54 41 4c 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d _INSTALL.=.2;.const.RULE_JOB_REM
6e7c0 4f 56 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 OVE.=.3;.const.RULE_PACKAGE_CONF
6e7e0 4c 49 43 54 20 3d 20 36 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 LICT.=.6;.const.RULE_PACKAGE_REQ
6e800 55 49 52 45 53 20 3d 20 37 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 UIRES.=.7;.const.RULE_PACKAGE_OB
6e820 53 4f 4c 45 54 45 53 20 3d 20 38 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 SOLETES.=.8;.const.RULE_INSTALLE
6e840 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3d 20 39 3b 0a 63 6f 6e 73 74 20 52 D_PACKAGE_OBSOLETES.=.9;.const.R
6e860 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3d 20 31 30 3b 0a 63 6f 6e 73 ULE_PACKAGE_SAME_NAME.=.10;.cons
6e880 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 t.RULE_PACKAGE_IMPLICIT_OBSOLETE
6e8a0 53 20 3d 20 31 31 3b 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 4c 45 41 52 4e 45 44 20 3d 20 31 32 3b S.=.11;.const.RULE_LEARNED.=.12;
6e8c0 0a 63 6f 6e 73 74 20 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 20 3d 20 31 33 3b 0a .const.RULE_PACKAGE_ALIAS.=.13;.
6e8e0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 24 6c 69 74 65 72 61 6c 73 3b 0a 0a 70 72 6f 74 65 63 74 65 .....public.$literals;..protecte
6e900 64 20 24 64 69 73 61 62 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 d.$disabled;.protected.$type;.pr
6e920 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a otected.$id;.protected.$reason;.
6e940 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 70 72 6f 74 65 63 74 65 protected.$reasonData;..protecte
6e960 64 20 24 6a 6f 62 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 68 3b 0a 0a 70 d.$job;..protected.$ruleHash;..p
6e980 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 ublic.function.__construct(array
6e9a0 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 .$literals,.$reason,.$reasonData
6e9c0 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 73 6f 72 74 28 24 6c 69 74 65 72 61 6c ,.$job.=.null).{...sort($literal
6e9e0 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c 69 74 65 72 61 6c 73 s);..$this->literals.=.$literals
6ea00 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 24 74 68 69 73 ;.$this->reason.=.$reason;.$this
6ea20 2d 3e 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 24 74 68 ->reasonData.=.$reasonData;..$th
6ea40 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f is->disabled.=.false;..$this->jo
6ea60 62 20 3d 20 24 6a 6f 62 3b 0a 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 2d 31 3b 0a 0a 24 74 b.=.$job;..$this->type.=.-1;..$t
6ea80 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 35 28 69 6d 70 6c 6f his->ruleHash.=.substr(md5(implo
6eaa0 64 65 28 27 2c 27 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 2c 20 30 2c 20 35 29 de(',',.$this->literals)),.0,.5)
6eac0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 61 73 68 28 29 0a 7b ;.}..public.function.getHash().{
6eae0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a 7d 0a 0a 70 75 62 6c .return.$this->ruleHash;.}..publ
6eb00 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e ic.function.setId($id).{.$this->
6eb20 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 id.=.$id;.}..public.function.get
6eb40 49 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 70 75 62 6c Id().{.return.$this->id;.}..publ
6eb60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ic.function.getJob().{.return.$t
6eb80 68 69 73 2d 3e 6a 6f 62 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 his->job;.}..public.function.get
6eba0 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 3b Reason().{.return.$this->reason;
6ebc0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 44 61 74 .}..public.function.getReasonDat
6ebe0 61 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 3b 0a a().{.return.$this->reasonData;.
6ec00 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 64 50 61 }..public.function.getRequiredPa
6ec20 63 6b 61 67 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 3d 3d 20 ckage().{.if.($this->reason.===.
6ec40 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 29 20 7b 0a 72 65 74 75 72 6e self::RULE_JOB_INSTALL).{.return
6ec60 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 .$this->reasonData;.}..if.($this
6ec80 2d 3e 72 65 61 73 6f 6e 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f ->reason.===.self::RULE_PACKAGE_
6eca0 52 45 51 55 49 52 45 53 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e REQUIRES).{.return.$this->reason
6ecc0 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a Data->getTarget();.}.}..........
6ece0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c public.function.equals(Rule.$rul
6ed00 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 e).{.if.($this->ruleHash.!==.$ru
6ed20 6c 65 2d 3e 72 75 6c 65 48 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a le->ruleHash).{.return.false;.}.
6ed40 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 .if.(count($this->literals).!=.c
6ed60 6f 75 6e 74 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 ount($rule->literals)).{.return.
6ed80 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e false;.}..for.($i.=.0,.$n.=.coun
6eda0 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b t($this->literals);.$i.<.$n;.$i+
6edc0 2b 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d +).{.if.($this->literals[$i].!==
6ede0 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 .$rule->literals[$i]).{.return.f
6ee00 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 alse;.}.}..return.true;.}..publi
6ee20 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 c.function.setType($type).{.$thi
6ee40 73 2d 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s->type.=.$type;.}..public.funct
6ee60 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 ion.getType().{.return.$this->ty
6ee80 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 pe;.}..public.function.disable()
6eea0 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 .{.$this->disabled.=.true;.}..pu
6eec0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e blic.function.enable().{.$this->
6eee0 64 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 disabled.=.false;.}..public.func
6ef00 74 69 6f 6e 20 69 73 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.isDisabled().{.return.$this
6ef20 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 ->disabled;.}..public.function.i
6ef40 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 sEnabled().{.return.!$this->disa
6ef60 62 6c 65 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c bled;.}.....public.function.getL
6ef80 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 iterals().{.return.$this->litera
6efa0 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 ls;.}..public.function.isAsserti
6efc0 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d on().{.return.1.===.count($this-
6efe0 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 >literals);.}..public.function.g
6f000 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 etPrettyString(Pool.$pool,.array
6f020 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 75 6c .$installedMap.=.array()).{.$rul
6f040 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 eText.=.'';.foreach.($this->lite
6f060 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 rals.as.$i.=>.$literal).{.if.($i
6f080 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 75 .!=.0).{.$ruleText..=.'|';.}.$ru
6f0a0 6c 65 54 65 78 74 20 2e 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 leText..=.$pool->literalToPretty
6f0c0 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b String($literal,.$installedMap);
6f0e0 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 29 20 7b 0a 63 61 73 .}..switch.($this->reason).{.cas
6f100 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 e.self::RULE_INTERNAL_ALLOW_UPDA
6f120 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 TE:.return.$ruleText;..case.self
6f140 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 ::RULE_JOB_INSTALL:.return."Inst
6f160 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a all.command.rule.($ruleText)";..
6f180 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 case.self::RULE_JOB_REMOVE:.retu
6f1a0 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 72 75 6c 65 54 65 rn."Remove.command.rule.($ruleTe
6f1c0 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 xt)";..case.self::RULE_PACKAGE_C
6f1e0 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 ONFLICT:.$package1.=.$pool->lite
6f200 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 ralToPackage($this->literals[0])
6f220 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 ;.$package2.=.$pool->literalToPa
6f240 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 ckage($this->literals[1]);..retu
6f260 72 6e 20 24 70 61 63 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e rn.$package1->getPrettyString().
6f280 27 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 '.conflicts.with.'.$this->format
6f2a0 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 24 70 61 63 PackagesUnique($pool,.array($pac
6f2c0 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 kage2)).'.';..case.self::RULE_PA
6f2e0 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 CKAGE_REQUIRES:.$literals.=.$thi
6f300 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 3d 20 61 72 s->literals;.$sourceLiteral.=.ar
6f320 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 65 50 61 63 ray_shift($literals);.$sourcePac
6f340 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 kage.=.$pool->literalToPackage($
6f360 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 sourceLiteral);..$requires.=.arr
6f380 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 ay();.foreach.($literals.as.$lit
6f3a0 65 72 61 6c 29 20 7b 0a 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 eral).{.$requires[].=.$pool->lit
6f3c0 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 24 74 65 78 eralToPackage($literal);.}..$tex
6f3e0 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 50 72 65 74 74 79 t.=.$this->reasonData->getPretty
6f400 53 74 72 69 6e 67 28 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 72 65 71 String($sourcePackage);.if.($req
6f420 75 69 72 65 73 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 uires).{.$text..=.'.->.satisfiab
6f440 6c 65 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 le.by.'...$this->formatPackagesU
6f460 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 73 29 20 2e 20 27 2e 27 3b 0a 7d nique($pool,.$requires)...'.';.}
6f480 20 65 6c 73 65 20 7b 0a 24 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 .else.{.$targetName.=.$this->rea
6f4a0 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a 20 69 66 20 28 24 74 61 sonData->getTarget();....if.($ta
6f4c0 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 70 68 70 27 20 7c 7c 20 24 74 61 72 67 65 74 4e 61 6d rgetName.===.'php'.||.$targetNam
6f4e0 65 20 3d 3d 3d 20 27 70 68 70 2d 36 34 62 69 74 27 20 7c 7c 20 24 74 61 72 67 65 74 4e 61 6d 65 e.===.'php-64bit'.||.$targetName
6f500 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d .===.'hhvm').{.if.(defined('HHVM
6f520 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 72 _VERSION')).{.$text..=.'.->.your
6f540 20 48 48 56 4d 20 76 65 72 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 73 66 79 20 74 .HHVM.version.does.not.satisfy.t
6f560 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 hat.requirement.';.}.elseif.($ta
6f580 72 67 65 74 4e 61 6d 65 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 rgetName.===.'hhvm').{.$text..=.
6f5a0 27 20 2d 3e 20 79 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 74 68 69 73 20 77 69 74 68 20 50 '.->.you.are.running.this.with.P
6f5c0 48 50 20 61 6e 64 20 6e 6f 74 20 48 48 56 4d 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 HP.and.not.HHVM.';.}.else.{.$tex
6f5e0 74 20 2e 3d 20 27 20 2d 3e 20 79 6f 75 72 20 50 48 50 20 76 65 72 73 69 6f 6e 20 64 6f 65 73 20 t..=.'.->.your.PHP.version.does.
6f600 6e 6f 74 20 73 61 74 69 73 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 3b 0a not.satisfy.that.requirement.';.
6f620 7d 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 }.}.elseif.(0.===.strpos($target
6f640 4e 61 6d 65 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 Name,.'ext-')).{.$ext.=.substr($
6f660 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 targetName,.4);.$error.=.extensi
6f680 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 on_loaded($ext).?.'has.the.wrong
6f6a0 20 76 65 72 73 69 6f 6e 20 28 27 2e 28 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 20 3f 3a .version.('.(phpversion($ext).?:
6f6c0 20 27 30 27 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e .'0').').installed'.:.'is.missin
6f6e0 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 g.from.your.system';..$text..=.'
6f700 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 .->.the.requested.PHP.extension.
6f720 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 '.$ext.'.'.$error.'.';.}.elseif.
6f740 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 6c 69 62 2d (0.===.strpos($targetName,.'lib-
6f760 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d ')).{...$lib.=.substr($targetNam
6f780 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 e,.4);..$text..=.'.->.the.reques
6f7a0 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 27 2e 24 6c 69 62 2e 27 20 68 61 73 20 ted.linked.library.'.$lib.'.has.
6f7c0 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 the.wrong.version.installed.or.i
6f7e0 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 s.missing.from.your.system,.make
6f800 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 .sure.to.have.the.extension.prov
6f820 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 27 20 iding.it.';.}.else.{.$text..=.'.
6f840 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 2e 27 3b 0a ->.no.matching.package.found.';.
6f860 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 }.}..return.$text;..case.self::R
6f880 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 ULE_PACKAGE_OBSOLETES:.return.$r
6f8a0 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c uleText;.case.self::RULE_INSTALL
6f8c0 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 ED_PACKAGE_OBSOLETES:.return.$ru
6f8e0 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f leText;.case.self::RULE_PACKAGE_
6f900 53 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 6e 20 27 43 61 6e 20 6f 6e 6c 79 20 69 6e 73 74 SAME_NAME:.return.'Can.only.inst
6f920 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 all.one.of:.'...$this->formatPac
6f940 6b 61 67 65 73 55 6e 69 71 75 65 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 kagesUnique($pool,.$this->litera
6f960 6c 73 29 20 2e 20 27 2e 27 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 ls)...'.';.case.self::RULE_PACKA
6f980 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 72 GE_IMPLICIT_OBSOLETES:.return.$r
6f9a0 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 uleText;.case.self::RULE_LEARNED
6f9c0 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 2e 24 72 75 6c 65 54 65 78 :.return.'Conclusion:.'.$ruleTex
6f9e0 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 t;.case.self::RULE_PACKAGE_ALIAS
6fa00 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 :.return.$ruleText;.default:.ret
6fa20 75 72 6e 20 27 28 27 2e 24 72 75 6c 65 54 65 78 74 2e 27 29 27 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 urn.'('.$ruleText.')';.}.}..prot
6fa40 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 ected.function.formatPackagesUni
6fa60 71 75 65 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 que($pool,.array.$packages).{.$p
6fa80 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 repared.=.array();.foreach.($pac
6faa0 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a kages.as.$package).{.if.(!is_obj
6fac0 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f ect($package)).{.$package.=.$poo
6fae0 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d l->literalToPackage($package);.}
6fb00 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b .$prepared[$package->getName()][
6fb20 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 'name'].=.$package->getPrettyNam
6fb40 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 e();.$prepared[$package->getName
6fb60 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 ()]['versions'][$package->getVer
6fb80 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 sion()].=.$package->getPrettyVer
6fba0 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 20 sion();.}.foreach.($prepared.as.
6fbc0 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 $name.=>.$package).{.$prepared[$
6fbe0 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d 70 name].=.$package['name'].'['.imp
6fc00 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d 29 lode(',.',.$package['versions'])
6fc20 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 .']';.}..return.implode(',.',.$p
6fc40 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f repared);.}.......public.functio
6fc60 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 24 74 68 69 n.__toString().{.$result.=.($thi
6fc80 73 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 64 28 27 20 3a s->isDisabled()).?.'disabled('.:
6fca0 20 27 28 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 .'(';..foreach.($this->literals.
6fcc0 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 as.$i.=>.$literal).{.if.($i.!=.0
6fce0 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 2e 3d ).{.$result..=.'|';.}.$result..=
6fd00 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b 0a 0a 72 .$literal;.}..$result..=.')';..r
6fd20 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a eturn.$result;.}.}.<?php........
6fd40 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 ....namespace.Composer\Dependenc
6fd60 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 yResolver;..use.Composer\Package
6fd80 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
6fda0 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 Package\AliasPackage;.use.Compos
6fdc0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 er\Repository\PlatformRepository
6fde0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 ;.....class.RuleSetGenerator.{.p
6fe00 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f rotected.$policy;.protected.$poo
6fe20 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 l;.protected.$rules;.protected.$
6fe40 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 70 jobs;.protected.$installedMap;.p
6fe60 72 6f 74 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 rotected.$whitelistedMap;.protec
6fe80 74 65 64 20 24 61 64 64 65 64 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ted.$addedMap;..public.function.
6fea0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c __construct(PolicyInterface.$pol
6fec0 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 icy,.Pool.$pool).{.$this->policy
6fee0 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b .=.$policy;.$this->pool.=.$pool;
6ff00 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 .}................protected.func
6ff20 74 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e tion.createRequireRule(PackageIn
6ff40 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 terface.$package,.array.$provide
6ff60 72 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 rs,.$reason,.$reasonData.=.null)
6ff80 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e .{.$literals.=.array(-$package->
6ffa0 69 64 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 id);..foreach.($providers.as.$pr
6ffc0 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 ovider).{...if.($provider.===.$p
6ffe0 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 24 6c 69 74 65 72 61 ackage).{.return.null;.}.$litera
70000 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 69 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ls[].=.$provider->id;.}..return.
70020 6e 65 77 20 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 new.Rule($literals,.$reason,.$re
70040 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 asonData);.}..............protec
70060 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 ted.function.createInstallOneOfR
70080 75 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a ule(array.$packages,.$reason,.$j
700a0 6f 62 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 ob).{.$literals.=.array();.forea
700c0 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 ch.($packages.as.$package).{.$li
700e0 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 69 64 3b 0a 7d 0a 0a 72 65 74 75 terals[].=.$package->id;.}..retu
70100 72 6e 20 6e 65 77 20 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 rn.new.Rule($literals,.$reason,.
70120 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d 0a 0a 0a $job['packageName'],.$job);.}...
70140 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 ..........protected.function.cre
70160 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 ateRemoveRule(PackageInterface.$
70180 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 72 65 74 75 72 6e package,.$reason,.$job).{.return
701a0 20 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 69 64 29 2c 20 .new.Rule(array(-$package->id),.
701c0 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a $reason,.$job['packageName'],.$j
701e0 6f 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ob);.}................protected.
70200 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 63 6b function.createConflictRule(Pack
70220 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 ageInterface.$issuer,.PackageInt
70240 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 erface.$provider,.$reason,.$reas
70260 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 20 3d onData.=.null).{...if.($issuer.=
70280 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a ==.$provider).{.return.null;.}..
702a0 72 65 74 75 72 6e 20 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 2d 24 69 73 73 75 65 72 2d 3e return.new.Rule(array(-$issuer->
702c0 69 64 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 69 64 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 id,.-$provider->id),.$reason,.$r
702e0 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 easonData);.}...........private.
70300 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 28 24 74 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 function.addRule($type,.Rule.$ne
70320 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c wRule.=.null).{.if.(!$newRule.||
70340 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 63 6f 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 .$this->rules->containsEqual($ne
70360 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 wRule)).{.return;.}..$this->rule
70380 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 s->add($newRule,.$type);.}..prot
703a0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 50 61 63 6b ected.function.whitelistFromPack
703c0 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b age(PackageInterface.$package).{
703e0 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f .$workQueue.=.new.\SplQueue;.$wo
70400 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 rkQueue->enqueue($package);..whi
70420 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 le.(!$workQueue->isEmpty()).{.$p
70440 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a ackage.=.$workQueue->dequeue();.
70460 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 5b if.(isset($this->whitelistedMap[
70480 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 $package->id])).{.continue;.}..$
704a0 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 this->whitelistedMap[$package->i
704c0 64 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 d].=.true;..foreach.($package->g
704e0 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 etRequires().as.$link).{.$possib
70500 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 leRequires.=.$this->pool->whatPr
70520 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b ovides($link->getTarget(),.$link
70540 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2c 20 74 72 75 65 29 3b 0a 0a 66 6f 72 65 61 ->getConstraint(),.true);..forea
70560 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 ch.($possibleRequires.as.$requir
70580 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 e).{.$workQueue->enqueue($requir
705a0 65 29 3b 0a 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 e);.}.}..$obsoleteProviders.=.$t
705c0 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 his->pool->whatProvides($package
705e0 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 66 6f 72 65 61 ->getName(),.null,.true);..forea
70600 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 ch.($obsoleteProviders.as.$provi
70620 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 der).{.if.($provider.===.$packag
70640 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 e).{.continue;.}..if.(($package.
70660 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 instanceof.AliasPackage).&&.$pac
70680 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 kage->getAliasOf().===.$provider
706a0 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 72 6f 76 69 64 65 ).{.$workQueue->enqueue($provide
706c0 72 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 r);.}.}.}.}..protected.function.
706e0 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 addRulesForPackage(PackageInterf
70700 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 ace.$package,.$ignorePlatformReq
70720 73 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b s).{.$workQueue.=.new.\SplQueue;
70740 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 70 61 63 6b 61 67 65 29 3b 0a .$workQueue->enqueue($package);.
70760 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 .while.(!$workQueue->isEmpty()).
70780 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 {.$package.=.$workQueue->dequeue
707a0 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 ();.if.(isset($this->addedMap[$p
707c0 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 ackage->id])).{.continue;.}..$th
707e0 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 is->addedMap[$package->id].=.tru
70800 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 e;..foreach.($package->getRequir
70820 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 50 6c 61 74 es().as.$link).{.if.($ignorePlat
70840 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 formReqs.&&.preg_match(PlatformR
70860 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 epository::PLATFORM_PACKAGE_REGE
70880 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e X,.$link->getTarget())).{.contin
708a0 75 65 3b 0a 7d 0a 0a 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 ue;.}..$possibleRequires.=.$this
708c0 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 ->pool->whatProvides($link->getT
708e0 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 arget(),.$link->getConstraint())
70900 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f ;..$this->addRule(RuleSet::TYPE_
70920 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 PACKAGE,.$rule.=.$this->createRe
70940 71 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 quireRule($package,.$possibleReq
70960 75 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 uires,.Rule::RULE_PACKAGE_REQUIR
70980 45 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 ES,.$link));..foreach.($possible
709a0 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 Requires.as.$require).{.$workQue
709c0 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 ue->enqueue($require);.}.}..fore
709e0 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 20 61 73 ach.($package->getConflicts().as
70a00 20 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 3d 20 24 .$link).{.$possibleConflicts.=.$
70a20 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e this->pool->whatProvides($link->
70a40 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e getTarget(),.$link->getConstrain
70a60 74 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 t());..foreach.($possibleConflic
70a80 74 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c ts.as.$conflict).{.$this->addRul
70aa0 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e e(RuleSet::TYPE_PACKAGE,.$this->
70ac0 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6f createConflictRule($package,.$co
70ae0 6e 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c nflict,.Rule::RULE_PACKAGE_CONFL
70b00 49 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 ICT,.$link));.}.}....$isInstalle
70b20 64 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 d.=.(isset($this->installedMap[$
70b40 70 61 63 6b 61 67 65 2d 3e 69 64 5d 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 package->id]));..foreach.($packa
70b60 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6f ge->getReplaces().as.$link).{.$o
70b80 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e bsoleteProviders.=.$this->pool->
70ba0 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c whatProvides($link->getTarget(),
70bc0 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 61 .$link->getConstraint());..forea
70be0 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 ch.($obsoleteProviders.as.$provi
70c00 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 der).{.if.($provider.===.$packag
70c20 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 e).{.continue;.}..if.(!$this->ob
70c40 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 soleteImpossibleForAlias($packag
70c60 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 69 73 49 e,.$provider)).{.$reason.=.($isI
70c80 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 4c 4c 45 44 nstalled).?.Rule::RULE_INSTALLED
70ca0 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a 52 55 4c 45 5f _PACKAGE_OBSOLETES.:.Rule::RULE_
70cc0 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c PACKAGE_OBSOLETES;.$this->addRul
70ce0 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e e(RuleSet::TYPE_PACKAGE,.$this->
70d00 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 createConflictRule($package,.$pr
70d20 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 7d 0a ovider,.$reason,.$link));.}.}.}.
70d40 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f .$obsoleteProviders.=.$this->poo
70d60 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d l->whatProvides($package->getNam
70d80 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 e(),.null);..foreach.($obsoleteP
70da0 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 roviders.as.$provider).{.if.($pr
70dc0 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b ovider.===.$package).{.continue;
70de0 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 .}..if.(($package.instanceof.Ali
70e00 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 asPackage).&&.$package->getAlias
70e20 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 Of().===.$provider).{.$this->add
70e40 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c Rule(RuleSet::TYPE_PACKAGE,.$rul
70e60 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 24 70 61 e.=.$this->createRequireRule($pa
70e80 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 6c 65 3a 3a 52 ckage,.array($provider),.Rule::R
70ea0 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d ULE_PACKAGE_ALIAS,.$package));.}
70ec0 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 69 .elseif.(!$this->obsoleteImpossi
70ee0 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 bleForAlias($package,.$provider)
70f00 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 ).{.$reason.=.($package->getName
70f20 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3f 20 52 75 ().==.$provider->getName()).?.Ru
70f40 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3a 20 52 75 6c le::RULE_PACKAGE_SAME_NAME.:.Rul
70f60 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 e::RULE_PACKAGE_IMPLICIT_OBSOLET
70f80 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 ES;.$this->addRule(RuleSet::TYPE
70fa0 5f 50 41 43 4b 41 47 45 2c 20 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 43 _PACKAGE,.$rule.=.$this->createC
70fc0 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 2c onflictRule($package,.$provider,
70fe0 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 .$reason,.$package));.}.}.}.}..p
71000 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 73 6f 6c 65 74 65 49 6d 70 6f 73 73 rotected.function.obsoleteImposs
71020 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 ibleForAlias($package,.$provider
71040 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 20 69 ).{.$packageIsAlias.=.$package.i
71060 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 70 72 6f 76 69 64 65 nstanceof.AliasPackage;.$provide
71080 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 rIsAlias.=.$provider.instanceof.
710a0 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f 73 73 69 62 6c 65 20 3d 20 28 0a 28 AliasPackage;..$impossible.=.(.(
710c0 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 $packageIsAlias.&&.$package->get
710e0 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7c 7c 0a 28 24 70 72 AliasOf().===.$provider).||.($pr
71100 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 oviderIsAlias.&&.$provider->getA
71120 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7c 7c 0a 28 24 70 61 63 6b liasOf().===.$package).||.($pack
71140 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 ageIsAlias.&&.$providerIsAlias.&
71160 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 &.$provider->getAliasOf().===.$p
71180 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 0a 29 3b 0a 0a 72 65 74 75 72 6e ackage->getAliasOf()).);..return
711a0 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 .$impossible;.}..protected.funct
711c0 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 ion.whitelistFromJobs().{.foreac
711e0 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 h.($this->jobs.as.$job).{.switch
71200 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a .($job['cmd']).{.case.'install':
71220 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 .$packages.=.$this->pool->whatPr
71240 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 ovides($job['packageName'],.$job
71260 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 2c 20 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 ['constraint'],.true);.foreach.(
71280 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e $packages.as.$package).{.$this->
712a0 77 68 69 74 65 6c 69 73 74 46 72 6f 6d 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a whitelistFromPackage($package);.
712c0 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 }.break;.}.}.}..protected.functi
712e0 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f on.addRulesForJobs($ignorePlatfo
71300 72 6d 52 65 71 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 rmReqs).{.foreach.($this->jobs.a
71320 73 20 24 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b s.$job).{.switch.($job['cmd']).{
71340 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 66 69 78 65 .case.'install':.if.(!$job['fixe
71360 64 27 5d 20 26 26 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 d'].&&.$ignorePlatformReqs.&&.pr
71380 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 eg_match(PlatformRepository::PLA
713a0 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 TFORM_PACKAGE_REGEX,.$job['packa
713c0 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 geName'])).{.continue;.}..$packa
713e0 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 ges.=.$this->pool->whatProvides(
71400 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 $job['packageName'],.$job['const
71420 72 61 69 6e 74 27 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 66 6f 72 65 61 raint']);.if.($packages).{.forea
71440 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 ch.($packages.as.$package).{.if.
71460 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 (!isset($this->installedMap[$pac
71480 6b 61 67 65 2d 3e 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 kage->id])).{.$this->addRulesFor
714a0 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 Package($package,.$ignorePlatfor
714c0 6d 52 65 71 73 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 mReqs);.}.}..$rule.=.$this->crea
714e0 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 24 70 61 63 6b 61 67 65 73 2c 20 52 75 teInstallOneOfRule($packages,.Ru
71500 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 le::RULE_JOB_INSTALL,.$job);.$th
71520 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 is->addRule(RuleSet::TYPE_JOB,.$
71540 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 0a rule);.}.break;.case.'remove':..
71560 20 0a 20 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 ...$packages.=.$this->pool->what
71580 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a Provides($job['packageName'],.$j
715a0 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 ob['constraint']);.foreach.($pac
715c0 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 kages.as.$package).{.$rule.=.$th
715e0 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 52 is->createRemoveRule($package,.R
71600 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 2c 20 24 6a 6f 62 29 3b 0a 24 74 68 ule::RULE_JOB_REMOVE,.$job);.$th
71620 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 2c 20 24 is->addRule(RuleSet::TYPE_JOB,.$
71640 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 rule);.}.break;.}.}.}..public.fu
71660 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f 72 28 24 6a 6f 62 73 2c 20 24 69 6e 73 74 61 nction.getRulesFor($jobs,.$insta
71680 6c 6c 65 64 4d 61 70 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 lledMap,.$ignorePlatformReqs.=.f
716a0 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 6a 6f 62 73 3b 0a 24 74 68 alse).{.$this->jobs.=.$jobs;.$th
716c0 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 74 3b 0a 24 74 68 69 73 2d 3e is->rules.=.new.RuleSet;.$this->
716e0 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 24 installedMap.=.$installedMap;..$
71700 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a this->whitelistedMap.=.array();.
71720 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 foreach.($this->installedMap.as.
71740 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 46 72 6f 6d $package).{.$this->whitelistFrom
71760 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 77 68 69 74 Package($package);.}.$this->whit
71780 65 6c 69 73 74 46 72 6f 6d 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 73 elistFromJobs();..$this->pool->s
717a0 65 74 57 68 69 74 65 6c 69 73 74 28 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 65 64 4d 61 etWhitelist($this->whitelistedMa
717c0 70 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a p);..$this->addedMap.=.array();.
717e0 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 foreach.($this->installedMap.as.
71800 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 $package).{.$this->addRulesForPa
71820 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 ckage($package,.$ignorePlatformR
71840 65 71 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 eqs);.}..$this->addRulesForJobs(
71860 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 $ignorePlatformReqs);..return.$t
71880 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a his->rules;.}.}.<?php...........
718a0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 .namespace.Composer\DependencyRe
718c0 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 62 75 67 53 6f 6c 76 65 72 20 65 78 solver;.....class.DebugSolver.ex
718e0 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f tends.Solver.{.protected.functio
71900 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 44 n.printDecisionMap().{.echo."\nD
71920 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d ecisionMap:.\n";.foreach.($this-
71940 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 6c >decisionMap.as.$packageId.=>.$l
71960 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 49 64 20 3d 3d 3d 20 30 29 20 7b 0a evel).{.if.($packageId.===.0).{.
71980 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3e 20 30 29 20 7b 0a 65 63 continue;.}.if.($level.>.0).{.ec
719a0 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 ho.'....+'...$this->pool->packag
719c0 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 69 66 eById($packageId)."\n";.}.elseif
719e0 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2d 27 20 2e 20 24 .($level.<.0).{.echo.'....-'...$
71a00 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 this->pool->packageById($package
71a20 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 3f 27 20 Id)."\n";.}.else.{.echo.'....?'.
71a40 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b ..$this->pool->packageById($pack
71a60 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 ageId)."\n";.}.}.echo."\n";.}..p
71a80 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 51 rotected.function.printDecisionQ
71aa0 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 73 69 6f 6e 51 75 65 75 65 3a 20 5c 6e ueue().{.echo."DecisionQueue:.\n
71ac0 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 ";.foreach.($this->decisionQueue
71ae0 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 .as.$i.=>.$literal).{.echo.'....
71b00 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 '...$this->pool->literalToString
71b20 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 ($literal)...'.'...$this->decisi
71b40 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 76 65 6c 20 22 2e 24 74 68 69 73 2d 3e onQueueWhy[$i].".level.".$this->
71b60 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 2e 22 5c 6e 22 3b decisionMap[abs($literal)]."\n";
71b80 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 .}.echo."\n";.}..protected.funct
71ba0 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 57 61 74 ion.printWatches().{.echo."\nWat
71bc0 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 65 ches:\n";.foreach.($this->watche
71be0 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 s.as.$literalId.=>.$watch).{.ech
71c00 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 6c 69 74 o.'..'.$this->literalFromId($lit
71c20 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 28 61 72 72 eralId)."\n";.$queue.=.array(arr
71c40 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d ay('....',.$watch));..while.(!em
71c60 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 28 24 69 6e 64 65 6e 74 2c 20 24 77 61 pty($queue)).{.list($indent,.$wa
71c80 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 0a 65 63 68 6f 20 tch).=.array_pop($queue);..echo.
71ca0 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 29 20 7b 0a 65 $indent.$watch;..if.($watch).{.e
71cc0 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d 3e 67 65 74 49 64 28 29 2e 27 2c 77 61 cho.'.[id='.$watch->getId().',wa
71ce0 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 tch1='.$this->literalFromId($wat
71d00 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 32 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 ch->watch1).',watch2='.$this->li
71d20 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 32 29 2e 22 5d 22 3b teralFromId($watch->watch2)."]";
71d40 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 .}..echo."\n";..if.($watch.&&.($
71d60 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 20 7c 7c 20 24 77 61 74 63 68 watch->next1.==.$watch.||.$watch
71d80 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 77 61 74 63 68 ->next2.==.$watch)).{.if.($watch
71da0 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e ->next1.==.$watch).{.echo.$inden
71dc0 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 69 66 20 28 24 77 61 t."....1.*RECURSION*";.}.if.($wa
71de0 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e tch->next2.==.$watch).{.echo.$in
71e00 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 49 4f 4e 2a 22 3b 0a 7d 0a 7d 20 65 6c dent."....2.*RECURSION*";.}.}.el
71e20 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 7c seif.($watch.&&.($watch->next1.|
71e40 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b 0a 24 69 6e 64 65 6e 74 20 3d 20 73 74 |.$watch->next2)).{.$indent.=.st
71e60 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 2c 20 27 32 27 29 2c 20 27 20 27 2c 20 r_replace(array('1',.'2'),.'.',.
71e80 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 $indent);..array_push($queue,.ar
71ea0 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 32 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 ray($indent.'....2.',.$watch->ne
71ec0 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 61 72 72 61 79 28 xt2));.array_push($queue,.array(
71ee0 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 29 $indent.'....1.',.$watch->next1)
71f00 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a );.}.}..echo."\n";.}.}.}.<?php..
71f20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ..........namespace.Composer\Dep
71f40 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 endencyResolver;.....class.RuleS
71f60 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 0a etIterator.implements.\Iterator.
71f80 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 {.protected.$rules;.protected.$t
71fa0 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 4f 66 66 73 65 74 3b ypes;..protected.$currentOffset;
71fc0 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 .protected.$currentType;.protect
71fe0 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 3b 0a 0a 70 75 62 6c 69 63 20 66 ed.$currentTypeOffset;..public.f
72000 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 72 75 6c 65 73 unction.__construct(array.$rules
72020 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 72 75 6c 65 73 3b 0a 24 74 68 69 73 ).{.$this->rules.=.$rules;.$this
72040 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 75 6c 65 73 29 3b 0a 73 6f ->types.=.array_keys($rules);.so
72060 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 rt($this->types);..$this->rewind
72080 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 ();.}..public.function.current()
720a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 .{.return.$this->rules[$this->cu
720c0 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d rrentType][$this->currentOffset]
720e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 ;.}..public.function.key().{.ret
72100 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 urn.$this->currentType;.}..publi
72120 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 c.function.next().{.$this->curre
72140 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 ntOffset++;..if.(!isset($this->r
72160 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 72 65 74 ules[$this->currentType])).{.ret
72180 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 urn;.}..if.($this->currentOffset
721a0 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 .>=.sizeof($this->rules[$this->c
721c0 75 72 72 65 6e 74 54 79 70 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 urrentType])).{.$this->currentOf
721e0 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 fset.=.0;..do.{.$this->currentTy
72200 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 peOffset++;..if.(!isset($this->t
72220 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 ypes[$this->currentTypeOffset]))
72240 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 .{.$this->currentType.=.-1;.brea
72260 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 k;.}..$this->currentType.=.$this
72280 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 ->types[$this->currentTypeOffset
722a0 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 ];.}.while.(isset($this->types[$
722c0 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 this->currentTypeOffset]).&&.!si
722e0 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 zeof($this->rules[$this->current
72300 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 Type]));.}.}..public.function.re
72320 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 wind().{.$this->currentOffset.=.
72340 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 20 3d 20 2d 0;..$this->currentTypeOffset.=.-
72360 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 0a 64 6f 20 1;.$this->currentType.=.-1;..do.
72380 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 {.$this->currentTypeOffset++;..i
723a0 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 f.(!isset($this->types[$this->cu
723c0 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 rrentTypeOffset])).{.$this->curr
723e0 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 entType.=.-1;.break;.}..$this->c
72400 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d urrentType.=.$this->types[$this-
72420 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 >currentTypeOffset];.}.while.(is
72440 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 set($this->types[$this->currentT
72460 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 ypeOffset]).&&.!sizeof($this->ru
72480 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 0a 70 75 les[$this->currentType]));.}..pu
724a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 blic.function.valid().{.return.i
724c0 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 sset($this->rules[$this->current
724e0 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 74 68 Type]).&&.isset($this->rules[$th
72500 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f is->currentType][$this->currentO
72520 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 ffset]);.}.}.<?php............na
72540 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c mespace.Composer\DependencyResol
72560 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 43 68 61 ver;..........class.RuleWatchCha
72580 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 6c 79 4c 69 6e 6b 65 64 4c 69 73 74 0a in.extends.\SplDoublyLinkedList.
725a0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 {.protected.$offset.=.0;.......p
725c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b 28 24 6f 66 66 73 65 74 29 0a 7b 0a 24 ublic.function.seek($offset).{.$
725e0 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 this->rewind();.for.($i.=.0;.$i.
72600 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 68 69 73 2d 3e 6e 65 78 74 28 29 29 3b <.$offset;.$i++,.$this->next());
72620 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f .}..........public.function.remo
72640 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 68 69 73 2d 3e 6b 65 79 28 29 3b 0a 24 ve().{.$offset.=.$this->key();.$
72660 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 6f 66 66 73 65 74 29 3b 0a 24 74 68 69 this->offsetUnset($offset);.$thi
72680 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a s->seek($offset);.}.}.<?php.....
726a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 .......namespace.Composer\Depend
726c0 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f encyResolver;..use.Composer\Repo
726e0 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 sitory\RepositoryInterface;.use.
72700 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f Composer\Repository\PlatformRepo
72720 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 0a 7b 0a 63 6f 6e 73 74 sitory;.....class.Solver.{.const
72740 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 42 52 41 4e .BRANCH_LITERALS.=.0;.const.BRAN
72760 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 CH_LEVEL.=.1;..protected.$policy
72780 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e ;.protected.$pool;.protected.$in
727a0 73 74 61 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 65 stalled;.protected.$rules;.prote
727c0 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f 74 65 63 74 65 cted.$ruleSetGenerator;.protecte
727e0 64 20 24 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 4d d.$updateAll;..protected.$addedM
72800 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 4d ap.=.array();.protected.$updateM
72820 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 47 72 ap.=.array();.protected.$watchGr
72840 61 70 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 aph;.protected.$decisions;.prote
72860 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 cted.$installedMap;..protected.$
72880 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 propagateIndex;.protected.$branc
728a0 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 hes.=.array();.protected.$proble
728c0 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 64 ms.=.array();.protected.$learned
728e0 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e Pool.=.array();.protected.$learn
72900 65 64 57 68 79 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f edWhy.=.array();..public.functio
72920 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 n.__construct(PolicyInterface.$p
72940 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 olicy,.Pool.$pool,.RepositoryInt
72960 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 erface.$installed).{.$this->poli
72980 63 79 20 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f cy.=.$policy;.$this->pool.=.$poo
729a0 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 l;.$this->installed.=.$installed
729c0 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 ;.$this->ruleSetGenerator.=.new.
729e0 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 RuleSetGenerator($policy,.$pool)
72a00 3b 0a 7d 0a 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 ;.}....private.function.makeAsse
72a20 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e rtionRuleDecisions().{.$decision
72a40 53 74 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 20 Start.=.count($this->decisions).
72a60 2d 20 31 3b 0a 0a 24 72 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d -.1;..$rulesCount.=.count($this-
72a80 3e 72 75 6c 65 73 29 3b 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 >rules);.for.($ruleIndex.=.0;.$r
72aa0 75 6c 65 49 6e 64 65 78 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 24 72 75 6c 65 49 6e 64 uleIndex.<.$rulesCount;.$ruleInd
72ac0 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 ex++).{.$rule.=.$this->rules->ru
72ae0 6c 65 42 79 49 64 5b 24 72 75 6c 65 49 6e 64 65 78 5d 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d leById[$ruleIndex];..if.(!$rule-
72b00 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 >isAssertion().||.$rule->isDisab
72b20 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 led()).{.continue;.}..$literals.
72b40 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 6c =.$rule->literals;.$literal.=.$l
72b60 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f iterals[0];..if.(!$this->decisio
72b80 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 74 ns->decided(abs($literal))).{.$t
72ba0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c his->decisions->decide($literal,
72bc0 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 .1,.$rule);.continue;.}..if.($th
72be0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 is->decisions->satisfy($literal)
72c00 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 53 65 74 3a 3a ).{.continue;.}....if.(RuleSet::
72c20 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 54 79 70 65 28 TYPE_LEARNED.===.$rule->getType(
72c40 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b )).{.$rule->disable();.continue;
72c60 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 .}..$conflict.=.$this->decisions
72c80 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 ->decisionRule($literal);..if.($
72ca0 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 conflict.&&.RuleSet::TYPE_PACKAG
72cc0 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 70 E.===.$conflict->getType()).{.$p
72ce0 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c roblem.=.new.Problem($this->pool
72d00 29 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 );..$problem->addRule($rule);.$p
72d20 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 29 3b 0a 24 74 68 69 roblem->addRule($conflict);.$thi
72d40 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 75 6c 65 29 3b 0a 24 74 68 69 73 2d s->disableProblem($rule);.$this-
72d60 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 63 6f 6e 74 69 6e 75 65 >problems[].=.$problem;.continue
72d80 3b 0a 7d 0a 0a 0a 20 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 ;.}....$problem.=.new.Problem($t
72da0 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 his->pool);.$problem->addRule($r
72dc0 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 ule);.$problem->addRule($conflic
72de0 74 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e t);......foreach.($this->rules->
72e00 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 getIteratorFor(RuleSet::TYPE_JOB
72e20 29 20 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 73 73 65 72 74 52 ).as.$assertRule).{.if.($assertR
72e40 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 65 72 74 52 75 6c ule->isDisabled().||.!$assertRul
72e60 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a e->isAssertion()).{.continue;.}.
72e80 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 73 65 72 74 52 75 .$assertRuleLiterals.=.$assertRu
72ea0 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c le->literals;.$assertRuleLiteral
72ec0 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 .=.$assertRuleLiterals[0];..if.(
72ee0 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 28 24 61 73 73 65 72 74 52 75 6c abs($literal).!==.abs($assertRul
72f00 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 72 6f 62 6c eLiteral)).{.continue;.}..$probl
72f20 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 24 74 68 69 73 2d em->addRule($assertRule);.$this-
72f40 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 61 73 73 65 72 74 52 75 6c 65 29 3b 0a 7d 0a >disableProblem($assertRule);.}.
72f60 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 $this->problems[].=.$problem;..$
72f80 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 54 6f 4f 66 66 73 65 74 28 24 this->decisions->resetToOffset($
72fa0 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 2d 31 3b decisionStart);.$ruleIndex.=.-1;
72fc0 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 75 70 49 6e .}.}..protected.function.setupIn
72fe0 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d stalledMap().{.$this->installedM
73000 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e ap.=.array();.foreach.($this->in
73020 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 stalled->getPackages().as.$packa
73040 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 ge).{.$this->installedMap[$packa
73060 67 65 2d 3e 69 64 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 ge->id].=.$package;.}.}..protect
73080 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 46 6f 72 52 6f 6f 74 52 65 71 75 69 72 65 50 ed.function.checkForRootRequireP
730a0 72 6f 62 6c 65 6d 73 28 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 0a 7b 0a 66 roblems($ignorePlatformReqs).{.f
730c0 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 6a 6f 62 29 20 7b 0a 73 oreach.($this->jobs.as.$job).{.s
730e0 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 75 70 64 61 witch.($job['cmd']).{.case.'upda
73100 74 65 27 3a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 te':.$packages.=.$this->pool->wh
73120 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 atProvides($job['packageName'],.
73140 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 $job['constraint']);.foreach.($p
73160 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 ackages.as.$package).{.if.(isset
73180 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 ($this->installedMap[$package->i
731a0 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 d])).{.$this->updateMap[$package
731c0 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 ->id].=.true;.}.}.break;..case.'
731e0 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 update-all':.foreach.($this->ins
73200 74 61 6c 6c 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e talledMap.as.$package).{.$this->
73220 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 69 64 5d 20 3d 20 74 72 75 65 3b 0a updateMap[$package->id].=.true;.
73240 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 24 69 }.break;..case.'install':.if.($i
73260 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 gnorePlatformReqs.&&.preg_match(
73280 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 PlatformRepository::PLATFORM_PAC
732a0 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 KAGE_REGEX,.$job['packageName'])
732c0 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e ).{.break;.}..if.(!$this->pool->
732e0 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d whatProvides($job['packageName']
73300 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 29 20 7b 0a 24 70 72 6f 62 6c 65 ,.$job['constraint'])).{.$proble
73320 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 m.=.new.Problem($this->pool);.$p
73340 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 6e 65 77 20 52 75 6c 65 28 61 72 72 61 79 28 29 roblem->addRule(new.Rule(array()
73360 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 6a 6f 62 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f ,.null,.null,.$job));.$this->pro
73380 62 6c 65 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d blems[].=.$problem;.}.break;.}.}
733a0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 6c 76 65 28 52 65 71 75 65 73 .}..public.function.solve(Reques
733c0 74 20 24 72 65 71 75 65 73 74 2c 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 t.$request,.$ignorePlatformReqs.
733e0 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 24 72 65 71 75 65 73 =.false).{.$this->jobs.=.$reques
73400 74 2d 3e 67 65 74 4a 6f 62 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 75 70 49 6e 73 74 61 t->getJobs();..$this->setupInsta
73420 6c 6c 65 64 4d 61 70 28 29 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d lledMap();.$this->rules.=.$this-
73440 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2d 3e 67 65 74 52 75 6c 65 73 46 6f 72 28 24 >ruleSetGenerator->getRulesFor($
73460 74 68 69 73 2d 3e 6a 6f 62 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c this->jobs,.$this->installedMap,
73480 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 63 68 .$ignorePlatformReqs);.$this->ch
734a0 65 63 6b 46 6f 72 52 6f 6f 74 52 65 71 75 69 72 65 50 72 6f 62 6c 65 6d 73 28 24 69 67 6e 6f 72 eckForRootRequireProblems($ignor
734c0 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 ePlatformReqs);.$this->decisions
734e0 20 3d 20 6e 65 77 20 44 65 63 69 73 69 6f 6e 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 .=.new.Decisions($this->pool);.$
73500 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 this->watchGraph.=.new.RuleWatch
73520 47 72 61 70 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 Graph;..foreach.($this->rules.as
73540 20 24 72 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e 73 .$rule).{.$this->watchGraph->ins
73560 65 72 74 28 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 72 75 6c 65 29 29 3b 0a 7d ert(new.RuleWatchNode($rule));.}
73580 0a 0a 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 ...$this->makeAssertionRuleDecis
735a0 69 6f 6e 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 53 61 74 28 74 72 75 65 29 3b 0a 0a 0a ions();..$this->runSat(true);...
735c0 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 61 73 .foreach.($this->installedMap.as
735e0 20 24 70 61 63 6b 61 67 65 49 64 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 69 66 20 28 24 74 68 69 .$packageId.=>.$void).{.if.($thi
73600 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 70 61 63 6b 61 67 65 s->decisions->undecided($package
73620 49 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 Id)).{.$this->decisions->decide(
73640 2d 24 70 61 63 6b 61 67 65 49 64 2c 20 31 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 -$packageId,.1,.null);.}.}..if.(
73660 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c $this->problems).{.throw.new.Sol
73680 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 70 72 6f 62 verProblemsException($this->prob
736a0 6c 65 6d 73 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 24 lems,.$this->installedMap);.}..$
736c0 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 6e 65 77 20 54 72 61 6e 73 61 63 74 69 6f 6e 28 24 74 transaction.=.new.Transaction($t
736e0 68 69 73 2d 3e 70 6f 6c 69 63 79 2c 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 74 68 69 73 2d his->policy,.$this->pool,.$this-
73700 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 >installedMap,.$this->decisions)
73720 3b 0a 0a 72 65 74 75 72 6e 20 24 74 72 61 6e 73 61 63 74 69 6f 6e 2d 3e 67 65 74 4f 70 65 72 61 ;..return.$transaction->getOpera
73740 74 69 6f 6e 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c tions();.}..protected.function.l
73760 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 69 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 iteralFromId($id).{.$package.=.$
73780 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 61 62 73 28 24 69 64 29 this->pool->packageById(abs($id)
737a0 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 4c 69 74 65 72 61 6c 28 24 70 61 63 6b 61 67 65 2c );..return.new.Literal($package,
737c0 20 24 69 64 20 3e 20 30 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .$id.>.0);.}...........protected
737e0 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 .function.propagate($level).{.wh
73800 69 6c 65 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 76 61 6c 69 64 4f 66 66 73 ile.($this->decisions->validOffs
73820 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 29 20 7b 0a 24 64 65 et($this->propagateIndex)).{.$de
73840 63 69 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 cision.=.$this->decisions->atOff
73860 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f set($this->propagateIndex);..$co
73880 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 70 72 6f 70 nflict.=.$this->watchGraph->prop
738a0 61 67 61 74 65 4c 69 74 65 72 61 6c 28 0a 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e agateLiteral(.$decision[Decision
738c0 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 2c 0a 24 6c 65 76 65 6c 2c 0a 24 74 s::DECISION_LITERAL],.$level,.$t
738e0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 his->decisions.);..$this->propag
73900 61 74 65 49 6e 64 65 78 2b 2b 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 72 65 ateIndex++;..if.($conflict).{.re
73920 74 75 72 6e 20 24 63 6f 6e 66 6c 69 63 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c turn.$conflict;.}.}..return.null
73940 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 76 65 72 74 28 ;.}.....private.function.revert(
73960 24 6c 65 76 65 6c 29 0a 7b 0a 77 68 69 6c 65 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f $level).{.while.(!$this->decisio
73980 6e 73 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 74 68 69 ns->isEmpty()).{.$literal.=.$thi
739a0 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 4c 69 74 65 72 61 6c 28 29 3b 0a 0a 69 66 s->decisions->lastLiteral();..if
739c0 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c .($this->decisions->undecided($l
739e0 69 74 65 72 61 6c 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 4c 65 iteral)).{.break;.}..$decisionLe
73a00 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e vel.=.$this->decisions->decision
73a20 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 4c Level($literal);..if.($decisionL
73a40 65 76 65 6c 20 3c 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 evel.<=.$level).{.break;.}..$thi
73a60 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 76 65 72 74 4c 61 73 74 28 29 3b 0a 24 74 68 69 s->decisions->revertLast();.$thi
73a80 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d s->propagateIndex.=.count($this-
73aa0 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 74 >decisions);.}..while.(!empty($t
73ac0 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 26 26 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 his->branches).&&.$this->branche
73ae0 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 5d 5b 73 65 s[count($this->branches).-.1][se
73b00 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 45 56 45 4c 5d 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 61 lf::BRANCH_LEVEL].>=.$level).{.a
73b20 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 7d 0a 0a rray_pop($this->branches);.}.}..
73b40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ...............private.function.
73b60 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 69 74 65 72 setPropagateLearn($level,.$liter
73b80 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b al,.$disableRules,.Rule.$rule).{
73ba0 0a 24 6c 65 76 65 6c 2b 2b 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 .$level++;..$this->decisions->de
73bc0 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 3b 0a 0a cide($literal,.$level,.$rule);..
73be0 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 while.(true).{.$rule.=.$this->pr
73c00 6f 70 61 67 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 29 20 7b 0a opagate($level);..if.(!$rule).{.
73c20 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 31 29 20 7b 0a 72 65 74 break;.}..if.($level.==.1).{.ret
73c40 75 72 6e 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 72 75 urn.$this->analyzeUnsolvable($ru
73c60 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 3b 0a 7d 0a 0a 0a 20 6c 69 73 74 28 24 6c le,.$disableRules);.}....list($l
73c80 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6e 65 77 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 earnLiteral,.$newLevel,.$newRule
73ca0 2c 20 24 77 68 79 29 20 3d 20 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c ,.$why).=.$this->analyze($level,
73cc0 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 24 6e 65 77 4c 65 76 65 6c 20 3c 3d 20 30 20 7c 7c 20 .$rule);..if.($newLevel.<=.0.||.
73ce0 24 6e 65 77 4c 65 76 65 6c 20 3e 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 $newLevel.>=.$level).{.throw.new
73d00 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 .SolverBugException(."Trying.to.
73d20 72 65 76 65 72 74 20 74 6f 20 69 6e 76 61 6c 69 64 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 revert.to.invalid.level.".(int).
73d40 24 6e 65 77 4c 65 76 65 6c 2e 22 20 66 72 6f 6d 20 6c 65 76 65 6c 20 22 2e 28 69 6e 74 29 20 24 $newLevel.".from.level.".(int).$
73d60 6c 65 76 65 6c 2e 22 2e 22 0a 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 6e 65 77 52 75 6c 65 level.".".);.}.elseif.(!$newRule
73d80 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e ).{.throw.new.SolverBugException
73da0 28 0a 22 4e 6f 20 72 75 6c 65 20 77 61 73 20 6c 65 61 72 6e 65 64 20 66 72 6f 6d 20 61 6e 61 6c (."No.rule.was.learned.from.anal
73dc0 79 7a 69 6e 67 20 24 72 75 6c 65 20 61 74 20 6c 65 76 65 6c 20 24 6c 65 76 65 6c 2e 22 0a 29 3b yzing.$rule.at.level.$level.".);
73de0 0a 7d 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6e 65 77 4c 65 76 65 6c 3b 0a 0a 24 74 68 69 73 2d 3e .}..$level.=.$newLevel;..$this->
73e00 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 revert($level);..$this->rules->a
73e20 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e dd($newRule,.RuleSet::TYPE_LEARN
73e40 45 44 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 6e 65 77 52 75 6c 65 ED);..$this->learnedWhy[$newRule
73e60 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 24 77 68 79 3b 0a 0a 24 72 75 6c 65 4e 6f 64 65 20 3d 20 ->getId()].=.$why;..$ruleNode.=.
73e80 6e 65 77 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 28 24 6e 65 77 52 75 6c 65 29 3b 0a 24 72 75 new.RuleWatchNode($newRule);.$ru
73ea0 6c 65 4e 6f 64 65 2d 3e 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 24 74 68 69 73 2d 3e 64 leNode->watch2OnHighest($this->d
73ec0 65 63 69 73 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 47 72 61 70 68 2d 3e 69 6e ecisions);.$this->watchGraph->in
73ee0 73 65 72 74 28 24 72 75 6c 65 4e 6f 64 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f sert($ruleNode);..$this->decisio
73f00 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c ns->decide($learnLiteral,.$level
73f20 2c 20 24 6e 65 77 52 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 65 76 65 6c 3b 0a 7d ,.$newRule);.}..return.$level;.}
73f40 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 ..private.function.selectAndInst
73f60 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 61 72 72 61 79 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 all($level,.array.$decisionQueue
73f80 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 0a ,.$disableRules,.Rule.$rule).{..
73fa0 20 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 .$literals.=.$this->policy->sele
73fc0 63 74 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 ctPreferedPackages($this->pool,.
73fe0 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 $this->installedMap,.$decisionQu
74000 65 75 65 2c 20 24 72 75 6c 65 2d 3e 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 eue,.$rule->getRequiredPackage()
74020 29 3b 0a 0a 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 );..$selectedLiteral.=.array_shi
74040 66 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 6c 69 74 ft($literals);....if.(count($lit
74060 65 72 61 6c 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 5d 20 3d 20 61 72 erals)).{.$this->branches[].=.ar
74080 72 61 79 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 65 76 65 6c 29 3b 0a 7d 0a 0a 72 65 74 75 72 ray($literals,.$level);.}..retur
740a0 6e 20 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 n.$this->setPropagateLearn($leve
740c0 6c 2c 20 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c l,.$selectedLiteral,.$disableRul
740e0 65 73 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f es,.$rule);.}..protected.functio
74100 6e 20 61 6e 61 6c 79 7a 65 28 24 6c 65 76 65 6c 2c 20 24 72 75 6c 65 29 0a 7b 0a 24 61 6e 61 6c n.analyze($level,.$rule).{.$anal
74120 79 7a 65 64 52 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 24 72 75 6c 65 4c 65 76 65 6c 20 3d 20 31 yzedRule.=.$rule;.$ruleLevel.=.1
74140 3b 0a 24 6e 75 6d 20 3d 20 30 3b 0a 24 6c 31 6e 75 6d 20 3d 20 30 3b 0a 24 73 65 65 6e 20 3d 20 ;.$num.=.0;.$l1num.=.0;.$seen.=.
74160 61 72 72 61 79 28 29 3b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 array();.$learnedLiterals.=.arra
74180 79 28 6e 75 6c 6c 29 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 49 64 20 3d 20 63 6f 75 6e 74 28 24 74 y(null);..$decisionId.=.count($t
741a0 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 his->decisions);..$this->learned
741c0 50 6f 6f 6c 5b 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 Pool[].=.array();..while.(true).
741e0 7b 0a 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 63 6f 75 6e 74 28 24 74 68 69 73 {.$this->learnedPool[count($this
74200 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 5d 5b 5d 20 3d 20 24 72 75 6c 65 3b 0a 0a ->learnedPool).-.1][].=.$rule;..
74220 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 foreach.($rule->literals.as.$lit
74240 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e eral).{...if.($this->decisions->
74260 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d satisfy($literal)).{.continue;.}
74280 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d ..if.(isset($seen[abs($literal)]
742a0 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 )).{.continue;.}.$seen[abs($lite
742c0 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 24 6c 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 ral)].=.true;..$l.=.$this->decis
742e0 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a ions->decisionLevel($literal);..
74300 69 66 20 28 31 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6c 31 6e 75 6d 2b 2b 3b 0a 7d 20 65 6c 73 65 if.(1.===.$l).{.$l1num++;.}.else
74320 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 3d 20 24 6c 29 20 7b 0a 24 6e 75 6d 2b 2b 3b 0a 7d 20 65 if.($level.===.$l).{.$num++;.}.e
74340 6c 73 65 20 7b 0a 0a 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 lse.{...$learnedLiterals[].=.$li
74360 74 65 72 61 6c 3b 0a 0a 69 66 20 28 24 6c 20 3e 20 24 72 75 6c 65 4c 65 76 65 6c 29 20 7b 0a 24 teral;..if.($l.>.$ruleLevel).{.$
74380 72 75 6c 65 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 31 72 65 74 72 79 20 ruleLevel.=.$l;.}.}.}..$l1retry.
743a0 3d 20 74 72 75 65 3b 0a 77 68 69 6c 65 20 28 24 6c 31 72 65 74 72 79 29 20 7b 0a 24 6c 31 72 65 =.true;.while.($l1retry).{.$l1re
743c0 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 21 24 6e 75 6d 20 26 26 20 21 2d 2d 24 6c try.=.false;..if.(!$num.&&.!--$l
743e0 31 6e 75 6d 29 20 7b 0a 0a 20 62 72 65 61 6b 20 32 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 1num).{...break.2;.}..while.(tru
74400 65 29 20 7b 0a 69 66 20 28 24 64 65 63 69 73 69 6f 6e 49 64 20 3c 3d 20 30 29 20 7b 0a 74 68 72 e).{.if.($decisionId.<=.0).{.thr
74420 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 52 65 61 63 ow.new.SolverBugException(."Reac
74440 68 65 64 20 69 6e 76 61 6c 69 64 20 64 65 63 69 73 69 6f 6e 20 69 64 20 24 64 65 63 69 73 69 6f hed.invalid.decision.id.$decisio
74460 6e 49 64 20 77 68 69 6c 65 20 6c 6f 6f 6b 69 6e 67 20 74 68 72 6f 75 67 68 20 24 72 75 6c 65 20 nId.while.looking.through.$rule.
74480 66 6f 72 20 61 20 6c 69 74 65 72 61 6c 20 70 72 65 73 65 6e 74 20 69 6e 20 74 68 65 20 61 6e 61 for.a.literal.present.in.the.ana
744a0 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a 29 3b 0a 7d 0a lyzed.rule.$analyzedRule.".);.}.
744c0 0a 24 64 65 63 69 73 69 6f 6e 49 64 2d 2d 3b 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d 20 24 74 68 .$decisionId--;..$decision.=.$th
744e0 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f is->decisions->atOffset($decisio
74500 6e 49 64 29 3b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 73 nId);.$literal.=.$decision[Decis
74520 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b 0a 0a 69 66 20 28 69 73 ions::DECISION_LITERAL];..if.(is
74540 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 62 72 65 set($seen[abs($literal)])).{.bre
74560 61 6b 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 ak;.}.}..unset($seen[abs($litera
74580 6c 29 5d 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 20 26 26 20 30 20 3d 3d 3d 20 2d 2d 24 6e 75 6d 29 l)]);..if.($num.&&.0.===.--$num)
745a0 20 7b 0a 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 20 3d 20 2d 61 62 73 28 24 6c .{.$learnedLiterals[0].=.-abs($l
745c0 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6c 31 6e 75 6d 29 20 7b 0a 62 72 65 61 6b 20 32 iteral);..if.(!$l1num).{.break.2
745e0 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 20 61 ;.}..foreach.($learnedLiterals.a
74600 73 20 24 69 20 3d 3e 20 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 s.$i.=>.$learnedLiteral).{.if.($
74620 69 20 21 3d 3d 20 30 29 20 7b 0a 75 6e 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 65 61 72 i.!==.0).{.unset($seen[abs($lear
74640 6e 65 64 4c 69 74 65 72 61 6c 29 5d 29 3b 0a 7d 0a 7d 0a 0a 20 24 6c 31 6e 75 6d 2b 2b 3b 0a 24 nedLiteral)]);.}.}...$l1num++;.$
74660 6c 31 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 20 3d l1retry.=.true;.}.}..$decision.=
74680 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 61 74 4f 66 66 73 65 74 28 24 64 65 63 .$this->decisions->atOffset($dec
746a0 69 73 69 6f 6e 49 64 29 3b 0a 24 72 75 6c 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 5b 44 65 63 69 isionId);.$rule.=.$decision[Deci
746c0 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 7d 0a 0a 24 77 68 79 sions::DECISION_REASON];.}..$why
746e0 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 29 20 2d 20 31 .=.count($this->learnedPool).-.1
74700 3b 0a 0a 69 66 20 28 21 24 6c 65 61 72 6e 65 64 4c 69 74 65 72 61 6c 73 5b 30 5d 29 20 7b 0a 74 ;..if.(!$learnedLiterals[0]).{.t
74720 68 72 6f 77 20 6e 65 77 20 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 44 69 hrow.new.SolverBugException(."Di
74740 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 6c 65 61 72 6e 61 62 6c 65 20 6c 69 74 65 72 61 6c 20 69 d.not.find.a.learnable.literal.i
74760 6e 20 61 6e 61 6c 79 7a 65 64 20 72 75 6c 65 20 24 61 6e 61 6c 79 7a 65 64 52 75 6c 65 2e 22 0a n.analyzed.rule.$analyzedRule.".
74780 29 3b 0a 7d 0a 0a 24 6e 65 77 52 75 6c 65 20 3d 20 6e 65 77 20 52 75 6c 65 28 24 6c 65 61 72 6e );.}..$newRule.=.new.Rule($learn
747a0 65 64 4c 69 74 65 72 61 6c 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 44 2c 20 edLiterals,.Rule::RULE_LEARNED,.
747c0 24 77 68 79 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6c 65 61 72 6e 65 64 4c 69 74 $why);..return.array($learnedLit
747e0 65 72 61 6c 73 5b 30 5d 2c 20 24 72 75 6c 65 4c 65 76 65 6c 2c 20 24 6e 65 77 52 75 6c 65 2c 20 erals[0],.$ruleLevel,.$newRule,.
74800 24 77 68 79 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6e 61 6c 79 $why);.}..private.function.analy
74820 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 63 6f 6e 66 zeUnsolvableRule($problem,.$conf
74840 6c 69 63 74 52 75 6c 65 29 0a 7b 0a 24 77 68 79 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 lictRule).{.$why.=.$conflictRule
74860 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 ->getId();..if.($conflictRule->g
74880 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 etType().==.RuleSet::TYPE_LEARNE
748a0 44 29 20 7b 0a 24 6c 65 61 72 6e 65 64 57 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 D).{.$learnedWhy.=.$this->learne
748c0 64 57 68 79 5b 24 77 68 79 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 dWhy[$why];.$problemRules.=.$thi
748e0 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 6c 65 61 72 6e 65 64 57 68 79 5d 3b 0a 0a 66 6f s->learnedPool[$learnedWhy];..fo
74900 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d reach.($problemRules.as.$problem
74920 52 75 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 Rule).{.$this->analyzeUnsolvable
74940 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 3b 0a 7d 0a Rule($problem,.$problemRule);.}.
74960 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 .return;.}..if.($conflictRule->g
74980 65 74 54 79 70 65 28 29 20 3d 3d 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 etType().==.RuleSet::TYPE_PACKAG
749a0 45 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 6e 65 78 74 E).{...return;.}..$problem->next
749c0 53 65 63 74 69 6f 6e 28 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f Section();.$problem->addRule($co
749e0 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e nflictRule);.}..private.function
74a00 20 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 .analyzeUnsolvable($conflictRule
74a20 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 0a 7b 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 ,.$disableRules).{.$problem.=.ne
74a40 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d w.Problem($this->pool);.$problem
74a60 2d 3e 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 ->addRule($conflictRule);..$this
74a80 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d ->analyzeUnsolvableRule($problem
74aa0 2c 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 ,.$conflictRule);..$this->proble
74ac0 6d 73 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 ms[].=.$problem;..$seen.=.array(
74ae0 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 6c 69 );.$literals.=.$conflictRule->li
74b00 74 65 72 61 6c 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 terals;..foreach.($literals.as.$
74b20 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e literal).{...if.($this->decision
74b40 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 s->satisfy($literal)).{.continue
74b60 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b ;.}.$seen[abs($literal)].=.true;
74b80 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 61 73 .}..foreach.($this->decisions.as
74ba0 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 69 73 69 .$decision).{.$literal.=.$decisi
74bc0 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d 3b on[Decisions::DECISION_LITERAL];
74be0 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 ....if.(!isset($seen[abs($litera
74c00 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 24 64 65 63 l)])).{.continue;.}..$why.=.$dec
74c20 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e ision[Decisions::DECISION_REASON
74c40 5d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 77 68 79 29 3b 0a 24 74 68 ];..$problem->addRule($why);.$th
74c60 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c is->analyzeUnsolvableRule($probl
74c80 65 6d 2c 20 24 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 77 68 79 2d 3e 6c 69 em,.$why);..$literals.=.$why->li
74ca0 74 65 72 61 6c 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 terals;..foreach.($literals.as.$
74cc0 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e literal).{...if.($this->decision
74ce0 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 s->satisfy($literal)).{.continue
74d00 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 75 65 3b ;.}.$seen[abs($literal)].=.true;
74d20 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 20 7b 0a 66 6f 72 65 61 .}.}..if.($disableRules).{.forea
74d40 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d ch.($this->problems[count($this-
74d60 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 >problems).-.1].as.$reason).{.$t
74d80 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 73 6f 6e 5b 27 72 75 6c his->disableProblem($reason['rul
74da0 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c 76 65 72 28 29 3b 0a 0a e']);.}..$this->resetSolver();..
74dc0 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 69 76 61 74 return.1;.}..return.0;.}..privat
74de0 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 77 68 79 29 0a e.function.disableProblem($why).
74e00 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b 0a 0a 69 66 20 28 21 24 {.$job.=.$why->getJob();..if.(!$
74e20 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 3b job).{.$why->disable();..return;
74e40 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 .}....foreach.($this->rules.as.$
74e60 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4a rule).{.if.($job.===.$rule->getJ
74e80 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a ob()).{.$rule->disable();.}.}.}.
74ea0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 6f 6c 76 65 72 28 29 0a .private.function.resetSolver().
74ec0 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 74 28 29 3b 0a 0a 24 74 {.$this->decisions->reset();..$t
74ee0 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e his->propagateIndex.=.0;.$this->
74f00 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 61 62 branches.=.array();..$this->enab
74f20 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e leDisableLearnedRules();.$this->
74f40 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 3b 0a 7d 0a makeAssertionRuleDecisions();.}.
74f60 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 44 ........private.function.enableD
74f80 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 isableLearnedRules().{.foreach.(
74fa0 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c $this->rules->getIteratorFor(Rul
74fc0 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 72 75 6c 65 29 20 7b 0a eSet::TYPE_LEARNED).as.$rule).{.
74fe0 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 5b 24 72 75 6c 65 2d 3e $why.=.$this->learnedWhy[$rule->
75000 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 3d 20 24 74 68 69 73 2d getId()];.$problemRules.=.$this-
75020 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f 75 6e 64 44 69 73 61 62 >learnedPool[$why];..$foundDisab
75040 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 62 6c 65 6d 52 75 led.=.false;.foreach.($problemRu
75060 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 70 72 6f 62 les.as.$problemRule).{.if.($prob
75080 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 66 6f 75 6e 64 44 lemRule->isDisabled()).{.$foundD
750a0 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 isabled.=.true;.break;.}.}..if.(
750c0 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c $foundDisabled.&&.$rule->isEnabl
750e0 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 7d 20 65 6c 73 65 ed()).{.$rule->disable();.}.else
75100 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d 3e 69 73 if.(!$foundDisabled.&&.$rule->is
75120 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 62 6c 65 28 29 3b 0a 7d Disabled()).{.$rule->enable();.}
75140 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 53 61 74 28 24 64 .}.}..private.function.runSat($d
75160 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f isableRules.=.true).{.$this->pro
75180 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 pagateIndex.=.0;................
751a0 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 ....$decisionQueue.=.array();.$d
751c0 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 ecisionSupplementQueue.=.array()
751e0 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 6c 65 76 ;.$disableRules.=.array();..$lev
75200 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 el.=.1;.$systemLevel.=.$level.+.
75220 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 74 72 1;.$installedPos.=.0;..while.(tr
75240 75 65 29 20 7b 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 24 63 6f 6e 66 6c ue).{.if.(1.===.$level).{.$confl
75260 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 28 24 6c 65 76 65 ictRule.=.$this->propagate($leve
75280 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 20 l);.if.(null.!==.$conflictRule).
752a0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 28 24 {.if.($this->analyzeUnsolvable($
752c0 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 29 20 7b 0a conflictRule,.$disableRules)).{.
752e0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 continue;.}..return;.}.}....if.(
75300 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 69 74 65 72 61 74 $level.<.$systemLevel).{.$iterat
75320 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 46 6f or.=.$this->rules->getIteratorFo
75340 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 r(RuleSet::TYPE_JOB);.foreach.($
75360 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 2d 3e iterator.as.$rule).{.if.($rule->
75380 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 isEnabled()).{.$decisionQueue.=.
753a0 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 74 72 75 65 3b 0a array();.$noneSatisfied.=.true;.
753c0 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 .foreach.($rule->literals.as.$li
753e0 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 teral).{.if.($this->decisions->s
75400 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 atisfy($literal)).{.$noneSatisfi
75420 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 ed.=.false;.break;.}.if.($litera
75440 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 l.>.0.&&.$this->decisions->undec
75460 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 ided($literal)).{.$decisionQueue
75480 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 [].=.$literal;.}.}..if.($noneSat
754a0 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 isfied.&&.count($decisionQueue))
754c0 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 .{.....if.(count($this->installe
754e0 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 29 29 20 7b d).!=.count($this->updateMap)).{
75500 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 .$prunedQueue.=.array();.foreach
75520 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a .($decisionQueue.as.$literal).{.
75540 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 if.(isset($this->installedMap[ab
75560 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 s($literal)])).{.$prunedQueue[].
75580 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 =.$literal;.if.(isset($this->upd
755a0 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 ateMap[abs($literal)])).{.$prune
755c0 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a dQueue.=.$decisionQueue;.break;.
755e0 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 24 70 72 75 6e 65 64 51 75 }.}.}.$decisionQueue.=.$prunedQu
75600 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 eue;.}.}..if.($noneSatisfied.&&.
75620 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 24 6f 4c 65 76 65 6c count($decisionQueue)).{.$oLevel
75640 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 .=.$level;.$level.=.$this->selec
75660 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 51 75 65 tAndInstall($level,.$decisionQue
75680 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 6c 65 29 3b 0a 0a 69 66 20 28 ue,.$disableRules,.$rule);..if.(
756a0 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 0.===.$level).{.return;.}.if.($l
756c0 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a evel.<=.$oLevel).{.break;.}.}.}.
756e0 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a }..$systemLevel.=.$level.+.1;...
75700 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f .$iterator->next();.if.($iterato
75720 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 r->valid()).{.continue;.}.}..if.
75740 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 ($level.<.$systemLevel).{.$syste
75760 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c mLevel.=.$level;.}..for.($i.=.0,
75780 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 .$n.=.0;.$n.<.count($this->rules
757a0 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 );.$i++,.$n++).{.if.($i.==.count
757c0 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 ($this->rules)).{.$i.=.0;.}..$ru
757e0 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 6c 65 42 79 49 64 5b 24 69 5d 3b le.=.$this->rules->ruleById[$i];
75800 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c 65 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 69 .$literals.=.$rule->literals;..i
75820 66 20 28 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e f.($rule->isDisabled()).{.contin
75840 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b ue;.}..$decisionQueue.=.array();
75860 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 ..............foreach.($literals
75880 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 .as.$literal).{.if.($literal.<=.
758a0 30 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 0).{.if.(!$this->decisions->deci
758c0 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e dedInstall(abs($literal))).{.con
758e0 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d tinue.2;...}.}.else.{.if.($this-
75900 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 49 6e 73 74 61 6c 6c 28 61 62 73 28 24 >decisions->decidedInstall(abs($
75920 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 literal))).{.continue.2;...}.if.
75940 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 ($this->decisions->undecided(abs
75960 28 24 6c 69 74 65 72 61 6c 29 29 29 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 ($literal))).{.$decisionQueue[].
75980 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 =.$literal;.}.}.}....if.(count($
759a0 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a decisionQueue).<.2).{.continue;.
759c0 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 74 }..$oLevel.=.$level;.$level.=.$t
759e0 68 69 73 2d 3e 73 65 6c 65 63 74 41 6e 64 49 6e 73 74 61 6c 6c 28 24 6c 65 76 65 6c 2c 20 24 64 his->selectAndInstall($level,.$d
75a00 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 72 75 ecisionQueue,.$disableRules,.$ru
75a20 6c 65 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e le);..if.(0.===.$level).{.return
75a40 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 ;.}....$n.=.-1;.}..if.($level.<.
75a60 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 $systemLevel).{.continue;.}....i
75a80 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 6c 61 f.(count($this->branches)).{.$la
75aa0 73 74 4c 69 74 65 72 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e stLiteral.=.null;.$lastLevel.=.n
75ac0 75 6c 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 ull;.$lastBranchIndex.=.0;.$last
75ae0 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 BranchOffset.=.0;.$l.=.0;..for.(
75b00 24 69 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b $i.=.count($this->branches).-.1;
75b20 20 24 69 20 3e 3d 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 .$i.>=.0;.$i--).{.list($literals
75b40 2c 20 24 6c 29 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f ,.$l).=.$this->branches[$i];..fo
75b60 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 reach.($literals.as.$offset.=>.$
75b80 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 literal).{.if.($literal.&&.$lite
75ba0 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 ral.>.0.&&.$this->decisions->dec
75bc0 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b isionLevel($literal).>.$l.+.1).{
75be0 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 .$lastLiteral.=.$literal;.$lastB
75c00 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 ranchIndex.=.$i;.$lastBranchOffs
75c20 65 74 20 3d 20 24 6f 66 66 73 65 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d et.=.$offset;.$lastLevel.=.$l;.}
75c40 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 .}.}..if.($lastLiteral).{.unset(
75c60 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 $this->branches[$lastBranchIndex
75c80 5d 5b 73 65 6c 66 3a 3a 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 ][self::BRANCH_LITERALS][$lastBr
75ca0 61 6e 63 68 4f 66 66 73 65 74 5d 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 anchOffset]);..$level.=.$lastLev
75cc0 65 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 el;.$this->revert($level);..$why
75ce0 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 .=.$this->decisions->lastReason(
75d00 29 3b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c 20 3d 20 24 );..$oLevel.=.$level;.$level.=.$
75d20 74 68 69 73 2d 3e 73 65 74 50 72 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 this->setPropagateLearn($level,.
75d40 24 6c 61 73 74 4c 69 74 65 72 61 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 $lastLiteral,.$disableRules,.$wh
75d60 79 29 3b 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a y);..if.($level.==.0).{.return;.
75d80 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c }..continue;.}.}..break;.}.}.}.<
75da0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
75dc0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 er\DependencyResolver;..use.Comp
75de0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 4c 69 6e 6b oser\Package\LinkConstraint\Link
75e00 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 ConstraintInterface;.....class.R
75e20 65 71 75 65 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 equest.{.protected.$jobs;.protec
75e40 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ted.$pool;..public.function.__co
75e60 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f nstruct(Pool.$pool).{.$this->poo
75e80 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 l.=.$pool;.$this->jobs.=.array()
75ea0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 ;.}..public.function.install($pa
75ec0 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 ckageName,.LinkConstraintInterfa
75ee0 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e ce.$constraint.=.null).{.$this->
75f00 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 addJob($packageName,.'install',.
75f20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $constraint);.}..public.function
75f40 20 75 70 64 61 74 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 .update($packageName,.LinkConstr
75f60 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c aintInterface.$constraint.=.null
75f80 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 ).{.$this->addJob($packageName,.
75fa0 27 75 70 64 61 74 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 'update',.$constraint);.}..publi
75fc0 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 c.function.remove($packageName,.
75fe0 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 LinkConstraintInterface.$constra
76000 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4a 6f 62 28 24 70 61 63 int.=.null).{.$this->addJob($pac
76020 6b 61 67 65 4e 61 6d 65 2c 20 27 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 kageName,.'remove',.$constraint)
76040 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 78 28 24 70 ;.}.......public.function.fix($p
76060 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 ackageName,.LinkConstraintInterf
76080 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d ace.$constraint.=.null).{.$this-
760a0 3e 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c >addJob($packageName,.'install',
760c0 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 .$constraint,.true);.}..protecte
760e0 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 d.function.addJob($packageName,.
76100 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 $cmd,.LinkConstraintInterface.$c
76120 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 2c 20 24 66 69 78 65 64 20 3d 20 66 61 6c 73 65 onstraint.=.null,.$fixed.=.false
76140 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 ).{.$packageName.=.strtolower($p
76160 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 ackageName);..$this->jobs[].=.ar
76180 72 61 79 28 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 ray(.'cmd'.=>.$cmd,.'packageName
761a0 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 '.=>.$packageName,.'constraint'.
761c0 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 27 66 69 78 65 64 27 20 3d 3e 20 24 66 69 78 65 =>.$constraint,.'fixed'.=>.$fixe
761e0 64 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 41 6c d.);.}..public.function.updateAl
76200 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 6d 64 l().{.$this->jobs[].=.array('cmd
76220 27 20 3d 3e 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 '.=>.'update-all');.}..public.fu
76240 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d nction.getJobs().{.return.$this-
76260 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 >jobs;.}.}.<?php............name
76280 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 space.Composer\DependencyResolve
762a0 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f r;.......class.Problem.{.....pro
762c0 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 tected.$reasonSeen;......protect
762e0 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 ed.$reasons.=.array();..protecte
76300 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c d.$section.=.0;..protected.$pool
76320 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 ;..public.function.__construct(P
76340 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c ool.$pool).{.$this->pool.=.$pool
76360 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c ;.}.......public.function.addRul
76380 65 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 61 73 6f 6e e(Rule.$rule).{.$this->addReason
763a0 28 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 2c 20 61 72 72 61 79 28 0a 27 72 75 6c 65 27 20 3d ($rule->getId(),.array(.'rule'.=
763c0 3e 20 24 72 75 6c 65 2c 0a 27 6a 6f 62 27 20 3d 3e 20 24 72 75 6c 65 2d 3e 67 65 74 4a 6f 62 28 >.$rule,.'job'.=>.$rule->getJob(
763e0 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ),.));.}.......public.function.g
76400 65 74 52 65 61 73 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 etReasons().{.return.$this->reas
76420 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ons;.}........public.function.ge
76440 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 tPrettyString(array.$installedMa
76460 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 72 65 61 73 6f 6e 73 20 3d 20 63 61 6c 6c 5f 75 p.=.array()).{.$reasons.=.call_u
76480 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 61 72 ser_func_array('array_merge',.ar
764a0 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 29 29 3b 0a 0a 69 ray_reverse($this->reasons));..i
764c0 66 20 28 63 6f 75 6e 74 28 24 72 65 61 73 6f 6e 73 29 20 3d 3d 3d 20 31 29 20 7b 0a 72 65 73 65 f.(count($reasons).===.1).{.rese
764e0 74 28 24 72 65 61 73 6f 6e 73 29 3b 0a 24 72 65 61 73 6f 6e 20 3d 20 63 75 72 72 65 6e 74 28 24 t($reasons);.$reason.=.current($
76500 72 65 61 73 6f 6e 73 29 3b 0a 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 reasons);..$rule.=.$reason['rule
76520 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 '];.$job.=.$reason['job'];..if.(
76540 69 73 73 65 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 29 20 7b 0a 24 70 61 isset($job['constraint'])).{.$pa
76560 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 ckages.=.$this->pool->whatProvid
76580 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f es($job['packageName'],.$job['co
765a0 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 nstraint']);.}.else.{.$packages.
765c0 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 6a 6f 62 20 26 26 20 24 6a 6f 62 5b 27 =.array();.}..if.($job.&&.$job['
765e0 63 6d 64 27 5d 20 3d 3d 3d 20 27 69 6e 73 74 61 6c 6c 27 20 26 26 20 65 6d 70 74 79 28 24 70 61 cmd'].===.'install'.&&.empty($pa
76600 63 6b 61 67 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 ckages)).{...if.($job['packageNa
76620 6d 65 27 5d 20 3d 3d 3d 20 27 70 68 70 27 20 7c 7c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e me'].===.'php'.||.$job['packageN
76640 61 6d 65 27 5d 20 3d 3d 3d 20 27 70 68 70 2d 36 34 62 69 74 27 20 7c 7c 20 24 6a 6f 62 5b 27 70 ame'].===.'php-64bit'.||.$job['p
76660 61 63 6b 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 24 6d 73 67 20 ackageName'].===.'hhvm').{.$msg.
76680 3d 20 22 5c 6e 20 20 20 20 2d 20 54 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 =."\n....-.This.package.requires
766a0 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f .".$job['packageName'].$this->co
766c0 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 nstraintToText($job['constraint'
766e0 5d 29 2e 27 20 62 75 74 20 27 3b 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 ]).'.but.';..if.(defined('HHVM_V
76700 45 52 53 49 4f 4e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 72 20 ERSION')).{.return.$msg...'your.
76720 48 48 56 4d 20 76 65 72 73 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 73 61 74 69 73 66 79 20 74 68 HHVM.version.does.not.satisfy.th
76740 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6a 6f 62 at.requirement.';.}.elseif.($job
76760 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 20 3d 3d 3d 20 27 68 68 76 6d 27 29 20 7b 0a 72 65 ['packageName'].===.'hhvm').{.re
76780 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 20 61 72 65 20 72 75 6e 6e 69 6e 67 20 74 68 69 turn.$msg...'you.are.running.thi
767a0 73 20 77 69 74 68 20 50 48 50 20 61 6e 64 20 6e 6f 74 20 48 48 56 4d 2e 27 3b 0a 7d 0a 0a 72 65 s.with.PHP.and.not.HHVM.';.}..re
767c0 74 75 72 6e 20 24 6d 73 67 20 2e 20 27 79 6f 75 72 20 50 48 50 20 76 65 72 73 69 6f 6e 20 64 6f turn.$msg...'your.PHP.version.do
767e0 65 73 20 6e 6f 74 20 73 61 74 69 73 66 79 20 74 68 61 74 20 72 65 71 75 69 72 65 6d 65 6e 74 2e es.not.satisfy.that.requirement.
76800 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 5b 27 ';.}....if.(0.===.stripos($job['
76820 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d packageName'],.'ext-')).{.$ext.=
76840 20 73 75 62 73 74 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 34 29 3b .substr($job['packageName'],.4);
76860 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 24 65 78 74 29 .$error.=.extension_loaded($ext)
76880 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 28 70 68 .?.'has.the.wrong.version.('.(ph
768a0 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 20 3f 3a 20 27 30 27 29 2e 27 29 20 69 6e 73 74 61 6c pversion($ext).?:.'0').').instal
768c0 6c 65 64 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 led'.:.'is.missing.from.your.sys
768e0 74 65 6d 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 tem';..return."\n....-.The.reque
76900 73 74 65 64 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 sted.PHP.extension.".$job['packa
76920 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 geName'].$this->constraintToText
76940 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 2e ($job['constraint']).'.'.$error.
76960 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6a 6f 62 '.';.}....if.(0.===.stripos($job
76980 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 69 66 20 28 ['packageName'],.'lib-')).{.if.(
769a0 73 74 72 74 6f 6c 6f 77 65 72 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 20 strtolower($job['packageName']).
769c0 3d 3d 3d 20 27 6c 69 62 2d 69 63 75 27 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 78 74 65 6e 73 ===.'lib-icu').{.$error.=.extens
769e0 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 69 6e 74 6c 27 29 20 3f 20 27 68 61 73 20 74 68 65 20 77 72 ion_loaded('intl').?.'has.the.wr
76a00 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 2c 20 74 72 79 20 75 70 67 72 61 ong.version.installed,.try.upgra
76a20 64 69 6e 67 20 74 68 65 20 69 6e 74 6c 20 65 78 74 65 6e 73 69 6f 6e 2e 27 20 3a 20 27 69 73 20 ding.the.intl.extension.'.:.'is.
76a40 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 missing.from.your.system,.make.s
76a60 75 72 65 20 74 68 65 20 69 6e 74 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 ure.the.intl.extension.is.loaded
76a80 2e 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 .';..return."\n....-.The.request
76aa0 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 ed.linked.library.".$job['packag
76ac0 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 eName'].$this->constraintToText(
76ae0 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 27 2e 24 65 72 72 6f 72 3b 0a $job['constraint']).'.'.$error;.
76b00 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 }..return."\n....-.The.requested
76b20 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e .linked.library.".$job['packageN
76b40 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a ame'].$this->constraintToText($j
76b60 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e ob['constraint']).'.has.the.wron
76b80 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e g.version.installed.or.is.missin
76ba0 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f g.from.your.system,.make.sure.to
76bc0 20 6c 6f 61 64 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 .load.the.extension.providing.it
76be0 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d .';.}..if.(!preg_match('{^[A-Za-
76c00 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 z0-9_./-]+$}',.$job['packageName
76c20 27 5d 29 29 20 7b 0a 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 20 3d 20 70 72 65 67 5f 72 65 70 6c '])).{.$illegalChars.=.preg_repl
76c40 61 63 65 28 27 7b 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 7d 27 2c 20 27 27 2c 20 24 6a ace('{[A-Za-z0-9_./-]+}',.'',.$j
76c60 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 ob['packageName']);..return."\n.
76c80 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f ...-.The.requested.package.".$jo
76ca0 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 b['packageName'].'.could.not.be.
76cc0 66 6f 75 6e 64 2c 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 20 69 74 73 20 6e 61 6d 65 20 69 73 found,.it.looks.like.its.name.is
76ce0 20 69 6e 76 61 6c 69 64 2c 20 22 27 2e 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 2e 27 22 20 69 73 .invalid,."'.$illegalChars.'".is
76d00 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 2e 27 3b .not.allowed.in.package.names.';
76d20 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 .}..if.(!$this->pool->whatProvid
76d40 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 es($job['packageName'])).{.retur
76d60 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 n."\n....-.The.requested.package
76d80 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 6f 75 6c 64 20 6e .".$job['packageName'].'.could.n
76da0 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 76 65 72 73 69 6f 6e 2c 20 74 68 65 72 ot.be.found.in.any.version,.ther
76dc0 65 20 6d 61 79 20 62 65 20 61 20 74 79 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e e.may.be.a.typo.in.the.package.n
76de0 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 ame.';.}..return."\n....-.The.re
76e00 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e quested.package.".$job['packageN
76e20 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a ame'].$this->constraintToText($j
76e40 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 ob['constraint']).'.could.not.be
76e60 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 .found.';.}.}..$messages.=.array
76e80 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 73 6f 6e 73 20 61 73 20 24 72 65 61 73 6f ();..foreach.($reasons.as.$reaso
76ea0 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a n).{.$rule.=.$reason['rule'];.$j
76ec0 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b 0a 0a 69 66 20 28 24 6a 6f 62 29 20 ob.=.$reason['job'];..if.($job).
76ee0 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 {.$messages[].=.$this->jobToText
76f00 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 ($job);.}.elseif.($rule).{.if.($
76f20 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 rule.instanceof.Rule).{.$message
76f40 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 s[].=.$rule->getPrettyString($th
76f60 69 73 2d 3e 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a is->pool,.$installedMap);.}.}.}.
76f80 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 .return."\n....-.".implode("\n..
76fa0 20 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 ..-.",.$messages);.}........prot
76fc0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 ected.function.addReason($id,.$r
76fe0 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f eason).{.if.(!isset($this->reaso
77000 6e 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e nSeen[$id])).{.$this->reasonSeen
77020 5b 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 [$id].=.true;.$this->reasons[$th
77040 69 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 is->section][].=.$reason;.}.}..p
77060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 ublic.function.nextSection().{.$
77080 74 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 this->section++;.}........protec
770a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 ted.function.jobToText($job).{.s
770c0 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 witch.($job['cmd']).{.case.'inst
770e0 61 6c 6c 27 3a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 all':.$packages.=.$this->pool->w
77100 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c hatProvides($job['packageName'],
77120 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 69 66 20 28 21 24 70 61 63 6b .$job['constraint']);.if.(!$pack
77140 61 67 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 ages).{.return.'No.package.found
77160 20 74 6f 20 73 61 74 69 73 66 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 .to.satisfy.install.request.for.
77180 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e '.$job['packageName'].$this->con
771a0 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d straintToText($job['constraint']
771c0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 72 65 71 75 65 );.}..return.'Installation.reque
771e0 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 st.for.'.$job['packageName'].$th
77200 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 is->constraintToText($job['const
77220 72 61 69 6e 74 27 5d 29 2e 27 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 24 raint']).'.->.satisfiable.by.'.$
77240 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 2e this->getPackageList($packages).
77260 27 2e 27 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 55 70 64 61 '.';.case.'update':.return.'Upda
77280 74 65 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 te.request.for.'.$job['packageNa
772a0 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f me'].$this->constraintToText($jo
772c0 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f b['constraint']).'.';.case.'remo
772e0 76 65 27 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 20 66 6f 72 ve':.return.'Removal.request.for
77300 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f .'.$job['packageName'].$this->co
77320 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 nstraintToText($job['constraint'
77340 5d 29 2e 27 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 ]).'';.}..if.(isset($job['constr
77360 61 69 6e 74 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f aint'])).{.$packages.=.$this->po
77380 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 ol->whatProvides($job['packageNa
773a0 6d 65 27 5d 2c 20 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 20 65 6c 73 me'],.$job['constraint']);.}.els
773c0 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 e.{.$packages.=.array();.}..retu
773e0 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 63 6d 64 27 5d 2e 27 2c 20 74 61 72 rn.'Job(cmd='.$job['cmd'].',.tar
77400 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 2c 20 70 61 63 get='.$job['packageName'].',.pac
77420 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 kages=['.$this->getPackageList($
77440 70 61 63 6b 61 67 65 73 29 2e 27 5d 29 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e packages).'])';.}..protected.fun
77460 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a ction.getPackageList($packages).
77480 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 {.$prepared.=.array();.foreach.(
774a0 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 $packages.as.$package).{.$prepar
774c0 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 ed[$package->getName()]['name'].
774e0 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 =.$package->getPrettyName();.$pr
77500 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 epared[$package->getName()]['ver
77520 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 sions'][$package->getVersion()].
77540 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a =.$package->getPrettyVersion();.
77560 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e }.foreach.($prepared.as.$name.=>
77580 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 .$package).{.$prepared[$name].=.
775a0 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 $package['name'].'['.implode(',.
775c0 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a ',.$package['versions']).']';.}.
775e0 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 .return.implode(',.',.$prepared)
77600 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f ;.}........protected.function.co
77620 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 72 65 nstraintToText($constraint).{.re
77640 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 6f 6e 73 74 72 turn.($constraint).?.'.'.$constr
77660 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 20 3a 20 27 27 3b 0a 7d 0a aint->getPrettyString().:.'';.}.
77680 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
776a0 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a poser\DependencyResolver;.......
776c0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 0a 7b 0a 70 72 6f 74 .....class.RuleWatchGraph.{.prot
776e0 65 63 74 65 64 20 24 77 61 74 63 68 43 68 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a ected.$watchChains.=.array();...
77700 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 ...........public.function.inser
77720 74 28 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 24 6e 6f t(RuleWatchNode.$node).{.if.($no
77740 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a de->getRule()->isAssertion()).{.
77760 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 6e 6f 64 65 2d return;.}..foreach.(array($node-
77780 3e 77 61 74 63 68 31 2c 20 24 6e 6f 64 65 2d 3e 77 61 74 63 68 32 29 20 61 73 20 24 6c 69 74 65 >watch1,.$node->watch2).as.$lite
777a0 72 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 ral).{.if.(!isset($this->watchCh
777c0 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 ains[$literal])).{.$this->watchC
777e0 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 hains[$literal].=.new.RuleWatchC
77800 68 61 69 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 hain;.}..$this->watchChains[$lit
77820 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a eral]->unshift($node);.}.}......
77840 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ...................public.functi
77860 6f 6e 20 70 72 6f 70 61 67 61 74 65 4c 69 74 65 72 61 6c 28 24 64 65 63 69 64 65 64 4c 69 74 65 on.propagateLiteral($decidedLite
77880 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 0a 20 0a 20 0a ral,.$level,.$decisions).{......
778a0 20 24 6c 69 74 65 72 61 6c 20 3d 20 2d 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 3b 0a 0a 69 .$literal.=.-$decidedLiteral;..i
778c0 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 f.(!isset($this->watchChains[$li
778e0 74 65 72 61 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 63 68 61 69 teral])).{.return.null;.}..$chai
77900 6e 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d n.=.$this->watchChains[$literal]
77920 3b 0a 0a 24 63 68 61 69 6e 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 28 24 63 68 61 ;..$chain->rewind();.while.($cha
77940 69 6e 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 69 6e 2d 3e 63 in->valid()).{.$node.=.$chain->c
77960 75 72 72 65 6e 74 28 29 3b 0a 24 6f 74 68 65 72 57 61 74 63 68 20 3d 20 24 6e 6f 64 65 2d 3e 67 urrent();.$otherWatch.=.$node->g
77980 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6e etOtherWatch($literal);..if.(!$n
779a0 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 26 26 20 ode->getRule()->isDisabled().&&.
779c0 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6f 74 68 65 72 57 61 74 63 68 !$decisions->satisfy($otherWatch
779e0 29 29 20 7b 0a 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 52 )).{.$ruleLiterals.=.$node->getR
77a00 75 6c 65 28 29 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 ule()->literals;..$alternativeLi
77a20 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 terals.=.array_filter($ruleLiter
77a40 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 als,.function.($ruleLiteral).use
77a60 20 28 24 6c 69 74 65 72 61 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 .($literal,.$otherWatch,.$decisi
77a80 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 ons).{.return.$literal.!==.$rule
77aa0 4c 69 74 65 72 61 6c 20 26 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 Literal.&&.$otherWatch.!==.$rule
77ac0 4c 69 74 65 72 61 6c 20 26 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 Literal.&&.!$decisions->conflict
77ae0 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e ($ruleLiteral);.});..if.($altern
77b00 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 ativeLiterals).{.reset($alternat
77b20 69 76 65 4c 69 74 65 72 61 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 iveLiterals);.$this->moveWatch($
77b40 6c 69 74 65 72 61 6c 2c 20 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 literal,.current($alternativeLit
77b60 65 72 61 6c 73 29 2c 20 24 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 erals),.$node);.continue;.}..if.
77b80 28 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 ($decisions->conflict($otherWatc
77ba0 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d h)).{.return.$node->getRule();.}
77bc0 0a 0a 24 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 ..$decisions->decide($otherWatch
77be0 2c 20 24 6c 65 76 65 6c 2c 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a ,.$level,.$node->getRule());.}..
77c00 24 63 68 61 69 6e 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a $chain->next();.}..return.null;.
77c20 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d }...........protected.function.m
77c40 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 oveWatch($fromLiteral,.$toLitera
77c60 6c 2c 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 77 61 l,.$node).{.if.(!isset($this->wa
77c80 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d tchChains[$toLiteral])).{.$this-
77ca0 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 >watchChains[$toLiteral].=.new.R
77cc0 75 6c 65 57 61 74 63 68 43 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 uleWatchChain;.}..$node->moveWat
77ce0 63 68 28 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 ch($fromLiteral,.$toLiteral);.$t
77d00 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e his->watchChains[$fromLiteral]->
77d20 72 65 6d 6f 76 65 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 74 6f remove();.$this->watchChains[$to
77d40 4c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f Literal]->unshift($node);.}.}.<?
77d60 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
77d80 72 5c 43 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 r\Config;........interface.Confi
77da0 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 gSourceInterface.{.......public.
77dc0 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 function.addRepository($name,.$c
77de0 6f 6e 66 69 67 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 onfig);.......public.function.re
77e00 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 moveRepository($name);........pu
77e20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 blic.function.addConfigSetting($
77e40 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 name,.$value);.......public.func
77e60 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b tion.removeConfigSetting($name);
77e80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b .........public.function.addLink
77ea0 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 ($type,.$name,.$value);........p
77ec0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c ublic.function.removeLink($type,
77ee0 20 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .$name);.......public.function.g
77f00 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d etName();.}.<?php............nam
77f20 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 75 73 65 20 43 6f 6d espace.Composer\Config;..use.Com
77f40 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 poser\Json\JsonFile;.use.Compose
77f60 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 r\Json\JsonManipulator;........c
77f80 6c 61 73 73 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 69 6d 70 6c 65 6d 65 6e 74 73 lass.JsonConfigSource.implements
77fa0 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 .ConfigSourceInterface.{....priv
77fc0 61 74 65 20 24 66 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 68 43 6f 6e 66 ate.$file;.....private.$authConf
77fe0 69 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ig;........public.function.__con
78000 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 66 69 6c 65 2c 20 24 61 75 74 68 43 6f 6e 66 struct(JsonFile.$file,.$authConf
78020 69 67 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c ig.=.false).{.$this->file.=.$fil
78040 65 3b 0a 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 24 61 75 74 68 43 6f 6e 66 e;.$this->authConfig.=.$authConf
78060 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d ig;.}.....public.function.getNam
78080 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 e().{.return.$this->file->getPat
780a0 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 h();.}.....public.function.addRe
780c0 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 pository($name,.$config).{.$this
780e0 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 74 6f 72 79 27 ->manipulateJson('addRepository'
78100 2c 20 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f ,.$name,.$config,.function.(&$co
78120 6e 66 69 67 2c 20 24 72 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e nfig,.$repo,.$repoConfig).{.$con
78140 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 3d 20 24 72 65 fig['repositories'][$repo].=.$re
78160 70 6f 43 6f 6e 66 69 67 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 poConfig;.});.}.....public.funct
78180 69 6f 6e 20 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 ion.removeRepository($name).{.$t
781a0 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 6f 73 his->manipulateJson('removeRepos
781c0 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 itory',.$name,.function.(&$confi
781e0 67 2c 20 24 72 65 70 6f 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 g,.$repo).{.unset($config['repos
78200 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 itories'][$repo]);.});.}.....pub
78220 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e lic.function.addConfigSetting($n
78240 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 ame,.$value).{.$this->manipulate
78260 4a 73 6f 6e 28 27 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 Json('addConfigSetting',.$name,.
78280 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 $value,.function.(&$config,.$key
782a0 2c 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 67 69 74 68 75 62 2d 6f ,.$val).{.if.($key.===.'github-o
782c0 61 75 74 68 27 20 7c 7c 20 24 6b 65 79 20 3d 3d 3d 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 20 auth'.||.$key.===.'http-basic').
782e0 7b 0a 6c 69 73 74 28 24 6b 65 79 2c 20 24 68 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e {.list($key,.$host).=.explode('.
78300 27 2c 20 24 6b 65 79 2c 20 32 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 ',.$key,.2);.if.($this->authConf
78320 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 20 3d 20 24 76 61 ig).{.$config[$key][$host].=.$va
78340 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b l;.}.else.{.$config['config'][$k
78360 65 79 5d 5b 24 68 6f 73 74 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 ey][$host].=.$val;.}.}.else.{.$c
78380 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a onfig['config'][$key].=.$val;.}.
783a0 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 });.}.....public.function.remove
783c0 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 ConfigSetting($name).{.$this->ma
783e0 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e nipulateJson('removeConfigSettin
78400 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 g',.$name,.function.(&$config,.$
78420 6b 65 79 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 3d 3d 3d 20 27 67 69 74 68 75 62 2d 6f 61 75 74 key).{.if.($key.===.'github-oaut
78440 68 27 20 7c 7c 20 24 6b 65 79 20 3d 3d 3d 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 20 7b 0a 6c h'.||.$key.===.'http-basic').{.l
78460 69 73 74 28 24 6b 65 79 2c 20 24 68 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 ist($key,.$host).=.explode('.',.
78480 24 6b 65 79 2c 20 32 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 29 $key,.2);.if.($this->authConfig)
784a0 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 29 3b 0a .{.unset($config[$key][$host]);.
784c0 7d 20 65 6c 73 65 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d }.else.{.unset($config['config']
784e0 5b 24 6b 65 79 5d 5b 24 68 6f 73 74 5d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e 73 65 74 [$key][$host]);.}.}.else.{.unset
78500 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 29 3b ($config['config'][$key]);.}.});
78520 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 .}.....public.function.addLink($
78540 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 type,.$name,.$value).{.$this->ma
78560 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 4c 69 6e 6b 27 2c 20 24 74 79 70 65 2c 20 24 nipulateJson('addLink',.$type,.$
78580 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 name,.$value,.function.(&$config
785a0 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 20 7b 0a 24 63 6f 6e 66 69 ,.$type,.$name,.$value).{.$confi
785c0 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 29 3b 0a 7d 0a g[$type][$name].=.$value;.});.}.
785e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 ....public.function.removeLink($
78600 74 79 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 type,.$name).{.$this->manipulate
78620 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 27 2c 20 24 74 79 70 65 2c 20 24 6e 61 Json('removeSubNode',.$type,.$na
78640 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 74 79 70 65 2c 20 24 me,.function.(&$config,.$type,.$
78660 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 name).{.unset($config[$type][$na
78680 6d 65 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 me]);.});.}..protected.function.
786a0 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 6f 64 2c 20 24 61 72 67 73 2c 20 24 manipulateJson($method,.$args,.$
786c0 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 66 75 6e 63 5f 67 65 74 5f 61 72 67 fallback).{.$args.=.func_get_arg
786e0 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 73 29 3b 0a 24 66 61 6c 6c s();...array_shift($args);.$fall
78700 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 67 73 29 3b 0a 0a 69 66 20 28 24 74 back.=.array_pop($args);..if.($t
78720 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 his->file->exists()).{.$contents
78740 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 .=.file_get_contents($this->file
78760 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 61 ->getPath());.}.elseif.($this->a
78780 75 74 68 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 7d 5c 6e uthConfig).{.$contents.=."{\n}\n
787a0 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 20 20 20 20 ";.}.else.{.$contents.=."{\n....
787c0 5c 22 63 6f 6e 66 69 67 5c 22 3a 20 7b 5c 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b 0a 7d 0a 0a 24 \"config\":.{\n....}\n}\n";.}..$
787e0 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f manipulator.=.new.JsonManipulato
78800 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 24 6e 65 77 46 69 6c 65 20 3d 20 21 24 74 68 69 73 r($contents);..$newFile.=.!$this
78820 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e ->file->exists();....if.($this->
78840 61 75 74 68 43 6f 6e 66 69 67 20 26 26 20 24 6d 65 74 68 6f 64 20 3d 3d 3d 20 27 61 64 64 43 6f authConfig.&&.$method.===.'addCo
78860 6e 66 69 67 53 65 74 74 69 6e 67 27 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 61 64 64 53 75 nfigSetting').{.$method.=.'addSu
78880 62 4e 6f 64 65 27 3b 0a 6c 69 73 74 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 20 3d bNode';.list($mainNode,.$name).=
788a0 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 61 72 67 73 5b 30 5d 2c 20 32 29 3b 0a 24 61 72 67 .explode('.',.$args[0],.2);.$arg
788c0 73 20 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c 20 24 61 72 67 s.=.array($mainNode,.$name,.$arg
788e0 73 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 s[1]);.}.elseif.($this->authConf
78900 69 67 20 26 26 20 24 6d 65 74 68 6f 64 20 3d 3d 3d 20 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 ig.&&.$method.===.'removeConfigS
78920 65 74 74 69 6e 67 27 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 72 65 6d 6f 76 65 53 75 62 4e etting').{.$method.=.'removeSubN
78940 6f 64 65 27 3b 0a 6c 69 73 74 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 20 3d 20 65 ode';.list($mainNode,.$name).=.e
78960 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 61 72 67 73 5b 30 5d 2c 20 32 29 3b 0a 24 61 72 67 73 20 xplode('.',.$args[0],.2);.$args.
78980 3d 20 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 20 =.array($mainNode,.$name);.}....
789a0 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 72 72 61 79 28 24 if.(call_user_func_array(array($
789c0 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 2c 20 24 61 72 67 73 29 29 20 7b manipulator,.$method),.$args)).{
789e0 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e .file_put_contents($this->file->
78a00 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 getPath(),.$manipulator->getCont
78a20 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 24 74 ents());.}.else.{...$config.=.$t
78a40 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 24 74 68 69 73 2d 3e 61 72 72 61 79 55 his->file->read();.$this->arrayU
78a60 6e 73 68 69 66 74 52 65 66 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 63 61 6c 6c 5f nshiftRef($args,.$config);.call_
78a80 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 66 61 6c 6c 62 61 63 6b 2c 20 24 61 72 67 73 user_func_array($fallback,.$args
78aa0 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 63 6f 6e 66 69 67 29 3b 0a );.$this->file->write($config);.
78ac0 7d 0a 0a 69 66 20 28 24 6e 65 77 46 69 6c 65 29 20 7b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d }..if.($newFile).{.@chmod($this-
78ae0 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 7d 0a 0a 0a 0a >file->getPath(),.0600);.}.}....
78b00 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 72 72 61 79 55 6e 73 68 69 .....private.function.arrayUnshi
78b20 66 74 52 65 66 28 26 24 61 72 72 61 79 2c 20 26 24 76 61 6c 75 65 29 0a 7b 0a 24 72 65 74 75 72 ftRef(&$array,.&$value).{.$retur
78b40 6e 20 3d 20 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 61 72 72 61 79 2c 20 27 27 29 3b 0a 24 n.=.array_unshift($array,.'');.$
78b60 61 72 72 61 79 5b 30 5d 20 3d 20 26 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 array[0].=.&$value;..return.$ret
78b80 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 urn;.}.}.<?php............namesp
78ba0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ace.Composer\Plugin;.......class
78bc0 20 50 6c 75 67 69 6e 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 43 4f .PluginEvents.{.........const.CO
78be0 4d 4d 41 4e 44 20 3d 20 27 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 MMAND.=.'command';..........cons
78c00 74 20 50 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 20 3d 20 27 70 72 65 2d 66 69 6c 65 2d t.PRE_FILE_DOWNLOAD.=.'pre-file-
78c20 64 6f 77 6e 6c 6f 61 64 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 download';.}.<?php............na
78c40 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f mespace.Composer\Plugin;..use.Co
78c60 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 mposer\EventDispatcher\Event;.us
78c80 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
78ca0 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f t\InputInterface;.use.Symfony\Co
78cc0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 mponent\Console\Output\OutputInt
78ce0 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 erface;.......class.CommandEvent
78d00 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d .extends.Event.{....private.$com
78d20 6d 61 6e 64 4e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 0a 0a mandName;.....private.$input;...
78d40 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ..private.$output;............pu
78d60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c blic.function.__construct($name,
78d80 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 .$commandName,.$input,.$output,.
78da0 61 72 72 61 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 6c array.$args.=.array(),.array.$fl
78dc0 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 ags.=.array()).{.parent::__const
78de0 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 61 72 67 73 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 ruct($name,.$args,.$flags);.$thi
78e00 73 2d 3e 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 24 s->commandName.=.$commandName;.$
78e20 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 this->input.=.$input;.$this->out
78e40 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 put.=.$output;.}.......public.fu
78e60 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 nction.getInput().{.return.$this
78e80 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ->input;.}.......public.function
78ea0 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 .getOutput().{.return.$this->out
78ec0 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 put;.}.......public.function.get
78ee0 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f CommandName().{.return.$this->co
78f00 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mmandName;.}.}.<?php............
78f20 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 namespace.Composer\Plugin;..use.
78f40 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a Composer\EventDispatcher\Event;.
78f60 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 use.Composer\Util\RemoteFilesyst
78f80 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 em;.......class.PreFileDownloadE
78fa0 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 vent.extends.Event.{....private.
78fc0 24 72 66 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 3b $rfs;.....private.$processedUrl;
78fe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 .........public.function.__const
79000 72 75 63 74 28 24 6e 61 6d 65 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 ruct($name,.RemoteFilesystem.$rf
79020 73 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f s,.$processedUrl).{.parent::__co
79040 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 nstruct($name);.$this->rfs.=.$rf
79060 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 70 72 6f 63 65 73 s;.$this->processedUrl.=.$proces
79080 73 65 64 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 sedUrl;.}.......public.function.
790a0 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 getRemoteFilesystem().{.return.$
790c0 74 68 69 73 2d 3e 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 this->rfs;.}.......public.functi
790e0 6f 6e 20 73 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 52 65 6d 6f 74 65 46 69 6c on.setRemoteFilesystem(RemoteFil
79100 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 esystem.$rfs).{.$this->rfs.=.$rf
79120 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 s;.}.......public.function.getPr
79140 6f 63 65 73 73 65 64 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f ocessedUrl().{.return.$this->pro
79160 63 65 73 73 65 64 55 72 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a cessedUrl;.}.}.<?php............
79180 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 namespace.Composer\Plugin;..use.
791a0 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c Composer\Composer;.use.Composer\
791c0 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 IO\IOInterface;.......interface.
791e0 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4c 55 PluginInterface.{......const.PLU
79200 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 0a 0a 0a 0a 0a GIN_API_VERSION.=.'1.0.0';......
79220 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 74 69 76 61 74 65 28 43 6f 6d 70 6f ..public.function.activate(Compo
79240 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 3b ser.$composer,.IOInterface.$io);
79260 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f .}.<?php............namespace.Co
79280 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d mposer\Plugin;..use.Composer\Com
792a0 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 poser;.use.Composer\EventDispatc
792c0 68 65 72 5c 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 her\EventSubscriberInterface;.us
792e0 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 e.Composer\IO\IOInterface;.use.C
79300 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d omposer\Package\Package;.use.Com
79320 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 poser\Package\Version\VersionPar
79340 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 ser;.use.Composer\Repository\Rep
79360 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ositoryInterface;.use.Composer\P
79380 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ackage\AliasPackage;.use.Compose
793a0 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 r\Package\PackageInterface;.use.
793c0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f Composer\Package\Link;.use.Compo
793e0 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 ser\Package\LinkConstraint\Versi
79400 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e onConstraint;.use.Composer\Depen
79420 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 dencyResolver\Pool;........class
79440 20 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 .PluginManager.{.protected.$comp
79460 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 oser;.protected.$io;.protected.$
79480 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 globalComposer;.protected.$versi
794a0 6f 6e 50 61 72 73 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6c 75 67 69 6e 73 20 3d 20 onParser;..protected.$plugins.=.
794c0 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 67 69 73 74 65 72 65 64 50 6c array();.protected.$registeredPl
794e0 75 67 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 ugins.=.array();..private.static
79500 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .$classCounter.=.0;.........publ
79520 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 ic.function.__construct(IOInterf
79540 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 43 6f 6d ace.$io,.Composer.$composer,.Com
79560 70 6f 73 65 72 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a poser.$globalComposer.=.null).{.
79580 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 $this->io.=.$io;.$this->composer
795a0 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f .=.$composer;.$this->globalCompo
795c0 73 65 72 20 3d 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 76 65 ser.=.$globalComposer;.$this->ve
795e0 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 rsionParser.=.new.VersionParser(
79600 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 73 );.}.....public.function.loadIns
79620 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 24 72 65 70 6f 20 3d 20 24 74 68 69 73 2d talledPlugins().{.$repo.=.$this-
79640 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 >composer->getRepositoryManager(
79660 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 67 6c 6f 62 61 6c )->getLocalRepository();.$global
79680 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3f 20 24 Repo.=.$this->globalComposer.?.$
796a0 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 this->globalComposer->getReposit
796c0 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 oryManager()->getLocalRepository
796e0 28 29 20 3a 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6c ().:.null;.if.($repo).{.$this->l
79700 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 69 66 20 28 24 67 6c 6f oadRepository($repo);.}.if.($glo
79720 62 61 6c 52 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 balRepo).{.$this->loadRepository
79740 28 24 67 6c 6f 62 61 6c 52 65 70 6f 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ($globalRepo);.}.}.......public.
79760 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 6c 75 67 69 6e 28 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 function.addPlugin(PluginInterfa
79780 63 65 20 24 70 6c 75 67 69 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 ce.$plugin).{.if.($this->io->isD
797a0 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 ebug()).{.$this->io->writeError(
797c0 27 4c 6f 61 64 69 6e 67 20 70 6c 75 67 69 6e 20 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 70 6c 75 'Loading.plugin.'.get_class($plu
797e0 67 69 6e 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 73 5b 5d 20 3d 20 24 70 6c 75 gin));.}.$this->plugins[].=.$plu
79800 67 69 6e 3b 0a 24 70 6c 75 67 69 6e 2d 3e 61 63 74 69 76 61 74 65 28 24 74 68 69 73 2d 3e 63 6f gin;.$plugin->activate($this->co
79820 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 0a 69 66 20 28 24 70 6c 75 67 69 6e mposer,.$this->io);..if.($plugin
79840 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 .instanceof.EventSubscriberInter
79860 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e face).{.$this->composer->getEven
79880 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 61 64 64 53 75 62 73 63 72 69 62 65 72 28 24 70 6c tDispatcher()->addSubscriber($pl
798a0 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ugin);.}.}.......public.function
798c0 20 67 65 74 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6c .getPlugins().{.return.$this->pl
798e0 75 67 69 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ugins;.}.............public.func
79900 74 69 6f 6e 20 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e tion.loadRepository(RepositoryIn
79920 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d terface.$repo).{.foreach.($repo-
79940 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 >getPackages().as.$package).{.if
79960 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 .($package.instanceof.AliasPacka
79980 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 27 63 6f 6d 70 6f 73 65 72 2d ge).{.continue;.}.if.('composer-
799a0 70 6c 75 67 69 6e 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 29 plugin'.===.$package->getType())
799c0 20 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 .{.$requiresComposer.=.null;.for
799e0 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 each.($package->getRequires().as
79a00 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 .$link).{.if.($link->getTarget()
79a20 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 29 20 7b 0a 24 72 65 .==.'composer-plugin-api').{.$re
79a40 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 quiresComposer.=.$link->getConst
79a60 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 72 65 71 75 69 72 65 73 43 6f 6d 70 raint();.}.}..if.(!$requiresComp
79a80 6f 73 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 oser).{.throw.new.\RuntimeExcept
79aa0 69 6f 6e 28 22 50 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ion("Plugin.".$package->getName(
79ac0 29 2e 22 20 69 73 20 6d 69 73 73 69 6e 67 20 61 20 72 65 71 75 69 72 65 20 73 74 61 74 65 6d 65 ).".is.missing.a.require.stateme
79ae0 6e 74 20 66 6f 72 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 nt.for.a.version.of.the.composer
79b00 2d 70 6c 75 67 69 6e 2d 61 70 69 20 70 61 63 6b 61 67 65 2e 22 29 3b 0a 7d 0a 0a 69 66 20 28 21 -plugin-api.package.");.}..if.(!
79b20 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 2d 3e 6d 61 74 63 68 65 73 28 6e 65 77 20 56 $requiresComposer->matches(new.V
79b40 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 74 68 69 73 2d 3e 76 65 ersionConstraint('==',.$this->ve
79b60 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 50 6c 75 67 69 6e 49 6e 74 rsionParser->normalize(PluginInt
79b80 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 29 29 29 29 20 7b erface::PLUGIN_API_VERSION)))).{
79ba0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 3c 77 61 72 6e 69 6e 67 .$this->io->writeError("<warning
79bc0 3e 54 68 65 20 70 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 >The.plugin.".$package->getName(
79be0 29 2e 22 20 72 65 71 75 69 72 65 73 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 ).".requires.a.version.of.compos
79c00 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 74 68 61 74 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 er-plugin-api.that.does.not.matc
79c20 68 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 20 59 6f h.your.composer.installation..Yo
79c40 75 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 72 75 6e 20 63 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 u.may.need.to.run.composer.updat
79c60 65 20 77 69 74 68 20 74 68 65 20 27 2d 2d 6e 6f 2d 70 6c 75 67 69 6e 73 27 20 6f 70 74 69 6f 6e e.with.the.'--no-plugins'.option
79c80 2e 3c 2f 77 61 72 6e 69 6e 67 3e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 .</warning>");.}..$this->registe
79ca0 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 20 69 66 20 28 27 63 6f 6d rPackage($package);.}...if.('com
79cc0 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 poser-installer'.===.$package->g
79ce0 65 74 54 79 70 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 etType()).{.$this->registerPacka
79d00 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ge($package);.}.}.}...........pr
79d20 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e otected.function.collectDependen
79d40 63 69 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 63 6f 6c 6c 65 63 74 65 cies(Pool.$pool,.array.$collecte
79d60 64 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a d,.PackageInterface.$package).{.
79d80 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 70 61 63 6b 61 67 $requires.=.array_merge(.$packag
79da0 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 e->getRequires(),.$package->getD
79dc0 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 evRequires().);..foreach.($requi
79de0 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 69 72 65 64 res.as.$requireLink).{.$required
79e00 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 64 Package.=.$this->lookupInstalled
79e20 50 61 63 6b 61 67 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 3b 0a 69 66 Package($pool,.$requireLink);.if
79e40 20 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 69 73 73 65 74 28 24 63 6f .($requiredPackage.&&.!isset($co
79e60 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d llected[$requiredPackage->getNam
79e80 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 e()])).{.$collected[$requiredPac
79ea0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 72 65 71 75 69 72 65 64 50 61 63 6b kage->getName()].=.$requiredPack
79ec0 61 67 65 3b 0a 24 63 6f 6c 6c 65 63 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6c 6c 65 63 74 age;.$collected.=.$this->collect
79ee0 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 63 6f 6c 6c 65 63 74 65 64 2c 20 Dependencies($pool,.$collected,.
79f00 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 $requiredPackage);.}.}..return.$
79f20 63 6f 6c 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 collected;.}............protecte
79f40 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 d.function.lookupInstalledPackag
79f60 65 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 4c 69 6e 6b 20 24 6c 69 6e 6b 29 0a 7b 0a 24 70 61 63 e(Pool.$pool,.Link.$link).{.$pac
79f80 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e kages.=.$pool->whatProvides($lin
79fa0 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 k->getTarget(),.$link->getConstr
79fc0 61 69 6e 74 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 aint());..return.(!empty($packag
79fe0 65 73 29 29 20 3f 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a es)).?.$packages[0].:.null;.}...
7a000 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 ..........public.function.regist
7a020 65 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b erPackage(PackageInterface.$pack
7a040 61 67 65 2c 20 24 66 61 69 6c 4f 6e 4d 69 73 73 69 6e 67 43 6c 61 73 73 65 73 20 3d 20 66 61 6c age,.$failOnMissingClasses.=.fal
7a060 73 65 29 0a 7b 0a 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 20 3d 20 28 24 70 61 se).{.$oldInstallerPlugin.=.($pa
7a080 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 ckage->getType().===.'composer-i
7a0a0 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 nstaller');..if.(in_array($packa
7a0c0 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 72 65 67 69 73 74 65 72 65 64 ge->getName(),.$this->registered
7a0e0 50 6c 75 67 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 65 78 74 72 61 20 3d 20 Plugins)).{.return;.}..$extra.=.
7a100 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 $package->getExtra();.if.(empty(
7a120 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 $extra['class'])).{.throw.new.\U
7a140 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 nexpectedValueException('Error.w
7a160 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 hile.installing.'.$package->getP
7a180 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 rettyName().',.composer-plugin.p
7a1a0 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 ackages.should.have.a.class.defi
7a1c0 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 ned.in.their.extra.key.to.be.usa
7a1e0 62 6c 65 2e 27 29 3b 0a 7d 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 65 ble.');.}.$classes.=.is_array($e
7a200 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d xtra['class']).?.$extra['class']
7a220 20 3a 20 61 72 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 6c 6f 63 .:.array($extra['class']);..$loc
7a240 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 alRepo.=.$this->composer->getRep
7a260 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 ositoryManager()->getLocalReposi
7a280 74 6f 72 79 28 29 3b 0a 24 67 6c 6f 62 61 6c 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 6c 6f tory();.$globalRepo.=.$this->glo
7a2a0 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3f 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f balComposer.?.$this->globalCompo
7a2c0 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 ser->getRepositoryManager()->get
7a2e0 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 24 70 6f 6f 6c LocalRepository().:.null;..$pool
7a300 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 .=.new.Pool('dev');.$pool->addRe
7a320 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 69 66 20 28 24 67 6c 6f 62 61 pository($localRepo);.if.($globa
7a340 6c 52 65 70 6f 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 67 lRepo).{.$pool->addRepository($g
7a360 6c 6f 62 61 6c 52 65 70 6f 29 3b 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 lobalRepo);.}..$autoloadPackages
7a380 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 .=.array($package->getName().=>.
7a3a0 24 70 61 63 6b 61 67 65 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 24 $package);.$autoloadPackages.=.$
7a3c0 74 68 69 73 2d 3e 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c this->collectDependencies($pool,
7a3e0 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a .$autoloadPackages,.$package);..
7a400 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 $generator.=.$this->composer->ge
7a420 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 tAutoloadGenerator();.$autoloads
7a440 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 50 61 .=.array();.foreach.($autoloadPa
7a460 63 6b 61 67 65 73 20 61 73 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 64 ckages.as.$autoloadPackage).{.$d
7a480 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 ownloadPath.=.$this->getInstallP
7a4a0 61 74 68 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 28 24 67 6c 6f 62 61 6c 52 65 ath($autoloadPackage,.($globalRe
7a4c0 70 6f 20 26 26 20 24 67 6c 6f 62 61 6c 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 61 po.&&.$globalRepo->hasPackage($a
7a4e0 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 5d 20 utoloadPackage)));.$autoloads[].
7a500 3d 20 61 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c =.array($autoloadPackage,.$downl
7a520 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e oadPath);.}..$map.=.$generator->
7a540 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 61 75 74 6f 6c 6f 61 64 73 2c 20 6e 65 77 20 50 parseAutoloads($autoloads,.new.P
7a560 61 63 6b 61 67 65 28 27 64 75 6d 6d 79 27 2c 20 27 31 2e 30 2e 30 2e 30 27 2c 20 27 31 2e 30 2e ackage('dummy',.'1.0.0.0',.'1.0.
7a580 30 27 29 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 0'));.$classLoader.=.$generator-
7a5a0 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 >createLoader($map);.$classLoade
7a5c0 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 r->register();..foreach.($classe
7a5e0 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 s.as.$class).{.if.(class_exists(
7a600 24 63 6c 61 73 73 2c 20 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 $class,.false)).{.$code.=.file_g
7a620 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 et_contents($classLoader->findFi
7a640 6c 65 28 24 63 6c 61 73 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 le($class));.$code.=.preg_replac
7a660 65 28 27 7b 5e 28 5c 73 2a 29 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 2c 20 27 24 31 e('{^(\s*)class\s+(\S+)}mi',.'$1
7a680 63 6c 61 73 73 20 24 32 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e 73 65 6c 66 3a 3a 24 63 6c class.$2_composer_tmp'.self::$cl
7a6a0 61 73 73 43 6f 75 6e 74 65 72 2c 20 24 63 6f 64 65 29 3b 0a 65 76 61 6c 28 27 3f 3e 27 2e 24 63 assCounter,.$code);.eval('?>'.$c
7a6c0 6f 64 65 29 3b 0a 24 63 6c 61 73 73 20 2e 3d 20 27 5f 63 6f 6d 70 6f 73 65 72 5f 74 6d 70 27 2e ode);.$class..=.'_composer_tmp'.
7a6e0 73 65 6c 66 3a 3a 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 3b 0a 73 65 6c 66 3a 3a 24 63 6c 61 73 self::$classCounter;.self::$clas
7a700 73 43 6f 75 6e 74 65 72 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 sCounter++;.}..if.($oldInstaller
7a720 50 6c 75 67 69 6e 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 Plugin).{.$installer.=.new.$clas
7a740 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 s($this->io,.$this->composer);.$
7a760 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d this->composer->getInstallationM
7a780 61 6e 61 67 65 72 28 29 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 anager()->addInstaller($installe
7a7a0 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 r);.}.elseif.(class_exists($clas
7a7c0 73 29 29 20 7b 0a 24 70 6c 75 67 69 6e 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 29 3b 0a 24 74 s)).{.$plugin.=.new.$class();.$t
7a7e0 68 69 73 2d 3e 61 64 64 50 6c 75 67 69 6e 28 24 70 6c 75 67 69 6e 29 3b 0a 24 74 68 69 73 2d 3e his->addPlugin($plugin);.$this->
7a800 72 65 67 69 73 74 65 72 65 64 50 6c 75 67 69 6e 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e registeredPlugins[].=.$package->
7a820 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 66 61 69 6c 4f 6e 4d 69 73 73 getName();.}.elseif.($failOnMiss
7a840 69 6e 67 43 6c 61 73 73 65 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 ingClasses).{.throw.new.\Unexpec
7a860 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 6c 75 67 69 6e 20 27 2e 24 70 61 63 tedValueException('Plugin.'.$pac
7a880 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 69 kage->getName().'.could.not.be.i
7a8a0 6e 69 74 69 61 6c 69 7a 65 64 2c 20 63 6c 61 73 73 20 6e 6f 74 20 66 6f 75 6e 64 3a 20 27 2e 24 nitialized,.class.not.found:.'.$
7a8c0 63 6c 61 73 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 class);.}.}.}..........public.fu
7a8e0 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 nction.getInstallPath(PackageInt
7a900 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 67 6c 6f 62 61 6c 20 3d 20 66 61 6c 73 65 erface.$package,.$global.=.false
7a920 29 0a 7b 0a 69 66 20 28 21 24 67 6c 6f 62 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ).{.if.(!$global).{.return.$this
7a940 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ->composer->getInstallationManag
7a960 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a er()->getInstallPath($package);.
7a980 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 2d }..return.$this->globalComposer-
7a9a0 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e >getInstallationManager()->getIn
7a9c0 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a stallPath($package);.}.}.<?php..
7a9e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 ..........namespace.Composer;..u
7aa00 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 se.Composer\Config\JsonConfigSou
7aa20 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b rce;.use.Composer\Json\JsonFile;
7aa40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 .use.Composer\IO\IOInterface;.us
7aa60 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 75 73 65 e.Composer\Package\Archiver;.use
7aa80 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d .Composer\Repository\RepositoryM
7aaa0 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c anager;.use.Composer\Repository\
7aac0 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 WritableRepositoryInterface;.use
7aae0 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a .Composer\Util\ProcessExecutor;.
7ab00 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 use.Composer\Util\RemoteFilesyst
7ab20 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c em;.use.Symfony\Component\Consol
7ab40 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 e\Formatter\OutputFormatterStyle
7ab60 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 ;.use.Composer\EventDispatcher\E
7ab80 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 ventDispatcher;.use.Composer\Aut
7aba0 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d oload\AutoloadGenerator;.use.Com
7abc0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 poser\Package\Version\VersionPar
7abe0 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a ser;..........class.Factory.{...
7ac00 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 ..protected.static.function.getH
7ac20 6f 6d 65 44 69 72 28 29 0a 7b 0a 24 68 6f 6d 65 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f omeDir().{.$home.=.getenv('COMPO
7ac40 53 45 52 5f 48 4f 4d 45 27 29 3b 0a 69 66 20 28 21 24 68 6f 6d 65 29 20 7b 0a 69 66 20 28 64 65 SER_HOME');.if.(!$home).{.if.(de
7ac60 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 fined('PHP_WINDOWS_VERSION_MAJOR
7ac80 27 29 29 20 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 29 20 7b 0a ')).{.if.(!getenv('APPDATA')).{.
7aca0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 throw.new.\RuntimeException('The
7acc0 20 41 50 50 44 41 54 41 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f .APPDATA.or.COMPOSER_HOME.enviro
7ace0 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 nment.variable.must.be.set.for.c
7ad00 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 6e 20 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 omposer.to.run.correctly');.}.$h
7ad20 6f 6d 65 20 3d 20 73 74 72 74 72 28 67 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 2c 20 27 ome.=.strtr(getenv('APPDATA'),.'
7ad40 5c 5c 27 2c 20 27 2f 27 29 20 2e 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 65 20 \\',.'/')...'/Composer';.}.else.
7ad60 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e {.if.(!getenv('HOME')).{.throw.n
7ad80 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 48 4f 4d 45 20 6f ew.\RuntimeException('The.HOME.o
7ada0 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 r.COMPOSER_HOME.environment.vari
7adc0 61 62 6c 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f able.must.be.set.for.composer.to
7ade0 20 72 75 6e 20 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 72 74 72 69 .run.correctly');.}.$home.=.rtri
7ae00 6d 28 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2c 20 27 2f 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 m(getenv('HOME'),.'/')...'/.comp
7ae20 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 68 6f 6d 65 3b 0a 7d 0a 0a 0a 0a 0a oser';.}.}..return.$home;.}.....
7ae40 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 ..protected.static.function.getC
7ae60 61 63 68 65 44 69 72 28 24 68 6f 6d 65 29 0a 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 67 65 74 acheDir($home).{.$cacheDir.=.get
7ae80 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 43 41 43 48 45 5f 44 49 52 27 29 3b 0a 69 66 20 28 21 env('COMPOSER_CACHE_DIR');.if.(!
7aea0 24 63 61 63 68 65 44 69 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 $cacheDir).{.if.(defined('PHP_WI
7aec0 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 29 20 7b 0a 69 66 20 28 24 63 61 NDOWS_VERSION_MAJOR')).{.if.($ca
7aee0 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 4c 4f 43 41 4c 41 50 50 44 41 54 41 27 29 29 cheDir.=.getenv('LOCALAPPDATA'))
7af00 20 7b 0a 24 63 61 63 68 65 44 69 72 20 2e 3d 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 .{.$cacheDir..=.'/Composer';.}.e
7af20 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 20 2e 20 27 2f 63 61 63 68 lse.{.$cacheDir.=.$home...'/cach
7af40 65 27 3b 0a 7d 0a 24 63 61 63 68 65 44 69 72 20 3d 20 73 74 72 74 72 28 24 63 61 63 68 65 44 69 e';.}.$cacheDir.=.strtr($cacheDi
7af60 72 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 r,.'\\',.'/');.}.else.{.$cacheDi
7af80 72 20 3d 20 24 68 6f 6d 65 2e 27 2f 63 61 63 68 65 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 r.=.$home.'/cache';.}.}..return.
7afa0 24 63 61 63 68 65 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 $cacheDir;.}......public.static.
7afc0 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 49 4f 49 6e 74 65 72 66 61 63 function.createConfig(IOInterfac
7afe0 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 77 e.$io.=.null,.$cwd.=.null).{.$cw
7b000 64 20 3d 20 24 63 77 64 20 3f 3a 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 24 68 6f 6d 65 20 3d d.=.$cwd.?:.getcwd();....$home.=
7b020 20 73 65 6c 66 3a 3a 67 65 74 48 6f 6d 65 44 69 72 28 29 3b 0a 24 63 61 63 68 65 44 69 72 20 3d .self::getHomeDir();.$cacheDir.=
7b040 20 73 65 6c 66 3a 3a 67 65 74 43 61 63 68 65 44 69 72 28 24 68 6f 6d 65 29 3b 0a 0a 0a 20 0a 20 .self::getCacheDir($home);......
7b060 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 68 6f 6d 65 2c 20 24 63 61 63 68 65 44 69 ..foreach.(array($home,.$cacheDi
7b080 72 29 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 r).as.$dir).{.if.(!file_exists($
7b0a0 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 dir...'/.htaccess')).{.if.(!is_d
7b0c0 69 72 28 24 64 69 72 29 29 20 7b 0a 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 ir($dir)).{.@mkdir($dir,.0777,.t
7b0e0 72 75 65 29 3b 0a 7d 0a 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 64 69 72 20 rue);.}.@file_put_contents($dir.
7b100 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 2c 20 27 44 65 6e 79 20 66 72 6f 6d 20 61 6c 6c 27 29 ..'/.htaccess',.'Deny.from.all')
7b120 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 28 74 72 75 65 ;.}.}..$config.=.new.Config(true
7b140 2c 20 24 63 77 64 29 3b 0a 0a 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 ,.$cwd);....$config->merge(array
7b160 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d 65 27 20 3d 3e 20 24 68 6f ('config'.=>.array('home'.=>.$ho
7b180 6d 65 2c 20 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 24 63 61 63 68 65 44 69 72 29 29 29 3b me,.'cache-dir'.=>.$cacheDir)));
7b1a0 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 ....$file.=.new.JsonFile($config
7b1c0 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 3b 0a 69 ->get('home').'/config.json');.i
7b1e0 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 69 6f 20 26 26 f.($file->exists()).{.if.($io.&&
7b200 20 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 .$io->isDebug()).{.$io->writeErr
7b220 6f 72 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 2e 20 24 66 69 6c or('Loading.config.file.'...$fil
7b240 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 e->getPath());.}.$config->merge(
7b260 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 43 6f $file->read());.}.$config->setCo
7b280 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 nfigSource(new.JsonConfigSource(
7b2a0 24 66 69 6c 65 29 29 3b 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 $file));....$file.=.new.JsonFile
7b2c0 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 61 75 74 68 2e 6a 73 6f ($config->get('home').'/auth.jso
7b2e0 6e 27 29 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 n');.if.($file->exists()).{.if.(
7b300 24 69 6f 20 26 26 20 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 $io.&&.$io->isDebug()).{.$io->wr
7b320 69 74 65 45 72 72 6f 72 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 iteError('Loading.config.file.'.
7b340 2e 20 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e ..$file->getPath());.}.$config->
7b360 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 72 merge(array('config'.=>.$file->r
7b380 65 61 64 28 29 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 41 75 74 68 43 6f 6e 66 69 ead()));.}.$config->setAuthConfi
7b3a0 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 24 66 69 gSource(new.JsonConfigSource($fi
7b3c0 6c 65 2c 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a le,.true));..return.$config;.}..
7b3e0 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 public.static.function.getCompos
7b400 65 72 46 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 43 erFile().{.return.trim(getenv('C
7b420 4f 4d 50 4f 53 45 52 27 29 29 20 3f 3a 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b OMPOSER')).?:.'./composer.json';
7b440 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 .}..public.static.function.creat
7b460 65 41 64 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 eAdditionalStyles().{.return.arr
7b480 61 79 28 0a 27 68 69 67 68 6c 69 67 68 74 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 ay(.'highlight'.=>.new.OutputFor
7b4a0 6d 61 74 74 65 72 53 74 79 6c 65 28 27 72 65 64 27 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e matterStyle('red'),.'warning'.=>
7b4c0 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b .new.OutputFormatterStyle('black
7b4e0 27 2c 20 27 79 65 6c 6c 6f 77 27 29 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 ',.'yellow'),.);.}..public.stati
7b500 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f c.function.createDefaultReposito
7b520 72 69 65 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 43 6f 6e ries(IOInterface.$io.=.null,.Con
7b540 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 fig.$config.=.null,.RepositoryMa
7b560 6e 61 67 65 72 20 24 72 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 nager.$rm.=.null).{.$repos.=.arr
7b580 61 79 28 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d ay();..if.(!$config).{.$config.=
7b5a0 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 24 69 6f 29 3b 0a 7d 0a 69 66 .static::createConfig($io);.}.if
7b5c0 20 28 21 24 72 6d 29 20 7b 0a 69 66 20 28 21 24 69 6f 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 .(!$rm).{.if.(!$io).{.throw.new.
7b5e0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 \InvalidArgumentException('This.
7b600 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 65 69 74 68 65 72 20 61 6e 20 49 4f 49 6e function.requires.either.an.IOIn
7b620 74 65 72 66 61 63 65 20 6f 72 20 61 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 27 29 terface.or.a.RepositoryManager')
7b640 3b 0a 7d 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 73 74 61 74 69 63 3b 0a 24 72 6d 20 3d ;.}.$factory.=.new.static;.$rm.=
7b660 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 .$factory->createRepositoryManag
7b680 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 er($io,.$config);.}..foreach.($c
7b6a0 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 69 6e 64 onfig->getRepositories().as.$ind
7b6c0 65 78 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 65 ex.=>.$repo).{.if.(is_string($re
7b6e0 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 po)).{.throw.new.\UnexpectedValu
7b700 65 45 78 63 65 70 74 69 6f 6e 28 27 22 72 65 70 6f 73 69 74 6f 72 69 65 73 22 20 73 68 6f 75 6c eException('"repositories".shoul
7b720 64 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 72 65 70 6f 73 69 74 6f 72 79 20 64 65 66 69 d.be.an.array.of.repository.defi
7b740 6e 69 74 69 6f 6e 73 2c 20 6f 6e 6c 79 20 61 20 73 69 6e 67 6c 65 20 72 65 70 6f 73 69 74 6f 72 nitions,.only.a.single.repositor
7b760 79 20 77 61 73 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 y.was.given');.}.if.(!is_array($
7b780 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 repo)).{.throw.new.\UnexpectedVa
7b7a0 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 22 27 2e 24 69 6e 64 lueException('Repository."'.$ind
7b7c0 65 78 2e 27 22 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 73 ex.'".('.json_encode($repo).').s
7b7e0 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 72 65 hould.be.an.array,.'.gettype($re
7b800 70 6f 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 70 po).'.given');.}.if.(!isset($rep
7b820 6f 5b 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 o['type'])).{.throw.new.\Unexpec
7b840 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 20 22 27 tedValueException('Repository."'
7b860 2e 24 69 6e 64 65 78 2e 27 22 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 72 65 70 6f 29 .$index.'".('.json_encode($repo)
7b880 2e 27 29 20 6d 75 73 74 20 68 61 76 65 20 61 20 74 79 70 65 20 64 65 66 69 6e 65 64 27 29 3b 0a .').must.have.a.type.defined');.
7b8a0 7d 0a 24 6e 61 6d 65 20 3d 20 69 73 5f 69 6e 74 28 24 69 6e 64 65 78 29 20 26 26 20 69 73 73 65 }.$name.=.is_int($index).&&.isse
7b8c0 74 28 24 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3f 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 t($repo['url']).?.preg_replace('
7b8e0 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 72 65 70 6f 5b 27 75 72 6c 27 5d {^https?://}i',.'',.$repo['url']
7b900 29 20 3a 20 24 69 6e 64 65 78 3b 0a 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 72 65 70 6f 73 5b ).:.$index;.while.(isset($repos[
7b920 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 2e 3d 20 27 32 27 3b 0a 7d 0a 24 72 65 70 6f $name])).{.$name..=.'2';.}.$repo
7b940 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 6d 2d 3e 63 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 s[$name].=.$rm->createRepository
7b960 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 2c 20 24 72 65 70 6f 29 3b 0a 7d 0a 0a 72 65 74 75 72 ($repo['type'],.$repo);.}..retur
7b980 6e 20 24 72 65 70 6f 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$repos;.}..............public.
7b9a0 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 function.createComposer(IOInterf
7b9c0 61 63 65 20 24 69 6f 2c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 ace.$io,.$localConfig.=.null,.$d
7b9e0 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 2c 20 24 63 77 64 20 3d 20 6e 75 isablePlugins.=.false,.$cwd.=.nu
7ba00 6c 6c 2c 20 24 66 75 6c 6c 4c 6f 61 64 20 3d 20 74 72 75 65 29 0a 7b 0a 24 63 77 64 20 3d 20 24 ll,.$fullLoad.=.true).{.$cwd.=.$
7ba20 63 77 64 20 3f 3a 20 67 65 74 63 77 64 28 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d cwd.?:.getcwd();....if.(null.===
7ba40 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 20 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 .$localConfig).{.$localConfig.=.
7ba60 73 74 61 74 69 63 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 3b 0a 7d 0a 0a 69 66 static::getComposerFile();.}..if
7ba80 20 28 69 73 5f 73 74 72 69 6e 67 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 29 20 7b 0a 24 63 6f .(is_string($localConfig)).{.$co
7baa0 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 24 66 69 6c 65 mposerFile.=.$localConfig;.$file
7bac0 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 2c 20 6e 65 .=.new.JsonFile($localConfig,.ne
7bae0 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 29 29 3b 0a 0a 69 66 20 28 21 w.RemoteFilesystem($io));..if.(!
7bb00 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 6c 6f 63 61 6c 43 6f 6e $file->exists()).{.if.($localCon
7bb20 66 69 67 20 3d 3d 3d 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 7c 7c 20 24 6c 6f fig.===.'./composer.json'.||.$lo
7bb40 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 20 7b calConfig.===.'composer.json').{
7bb60 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 .$message.=.'Composer.could.not.
7bb80 66 69 6e 64 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 27 2e 24 find.a.composer.json.file.in.'.$
7bba0 63 77 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6d 70 6f 73 cwd;.}.else.{.$message.=.'Compos
7bbc0 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 67 20 66 69 6c er.could.not.find.the.config.fil
7bbe0 65 3a 20 27 2e 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 75 63 74 69 6f e:.'.$localConfig;.}.$instructio
7bc00 6e 73 20 3d 20 27 54 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 63 74 2c 20 70 ns.=.'To.initialize.a.project,.p
7bc20 6c 65 61 73 65 20 63 72 65 61 74 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c lease.create.a.composer.json.fil
7bc40 65 20 61 73 20 64 65 73 63 72 69 62 65 64 20 69 6e 20 74 68 65 20 68 74 74 70 3a 2f 2f 67 65 74 e.as.described.in.the.http://get
7bc60 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 74 65 64 22 20 composer.org/."Getting.Started".
7bc80 73 65 63 74 69 6f 6e 27 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 section';.throw.new.\InvalidArgu
7bca0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f 45 4f 4c 2e 24 mentException($message.PHP_EOL.$
7bcc0 69 6e 73 74 72 75 63 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 6c 69 64 61 74 instructions);.}..$file->validat
7bce0 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 eSchema(JsonFile::LAX_SCHEMA);.$
7bd00 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a localConfig.=.$file->read();.}..
7bd20 0a 20 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 ..$config.=.static::createConfig
7bd40 28 24 69 6f 2c 20 24 63 77 64 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 6c 6f 63 ($io,.$cwd);.$config->merge($loc
7bd60 61 6c 43 6f 6e 66 69 67 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 alConfig);.if.(isset($composerFi
7bd80 6c 65 29 29 20 7b 0a 69 66 20 28 24 69 6f 20 26 26 20 24 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 le)).{.if.($io.&&.$io->isDebug()
7bda0 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4c 6f 61 64 69 6e 67 20 63 6f 6e ).{.$io->writeError('Loading.con
7bdc0 66 69 67 20 66 69 6c 65 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 7d 0a 24 fig.file.'...$composerFile);.}.$
7bde0 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 64 69 72 localAuthFile.=.new.JsonFile(dir
7be00 6e 61 6d 65 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 2e 20 name(realpath($composerFile))...
7be20 27 2f 61 75 74 68 2e 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c '/auth.json');.if.($localAuthFil
7be40 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 69 66 20 28 24 69 6f 20 26 26 20 24 69 6f 2d 3e 69 e->exists()).{.if.($io.&&.$io->i
7be60 73 44 65 62 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4c 6f 61 sDebug()).{.$io->writeError('Loa
7be80 64 69 6e 67 20 63 6f 6e 66 69 67 20 66 69 6c 65 20 27 20 2e 20 24 6c 6f 63 61 6c 41 75 74 68 46 ding.config.file.'...$localAuthF
7bea0 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 ile->getPath());.}.$config->merg
7bec0 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 6c 6f 63 61 6c 41 75 74 68 46 69 e(array('config'.=>.$localAuthFi
7bee0 6c 65 2d 3e 72 65 61 64 28 29 29 29 3b 0a 24 63 6f 6e 66 69 67 2d 3e 73 65 74 41 75 74 68 43 6f le->read()));.$config->setAuthCo
7bf00 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 nfigSource(new.JsonConfigSource(
7bf20 24 6c 6f 63 61 6c 41 75 74 68 46 69 6c 65 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 24 76 65 $localAuthFile,.true));.}.}..$ve
7bf40 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 ndorDir.=.$config->get('vendor-d
7bf60 69 72 27 29 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 69 ir');.$binDir.=.$config->get('bi
7bf80 6e 2d 64 69 72 27 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 6f 6d 70 n-dir');....$composer.=.new.Comp
7bfa0 6f 73 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 43 6f 6e 66 69 67 28 24 63 6f oser();.$composer->setConfig($co
7bfc0 6e 66 69 67 29 3b 0a 0a 69 66 20 28 24 66 75 6c 6c 4c 6f 61 64 29 20 7b 0a 0a 20 24 69 6f 2d 3e nfig);..if.($fullLoad).{...$io->
7bfe0 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 50 loadConfiguration($config);....P
7c000 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 65 74 54 69 6d 65 6f 75 74 28 28 69 6e 74 29 rocessExecutor::setTimeout((int)
7c020 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 29 .$config->get('process-timeout')
7c040 29 3b 0a 7d 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 65 77 20 45 76 65 6e 74 44 );.}....$dispatcher.=.new.EventD
7c060 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 24 63 6f 6d 70 ispatcher($composer,.$io);.$comp
7c080 6f 73 65 72 2d 3e 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 64 69 73 70 61 74 oser->setEventDispatcher($dispat
7c0a0 63 68 65 72 29 3b 0a 0a 0a 20 24 72 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 70 cher);....$rm.=.$this->createRep
7c0c0 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 ositoryManager($io,.$config,.$di
7c0e0 73 70 61 74 63 68 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 52 65 70 6f 73 69 74 spatcher);.$composer->setReposit
7c100 6f 72 79 4d 61 6e 61 67 65 72 28 24 72 6d 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 4c 6f oryManager($rm);....$this->addLo
7c120 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a calRepository($rm,.$vendorDir);.
7c140 0a 0a 20 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a ...$parser.=.new.VersionParser;.
7c160 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f $loader.=.new.Package\Loader\Roo
7c180 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 tPackageLoader($rm,.$config,.$pa
7c1a0 72 73 65 72 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 29 3b rser,.new.ProcessExecutor($io));
7c1c0 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6c 6f 63 61 6c .$package.=.$loader->load($local
7c1e0 43 6f 6e 66 69 67 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 65 28 24 Config);.$composer->setPackage($
7c200 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 24 69 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 package);....$im.=.$this->create
7c220 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 InstallationManager();.$composer
7c240 2d 3e 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 24 69 6d 29 3b 0a 0a ->setInstallationManager($im);..
7c260 69 66 20 28 24 66 75 6c 6c 4c 6f 61 64 29 20 7b 0a 0a 20 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e if.($fullLoad).{...$dm.=.$this->
7c280 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 createDownloadManager($io,.$conf
7c2a0 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 ig,.$dispatcher);.$composer->set
7c2c0 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 0a 0a 20 24 67 65 6e 65 72 61 DownloadManager($dm);....$genera
7c2e0 74 6f 72 20 3d 20 6e 65 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 64 69 73 tor.=.new.AutoloadGenerator($dis
7c300 70 61 74 63 68 65 72 2c 20 24 69 6f 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 41 75 74 patcher,.$io);.$composer->setAut
7c320 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 67 65 6e 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a oloadGenerator($generator);.}...
7c340 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 .$this->createDefaultInstallers(
7c360 24 69 6d 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a 0a 69 66 20 28 24 66 75 6c 6c $im,.$composer,.$io);..if.($full
7c380 4c 6f 61 64 29 20 7b 0a 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d Load).{.$globalComposer.=.$this-
7c3a0 3e 63 72 65 61 74 65 47 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 >createGlobalComposer($io,.$conf
7c3c0 69 67 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 70 6d 20 3d 20 24 74 68 69 ig,.$disablePlugins);.$pm.=.$thi
7c3e0 73 2d 3e 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6d s->createPluginManager($io,.$com
7c400 70 6f 73 65 72 2c 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 29 3b 0a 24 63 6f 6d 70 6f 73 poser,.$globalComposer);.$compos
7c420 65 72 2d 3e 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 70 6d 29 3b 0a 0a 69 66 20 28 er->setPluginManager($pm);..if.(
7c440 21 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 70 6d 2d 3e 6c 6f 61 64 49 6e 73 !$disablePlugins).{.$pm->loadIns
7c460 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 24 72 6d 2d talledPlugins();.}......if.($rm-
7c480 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e >getLocalRepository()).{.$this->
7c4a0 70 75 72 67 65 50 61 63 6b 61 67 65 73 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 purgePackages($rm->getLocalRepos
7c4c0 69 74 6f 72 79 28 29 2c 20 24 69 6d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 66 75 6c 6c 4c itory(),.$im);.}.}....if.($fullL
7c4e0 6f 61 64 20 26 26 20 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 7b 0a 24 oad.&&.isset($composerFile)).{.$
7c500 6c 6f 63 6b 46 69 6c 65 20 3d 20 22 6a 73 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 lockFile.=."json".===.pathinfo($
7c520 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e composerFile,.PATHINFO_EXTENSION
7c540 29 0a 3f 20 73 75 62 73 74 72 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 30 2c 20 2d 34 29 ).?.substr($composerFile,.0,.-4)
7c560 2e 27 6c 6f 63 6b 27 0a 3a 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 2e 20 27 2e 6c 6f 63 6b .'lock'.:.$composerFile...'.lock
7c580 27 3b 0a 24 6c 6f 63 6b 65 72 20 3d 20 6e 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 ';.$locker.=.new.Package\Locker(
7c5a0 24 69 6f 2c 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 6c 6f 63 6b 46 69 6c 65 2c 20 6e 65 77 $io,.new.JsonFile($lockFile,.new
7c5c0 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 .RemoteFilesystem($io,.$config))
7c5e0 2c 20 24 72 6d 2c 20 24 69 6d 2c 20 6d 64 35 5f 66 69 6c 65 28 24 63 6f 6d 70 6f 73 65 72 46 69 ,.$rm,.$im,.md5_file($composerFi
7c600 6c 65 29 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 4c 6f 63 6b 65 72 28 24 6c 6f 63 6b le));.$composer->setLocker($lock
7c620 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a er);.}..return.$composer;.}.....
7c640 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 70 6f ...protected.function.createRepo
7c660 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 sitoryManager(IOInterface.$io,.C
7c680 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 onfig.$config,.EventDispatcher.$
7c6a0 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 6d 20 3d 20 eventDispatcher.=.null).{.$rm.=.
7c6c0 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 new.RepositoryManager($io,.$conf
7c6e0 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 ig,.$eventDispatcher);.$rm->setR
7c700 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f 73 65 72 27 2c 20 27 43 6f 6d 70 epositoryClass('composer',.'Comp
7c720 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f oser\Repository\ComposerReposito
7c740 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 76 ry');.$rm->setRepositoryClass('v
7c760 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 cs',.'Composer\Repository\VcsRep
7c780 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 ository');.$rm->setRepositoryCla
7c7a0 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f ss('package',.'Composer\Reposito
7c7c0 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 ry\PackageRepository');.$rm->set
7c7e0 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 61 72 27 2c 20 27 43 6f 6d 70 6f 73 65 RepositoryClass('pear',.'Compose
7c800 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 r\Repository\PearRepository');.$
7c820 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 67 69 74 27 2c 20 27 43 rm->setRepositoryClass('git',.'C
7c840 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 omposer\Repository\VcsRepository
7c860 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 73 76 6e ');.$rm->setRepositoryClass('svn
7c880 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 ',.'Composer\Repository\VcsRepos
7c8a0 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 itory');.$rm->setRepositoryClass
7c8c0 28 27 70 65 72 66 6f 72 63 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 ('perforce',.'Composer\Repositor
7c8e0 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 y\VcsRepository');.$rm->setRepos
7c900 69 74 6f 72 79 43 6c 61 73 73 28 27 68 67 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 itoryClass('hg',.'Composer\Repos
7c920 69 74 6f 72 79 5c 56 63 73 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 24 72 6d 2d 3e 73 65 74 52 itory\VcsRepository');.$rm->setR
7c940 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 61 72 74 69 66 61 63 74 27 2c 20 27 43 6f 6d 70 epositoryClass('artifact',.'Comp
7c960 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f oser\Repository\ArtifactReposito
7c980 72 79 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ry');..return.$rm;.}......protec
7c9a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 ted.function.addLocalRepository(
7c9c0 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 RepositoryManager.$rm,.$vendorDi
7c9e0 72 29 0a 7b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 r).{.$rm->setLocalRepository(new
7ca00 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 .Repository\InstalledFilesystemR
7ca20 65 70 6f 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 76 65 6e 64 6f 72 44 69 epository(new.JsonFile($vendorDi
7ca40 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 29 29 29 3b r.'/composer/installed.json')));
7ca60 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 .}......protected.function.creat
7ca80 65 47 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c eGlobalComposer(IOInterface.$io,
7caa0 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 .Config.$config,.$disablePlugins
7cac0 29 0a 7b 0a 69 66 20 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 ).{.if.(realpath($config->get('h
7cae0 6f 6d 65 27 29 29 20 3d 3d 3d 20 67 65 74 63 77 64 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ome')).===.getcwd()).{.return;.}
7cb00 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 74 72 79 20 7b 0a 24 63 6f 6d 70 6f ..$composer.=.null;.try.{.$compo
7cb20 73 65 72 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 ser.=.self::createComposer($io,.
7cb40 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 $config->get('home')...'/compose
7cb60 72 2e 6a 73 6f 6e 27 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 2c 20 24 63 6f 6e 66 69 r.json',.$disablePlugins,.$confi
7cb80 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 g->get('home'),.false);.}.catch.
7cba0 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 44 65 62 (\Exception.$e).{.if.($io->isDeb
7cbc0 75 67 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 46 61 69 6c 65 64 20 ug()).{.$io->writeError('Failed.
7cbe0 74 6f 20 69 6e 69 74 69 61 6c 69 7a 65 20 67 6c 6f 62 61 6c 20 63 6f 6d 70 6f 73 65 72 3a 20 27 to.initialize.global.composer:.'
7cc00 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 .$e->getMessage());.}.}..return.
7cc20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $composer;.}........public.funct
7cc40 69 6f 6e 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 ion.createDownloadManager(IOInte
7cc60 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 rface.$io,.Config.$config,.Event
7cc80 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 Dispatcher.$eventDispatcher.=.nu
7cca0 6c 6c 29 0a 7b 0a 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 6f 6e 66 69 67 ll).{.$cache.=.null;.if.($config
7ccc0 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 20 3e 20 30 29 20 7b 0a ->get('cache-files-ttl').>.0).{.
7cce0 24 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d $cache.=.new.Cache($io,.$config-
7cd00 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 2d 7a 30 2d 39 >get('cache-files-dir'),.'a-z0-9
7cd20 5f 2e 2f 27 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 _./');.}..$dm.=.new.Downloader\D
7cd40 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 29 3b 0a 73 77 69 74 63 68 20 28 24 63 6f ownloadManager($io);.switch.($co
7cd60 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 nfig->get('preferred-install')).
7cd80 7b 0a 63 61 73 65 20 27 64 69 73 74 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 {.case.'dist':.$dm->setPreferDis
7cda0 74 28 74 72 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 t(true);.break;.case.'source':.$
7cdc0 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 62 72 65 61 6b dm->setPreferSource(true);.break
7cde0 3b 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b ;.case.'auto':.default:...break;
7ce00 0a 7d 0a 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 69 74 27 2c 20 6e 65 .}..$dm->setDownloader('git',.ne
7ce20 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 w.Downloader\GitDownloader($io,.
7ce40 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 $config));.$dm->setDownloader('s
7ce60 76 6e 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 vn',.new.Downloader\SvnDownloade
7ce80 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f r($io,.$config));.$dm->setDownlo
7cea0 61 64 65 72 28 27 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e ader('hg',.new.Downloader\HgDown
7cec0 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 loader($io,.$config));.$dm->setD
7cee0 6f 77 6e 6c 6f 61 64 65 72 28 27 70 65 72 66 6f 72 63 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f ownloader('perforce',.new.Downlo
7cf00 61 64 65 72 5c 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f ader\PerforceDownloader($io,.$co
7cf20 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 70 27 nfig));.$dm->setDownloader('zip'
7cf40 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 ,.new.Downloader\ZipDownloader($
7cf60 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 io,.$config,.$eventDispatcher,.$
7cf80 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 72 61 72 cache));.$dm->setDownloader('rar
7cfa0 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 ',.new.Downloader\RarDownloader(
7cfc0 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 $io,.$config,.$eventDispatcher,.
7cfe0 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 $cache));.$dm->setDownloader('ta
7d000 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 r',.new.Downloader\TarDownloader
7d020 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c ($io,.$config,.$eventDispatcher,
7d040 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 67 .$cache));.$dm->setDownloader('g
7d060 7a 69 70 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 47 7a 69 70 44 6f 77 6e 6c 6f 61 zip',.new.Downloader\GzipDownloa
7d080 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 der($io,.$config,.$eventDispatch
7d0a0 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 er,.$cache));.$dm->setDownloader
7d0c0 28 27 70 68 61 72 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f 77 6e ('phar',.new.Downloader\PharDown
7d0e0 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 loader($io,.$config,.$eventDispa
7d100 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 tcher,.$cache));.$dm->setDownloa
7d120 64 65 72 28 27 66 69 6c 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 44 der('file',.new.Downloader\FileD
7d140 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 ownloader($io,.$config,.$eventDi
7d160 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b spatcher,.$cache));..return.$dm;
7d180 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 .}........public.function.create
7d1a0 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 44 ArchiveManager(Config.$config,.D
7d1c0 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 20 3d 20 ownloader\DownloadManager.$dm.=.
7d1e0 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 6d 29 20 7b 0a 24 69 6f 20 null).{.if.(null.===.$dm).{.$io.
7d200 3d 20 6e 65 77 20 49 4f 5c 4e 75 6c 6c 49 4f 28 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 =.new.IO\NullIO();.$io->loadConf
7d220 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d iguration($config);.$dm.=.$this-
7d240 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e >createDownloadManager($io,.$con
7d260 66 69 67 29 3b 0a 7d 0a 0a 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 69 76 65 72 5c 41 72 63 68 fig);.}..$am.=.new.Archiver\Arch
7d280 69 76 65 4d 61 6e 61 67 65 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 64 64 41 72 63 68 69 76 65 iveManager($dm);.$am->addArchive
7d2a0 72 28 6e 65 77 20 41 72 63 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 69 76 65 72 29 3b 0a 0a 72 r(new.Archiver\PharArchiver);..r
7d2c0 65 74 75 72 6e 20 24 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 eturn.$am;.}........protected.fu
7d2e0 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 nction.createPluginManager(IOInt
7d300 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 erface.$io,.Composer.$composer,.
7d320 43 6f 6d 70 6f 73 65 72 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 29 Composer.$globalComposer.=.null)
7d340 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 67 .{.return.new.Plugin\PluginManag
7d360 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 67 6c 6f 62 61 6c 43 6f 6d 70 6f 73 er($io,.$composer,.$globalCompos
7d380 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 er);.}.....protected.function.cr
7d3a0 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 eateInstallationManager().{.retu
7d3c0 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e rn.new.Installer\InstallationMan
7d3e0 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ager();.}.......protected.functi
7d400 6f 6e 20 63 72 65 61 74 65 44 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 49 6e 73 74 61 on.createDefaultInstallers(Insta
7d420 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6d 2c 20 43 6f ller\InstallationManager.$im,.Co
7d440 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 mposer.$composer,.IOInterface.$i
7d460 6f 29 0a 7b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 o).{.$im->addInstaller(new.Insta
7d480 6c 6c 65 72 5c 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 ller\LibraryInstaller($io,.$comp
7d4a0 6f 73 65 72 2c 20 6e 75 6c 6c 29 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 oser,.null));.$im->addInstaller(
7d4c0 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c new.Installer\PearInstaller($io,
7d4e0 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 29 3b 0a 24 69 .$composer,.'pear-library'));.$i
7d500 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 50 6c m->addInstaller(new.Installer\Pl
7d520 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 29 3b 0a uginInstaller($io,.$composer));.
7d540 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c $im->addInstaller(new.Installer\
7d560 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d 0a 0a 0a MetapackageInstaller($io));.}...
7d580 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 75 72 67 65 50 61 63 6b 61 ...protected.function.purgePacka
7d5a0 67 65 73 28 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 ges(WritableRepositoryInterface.
7d5c0 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e $repo,.Installer\InstallationMan
7d5e0 61 67 65 72 20 24 69 6d 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 ager.$im).{.foreach.($repo->getP
7d600 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 69 ackages().as.$package).{.if.(!$i
7d620 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 m->isPackageInstalled($repo,.$pa
7d640 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 ckage)).{.$repo->removePackage($
7d660 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 package);.}.}.}.........public.s
7d680 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 tatic.function.create(IOInterfac
7d6a0 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 e.$io,.$config.=.null,.$disableP
7d6c0 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 lugins.=.false).{.$factory.=.new
7d6e0 20 73 74 61 74 69 63 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 .static();..return.$factory->cre
7d700 61 74 65 43 6f 6d 70 6f 73 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 61 62 ateComposer($io,.$config,.$disab
7d720 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lePlugins);.}.}.<?php...........
7d740 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 52 .namespace.Composer\Util;..use.R
7d760 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 52 ecursiveDirectoryIterator;.use.R
7d780 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 ecursiveIteratorIterator;.use.Sy
7d7a0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 0a mfony\Component\Finder\Finder;..
7d7c0 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 ....class.Filesystem.{.private.$
7d7e0 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f processExecutor;..public.functio
7d800 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 65 n.__construct(ProcessExecutor.$e
7d820 78 65 63 75 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 xecutor.=.null).{.$this->process
7d840 45 78 65 63 75 74 6f 72 20 3d 20 24 65 78 65 63 75 74 6f 72 20 3f 3a 20 6e 65 77 20 50 72 6f 63 Executor.=.$executor.?:.new.Proc
7d860 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f essExecutor();.}..public.functio
7d880 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 n.remove($file).{.if.(is_dir($fi
7d8a0 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 le)).{.return.$this->removeDirec
7d8c0 74 6f 72 79 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 tory($file);.}..if.(file_exists(
7d8e0 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 $file)).{.return.$this->unlink($
7d900 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a file);.}..return.false;.}.......
7d920 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 72 45 6d 70 74 79 28 24 64 69 72 .public.function.isDirEmpty($dir
7d940 29 0a 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d ).{.$finder.=.Finder::create().-
7d960 3e 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c >ignoreVCS(false).->ignoreDotFil
7d980 65 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 69 6e 28 24 64 69 72 29 3b es(false).->depth(0).->in($dir);
7d9a0 0a 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 66 69 6e 64 65 72 29 20 3d 3d 3d 20 30 3b 0a 7d ..return.count($finder).===.0;.}
7d9c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6d 70 74 79 44 69 72 65 63 74 6f 72 79 ..public.function.emptyDirectory
7d9e0 28 24 64 69 72 2c 20 24 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 20 3d 20 ($dir,.$ensureDirectoryExists.=.
7da00 74 72 75 65 29 0a 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 20 26 26 true).{.if.(file_exists($dir).&&
7da20 20 69 73 5f 6c 69 6e 6b 28 24 64 69 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 .is_link($dir)).{.$this->unlink(
7da40 24 64 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 $dir);.}..if.($ensureDirectoryEx
7da60 69 73 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 ists).{.$this->ensureDirectoryEx
7da80 69 73 74 73 28 24 64 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 64 69 72 28 24 64 69 72 29 29 ists($dir);.}..if.(is_dir($dir))
7daa0 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 0a 2d 3e .{.$finder.=.Finder::create().->
7dac0 69 67 6e 6f 72 65 56 43 53 28 66 61 6c 73 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 ignoreVCS(false).->ignoreDotFile
7dae0 73 28 66 61 6c 73 65 29 0a 2d 3e 64 65 70 74 68 28 30 29 0a 2d 3e 69 6e 28 24 64 69 72 29 3b 0a s(false).->depth(0).->in($dir);.
7db00 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 74 .foreach.($finder.as.$path).{.$t
7db20 68 69 73 2d 3e 72 65 6d 6f 76 65 28 28 73 74 72 69 6e 67 29 20 24 70 61 74 68 29 3b 0a 7d 0a 7d his->remove((string).$path);.}.}
7db40 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 .}.............public.function.r
7db60 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 emoveDirectory($directory).{.if.
7db80 28 24 74 68 69 73 2d 3e 69 73 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 ($this->isSymlinkedDirectory($di
7dba0 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b rectory)).{.return.$this->unlink
7dbc0 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a SymlinkedDirectory($directory);.
7dbe0 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 20 }..if.(!file_exists($directory).
7dc00 7c 7c 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e ||.!is_dir($directory)).{.return
7dc20 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5b .true;.}..if.(preg_match('{^(?:[
7dc40 61 2d 7a 5d 3a 29 3f 5b 2f 5c 5c 5c 5c 5d 2b 24 7d 69 27 2c 20 24 64 69 72 65 63 74 6f 72 79 29 a-z]:)?[/\\\\]+$}i',.$directory)
7dc60 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
7dc80 27 41 62 6f 72 74 69 6e 67 20 61 6e 20 61 74 74 65 6d 70 74 65 64 20 64 65 6c 65 74 69 6f 6e 20 'Aborting.an.attempted.deletion.
7dca0 6f 66 20 27 2e 24 64 69 72 65 63 74 6f 72 79 2e 27 2c 20 74 68 69 73 20 77 61 73 20 70 72 6f 62 of.'.$directory.',.this.was.prob
7dcc0 61 62 6c 79 20 6e 6f 74 20 69 6e 74 65 6e 64 65 64 2c 20 69 66 20 69 74 20 69 73 20 61 20 72 65 ably.not.intended,.if.it.is.a.re
7dce0 61 6c 20 75 73 65 20 63 61 73 65 20 70 6c 65 61 73 65 20 72 65 70 6f 72 74 20 69 74 2e 27 29 3b al.use.case.please.report.it.');
7dd00 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f .}..if.(!function_exists('proc_o
7dd20 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 pen')).{.return.$this->removeDir
7dd40 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 ectoryPhp($directory);.}..if.(de
7dd60 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
7dd80 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 64 69 72 20 2f 53 20 2f ')).{.$cmd.=.sprintf('rmdir./S./
7dda0 51 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 72 Q.%s',.ProcessExecutor::escape(r
7ddc0 65 61 6c 70 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a ealpath($directory)));.}.else.{.
7dde0 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 27 2c 20 50 72 6f 63 $cmd.=.sprintf('rm.-rf.%s',.Proc
7de00 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 64 69 72 65 63 74 6f 72 79 29 29 essExecutor::escape($directory))
7de20 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 ;.}..$result.=.$this->getProcess
7de40 28 29 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 30 ()->execute($cmd,.$output).===.0
7de60 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 24 72 65 73 ;....clearstatcache();..if.($res
7de80 75 6c 74 20 26 26 20 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 ult.&&.!file_exists($directory))
7dea0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .{.return.true;.}..return.$this-
7dec0 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 3b >removeDirectoryPhp($directory);
7dee0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 .}............public.function.re
7df00 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 moveDirectoryPhp($directory).{.$
7df20 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 it.=.new.RecursiveDirectoryItera
7df40 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f tor($directory,.RecursiveDirecto
7df60 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 ryIterator::SKIP_DOTS);.$ri.=.ne
7df80 77 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c w.RecursiveIteratorIterator($it,
7dfa0 20 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 43 48 49 4c .RecursiveIteratorIterator::CHIL
7dfc0 44 5f 46 49 52 53 54 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 D_FIRST);..foreach.($ri.as.$file
7dfe0 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 69 73 2d ).{.if.($file->isDir()).{.$this-
7e000 3e 72 6d 64 69 72 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 20 >rmdir($file->getPathname());.}.
7e020 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 50 else.{.$this->unlink($file->getP
7e040 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 athname());.}.}..return.$this->r
7e060 6d 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 mdir($directory);.}..public.func
7e080 74 69 6f 6e 20 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 64 69 72 65 tion.ensureDirectoryExists($dire
7e0a0 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 ctory).{.if.(!is_dir($directory)
7e0c0 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 63 74 6f 72 79 29 29 ).{.if.(file_exists($directory))
7e0e0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a .{.throw.new.\RuntimeException(.
7e100 24 64 69 72 65 63 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 $directory.'.exists.and.is.not.a
7e120 20 64 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 .directory.'.);.}.if.(!@mkdir($d
7e140 69 72 65 63 74 6f 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e irectory,.0777,.true)).{.throw.n
7e160 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 ew.\RuntimeException(.$directory
7e180 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 .'.does.not.exist.and.could.not.
7e1a0 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 be.created.'.);.}.}.}..........p
7e1c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 28 24 70 61 74 68 29 0a 7b 0a 69 ublic.function.unlink($path).{.i
7e1e0 66 20 28 21 40 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e f.(!@$this->unlinkImplementation
7e200 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 ($path)).{...if.(!defined('PHP_W
7e220 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 INDOWS_VERSION_BUILD').||.(uslee
7e240 70 28 33 35 30 30 30 30 29 20 26 26 20 21 40 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 49 6d 70 6c p(350000).&&.!@$this->unlinkImpl
7e260 65 6d 65 6e 74 61 74 69 6f 6e 28 24 70 61 74 68 29 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 ementation($path))).{.$error.=.e
7e280 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 rror_get_last();.$message.=.'Cou
7e2a0 6c 64 20 6e 6f 74 20 64 65 6c 65 74 65 20 27 2e 24 70 61 74 68 2e 27 3a 20 27 20 2e 20 40 24 65 ld.not.delete.'.$path.':.'...@$e
7e2c0 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 rror['message'];.if.(defined('PH
7e2e0 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 6d 65 P_WINDOWS_VERSION_BUILD')).{.$me
7e300 73 73 61 67 65 20 2e 3d 20 22 5c 6e 54 68 69 73 20 63 61 6e 20 62 65 20 64 75 65 20 74 6f 20 61 ssage..=."\nThis.can.be.due.to.a
7e320 6e 20 61 6e 74 69 76 69 72 75 73 20 6f 72 20 74 68 65 20 57 69 6e 64 6f 77 73 20 53 65 61 72 63 n.antivirus.or.the.Windows.Searc
7e340 68 20 49 6e 64 65 78 65 72 20 6c 6f 63 6b 69 6e 67 20 74 68 65 20 66 69 6c 65 20 77 68 69 6c 65 h.Indexer.locking.the.file.while
7e360 20 74 68 65 79 20 61 72 65 20 61 6e 61 6c 79 7a 65 64 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 .they.are.analyzed";.}..throw.ne
7e380 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d w.\RuntimeException($message);.}
7e3a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .}..return.true;.}..........publ
7e3c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 6d 64 69 72 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 ic.function.rmdir($path).{.if.(!
7e3e0 40 72 6d 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 @rmdir($path)).{...if.(!defined(
7e400 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 'PHP_WINDOWS_VERSION_BUILD').||.
7e420 28 75 73 6c 65 65 70 28 33 35 30 30 30 30 29 20 26 26 20 21 40 72 6d 64 69 72 28 24 70 61 74 68 (usleep(350000).&&.!@rmdir($path
7e440 29 29 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b ))).{.$error.=.error_get_last();
7e460 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f 74 20 64 65 6c 65 74 65 20 27 2e .$message.=.'Could.not.delete.'.
7e480 24 70 61 74 68 2e 27 3a 20 27 20 2e 20 40 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 3b $path.':.'...@$error['message'];
7e4a0 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
7e4c0 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 54 68 69 73 N_BUILD')).{.$message..=."\nThis
7e4e0 20 63 61 6e 20 62 65 20 64 75 65 20 74 6f 20 61 6e 20 61 6e 74 69 76 69 72 75 73 20 6f 72 20 74 .can.be.due.to.an.antivirus.or.t
7e500 68 65 20 57 69 6e 64 6f 77 73 20 53 65 61 72 63 68 20 49 6e 64 65 78 65 72 20 6c 6f 63 6b 69 6e he.Windows.Search.Indexer.lockin
7e520 67 20 74 68 65 20 66 69 6c 65 20 77 68 69 6c 65 20 74 68 65 79 20 61 72 65 20 61 6e 61 6c 79 7a g.the.file.while.they.are.analyz
7e540 65 64 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ed";.}..throw.new.\RuntimeExcept
7e560 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b ion($message);.}.}..return.true;
7e580 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 .}...........public.function.cop
7e5a0 79 54 68 65 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a yThenRemove($source,.$target).{.
7e5c0 69 66 20 28 21 69 73 5f 64 69 72 28 24 73 6f 75 72 63 65 29 29 20 7b 0a 63 6f 70 79 28 24 73 6f if.(!is_dir($source)).{.copy($so
7e5e0 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 73 urce,.$target);.$this->unlink($s
7e600 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 ource);..return;.}..$it.=.new.Re
7e620 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 73 6f 75 72 63 65 cursiveDirectoryIterator($source
7e640 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 4b ,.RecursiveDirectoryIterator::SK
7e660 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 49 74 65 IP_DOTS);.$ri.=.new.RecursiveIte
7e680 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 76 65 49 74 65 72 ratorIterator($it,.RecursiveIter
7e6a0 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 29 3b 0a 24 74 68 69 73 atorIterator::SELF_FIRST);.$this
7e6c0 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 29 ->ensureDirectoryExists($target)
7e6e0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 74 61 72 ;..foreach.($ri.as.$file).{.$tar
7e700 67 65 74 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 getPath.=.$target...DIRECTORY_SE
7e720 50 41 52 41 54 4f 52 20 2e 20 24 72 69 2d 3e 67 65 74 53 75 62 50 61 74 68 4e 61 6d 65 28 29 3b PARATOR...$ri->getSubPathName();
7e740 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e .if.($file->isDir()).{.$this->en
7e760 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 50 61 74 68 29 sureDirectoryExists($targetPath)
7e780 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 6f 70 79 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 ;.}.else.{.copy($file->getPathna
7e7a0 6d 65 28 29 2c 20 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e me(),.$targetPath);.}.}..$this->
7e7c0 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 73 6f 75 72 63 65 29 3b 0a 7d 0a 0a removeDirectoryPhp($source);.}..
7e7e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 public.function.rename($source,.
7e800 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 40 72 65 6e 61 6d 65 28 $target).{.if.(true.===.@rename(
7e820 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a $source,.$target)).{.return;.}..
7e840 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 if.(!function_exists('proc_open'
7e860 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 65 6d 6f 76 )).{.return.$this->copyThenRemov
7e880 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 e($source,.$target);.}..if.(defi
7e8a0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
7e8c0 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 78 63 6f 70 79 20 ).{...$command.=.sprintf('xcopy.
7e8e0 25 73 20 25 73 20 2f 45 20 2f 49 20 2f 51 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 %s.%s./E./I./Q',.ProcessExecutor
7e900 3a 3a 65 73 63 61 70 65 28 24 73 6f 75 72 63 65 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 ::escape($source),.ProcessExecut
7e920 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 or::escape($target));.$result.=.
7e940 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 $this->processExecutor->execute(
7e960 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 $command,.$output);....clearstat
7e980 63 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 cache();..if.(0.===.$result).{.$
7e9a0 74 68 69 73 2d 3e 72 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a this->remove($source);..return;.
7e9c0 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 }.}.else.{.....$command.=.sprint
7e9e0 66 28 27 6d 76 20 25 73 20 25 73 27 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 f('mv.%s.%s',.ProcessExecutor::e
7ea00 73 63 61 70 65 28 24 73 6f 75 72 63 65 29 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a scape($source),.ProcessExecutor:
7ea20 3a 65 73 63 61 70 65 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 :escape($target));.$result.=.$th
7ea40 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f is->processExecutor->execute($co
7ea60 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 mmand,.$output);....clearstatcac
7ea80 68 65 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 he();..if.(0.===.$result).{.retu
7eaa0 72 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 6e 52 rn;.}.}..return.$this->copyThenR
7eac0 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a emove($source,.$target);.}......
7eae0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 .....public.function.findShortes
7eb00 74 50 61 74 68 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d tPath($from,.$to,.$directories.=
7eb20 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 .false).{.if.(!$this->isAbsolute
7eb40 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 Path($from).||.!$this->isAbsolut
7eb60 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ePath($to)).{.throw.new.\Invalid
7eb80 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d ArgumentException(sprintf('$from
7eba0 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c .(%s).and.$to.(%s).must.be.absol
7ebc0 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 ute.paths.',.$from,.$to));.}..$f
7ebe0 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 rom.=.lcfirst($this->normalizePa
7ec00 74 68 28 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d th($from));.$to.=.lcfirst($this-
7ec20 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 64 69 72 65 >normalizePath($to));..if.($dire
7ec40 63 74 6f 72 69 65 73 29 20 7b 0a 24 66 72 6f 6d 20 2e 3d 20 27 2f 64 75 6d 6d 79 5f 66 69 6c 65 ctories).{.$from..=.'/dummy_file
7ec60 27 3b 0a 7d 0a 0a 69 66 20 28 64 69 72 6e 61 6d 65 28 24 66 72 6f 6d 29 20 3d 3d 3d 20 64 69 72 ';.}..if.(dirname($from).===.dir
7ec80 6e 61 6d 65 28 24 74 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2e 2f 27 2e 62 61 73 65 6e 61 6d name($to)).{.return.'./'.basenam
7eca0 65 28 24 74 6f 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 e($to);.}..$commonPath.=.$to;.wh
7ecc0 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 ile.(strpos($from.'/',.$commonPa
7ece0 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e th.'/').!==.0.&&.'/'.!==.$common
7ed00 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 Path.&&.!preg_match('{^[a-z]:/?$
7ed20 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 }i',.$commonPath)).{.$commonPath
7ed40 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c 20 27 .=.strtr(dirname($commonPath),.'
7ed60 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 \\',.'/');.}..if.(0.!==.strpos($
7ed80 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 24 63 from,.$commonPath).||.'/'.===.$c
7eda0 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 6f 3b 0a 7d 0a 0a 24 63 6f 6d ommonPath).{.return.$to;.}..$com
7edc0 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 monPath.=.rtrim($commonPath,.'/'
7ede0 29 20 2e 20 27 2f 27 3b 0a 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 )...'/';.$sourcePathDepth.=.subs
7ee00 74 72 5f 63 6f 75 6e 74 28 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 tr_count(substr($from,.strlen($c
7ee20 6f 6d 6d 6f 6e 50 61 74 68 29 29 2c 20 27 2f 27 29 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f ommonPath)),.'/');.$commonPathCo
7ee40 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2e 2e 2f 27 2c 20 24 73 6f 75 72 63 65 50 61 de.=.str_repeat('../',.$sourcePa
7ee60 74 68 44 65 70 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 43 6f thDepth);..return.($commonPathCo
7ee80 64 65 20 2e 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 de...substr($to,.strlen($commonP
7eea0 61 74 68 29 29 29 20 3f 3a 20 27 2e 2f 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ath))).?:.'./';.}...........publ
7eec0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 ic.function.findShortestPathCode
7eee0 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3d 20 66 61 6c 73 ($from,.$to,.$directories.=.fals
7ef00 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 e).{.if.(!$this->isAbsolutePath(
7ef20 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 $from).||.!$this->isAbsolutePath
7ef40 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d ($to)).{.throw.new.\InvalidArgum
7ef60 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 73 29 entException(sprintf('$from.(%s)
7ef80 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 20 70 .and.$to.(%s).must.be.absolute.p
7efa0 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d 20 3d aths.',.$from,.$to));.}..$from.=
7efc0 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 .lcfirst($this->normalizePath($f
7efe0 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d rom));.$to.=.lcfirst($this->norm
7f000 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d 20 3d 3d 3d 20 alizePath($to));..if.($from.===.
7f020 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3f 20 27 5f 5f $to).{.return.$directories.?.'__
7f040 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 DIR__'.:.'__FILE__';.}..$commonP
7f060 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2e 27 ath.=.$to;.while.(strpos($from.'
7f080 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 26 26 20 27 2f /',.$commonPath.'/').!==.0.&&.'/
7f0a0 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 '.!==.$commonPath.&&.!preg_match
7f0c0 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 26 ('{^[a-z]:/?$}i',.$commonPath).&
7f0e0 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d 6f 6e &.'.'.!==.$commonPath).{.$common
7f100 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 Path.=.strtr(dirname($commonPath
7f120 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 ),.'\\',.'/');.}..if.(0.!==.strp
7f140 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d os($from,.$commonPath).||.'/'.==
7f160 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e =.$commonPath.||.'.'.===.$common
7f180 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c 20 74 Path).{.return.var_export($to,.t
7f1a0 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 63 6f rue);.}..$commonPath.=.rtrim($co
7f1c0 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 mmonPath,.'/')...'/';.if.(strpos
7f1e0 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e ($to,.$from.'/').===.0).{.return
7f200 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 62 73 74 72 28 .'__DIR__...'.var_export(substr(
7f220 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 73 $to,.strlen($from)),.true);.}.$s
7f240 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 73 75 ourcePathDepth.=.substr_count(su
7f260 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 bstr($from,.strlen($commonPath))
7f280 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e 50 61 ,.'/').+.$directories;.$commonPa
7f2a0 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d 65 28 27 2c 20 thCode.=.str_repeat('dirname(',.
7f2c0 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 72 5f $sourcePathDepth).'__DIR__'.str_
7f2e0 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b 0a 24 repeat(')',.$sourcePathDepth);.$
7f300 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 relTarget.=.substr($to,.strlen($
7f320 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 61 74 commonPath));..return.$commonPat
7f340 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 20 3f 20 27 2e hCode...(strlen($relTarget).?.'.
7f360 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 72 67 65 74 2c '...var_export('/'...$relTarget,
7f380 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .true).:.'');.}........public.fu
7f3a0 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 72 nction.isAbsolutePath($path).{.r
7f3c0 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f eturn.substr($path,.0,.1).===.'/
7f3e0 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 3a 27 '.||.substr($path,.1,.1).===.':'
7f400 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a ;.}..........public.function.siz
7f420 65 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 70 61 74 e($path).{.if.(!file_exists($pat
7f440 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f h)).{.throw.new.\RuntimeExceptio
7f460 6e 28 22 24 70 61 74 68 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b 0a 7d 0a 69 66 n("$path.does.not.exist.");.}.if
7f480 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .(is_dir($path)).{.return.$this-
7f4a0 3e 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e >directorySize($path);.}..return
7f4c0 20 66 69 6c 65 73 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .filesize($path);.}.........publ
7f4e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 ic.function.normalizePath($path)
7f500 0a 7b 0a 24 70 61 72 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 .{.$parts.=.array();.$path.=.str
7f520 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 70 72 65 66 69 78 20 3d 20 tr($path,.'\\',.'/');.$prefix.=.
7f540 27 27 3b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 70 72 65 67 '';.$absolute.=.false;..if.(preg
7f560 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 30 2d 39 61 2d 7a 5d 2b 3a 28 3f 3a 2f 2f 28 3f 3a 5b 61 2d _match('{^([0-9a-z]+:(?://(?:[a-
7f580 7a 5d 3a 29 3f 29 3f 29 7d 69 27 2c 20 24 70 61 74 68 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 z]:)?)?)}i',.$path,.$match)).{.$
7f5a0 70 72 65 66 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 prefix.=.$match[1];.$path.=.subs
7f5c0 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 29 3b 0a 7d 0a 0a 69 tr($path,.strlen($prefix));.}..i
7f5e0 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 29 20 f.(substr($path,.0,.1).===.'/').
7f600 7b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 74 72 75 65 3b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 {.$absolute.=.true;.$path.=.subs
7f620 74 72 28 24 70 61 74 68 2c 20 31 29 3b 0a 7d 0a 0a 24 75 70 20 3d 20 66 61 6c 73 65 3b 0a 66 6f tr($path,.1);.}..$up.=.false;.fo
7f640 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 20 61 73 20 24 63 reach.(explode('/',.$path).as.$c
7f660 68 75 6e 6b 29 20 7b 0a 69 66 20 28 27 2e 2e 27 20 3d 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 28 hunk).{.if.('..'.===.$chunk.&&.(
7f680 24 61 62 73 6f 6c 75 74 65 20 7c 7c 20 24 75 70 29 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 28 24 $absolute.||.$up)).{.array_pop($
7f6a0 70 61 72 74 73 29 3b 0a 24 75 70 20 3d 20 21 28 65 6d 70 74 79 28 24 70 61 72 74 73 29 20 7c 7c parts);.$up.=.!(empty($parts).||
7f6c0 20 27 2e 2e 27 20 3d 3d 3d 20 65 6e 64 28 24 70 61 72 74 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 .'..'.===.end($parts));.}.elseif
7f6e0 20 28 27 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 27 27 20 21 3d 3d 20 24 63 68 75 6e .('.'.!==.$chunk.&&.''.!==.$chun
7f700 6b 29 20 7b 0a 24 70 61 72 74 73 5b 5d 20 3d 20 24 63 68 75 6e 6b 3b 0a 24 75 70 20 3d 20 27 2e k).{.$parts[].=.$chunk;.$up.=.'.
7f720 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 .'.!==.$chunk;.}.}..return.$pref
7f740 69 78 2e 28 24 61 62 73 6f 6c 75 74 65 20 3f 20 27 2f 27 20 3a 20 27 27 29 2e 69 6d 70 6c 6f 64 ix.($absolute.?.'/'.:.'').implod
7f760 65 28 27 2f 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 e('/',.$parts);.}........public.
7f780 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 63 61 6c 50 61 74 68 28 24 70 61 74 static.function.isLocalPath($pat
7f7a0 68 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b h).{.return.(bool).preg_match('{
7f7c0 5e 28 66 69 6c 65 3a 2f 2f 7c 2f 7c 5b 61 2d 7a 5d 3a 5b 5c 5c 5c 5c 2f 5d 7c 5c 2e 5c 2e 5b 5c ^(file://|/|[a-z]:[\\\\/]|\.\.[\
7f7e0 5c 5c 5c 2f 5d 7c 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 5b 5c 5c 5c 5c 2f 5d 29 7d 69 27 2c 20 24 \\\/]|[a-z0-9_.-]+[\\\\/])}i',.$
7f800 70 61 74 68 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e path);.}..public.static.function
7f820 20 67 65 74 50 6c 61 74 66 6f 72 6d 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 64 65 .getPlatformPath($path).{.if.(de
7f840 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 fined('PHP_WINDOWS_VERSION_BUILD
7f860 27 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 3f ')).{.$path.=.preg_replace('{^(?
7f880 3a 66 69 6c 65 3a 2f 2f 2f 28 5b 61 2d 7a 5d 29 2f 29 7d 69 27 2c 20 27 66 69 6c 65 3a 2f 2f 24 :file:///([a-z])/)}i',.'file://$
7f8a0 31 3a 2f 27 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 1:/',.$path);.}..return.preg_rep
7f8c0 6c 61 63 65 28 27 7b 5e 66 69 6c 65 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a lace('{^file://}i',.'',.$path);.
7f8e0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 53 }..protected.function.directoryS
7f900 69 7a 65 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 ize($directory).{.$it.=.new.Recu
7f920 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 rsiveDirectoryIterator($director
7f940 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 53 y,.RecursiveDirectoryIterator::S
7f960 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 49 74 KIP_DOTS);.$ri.=.new.RecursiveIt
7f980 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 76 65 49 74 65 eratorIterator($it,.RecursiveIte
7f9a0 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 43 48 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 24 73 ratorIterator::CHILD_FIRST);..$s
7f9c0 69 7a 65 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 ize.=.0;.foreach.($ri.as.$file).
7f9e0 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 24 73 69 7a 65 20 2b {.if.($file->isFile()).{.$size.+
7fa00 3d 20 24 66 69 6c 65 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 =.$file->getSize();.}.}..return.
7fa20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 $size;.}..protected.function.get
7fa40 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 Process().{.return.new.ProcessEx
7fa60 65 63 75 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ecutor;.}...........private.func
7fa80 74 69 6f 6e 20 75 6e 6c 69 6e 6b 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f 6e 28 24 70 61 74 68 29 tion.unlinkImplementation($path)
7faa0 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 .{.if.(defined('PHP_WINDOWS_VERS
7fac0 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 69 73 5f 64 69 72 28 24 70 61 74 68 29 20 26 26 20 ION_BUILD').&&.is_dir($path).&&.
7fae0 69 73 5f 6c 69 6e 6b 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 72 6d 64 69 72 28 24 is_link($path)).{.return.rmdir($
7fb00 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 70 61 74 68 29 3b 0a path);.}..return.unlink($path);.
7fb20 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 79 6d 6c 69 6e 6b 65 64 44 }..private.function.isSymlinkedD
7fb40 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 irectory($directory).{.if.(!is_d
7fb60 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a ir($directory)).{.return.false;.
7fb80 7d 0a 0a 24 72 65 73 6f 6c 76 65 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 53 79 6d }..$resolved.=.$this->resolveSym
7fba0 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c 69 6e 6b 28 24 64 69 72 65 63 74 6f 72 linkedDirectorySymlink($director
7fbc0 79 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6c 69 6e 6b 28 24 72 65 73 6f 6c 76 65 64 29 3b 0a y);..return.is_link($resolved);.
7fbe0 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 6e 6c 69 6e 6b 53 }.......private.function.unlinkS
7fc00 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a ymlinkedDirectory($directory).{.
7fc20 24 72 65 73 6f 6c 76 65 64 20 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 53 79 6d 6c 69 6e $resolved.=.$this->resolveSymlin
7fc40 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c 69 6e 6b 28 24 64 69 72 65 63 74 6f 72 79 29 3b kedDirectorySymlink($directory);
7fc60 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 6e 6c 69 6e 6b 28 24 72 65 73 6f 6c 76 65 64 ..return.$this->unlink($resolved
7fc80 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 );.}.........private.function.re
7fca0 73 6f 6c 76 65 53 79 6d 6c 69 6e 6b 65 64 44 69 72 65 63 74 6f 72 79 53 79 6d 6c 69 6e 6b 28 24 solveSymlinkedDirectorySymlink($
7fcc0 70 61 74 68 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 6e 61 6d pathname).{.if.(!is_dir($pathnam
7fce0 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 24 72 65 73 6f e)).{.return.$pathname;.}..$reso
7fd00 6c 76 65 64 20 3d 20 72 74 72 69 6d 28 24 70 61 74 68 6e 61 6d 65 2c 20 27 2f 27 29 3b 0a 0a 69 lved.=.rtrim($pathname,.'/');..i
7fd20 66 20 28 21 73 74 72 6c 65 6e 28 24 72 65 73 6f 6c 76 65 64 29 29 20 7b 0a 72 65 74 75 72 6e 20 f.(!strlen($resolved)).{.return.
7fd40 24 70 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 6f 6c 76 65 64 3b 0a $pathname;.}..return.$resolved;.
7fd60 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
7fd80 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 omposer\Util;..use.Composer\IO\I
7fda0 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b OInterface;.use.Composer\Config;
7fdc0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f .use.Composer\Downloader\Transpo
7fde0 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a rtException;.use.Composer\Json\J
7fe00 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b 0a 70 72 6f 74 sonFile;.....class.GitHub.{.prot
7fe20 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 ected.$io;.protected.$config;.pr
7fe40 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d otected.$process;.protected.$rem
7fe60 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 oteFilesystem;..........public.f
7fe80 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 unction.__construct(IOInterface.
7fea0 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 $io,.Config.$config,.ProcessExec
7fec0 75 74 6f 72 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 utor.$process.=.null,.RemoteFile
7fee0 73 79 73 74 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 system.$remoteFilesystem.=.null)
7ff00 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 .{.$this->io.=.$io;.$this->confi
7ff20 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 g.=.$config;.$this->process.=.$p
7ff40 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 rocess.?:.new.ProcessExecutor;.$
7ff60 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 72 65 6d 6f 74 65 this->remoteFilesystem.=.$remote
7ff80 46 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 Filesystem.?:.new.RemoteFilesyst
7ffa0 65 6d 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 em($io,.$config);.}........publi
7ffc0 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 6f 72 69 67 69 c.function.authorizeOAuth($origi
7ffe0 6e 55 72 6c 29 0a 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 69 6e 55 72 6c nUrl).{.if.(!in_array($originUrl
80000 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 6f 6d ,.$this->config->get('github-dom
80020 61 69 6e 73 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 ains'))).{.return.false;.}....if
80040 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.===.$this->process->execute(
80060 27 67 69 74 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2e 61 63 63 65 73 73 74 6f 6b 65 6e 27 2c 'git.config.github.accesstoken',
80080 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 .$output)).{.$this->io->setAuthe
800a0 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 74 72 69 6d 28 24 6f 75 74 70 ntication($originUrl,.trim($outp
800c0 75 74 29 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b 0a 0a 72 65 74 75 72 6e 20 74 ut),.'x-oauth-basic');..return.t
800e0 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a rue;.}..return.false;.}.........
80100 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 ..public.function.authorizeOAuth
80120 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 Interactively($originUrl,.$messa
80140 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 74 68 ge.=.null).{.if.($message).{.$th
80160 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a is->io->writeError($message);.}.
80180 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 28 27 .$this->io->writeError(sprintf('
801a0 41 20 74 6f 6b 65 6e 20 77 69 6c 6c 20 62 65 20 63 72 65 61 74 65 64 20 61 6e 64 20 73 74 6f 72 A.token.will.be.created.and.stor
801c0 65 64 20 69 6e 20 22 25 73 22 2c 20 79 6f 75 72 20 70 61 73 73 77 6f 72 64 20 77 69 6c 6c 20 6e ed.in."%s",.your.password.will.n
801e0 65 76 65 72 20 62 65 20 73 74 6f 72 65 64 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e ever.be.stored',.$this->config->
80200 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 67 65 74 4e 61 6d 65 28 29 getAuthConfigSource()->getName()
80220 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 54 6f 20 72 65 ));.$this->io->writeError('To.re
80240 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 69 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 voke.access.to.this.token.you.ca
80260 6e 20 76 69 73 69 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 n.visit.https://github.com/setti
80280 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 0a 24 6f 74 70 20 3d 20 6e 75 6c 6c ngs/applications');..$otp.=.null
802a0 3b 0a 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 77 68 69 6c 65 20 28 24 ;.$attemptCounter.=.0;..while.($
802c0 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 20 3c 20 35 29 20 7b 0a 74 72 79 20 7b 0a 24 72 attemptCounter++.<.5).{.try.{.$r
802e0 65 73 70 6f 6e 73 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 54 6f 6b 65 6e 28 24 6f 72 esponse.=.$this->createToken($or
80300 69 67 69 6e 55 72 6c 2c 20 24 6f 74 70 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f iginUrl,.$otp);.}.catch.(Transpo
80320 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 0a 20 0a 20 69 66 20 28 69 6e 5f 61 rtException.$e).{.......if.(in_a
80340 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 33 2c 20 34 rray($e->getCode(),.array(403,.4
80360 30 31 29 29 29 20 7b 0a 0a 20 69 66 20 28 34 30 31 20 3d 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 01))).{...if.(401.===.$e->getCod
80380 65 28 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 e().&&.$this->io->hasAuthenticat
803a0 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 0a 20 24 6f 74 70 20 3d 20 24 74 68 69 ion($originUrl)).{...$otp.=.$thi
803c0 73 2d 3e 63 68 65 63 6b 54 77 6f 46 61 63 74 6f 72 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 s->checkTwoFactorAuthentication(
803e0 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d $e->getHeaders());...if.(null.!=
80400 3d 20 24 6f 74 70 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 34 30 31 =.$otp).{.continue;.}.}..if.(401
80420 20 3d 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d .===.$e->getCode()).{.$this->io-
80440 3e 77 72 69 74 65 45 72 72 6f 72 28 27 42 61 64 20 63 72 65 64 65 6e 74 69 61 6c 73 2e 27 29 3b >writeError('Bad.credentials.');
80460 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 .}.else.{.$this->io->writeError(
80480 27 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 6c 6f 67 69 6e 20 61 74 74 65 6d 70 74 'Maximum.number.of.login.attempt
804a0 73 20 65 78 63 65 65 64 65 64 2e 20 50 6c 65 61 73 65 20 74 72 79 20 61 67 61 69 6e 20 6c 61 74 s.exceeded..Please.try.again.lat
804c0 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 er.');.}..$this->io->writeError(
804e0 27 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6d 61 6e 75 61 6c 6c 79 20 63 72 65 61 74 65 20 61 20 'You.can.also.manually.create.a.
80500 70 65 72 73 6f 6e 61 6c 20 74 6f 6b 65 6e 20 61 74 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 personal.token.at.https://github
80520 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 3b 0a 24 74 .com/settings/applications');.$t
80540 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 41 64 64 20 69 74 20 75 73 69 6e his->io->writeError('Add.it.usin
80560 67 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 67 69 74 68 75 62 2d 6f 61 75 74 68 2e g."composer.config.github-oauth.
80580 67 69 74 68 75 62 2e 63 6f 6d 20 3c 74 6f 6b 65 6e 3e 22 27 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 github.com.<token>"');..continue
805a0 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 ;.}..throw.$e;.}..$this->io->set
805c0 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 72 65 73 70 Authentication($originUrl,.$resp
805e0 6f 6e 73 65 5b 27 74 6f 6b 65 6e 27 5d 2c 20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 29 3b onse['token'],.'x-oauth-basic');
80600 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 .$this->config->getConfigSource(
80620 29 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f )->removeConfigSetting('github-o
80640 61 75 74 68 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e auth.'.$originUrl);...$this->con
80660 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 fig->getAuthConfigSource()->addC
80680 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6f 72 onfigSetting('github-oauth.'.$or
806a0 69 67 69 6e 55 72 6c 2c 20 24 72 65 73 70 6f 6e 73 65 5b 27 74 6f 6b 65 6e 27 5d 29 3b 0a 0a 72 iginUrl,.$response['token']);..r
806c0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d eturn.true;.}..throw.new.\Runtim
806e0 65 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 47 69 74 48 75 62 20 63 72 65 64 65 eException("Invalid.GitHub.crede
80700 6e 74 69 61 6c 73 20 35 20 74 69 6d 65 73 20 69 6e 20 61 20 72 6f 77 2c 20 61 62 6f 72 74 69 6e ntials.5.times.in.a.row,.abortin
80720 67 2e 22 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 g.");.}..private.function.create
80740 54 6f 6b 65 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6f 74 70 20 3d 20 6e 75 6c 6c 29 0a 7b Token($originUrl,.$otp.=.null).{
80760 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 74 70 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 6f .if.(null.===.$otp.||.!$this->io
80780 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 ->hasAuthentication($originUrl))
807a0 20 7b 0a 24 75 73 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 .{.$username.=.$this->io->ask('U
807c0 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e sername:.');.$password.=.$this->
807e0 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 io->askAndHideAnswer('Password:.
80800 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f ');..$this->io->setAuthenticatio
80820 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 73 73 77 6f n($originUrl,.$username,.$passwo
80840 72 64 29 3b 0a 7d 0a 0a 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e rd);.}..$headers.=.array('Conten
80860 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 27 29 3b 0a 69 66 20 28 t-Type:.application/json');.if.(
80880 24 6f 74 70 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 58 2d 47 69 74 48 75 62 2d 4f $otp).{.$headers[].=.'X-GitHub-O
808a0 54 50 3a 20 27 20 2e 20 24 6f 74 70 3b 0a 7d 0a 0a 24 6e 6f 74 65 20 3d 20 27 43 6f 6d 70 6f 73 TP:.'...$otp;.}..$note.=.'Compos
808c0 65 72 27 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 er';.if.($this->config->get('git
808e0 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 27 29 20 3d 3d 3d 20 74 72 75 65 20 26 hub-expose-hostname').===.true.&
80900 26 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 &.0.===.$this->process->execute(
80920 27 68 6f 73 74 6e 61 6d 65 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6e 6f 74 65 20 2e 3d 'hostname',.$output)).{.$note..=
80940 20 27 20 6f 6e 20 27 20 2e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 24 6e 6f 74 65 .'.on.'...trim($output);.}.$note
80960 20 2e 3d 20 27 20 5b 27 20 2e 20 64 61 74 65 28 27 59 6d 64 48 69 73 27 29 20 2e 20 27 5d 27 3b ..=.'.['...date('YmdHis')...']';
80980 0a 0a 24 61 70 69 55 72 6c 20 3d 20 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 6f ..$apiUrl.=.('github.com'.===.$o
809a0 72 69 67 69 6e 55 72 6c 29 20 3f 20 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 20 3a 20 24 riginUrl).?.'api.github.com'.:.$
809c0 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f 61 70 69 2f 76 33 27 3b 0a 0a 24 6a 73 6f 6e 20 3d 20 originUrl...'/api/v3';..$json.=.
809e0 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 6f 6e 74 $this->remoteFilesystem->getCont
80a00 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 68 74 74 70 73 3a 2f 2f 27 2e 20 24 61 70 ents($originUrl,.'https://'..$ap
80a20 69 55 72 6c 20 2e 20 27 2f 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 27 2c 20 66 61 6c 73 65 2c iUrl...'/authorizations',.false,
80a40 20 61 72 72 61 79 28 0a 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 20 3d 3e 20 .array(.'retry-auth-failure'.=>.
80a60 66 61 6c 73 65 2c 0a 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 false,.'http'.=>.array(.'method'
80a80 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f 6e 27 20 3d 3e .=>.'POST',.'follow_location'.=>
80aa0 20 66 61 6c 73 65 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 24 68 65 61 64 65 72 73 2c 0a 27 63 .false,.'header'.=>.$headers,.'c
80ac0 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 61 72 72 61 79 28 0a 27 73 ontent'.=>.json_encode(array(.'s
80ae0 63 6f 70 65 73 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 70 6f 27 29 2c 0a 27 6e 6f 74 65 27 20 copes'.=>.array('repo'),.'note'.
80b00 3d 3e 20 24 6e 6f 74 65 2c 0a 27 6e 6f 74 65 5f 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3a 2f =>.$note,.'note_url'.=>.'https:/
80b20 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 27 2c 0a 29 29 2c 0a 29 0a 29 29 3b 0a 0a 24 /getcomposer.org/',.)),.).));..$
80b40 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 54 6f 6b 65 6e 20 73 75 63 63 this->io->writeError('Token.succ
80b60 65 73 73 66 75 6c 6c 79 20 63 72 65 61 74 65 64 27 29 3b 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e essfully.created');..return.Json
80b80 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 File::parseJson($json);.}..priva
80ba0 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 77 6f 46 61 63 74 6f 72 41 75 74 68 65 6e te.function.checkTwoFactorAuthen
80bc0 74 69 63 61 74 69 6f 6e 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 68 65 61 64 tication(array.$headers).{.$head
80be0 65 72 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 erNames.=.array_map(.function.($
80c00 68 65 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 74 72 73 header).{.return.strtolower(strs
80c20 74 72 28 24 68 65 61 64 65 72 2c 20 27 3a 27 2c 20 74 72 75 65 29 29 3b 0a 7d 2c 0a 24 68 65 61 tr($header,.':',.true));.},.$hea
80c40 64 65 72 73 0a 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 79 20 3d 20 61 ders.);..if.(false.!==.($key.=.a
80c60 72 72 61 79 5f 73 65 61 72 63 68 28 27 78 2d 67 69 74 68 75 62 2d 6f 74 70 27 2c 20 24 68 65 61 rray_search('x-github-otp',.$hea
80c80 64 65 72 4e 61 6d 65 73 29 29 29 20 7b 0a 6c 69 73 74 28 24 72 65 71 75 69 72 65 64 2c 20 24 6d derNames))).{.list($required,.$m
80ca0 65 74 68 6f 64 29 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 27 74 72 69 6d 27 2c 20 65 78 70 6c 6f ethod).=.array_map('trim',.explo
80cc0 64 65 28 27 3b 27 2c 20 73 75 62 73 74 72 28 73 74 72 73 74 72 28 24 68 65 61 64 65 72 73 5b 24 de(';',.substr(strstr($headers[$
80ce0 6b 65 79 5d 2c 20 27 3a 27 29 2c 20 31 29 29 29 3b 0a 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 key],.':'),.1)));..if.('required
80d00 27 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 '.===.$required).{.$this->io->wr
80d20 69 74 65 45 72 72 6f 72 28 27 54 77 6f 2d 66 61 63 74 6f 72 20 41 75 74 68 65 6e 74 69 63 61 74 iteError('Two-factor.Authenticat
80d40 69 6f 6e 27 29 3b 0a 0a 69 66 20 28 27 61 70 70 27 20 3d 3d 3d 20 24 6d 65 74 68 6f 64 29 20 7b ion');..if.('app'.===.$method).{
80d60 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4f 70 65 6e 20 74 68 65 .$this->io->writeError('Open.the
80d80 20 74 77 6f 2d 66 61 63 74 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 70 70 20 6f .two-factor.authentication.app.o
80da0 6e 20 79 6f 75 72 20 64 65 76 69 63 65 20 74 6f 20 76 69 65 77 20 79 6f 75 72 20 61 75 74 68 65 n.your.device.to.view.your.authe
80dc0 6e 74 69 63 61 74 69 6f 6e 20 63 6f 64 65 20 61 6e 64 20 76 65 72 69 66 79 20 79 6f 75 72 20 69 ntication.code.and.verify.your.i
80de0 64 65 6e 74 69 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 27 73 6d 73 27 20 3d 3d 3d 20 24 6d 65 dentity.');.}..if.('sms'.===.$me
80e00 74 68 6f 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 59 thod).{.$this->io->writeError('Y
80e20 6f 75 20 68 61 76 65 20 62 65 65 6e 20 73 65 6e 74 20 61 6e 20 53 4d 53 20 6d 65 73 73 61 67 65 ou.have.been.sent.an.SMS.message
80e40 20 77 69 74 68 20 61 6e 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 63 6f 64 65 20 74 6f 20 .with.an.authentication.code.to.
80e60 76 65 72 69 66 79 20 79 6f 75 72 20 69 64 65 6e 74 69 74 79 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 verify.your.identity.');.}..retu
80e80 72 6e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 41 75 74 68 65 6e 74 69 63 61 74 69 6f rn.$this->io->ask('Authenticatio
80ea0 6e 20 43 6f 64 65 3a 20 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a n.Code:.');.}.}..return.null;.}.
80ec0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d }.<?php............namespace.Com
80ee0 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 poser\Util;.......class.Composer
80f00 4d 69 72 72 6f 72 0a 7b 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 Mirror.{.public.static.function.
80f20 70 72 6f 63 65 73 73 55 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e processUrl($mirrorUrl,.$packageN
80f40 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 74 79 70 65 ame,.$version,.$reference,.$type
80f60 29 0a 7b 0a 69 66 20 28 24 72 65 66 65 72 65 6e 63 65 29 20 7b 0a 24 72 65 66 65 72 65 6e 63 65 ).{.if.($reference).{.$reference
80f80 20 3d 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 61 2d 66 30 2d 39 5d 2a 7c 25 72 65 66 .=.preg_match('{^([a-f0-9]*|%ref
80fa0 65 72 65 6e 63 65 25 29 24 7d 27 2c 20 24 72 65 66 65 72 65 6e 63 65 29 20 3f 20 24 72 65 66 65 erence%)$}',.$reference).?.$refe
80fc0 72 65 6e 63 65 20 3a 20 6d 64 35 28 24 72 65 66 65 72 65 6e 63 65 29 3b 0a 7d 0a 24 76 65 72 73 rence.:.md5($reference);.}.$vers
80fe0 69 6f 6e 20 3d 20 73 74 72 70 6f 73 28 24 76 65 72 73 69 6f 6e 2c 20 27 2f 27 29 20 3d 3d 3d 20 ion.=.strpos($version,.'/').===.
81000 66 61 6c 73 65 20 3f 20 24 76 65 72 73 69 6f 6e 20 3a 20 6d 64 35 28 24 76 65 72 73 69 6f 6e 29 false.?.$version.:.md5($version)
81020 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 0a 61 72 72 61 79 28 27 25 70 ;..return.str_replace(.array('%p
81040 61 63 6b 61 67 65 25 27 2c 20 27 25 76 65 72 73 69 6f 6e 25 27 2c 20 27 25 72 65 66 65 72 65 6e ackage%',.'%version%',.'%referen
81060 63 65 25 27 2c 20 27 25 74 79 70 65 25 27 29 2c 0a 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e ce%',.'%type%'),.array($packageN
81080 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 72 65 66 65 72 65 6e 63 65 2c 20 24 74 79 70 65 ame,.$version,.$reference,.$type
810a0 29 2c 0a 24 6d 69 72 72 6f 72 55 72 6c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 ),.$mirrorUrl.);.}..public.stati
810c0 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 47 69 74 55 72 6c 28 24 6d 69 72 72 6f 72 c.function.processGitUrl($mirror
810e0 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 75 72 6c 2c 20 24 74 79 70 65 29 0a Url,.$packageName,.$url,.$type).
81100 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f {.if.(preg_match('#^(?:(?:https?
81120 7c 67 69 74 29 3a 2f 2f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 7c 67 69 74 40 67 69 74 68 75 62 5c |git)://github\.com/|git@github\
81140 2e 63 6f 6d 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 .com:)([^/]+)/(.+?)(?:\.git)?$#'
81160 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 67 68 2d 27 2e ,.$url,.$match)).{.$url.=.'gh-'.
81180 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 69 $match[1].'/'.$match[2];.}.elsei
811a0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 63 6b f.(preg_match('#^https://bitbuck
811c0 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 2f et\.org/([^/]+)/(.+?)(?:\.git)?/
811e0 3f 24 23 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 75 72 6c 20 3d 20 27 62 ?$#',.$url,.$match)).{.$url.=.'b
81200 62 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 b-'.$match[1].'/'.$match[2];.}.e
81220 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d lse.{.$url.=.preg_replace('{[^a-
81240 7a 30 2d 39 5f 2e 2d 5d 7d 69 27 2c 20 27 2d 27 2c 20 74 72 69 6d 28 24 75 72 6c 2c 20 27 2f 27 z0-9_.-]}i',.'-',.trim($url,.'/'
81260 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 0a 61 72 72 61 79 ));.}..return.str_replace(.array
81280 28 27 25 70 61 63 6b 61 67 65 25 27 2c 20 27 25 6e 6f 72 6d 61 6c 69 7a 65 64 55 72 6c 25 27 2c ('%package%',.'%normalizedUrl%',
812a0 20 27 25 74 79 70 65 25 27 29 2c 0a 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 .'%type%'),.array($packageName,.
812c0 24 75 72 6c 2c 20 24 74 79 70 65 29 2c 0a 24 6d 69 72 72 6f 72 55 72 6c 0a 29 3b 0a 7d 0a 0a 70 $url,.$type),.$mirrorUrl.);.}..p
812e0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 48 67 55 ublic.static.function.processHgU
81300 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 75 72 rl($mirrorUrl,.$packageName,.$ur
81320 6c 2c 20 24 74 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 70 72 6f 63 65 73 73 l,.$type).{.return.self::process
81340 47 69 74 55 72 6c 28 24 6d 69 72 72 6f 72 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c GitUrl($mirrorUrl,.$packageName,
81360 20 24 75 72 6c 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a .$url,.$type);.}.}.<?php........
81380 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 ....namespace.Composer\Util;..us
813a0 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 e.Composer\IO\IOInterface;.use.S
813c0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 ymfony\Component\Process\Process
813e0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 ;.....class.Perforce.{.protected
81400 20 24 70 61 74 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 44 65 70 6f 74 3b 0a 70 72 6f 74 .$path;.protected.$p4Depot;.prot
81420 65 63 74 65 64 20 24 70 34 43 6c 69 65 6e 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 55 73 ected.$p4Client;.protected.$p4Us
81440 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 50 61 73 73 77 6f 72 64 3b 0a 70 72 6f 74 65 er;.protected.$p4Password;.prote
81460 63 74 65 64 20 24 70 34 50 6f 72 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 53 74 72 65 61 cted.$p4Port;.protected.$p4Strea
81480 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 43 6c 69 65 6e 74 53 70 65 63 3b 0a 70 72 6f 74 m;.protected.$p4ClientSpec;.prot
814a0 65 63 74 65 64 20 24 70 34 44 65 70 6f 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 ected.$p4DepotType;.protected.$p
814c0 34 42 72 61 6e 63 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 4Branch;.protected.$process;.pro
814e0 74 65 63 74 65 64 20 24 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 tected.$uniquePerforceClientName
81500 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 69 6e 64 6f 77 73 46 6c 61 67 3b 0a 70 72 6f 74 65 63 ;.protected.$windowsFlag;.protec
81520 74 65 64 20 24 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 ted.$commandResult;..protected.$
81540 69 6f 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 io;..protected.$filesystem;..pub
81560 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 70 6f 43 6f lic.function.__construct($repoCo
81580 6e 66 69 67 2c 20 24 70 6f 72 74 2c 20 24 70 61 74 68 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 nfig,.$port,.$path,.ProcessExecu
815a0 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 2c 20 49 4f 49 6e 74 65 tor.$process,.$isWindows,.IOInte
815c0 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 20 rface.$io).{.$this->windowsFlag.
815e0 3d 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 24 74 68 69 73 2d 3e 70 34 50 6f 72 74 20 3d 20 24 70 =.$isWindows;.$this->p4Port.=.$p
81600 6f 72 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 ort;.$this->initializePath($path
81620 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 );.$this->process.=.$process;.$t
81640 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 his->initialize($repoConfig);.$t
81660 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 his->io.=.$io;.}..public.static.
81680 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 6f function.create($repoConfig,.$po
816a0 72 74 2c 20 24 70 61 74 68 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 rt,.$path,.ProcessExecutor.$proc
816c0 65 73 73 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 69 73 57 69 6e 64 6f ess,.IOInterface.$io).{.$isWindo
816e0 77 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f ws.=.defined('PHP_WINDOWS_VERSIO
81700 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 70 65 72 66 6f 72 63 65 20 3d 20 6e 65 77 20 50 65 72 66 6f N_BUILD');.$perforce.=.new.Perfo
81720 72 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 6f 72 74 2c 20 24 70 61 74 68 2c 20 24 rce($repoConfig,.$port,.$path,.$
81740 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 2c 20 24 69 6f 29 3b 0a 0a 72 65 74 75 process,.$isWindows,.$io);..retu
81760 72 6e 20 24 70 65 72 66 6f 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 rn.$perforce;.}..public.static.f
81780 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 65 72 76 65 72 45 78 69 73 74 73 28 24 75 72 6c 2c 20 unction.checkServerExists($url,.
817a0 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 ProcessExecutor.$processExecutor
817c0 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d ).{.$output.=.null;..return.0.==
817e0 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 27 70 34 20 =.$processExecutor->execute('p4.
81800 2d 70 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 69 6e 66 6f 20 2d 73 27 2c 20 24 6f 75 74 70 75 -p.'...$url...'.info.-s',.$outpu
81820 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a t);.}..public.function.initializ
81840 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 71 75 65 50 65 e($repoConfig).{.$this->uniquePe
81860 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 rforceClientName.=.$this->genera
81880 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 28 29 3b 0a 69 66 teUniquePerforceClientName();.if
818a0 20 28 6e 75 6c 6c 20 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 3b .(null.==.$repoConfig).{.return;
818c0 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 6e 69 71 75 65 .}.if.(isset($repoConfig['unique
818e0 5f 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 6e 74 5f 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 _perforce_client_name'])).{.$thi
81900 73 2d 3e 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 3d 20 24 72 s->uniquePerforceClientName.=.$r
81920 65 70 6f 43 6f 6e 66 69 67 5b 27 75 6e 69 71 75 65 5f 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 6e epoConfig['unique_perforce_clien
81940 74 5f 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 t_name'];.}..if.(isset($repoConf
81960 69 67 5b 27 64 65 70 6f 74 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d ig['depot'])).{.$this->p4Depot.=
81980 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 .$repoConfig['depot'];.}.if.(iss
819a0 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 et($repoConfig['branch'])).{.$th
819c0 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e is->p4Branch.=.$repoConfig['bran
819e0 63 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 ch'];.}.if.(isset($repoConfig['p
81a00 34 75 73 65 72 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 72 65 70 4user'])).{.$this->p4User.=.$rep
81a20 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 72 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 oConfig['p4user'];.}.else.{.$thi
81a40 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 s->p4User.=.$this->getP4variable
81a60 28 27 50 34 55 53 45 52 27 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e ('P4USER');.}.if.(isset($repoCon
81a80 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 50 fig['p4password'])).{.$this->p4P
81aa0 61 73 73 77 6f 72 64 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 assword.=.$repoConfig['p4passwor
81ac0 64 27 5d 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 d'];.}.}..public.function.initia
81ae0 6c 69 7a 65 44 65 70 6f 74 41 6e 64 42 72 61 6e 63 68 28 24 64 65 70 6f 74 2c 20 24 62 72 61 6e lizeDepotAndBranch($depot,.$bran
81b00 63 68 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 70 6f 74 29 29 20 7b 0a 24 74 68 69 73 ch).{.if.(isset($depot)).{.$this
81b20 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 64 65 70 6f 74 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 ->p4Depot.=.$depot;.}.if.(isset(
81b40 24 62 72 61 6e 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 62 $branch)).{.$this->p4Branch.=.$b
81b60 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 ranch;.}.}..public.function.gene
81b80 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 28 29 0a 7b rateUniquePerforceClientName().{
81ba0 0a 72 65 74 75 72 6e 20 67 65 74 68 6f 73 74 6e 61 6d 65 28 29 20 2e 20 22 5f 22 20 2e 20 74 69 .return.gethostname()..."_"...ti
81bc0 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 me();.}..public.function.cleanup
81be0 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c 69 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e ClientSpec().{.$client.=.$this->
81c00 67 65 74 43 6c 69 65 6e 74 28 29 3b 0a 24 74 61 73 6b 20 3d 20 27 63 6c 69 65 6e 74 20 2d 64 20 getClient();.$task.=.'client.-d.
81c20 27 20 2e 20 24 63 6c 69 65 6e 74 3b 0a 24 75 73 65 50 34 43 6c 69 65 6e 74 20 3d 20 66 61 6c 73 '...$client;.$useP4Client.=.fals
81c40 65 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 e;.$command.=.$this->generateP4C
81c60 6f 6d 6d 61 6e 64 28 24 74 61 73 6b 2c 20 24 75 73 65 50 34 43 6c 69 65 6e 74 29 3b 0a 24 74 68 ommand($task,.$useP4Client);.$th
81c80 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 63 is->executeCommand($command);.$c
81ca0 6c 69 65 6e 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 43 6c 69 65 6e 74 53 70 lientSpec.=.$this->getP4ClientSp
81cc0 65 63 28 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 ec();.$fileSystem.=.$this->getFi
81ce0 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 28 lesystem();.$fileSystem->remove(
81d00 24 63 6c 69 65 6e 74 53 70 65 63 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 $clientSpec);.}..protected.funct
81d20 69 6f 6e 20 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 ion.executeCommand($command).{.$
81d40 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 20 3d 20 22 22 3b 0a 24 65 78 69 74 5f this->commandResult.=."";.$exit_
81d60 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 code.=.$this->process->execute($
81d80 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a command,.$this->commandResult);.
81da0 0a 72 65 74 75 72 6e 20 24 65 78 69 74 5f 63 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$exit_code;.}..public.fu
81dc0 6e 63 74 69 6f 6e 20 67 65 74 43 6c 69 65 6e 74 28 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 nction.getClient().{.if.(!isset(
81de0 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 29 29 20 7b 0a 24 63 6c 65 61 6e 53 74 72 65 61 6d $this->p4Client)).{.$cleanStream
81e00 4e 61 6d 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 40 27 2c 20 27 27 2c 20 73 74 72 5f Name.=.str_replace('@',.'',.str_
81e20 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5f 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f replace('/',.'_',.str_replace('/
81e40 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 29 29 3b 0a 24 /',.'',.$this->getStream())));.$
81e60 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 20 3d 20 27 63 6f 6d 70 6f 73 65 72 5f 70 65 72 66 6f this->p4Client.=.'composer_perfo
81e80 72 63 65 5f 27 20 2e 20 24 74 68 69 73 2d 3e 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 rce_'...$this->uniquePerforceCli
81ea0 65 6e 74 4e 61 6d 65 20 2e 20 27 5f 27 20 2e 20 24 63 6c 65 61 6e 53 74 72 65 61 6d 4e 61 6d 65 entName...'_'...$cleanStreamName
81ec0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 3b 0a 7d 0a 0a ;.}..return.$this->p4Client;.}..
81ee0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 protected.function.getPath().{.r
81f00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e eturn.$this->path;.}..public.fun
81f20 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a 24 74 ction.initializePath($path).{.$t
81f40 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 24 66 73 20 3d 20 24 74 68 69 73 2d 3e his->path.=.$path;.$fs.=.$this->
81f60 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 getFilesystem();.$fs->ensureDire
81f80 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ctoryExists($path);.}..protected
81fa0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 .function.getPort().{.return.$th
81fc0 69 73 2d 3e 70 34 50 6f 72 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 is->p4Port;.}..public.function.s
81fe0 65 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 34 53 74 72 etStream($stream).{.$this->p4Str
82000 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 72 70 6f 73 28 eam.=.$stream;.$index.=.strrpos(
82020 24 73 74 72 65 61 6d 2c 20 27 2f 27 29 3b 0a 0a 20 69 66 20 28 24 69 6e 64 65 78 20 3e 20 32 29 $stream,.'/');...if.($index.>.2)
82040 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 54 79 70 65 20 3d 20 27 73 74 72 65 61 6d 27 .{.$this->p4DepotType.=.'stream'
82060 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 74 72 65 61 6d 28 ;.}.}..public.function.isStream(
82080 29 0a 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 63 6d 70 28 24 74 68 69 73 2d 3e 70 34 44 65 70 6f ).{.return.(strcmp($this->p4Depo
820a0 74 54 79 70 65 2c 20 27 73 74 72 65 61 6d 27 29 20 3d 3d 3d 20 30 29 3b 0a 7d 0a 0a 70 75 62 6c tType,.'stream').===.0);.}..publ
820c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a 69 66 20 28 21 69 ic.function.getStream().{.if.(!i
820e0 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 29 29 20 7b 0a 69 66 20 28 24 74 68 sset($this->p4Stream)).{.if.($th
82100 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 is->isStream()).{.$this->p4Strea
82120 6d 20 3d 20 27 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 2e 20 27 2f 27 20 m.=.'//'...$this->p4Depot...'/'.
82140 2e 20 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 ..$this->p4Branch;.}.else.{.$thi
82160 73 2d 3e 70 34 53 74 72 65 61 6d 20 3d 20 27 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 s->p4Stream.=.'//'...$this->p4De
82180 70 6f 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d pot;.}.}..return.$this->p4Stream
821a0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 57 69 ;.}..public.function.getStreamWi
821c0 74 68 6f 75 74 4c 61 62 65 6c 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 69 6e 64 65 78 20 3d 20 73 thoutLabel($stream).{.$index.=.s
821e0 74 72 70 6f 73 28 24 73 74 72 65 61 6d 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 trpos($stream,.'@');.if.($index.
82200 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a ===.false).{.return.$stream;.}..
82220 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 73 74 72 65 61 6d 2c 20 30 2c 20 24 69 6e 64 65 78 return.substr($stream,.0,.$index
82240 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 34 43 6c 69 65 6e );.}..public.function.getP4Clien
82260 74 53 70 65 63 28 29 0a 7b 0a 24 70 34 63 6c 69 65 6e 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d tSpec().{.$p4clientSpec.=.$this-
82280 3e 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 >path...'/'...$this->getClient()
822a0 20 2e 20 27 2e 70 34 2e 73 70 65 63 27 3b 0a 0a 72 65 74 75 72 6e 20 24 70 34 63 6c 69 65 6e 74 ...'.p4.spec';..return.$p4client
822c0 53 70 65 63 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 Spec;.}..public.function.getUser
822e0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 0a 0a 70 75 ().{.return.$this->p4User;.}..pu
82300 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 72 28 24 75 73 65 72 29 0a 7b 0a 24 blic.function.setUser($user).{.$
82320 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 75 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 this->p4User.=.$user;.}..public.
82340 66 75 6e 63 74 69 6f 6e 20 71 75 65 72 79 50 34 55 73 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e function.queryP4User().{.$this->
82360 67 65 74 55 73 65 72 28 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 getUser();.if.(strlen($this->p4U
82380 73 65 72 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 55 ser).>.0).{.return;.}.$this->p4U
823a0 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 27 50 34 55 53 ser.=.$this->getP4variable('P4US
823c0 45 52 27 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 73 65 72 29 20 ER');.if.(strlen($this->p4User).
823e0 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d >.0).{.return;.}.$this->p4User.=
82400 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 45 6e 74 65 72 20 50 34 20 55 73 65 72 3a 27 .$this->io->ask('Enter.P4.User:'
82420 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 20 7b 0a 24 63 6f );.if.($this->windowsFlag).{.$co
82440 6d 6d 61 6e 64 20 3d 20 27 70 34 20 73 65 74 20 50 34 55 53 45 52 3d 27 20 2e 20 24 74 68 69 73 mmand.=.'p4.set.P4USER='...$this
82460 2d 3e 70 34 55 73 65 72 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 ->p4User;.}.else.{.$command.=.'e
82480 78 70 6f 72 74 20 50 34 55 53 45 52 3d 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a xport.P4USER='...$this->p4User;.
824a0 7d 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 }.$this->executeCommand($command
824c0 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 34 76 61 );.}..protected.function.getP4va
824e0 72 69 61 62 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f riable($name).{.if.($this->windo
82500 77 73 46 6c 61 67 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 73 65 74 27 3b 0a 24 wsFlag).{.$command.=.'p4.set';.$
82520 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a this->executeCommand($command);.
82540 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 $result.=.trim($this->commandRes
82560 75 6c 74 29 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f ult);.$resArray.=.explode(PHP_EO
82580 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 L,.$result);.foreach.($resArray.
825a0 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3d as.$line).{.$fields.=.explode('=
825c0 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 6e 61 6d 65 2c 20 24 66 69 ',.$line);.if.(strcmp($name,.$fi
825e0 65 6c 64 73 5b 30 5d 29 20 3d 3d 20 30 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 elds[0]).==.0).{.$index.=.strpos
82600 28 24 66 69 65 6c 64 73 5b 31 5d 2c 20 27 20 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d ($fields[1],.'.');.if.($index.==
82620 3d 20 66 61 6c 73 65 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a =.false).{.$value.=.$fields[1];.
82640 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 66 69 65 6c 64 73 }.else.{.$value.=.substr($fields
82660 5b 31 5d 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 7d 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d [1],.0,.$index);.}.$value.=.trim
82680 28 24 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 7d 20 ($value);..return.$value;.}.}.}.
826a0 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 63 68 6f 20 24 27 20 2e 20 24 6e 61 else.{.$command.=.'echo.$'...$na
826c0 6d 65 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 me;.$this->executeCommand($comma
826e0 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 nd);.$result.=.trim($this->comma
82700 6e 64 52 65 73 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a ndResult);..return.$result;.}.}.
82720 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 65 72 79 50 34 50 61 73 73 77 6f 72 64 .public.function.queryP4Password
82740 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 ().{.if.(isset($this->p4Password
82760 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 3b 0a 7d )).{.return.$this->p4Password;.}
82780 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c .$password.=.$this->getP4variabl
827a0 65 28 27 50 34 50 41 53 53 57 44 27 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 61 73 73 77 e('P4PASSWD');.if.(strlen($passw
827c0 6f 72 64 29 20 3c 3d 20 30 29 20 7b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e ord).<=.0).{.$password.=.$this->
827e0 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 45 6e 74 65 72 20 70 61 73 73 io->askAndHideAnswer('Enter.pass
82800 77 6f 72 64 20 66 6f 72 20 50 65 72 66 6f 72 63 65 20 75 73 65 72 20 27 20 2e 20 24 74 68 69 73 word.for.Perforce.user.'...$this
82820 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 3a 20 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 ->getUser()...':.');.}.$this->p4
82840 50 61 73 73 77 6f 72 64 20 3d 20 24 70 61 73 73 77 6f 72 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 Password.=.$password;..return.$p
82860 61 73 73 77 6f 72 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 assword;.}..public.function.gene
82880 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 73 65 43 6c 69 65 rateP4Command($command,.$useClie
828a0 6e 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 27 3b nt.=.true).{.$p4Command.=.'p4.';
828c0 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 75 20 27 .$p4Command.=.$p4Command...'-u.'
828e0 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 20 27 3b 0a 69 66 20 28 24 ...$this->getUser()...'.';.if.($
82900 75 73 65 43 6c 69 65 6e 74 29 20 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d useClient).{.$p4Command.=.$p4Com
82920 6d 61 6e 64 20 2e 20 27 2d 63 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 mand...'-c.'...$this->getClient(
82940 29 20 2e 20 27 20 27 3b 0a 7d 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 )...'.';.}.$p4Command.=.$p4Comma
82960 6e 64 20 2e 20 27 2d 70 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 6f 72 74 28 29 20 2e 20 nd...'-p.'...$this->getPort()...
82980 27 20 27 3b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 24 '.';.$p4Command.=.$p4Command...$
829a0 63 6f 6d 6d 61 6e 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 34 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a command;..return.$p4Command;.}..
829c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 67 67 65 64 49 6e 28 29 0a 7b 0a 24 public.function.isLoggedIn().{.$
829e0 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 command.=.$this->generateP4Comma
82a00 6e 64 28 27 6c 6f 67 69 6e 20 2d 73 27 2c 20 66 61 6c 73 65 29 3b 0a 24 65 78 69 74 43 6f 64 65 nd('login.-s',.false);.$exitCode
82a20 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e .=.$this->executeCommand($comman
82a40 64 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 29 20 7b 0a 24 65 72 72 6f 72 4f 75 74 70 75 d);.if.($exitCode).{.$errorOutpu
82a60 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 t.=.$this->process->getErrorOutp
82a80 75 74 28 29 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 65 72 72 6f 72 4f 75 74 70 ut();.$index.=.strpos($errorOutp
82aa0 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 29 3b 0a 69 66 20 28 24 69 6e 64 65 ut,.$this->getUser());.if.($inde
82ac0 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 x.===.false).{.$index.=.strpos($
82ae0 65 72 72 6f 72 4f 75 74 70 75 74 2c 20 27 70 34 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d errorOutput,.'p4');.if.($index.=
82b00 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 74 68 72 6f ==.false).{.return.false;.}.thro
82b20 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 70 34 20 63 6f 6d 6d 61 6e 64 20 6e 6f 74 w.new.\Exception('p4.command.not
82b40 20 66 6f 75 6e 64 20 69 6e 20 70 61 74 68 3a 20 27 20 2e 20 24 65 72 72 6f 72 4f 75 74 70 75 74 .found.in.path:.'...$errorOutput
82b60 29 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c );.}.throw.new.\Exception('Inval
82b80 69 64 20 75 73 65 72 20 6e 61 6d 65 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 id.user.name:.'...$this->getUser
82ba0 28 29 20 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ().);.}..return.true;.}..public.
82bc0 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 0a 7b 0a 24 70 34 43 72 function.connectClient().{.$p4Cr
82be0 65 61 74 65 43 6c 69 65 6e 74 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 eateClientCommand.=.$this->gener
82c00 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 63 6c 69 65 6e 74 20 2d 69 20 3c 20 27 20 2e 20 73 74 ateP4Command('client.-i.<.'...st
82c20 72 5f 72 65 70 6c 61 63 65 28 20 22 20 22 2c 20 22 5c 5c 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 r_replace(.".",."\\.",.$this->ge
82c40 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 20 29 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 tP4ClientSpec().));.$this->execu
82c60 74 65 43 6f 6d 6d 61 6e 64 28 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 43 6f 6d 6d 61 6e 64 teCommand($p4CreateClientCommand
82c80 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 79 6e 63 43 6f 64 65 42 61 );.}..public.function.syncCodeBa
82ca0 73 65 28 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 70 72 65 76 44 69 72 20 se($sourceReference).{.$prevDir.
82cc0 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a =.getcwd();.chdir($this->path);.
82ce0 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 $p4SyncCommand.=.$this->generate
82d00 50 34 43 6f 6d 6d 61 6e 64 28 27 73 79 6e 63 20 2d 66 20 27 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 P4Command('sync.-f.');.if.(null.
82d20 21 3d 20 24 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 29 20 7b 0a 24 70 34 53 79 6e 63 43 6f !=.$sourceReference).{.$p4SyncCo
82d40 6d 6d 61 6e 64 20 3d 20 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 2e 20 27 40 27 20 2e 20 24 mmand.=.$p4SyncCommand...'@'...$
82d60 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 sourceReference;.}.$this->execut
82d80 65 43 6f 6d 6d 61 6e 64 28 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 29 3b 0a 63 68 64 69 72 28 eCommand($p4SyncCommand);.chdir(
82da0 24 70 72 65 76 44 69 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 $prevDir);.}..public.function.wr
82dc0 69 74 65 43 6c 69 65 6e 74 53 70 65 63 54 6f 46 69 6c 65 28 24 73 70 65 63 29 0a 7b 0a 66 77 72 iteClientSpecToFile($spec).{.fwr
82de0 69 74 65 28 24 73 70 65 63 2c 20 27 43 6c 69 65 6e 74 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 ite($spec,.'Client:.'...$this->g
82e00 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b etClient()...PHP_EOL...PHP_EOL);
82e20 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 55 70 64 61 74 65 3a 20 27 20 2e 20 64 61 74 65 .fwrite($spec,.'Update:.'...date
82e40 28 27 59 2f 6d 2f 64 20 48 3a 69 3a 73 27 29 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f ('Y/m/d.H:i:s')...PHP_EOL...PHP_
82e60 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 41 63 63 65 73 73 3a 20 27 20 2e EOL);.fwrite($spec,.'Access:.'..
82e80 20 64 61 74 65 28 27 59 2f 6d 2f 64 20 48 3a 69 3a 73 27 29 20 2e 20 50 48 50 5f 45 4f 4c 29 3b .date('Y/m/d.H:i:s')...PHP_EOL);
82ea0 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 4f 77 6e 65 72 3a 20 20 27 20 2e 20 24 74 68 69 .fwrite($spec,.'Owner:..'...$thi
82ec0 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c s->getUser()...PHP_EOL...PHP_EOL
82ee0 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 44 65 73 63 72 69 70 74 69 6f 6e 3a 27 20 );.fwrite($spec,.'Description:'.
82f00 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 20 20 43 72 65 ..PHP_EOL);.fwrite($spec,.'..Cre
82f20 61 74 65 64 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 ated.by.'...$this->getUser()...'
82f40 20 66 72 6f 6d 20 63 6f 6d 70 6f 73 65 72 2e 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 .from.composer.'...PHP_EOL...PHP
82f60 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 52 6f 6f 74 3a 20 27 20 2e 20 _EOL);.fwrite($spec,.'Root:.'...
82f80 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 $this->getPath()...PHP_EOL...PHP
82fa0 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 4f 70 74 69 6f 6e 73 3a 20 20 _EOL);.fwrite($spec,.'Options:..
82fc0 6e 6f 61 6c 6c 77 72 69 74 65 20 6e 6f 63 6c 6f 62 62 65 72 20 6e 6f 63 6f 6d 70 72 65 73 73 20 noallwrite.noclobber.nocompress.
82fe0 75 6e 6c 6f 63 6b 65 64 20 6d 6f 64 74 69 6d 65 20 72 6d 64 69 72 27 20 2e 20 50 48 50 5f 45 4f unlocked.modtime.rmdir'...PHP_EO
83000 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 53 75 62 L...PHP_EOL);.fwrite($spec,.'Sub
83020 6d 69 74 4f 70 74 69 6f 6e 73 3a 20 20 72 65 76 65 72 74 75 6e 63 68 61 6e 67 65 64 27 20 2e 20 mitOptions:..revertunchanged'...
83040 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 PHP_EOL...PHP_EOL);.fwrite($spec
83060 2c 20 27 4c 69 6e 65 45 6e 64 3a 20 20 6c 6f 63 61 6c 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 ,.'LineEnd:..local'...PHP_EOL...
83080 50 48 50 5f 45 4f 4c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 PHP_EOL);.if.($this->isStream())
830a0 20 7b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 53 74 72 65 61 6d 3a 27 20 2e 20 50 48 50 .{.fwrite($spec,.'Stream:'...PHP
830c0 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 20 20 27 20 2e 20 24 74 68 69 _EOL);.fwrite($spec,.'..'...$thi
830e0 73 2d 3e 67 65 74 53 74 72 65 61 6d 57 69 74 68 6f 75 74 4c 61 62 65 6c 28 24 74 68 69 73 2d 3e s->getStreamWithoutLabel($this->
83100 70 34 53 74 72 65 61 6d 29 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 p4Stream)...PHP_EOL);.}.else.{.f
83120 77 72 69 74 65 28 0a 24 73 70 65 63 2c 0a 27 56 69 65 77 3a 20 20 27 20 2e 20 24 74 68 69 73 2d write(.$spec,.'View:..'...$this-
83140 3e 67 65 74 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 20 20 2f 2f 27 20 2e 20 24 74 68 69 >getStream()...'/.....//'...$thi
83160 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 27 2f 2e 2e 2e 20 27 20 2e 20 50 48 50 5f 45 s->getClient()...'/....'...PHP_E
83180 4f 4c 0a 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 OL.);.}.}..public.function.write
831a0 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c 69 65 6e 74 53 70 65 63 20 3d 20 24 P4ClientSpec().{.$clientSpec.=.$
831c0 74 68 69 73 2d 3e 67 65 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 73 70 65 63 20 3d this->getP4ClientSpec();.$spec.=
831e0 20 66 6f 70 65 6e 28 24 63 6c 69 65 6e 74 53 70 65 63 2c 20 27 77 27 29 3b 0a 74 72 79 20 7b 0a .fopen($clientSpec,.'w');.try.{.
83200 24 74 68 69 73 2d 3e 77 72 69 74 65 43 6c 69 65 6e 74 53 70 65 63 54 6f 46 69 6c 65 28 24 73 70 $this->writeClientSpecToFile($sp
83220 65 63 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 ec);.}.catch.(\Exception.$e).{.f
83240 63 6c 6f 73 65 28 24 73 70 65 63 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 66 63 6c 6f 73 65 close($spec);.throw.$e;.}.fclose
83260 28 24 73 70 65 63 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 ($spec);.}..protected.function.r
83280 65 61 64 28 24 70 69 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 66 65 6f 66 28 24 70 69 ead($pipe,.$name).{.if.(feof($pi
832a0 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 pe)).{.return;.}.$line.=.fgets($
832c0 70 69 70 65 29 3b 0a 77 68 69 6c 65 20 28 24 6c 69 6e 65 20 21 3d 20 66 61 6c 73 65 29 20 7b 0a pipe);.while.($line.!=.false).{.
832e0 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 70 69 70 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b $line.=.fgets($pipe);.}..return;
83300 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 69 6e 64 6f 77 73 4c 6f 67 69 6e .}..public.function.windowsLogin
83320 28 24 70 61 73 73 77 6f 72 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e ($password).{.$command.=.$this->
83340 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c 6f 67 69 6e 20 2d 61 27 29 3b 0a generateP4Command('.login.-a');.
83360 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c $process.=.new.Process($command,
83380 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 72 65 74 75 72 6e .null,.null,.$password);..return
833a0 20 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$process->run();.}..public.func
833c0 74 69 6f 6e 20 70 34 4c 6f 67 69 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 71 75 65 72 79 50 34 55 tion.p4Login().{.$this->queryP4U
833e0 73 65 72 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 67 67 65 64 49 6e 28 29 29 ser();.if.(!$this->isLoggedIn())
83400 20 7b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 50 34 50 61 73 .{.$password.=.$this->queryP4Pas
83420 73 77 6f 72 64 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 sword();.if.($this->windowsFlag)
83440 20 7b 0a 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 4c 6f 67 69 6e 28 24 70 61 73 73 77 6f 72 64 .{.$this->windowsLogin($password
83460 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 63 68 6f 20 27 20 2e );.}.else.{.$command.=.'echo.'..
83480 20 24 70 61 73 73 77 6f 72 64 20 2e 20 27 20 7c 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 6e 65 .$password...'.|.'...$this->gene
834a0 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c 6f 67 69 6e 20 2d 61 27 2c 20 66 61 6c 73 65 rateP4Command('.login.-a',.false
834c0 29 3b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d );.$exitCode.=.$this->executeCom
834e0 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 mand($command);.$result.=.trim($
83500 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 69 66 20 28 24 65 78 69 74 43 this->commandResult);.if.($exitC
83520 6f 64 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 22 45 72 72 ode).{.throw.new.\Exception("Err
83540 6f 72 20 6c 6f 67 67 69 6e 67 20 69 6e 3a 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 or.logging.in:"...$this->process
83560 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 ->getErrorOutput());.}.}.}.}..pu
83580 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 blic.function.getComposerInforma
835a0 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 tion($identifier).{.$index.=.str
835c0 70 6f 73 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 pos($identifier,.'@');.if.($inde
835e0 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 20 3d 20 24 x.===.false).{.$composerJson.=.$
83600 69 64 65 6e 74 69 66 69 65 72 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 0a 72 identifier..'/composer.json';..r
83620 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 eturn.$this->getComposerInformat
83640 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 7d 0a 0a 72 ionFromPath($composerJson);.}..r
83660 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 eturn.$this->getComposerInformat
83680 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 65 78 ionFromLabel($identifier,.$index
836a0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 );.}..public.function.getCompose
836c0 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 rInformationFromPath($composerJs
836e0 6f 6e 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 on).{.$command.=.$this->generate
83700 50 34 43 6f 6d 6d 61 6e 64 28 27 20 70 72 69 6e 74 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 4a P4Command('.print.'...$composerJ
83720 73 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d son);.$this->executeCommand($com
83740 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 mand);.$result.=.$this->commandR
83760 65 73 75 6c 74 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 esult;.$index.=.strpos($result,.
83780 27 7b 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 '{');.if.($index.===.false).{.re
837a0 74 75 72 6e 20 27 27 3b 0a 7d 0a 69 66 20 28 24 69 6e 64 65 78 20 3e 3d 20 30 29 20 7b 0a 24 72 turn.'';.}.if.($index.>=.0).{.$r
837c0 61 77 44 61 74 61 20 3d 20 73 75 62 73 74 72 28 24 72 65 73 75 6c 74 2c 20 24 69 6e 64 65 78 29 awData.=.substr($result,.$index)
837e0 3b 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 ;.$composer_info.=.json_decode($
83800 72 61 77 44 61 74 61 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 rawData,.true);..return.$compose
83820 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 r_info;.}..return.'';.}..public.
83840 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 function.getComposerInformationF
83860 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 65 78 29 0a 7b 0a romLabel($identifier,.$index).{.
83880 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 64 65 6e $composerJsonPath.=.substr($iden
838a0 74 69 66 69 65 72 2c 20 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e tifier,.0,.$index)...'/composer.
838c0 6a 73 6f 6e 27 20 2e 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 json'...substr($identifier,.$ind
838e0 65 78 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 ex);.$command.=.$this->generateP
83900 34 43 6f 6d 6d 61 6e 64 28 27 20 66 69 6c 65 73 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 4a 73 4Command('.files.'...$composerJs
83920 6f 6e 50 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f onPath,.false);.$this->executeCo
83940 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 mmand($command);.$result.=.$this
83960 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 69 6e 64 65 78 32 20 3d 20 73 74 72 70 6f ->commandResult;.$index2.=.strpo
83980 73 28 24 72 65 73 75 6c 74 2c 20 27 6e 6f 20 73 75 63 68 20 66 69 6c 65 28 73 29 2e 27 29 3b 0a s($result,.'no.such.file(s).');.
839a0 69 66 20 28 24 69 6e 64 65 78 32 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 65 78 33 if.($index2.===.false).{.$index3
839c0 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 63 68 61 6e 67 65 27 29 3b 0a 69 66 .=.strpos($result,.'change');.if
839e0 20 28 21 28 24 69 6e 64 65 78 33 20 3d 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 70 68 72 61 73 .(!($index3.===.false)).{.$phras
83a00 65 20 3d 20 74 72 69 6d 28 73 75 62 73 74 72 28 24 72 65 73 75 6c 74 2c 20 24 69 6e 64 65 78 33 e.=.trim(substr($result,.$index3
83a20 29 29 3b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 70 68 72 61 ));.$fields.=.explode('.',.$phra
83a40 73 65 29 3b 0a 24 69 64 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 24 63 6f 6d 70 6f 73 65 72 se);.$id.=.$fields[1];.$composer
83a60 4a 73 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 30 2c 20 24 69 Json.=.substr($identifier,.0,.$i
83a80 6e 64 65 78 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 40 27 20 2e 20 24 69 64 3b ndex)...'/composer.json@'...$id;
83aa0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 ..return.$this->getComposerInfor
83ac0 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 7d mationFromPath($composerJson);.}
83ae0 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .}..return."";.}..public.functio
83b00 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 n.getBranches().{.$possibleBranc
83b20 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 53 74 72 hes.=.array();.if.(!$this->isStr
83b40 65 61 6d 28 29 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 74 68 69 73 eam()).{.$possibleBranches[$this
83b60 2d 3e 70 34 42 72 61 6e 63 68 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 ->p4Branch].=.$this->getStream()
83b80 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e ;.}.else.{.$command.=.$this->gen
83ba0 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 74 72 65 61 6d 73 20 2f 2f 27 20 2e 20 24 74 erateP4Command('streams.//'...$t
83bc0 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 2e 20 27 2f 2e 2e 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 65 his->p4Depot...'/...');.$this->e
83be0 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 xecuteCommand($command);.$result
83c00 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 72 65 73 41 72 72 .=.$this->commandResult;.$resArr
83c20 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a ay.=.explode(PHP_EOL,.$result);.
83c40 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 foreach.($resArray.as.$line).{.$
83c60 72 65 73 42 69 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 resBits.=.explode('.',.$line);.i
83c80 66 20 28 63 6f 75 6e 74 28 24 72 65 73 42 69 74 73 29 20 3e 20 34 29 20 7b 0a 24 62 72 61 6e 63 f.(count($resBits).>.4).{.$branc
83ca0 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5b 5e 41 2d 5a 61 2d 7a 30 2d 39 20 5d h.=.preg_replace('/[^A-Za-z0-9.]
83cc0 2f 27 2c 20 27 27 2c 20 24 72 65 73 42 69 74 73 5b 34 5d 29 3b 0a 24 70 6f 73 73 69 62 6c 65 42 /',.'',.$resBits[4]);.$possibleB
83ce0 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 68 5d 20 3d 20 24 72 65 73 42 69 74 73 5b 31 5d 3b 0a ranches[$branch].=.$resBits[1];.
83d00 7d 0a 7d 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 }.}.}.$command.=.$this->generate
83d20 50 34 43 6f 6d 6d 61 6e 64 28 27 63 68 61 6e 67 65 73 20 27 2e 20 24 74 68 69 73 2d 3e 67 65 74 P4Command('changes.'..$this->get
83d40 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 27 2c 20 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 Stream()...'/...',.false);.$this
83d60 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 ->executeCommand($command);.$res
83d80 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 72 65 73 ult.=.$this->commandResult;.$res
83da0 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 Array.=.explode(PHP_EOL,.$result
83dc0 29 3b 0a 24 6c 61 73 74 43 6f 6d 6d 69 74 20 3d 20 24 72 65 73 41 72 72 61 79 5b 30 5d 3b 0a 24 );.$lastCommit.=.$resArray[0];.$
83de0 6c 61 73 74 43 6f 6d 6d 69 74 41 72 72 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 61 lastCommitArr.=.explode('.',.$la
83e00 73 74 43 6f 6d 6d 69 74 29 3b 0a 24 6c 61 73 74 43 6f 6d 6d 69 74 4e 75 6d 20 3d 20 24 6c 61 73 stCommit);.$lastCommitNum.=.$las
83e20 74 43 6f 6d 6d 69 74 41 72 72 5b 31 5d 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 tCommitArr[1];..$branches.=.arra
83e40 79 28 27 6d 61 73 74 65 72 27 20 3d 3e 20 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b y('master'.=>.$possibleBranches[
83e60 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 2e 20 27 40 27 2e 20 24 6c 61 73 74 43 6f 6d $this->p4Branch]...'@'..$lastCom
83e80 6d 69 74 4e 75 6d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 70 mitNum);..return.$branches;.}..p
83ea0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 24 63 6f 6d 6d ublic.function.getTags().{.$comm
83ec0 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 and.=.$this->generateP4Command('
83ee0 6c 61 62 65 6c 73 27 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 labels');.$this->executeCommand(
83f00 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d $command);.$result.=.$this->comm
83f20 61 6e 64 52 65 73 75 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 andResult;.$resArray.=.explode(P
83f40 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 HP_EOL,.$result);.$tags.=.array(
83f60 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 );.foreach.($resArray.as.$line).
83f80 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 2c 20 27 4c 61 62 65 6c 27 {.$index.=.strpos($line,.'Label'
83fa0 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 66 );.if.(!($index.===.false)).{.$f
83fc0 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 74 61 ields.=.explode('.',.$line);.$ta
83fe0 67 73 5b 24 66 69 65 6c 64 73 5b 31 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 gs[$fields[1]].=.$this->getStrea
84000 6d 28 29 20 2e 20 27 40 27 20 2e 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 m()...'@'...$fields[1];.}.}..ret
84020 75 72 6e 20 24 74 61 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 urn.$tags;.}..public.function.ch
84040 65 63 6b 53 74 72 65 61 6d 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e eckStream().{.$command.=.$this->
84060 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 64 65 70 6f 74 73 27 2c 20 66 61 6c 73 generateP4Command('depots',.fals
84080 65 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 e);.$this->executeCommand($comma
840a0 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 nd);.$result.=.$this->commandRes
840c0 75 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c ult;.$resArray.=.explode(PHP_EOL
840e0 2c 20 24 72 65 73 75 6c 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 ,.$result);.foreach.($resArray.a
84100 73 20 24 6c 69 6e 65 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 s.$line).{.$index.=.strpos($line
84120 2c 20 27 44 65 70 6f 74 27 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c ,.'Depot');.if.(!($index.===.fal
84140 73 65 29 29 20 7b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c se)).{.$fields.=.explode('.',.$l
84160 69 6e 65 29 3b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 2c ine);.if.(strcmp($this->p4Depot,
84180 20 24 66 69 65 6c 64 73 5b 31 5d 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 .$fields[1]).===.0).{.$this->p4D
841a0 65 70 6f 74 54 79 70 65 20 3d 20 24 66 69 65 6c 64 73 5b 33 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 epotType.=.$fields[3];..return.$
841c0 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 this->isStream();.}.}.}..return.
841e0 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 false;.}..protected.function.get
84200 43 68 61 6e 67 65 4c 69 73 74 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 69 6e 64 65 78 20 ChangeList($reference).{.$index.
84220 3d 20 73 74 72 70 6f 73 28 24 72 65 66 65 72 65 6e 63 65 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 =.strpos($reference,.'@');.if.($
84240 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6c 61 index.===.false).{.return;.}.$la
84260 62 65 6c 20 3d 20 73 75 62 73 74 72 28 24 72 65 66 65 72 65 6e 63 65 2c 20 24 69 6e 64 65 78 29 bel.=.substr($reference,.$index)
84280 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f ;.$command.=.$this->generateP4Co
842a0 6d 6d 61 6e 64 28 27 20 63 68 61 6e 67 65 73 20 2d 6d 31 20 27 20 2e 20 24 6c 61 62 65 6c 29 3b mmand('.changes.-m1.'...$label);
842c0 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 .$this->executeCommand($command)
842e0 3b 0a 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c ;.$changes.=.$this->commandResul
84300 74 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 63 68 61 6e 67 65 73 2c 20 27 43 68 61 6e 67 65 27 t;.if.(strpos($changes,.'Change'
84320 29 20 21 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 66 69 65 6c 64 73 20 3d 20 65 ).!==.0).{.return;.}.$fields.=.e
84340 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 63 68 61 6e 67 65 73 29 3b 0a 24 63 68 61 6e 67 65 4c 69 xplode('.',.$changes);.$changeLi
84360 73 74 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 68 61 6e 67 65 st.=.$fields[1];..return.$change
84380 4c 69 73 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d List;.}..public.function.getComm
843a0 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 itLogs($fromReference,.$toRefere
843c0 6e 63 65 29 0a 7b 0a 24 66 72 6f 6d 43 68 61 6e 67 65 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e nce).{.$fromChangeList.=.$this->
843e0 67 65 74 43 68 61 6e 67 65 4c 69 73 74 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 3b 0a 69 getChangeList($fromReference);.i
84400 66 20 28 24 66 72 6f 6d 43 68 61 6e 67 65 4c 69 73 74 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 72 65 f.($fromChangeList.==.null).{.re
84420 74 75 72 6e 3b 0a 7d 0a 24 74 6f 43 68 61 6e 67 65 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 67 turn;.}.$toChangeList.=.$this->g
84440 65 74 43 68 61 6e 67 65 4c 69 73 74 28 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 69 66 20 28 etChangeList($toReference);.if.(
84460 24 74 6f 43 68 61 6e 67 65 4c 69 73 74 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 3b $toChangeList.==.null).{.return;
84480 0a 7d 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 .}.$index.=.strpos($fromReferenc
844a0 65 2c 20 27 40 27 29 3b 0a 24 6d 61 69 6e 20 3d 20 73 75 62 73 74 72 28 24 66 72 6f 6d 52 65 66 e,.'@');.$main.=.substr($fromRef
844c0 65 72 65 6e 63 65 2c 20 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 27 2f 2e 2e 2e 27 3b 0a 24 63 6f erence,.0,.$index)...'/...';.$co
844e0 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 mmand.=.$this->generateP4Command
84500 28 27 66 69 6c 65 6c 6f 67 20 27 20 2e 20 24 6d 61 69 6e 20 2e 20 27 40 27 20 2e 20 24 66 72 6f ('filelog.'...$main...'@'...$fro
84520 6d 43 68 61 6e 67 65 4c 69 73 74 2e 20 27 2c 27 20 2e 20 24 74 6f 43 68 61 6e 67 65 4c 69 73 74 mChangeList..','...$toChangeList
84540 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e );.$this->executeCommand($comman
84560 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 d);.$result.=.$this->commandResu
84580 6c 74 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 lt;..return.$result;.}..public.f
845a0 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 79 73 74 65 6d 28 29 0a 7b 0a 69 66 20 28 65 6d unction.getFilesystem().{.if.(em
845c0 70 74 79 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 29 29 20 7b 0a 24 74 68 69 73 2d pty($this->filesystem)).{.$this-
845e0 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 >filesystem.=.new.Filesystem($th
84600 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 is->process);.}..return.$this->f
84620 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ilesystem;.}..public.function.se
84640 74 46 69 6c 65 73 79 73 74 65 6d 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 73 29 0a 7b 0a 24 74 tFilesystem(Filesystem.$fs).{.$t
84660 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 his->filesystem.=.$fs;.}.}.<?php
84680 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 ............namespace.Composer\U
846a0 74 69 6c 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 til;..use.Symfony\Component\Proc
846c0 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ess\Process;.use.Symfony\Compone
846e0 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 55 74 69 6c 73 3b 0a 75 73 65 20 43 6f 6d nt\Process\ProcessUtils;.use.Com
84700 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 poser\IO\IOInterface;.....class.
84720 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 ProcessExecutor.{.protected.stat
84740 69 63 20 24 74 69 6d 65 6f 75 74 20 3d 20 33 30 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 ic.$timeout.=.300;..protected.$c
84760 61 70 74 75 72 65 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 4f 75 aptureOutput;.protected.$errorOu
84780 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e tput;.protected.$io;..public.fun
847a0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 ction.__construct(IOInterface.$i
847c0 6f 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a o.=.null).{.$this->io.=.$io;.}..
847e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .........public.function.execute
84800 28 24 63 6f 6d 6d 61 6e 64 2c 20 26 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 ($command,.&$output.=.null,.$cwd
84820 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 20 26 26 20 24 74 68 69 .=.null).{.if.($this->io.&&.$thi
84840 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 73 61 66 65 43 6f 6d 6d 61 6e 64 s->io->isDebug()).{.$safeCommand
84860 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3a 2f 2f 5b 5e 3a 2f 5c 73 5d 2b 3a 29 .=.preg_replace('{(://[^:/\s]+:)
84880 5b 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 2a 2a 2a 2a 27 2c 20 24 63 6f 6d 6d 61 6e 64 29 [^@\s/]+}i',.'$1****',.$command)
848a0 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 45 78 65 63 75 74 69 ;.$this->io->writeError('Executi
848c0 6e 67 20 63 6f 6d 6d 61 6e 64 20 28 27 2e 28 24 63 77 64 20 3f 3a 20 27 43 57 44 27 29 2e 27 29 ng.command.('.($cwd.?:.'CWD').')
848e0 3a 20 27 2e 24 73 61 66 65 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 0a 20 0a 20 69 66 20 28 6e 75 :.'.$safeCommand);.}......if.(nu
84900 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 26 26 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 ll.===.$cwd.&&.defined('PHP_WIND
84920 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d OWS_VERSION_BUILD').&&.false.!==
84940 20 73 74 72 70 6f 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 27 67 69 74 27 29 20 26 26 20 67 65 74 63 .strpos($command,.'git').&&.getc
84960 77 64 28 29 29 20 7b 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 74 68 28 67 65 74 63 77 64 28 29 wd()).{.$cwd.=.realpath(getcwd()
84980 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 3d 20 63 6f 75 );.}..$this->captureOutput.=.cou
849a0 6e 74 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e 20 31 3b 0a 24 74 68 69 73 2d 3e nt(func_get_args()).>.1;.$this->
849c0 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e errorOutput.=.null;.$process.=.n
849e0 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 63 77 64 2c 20 6e 75 6c 6c 2c ew.Process($command,.$cwd,.null,
84a00 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d 65 6f 75 74 28 29 29 3b 0a 0a 24 .null,.static::getTimeout());..$
84a20 63 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 20 callback.=.is_callable($output).
84a40 3f 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6f 75 74 70 75 74 ?.$output.:.array($this,.'output
84a60 48 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 24 63 61 6c 6c 62 61 Handler');.$process->run($callba
84a80 63 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 20 26 ck);..if.($this->captureOutput.&
84aa0 26 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 &.!is_callable($output)).{.$outp
84ac0 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 24 ut.=.$process->getOutput();.}..$
84ae0 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 this->errorOutput.=.$process->ge
84b00 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 tErrorOutput();..return.$process
84b20 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ->getExitCode();.}..public.funct
84b40 69 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 ion.splitLines($output).{.$outpu
84b60 74 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 28 28 73 74 72 t.=.trim($output);..return.((str
84b80 69 6e 67 29 20 24 6f 75 74 70 75 74 20 3d 3d 3d 20 27 27 29 20 3f 20 61 72 72 61 79 28 29 20 3a ing).$output.===.'').?.array().:
84ba0 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 72 3f 5c 6e 7d 27 2c 20 24 6f 75 74 70 75 74 29 3b .preg_split('{\r?\n}',.$output);
84bc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f .}.......public.function.getErro
84be0 72 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f rOutput().{.return.$this->errorO
84c00 75 74 70 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 utput;.}..public.function.output
84c20 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 0a 7b 0a 69 66 20 28 24 74 Handler($type,.$buffer).{.if.($t
84c40 68 69 73 2d 3e 63 61 70 74 75 72 65 4f 75 74 70 75 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a his->captureOutput).{.return;.}.
84c60 0a 65 63 68 6f 20 24 62 75 66 66 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 .echo.$buffer;.}..public.static.
84c80 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 function.getTimeout().{.return.s
84ca0 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 tatic::$timeout;.}..public.stati
84cc0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a c.function.setTimeout($timeout).
84ce0 7b 0a 73 74 61 74 69 63 3a 3a 24 74 69 6d 65 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 7d {.static::$timeout.=.$timeout;.}
84d00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e ..........public.static.function
84d20 20 65 73 63 61 70 65 28 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 50 72 6f 63 .escape($argument).{.return.Proc
84d40 65 73 73 55 74 69 6c 73 3a 3a 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 essUtils::escapeArgument($argume
84d60 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 nt);.}.}.<?php............namesp
84d80 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ace.Composer\Util;..use.Composer
84da0 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 \Config;.use.Composer\IO\IOInter
84dc0 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 face;.....class.Git.{.protected.
84de0 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 $io;.protected.$config;.protecte
84e00 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 d.$process;.protected.$filesyste
84e20 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 m;..public.function.__construct(
84e40 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c IOInterface.$io,.Config.$config,
84e60 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 73 73 2c 20 46 69 6c 65 73 .ProcessExecutor.$process,.Files
84e80 79 73 74 65 6d 20 24 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 ystem.$fs).{.$this->io.=.$io;.$t
84ea0 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 his->config.=.$config;.$this->pr
84ec0 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 ocess.=.$process;.$this->filesys
84ee0 74 65 6d 20 3d 20 24 66 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 tem.=.$fs;.}..public.function.ru
84f00 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 2c nCommand($commandCallable,.$url,
84f20 20 24 63 77 64 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a .$cwd,.$initialClone.=.false).{.
84f40 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 6f 72 69 67 43 77 64 20 3d 20 if.($initialClone).{.$origCwd.=.
84f60 24 63 77 64 3b 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d $cwd;.$cwd.=.null;.}..if.(preg_m
84f80 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d atch('{^ssh://[^@]+@[^:]+:[^0-9]
84fa0 2b 7d 27 2c 20 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 +}',.$url)).{.throw.new.\Invalid
84fc0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 ArgumentException('The.source.UR
84fe0 4c 20 27 2e 24 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 L.'.$url.'.is.invalid,.ssh.URLs.
85000 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 should.have.a.port.number.after.
85020 22 3a 22 2e 27 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c ":".'."\n".'Use.ssh://git@exampl
85040 65 2e 63 6f 6d 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c e.com:22/path.or.just.git@exampl
85060 65 2e 63 6f 6d 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f e.com:path.if.you.do.not.want.to
85080 20 70 72 6f 76 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f .provide.a.password.or.custom.po
850a0 72 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a rt.');.}..if.(!$initialClone).{.
850c0 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 ..$this->process->execute('git.r
850e0 65 6d 6f 74 65 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 77 64 29 3b 0a 69 66 20 28 70 emote.-v',.$output,.$cwd);.if.(p
85100 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 63 6f 6d 70 6f 73 65 72 7c 6f 72 69 67 69 6e 29 reg_match('{^(?:composer|origin)
85120 5c 73 2b 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 6d \s+https?://(.+):(.+)@([^/]+)}im
85140 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f ',.$output,.$match)).{.$this->io
85160 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 33 5d 2c 20 75 ->setAuthentication($match[3],.u
85180 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 rldecode($match[1]),.urldecode($
851a0 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 7d 0a 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 match[2]));.}.}..$protocols.=.$t
851c0 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f his->config->get('github-protoco
851e0 6c 73 27 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 ls');.if.(!is_array($protocols))
85200 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 .{.throw.new.\RuntimeException('
85220 43 6f 6e 66 69 67 20 76 61 6c 75 65 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 20 Config.value."github-protocols".
85240 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 67 6f 74 20 27 2e 67 65 74 74 79 70 65 28 must.be.an.array,.got.'.gettype(
85260 24 70 72 6f 74 6f 63 6f 6c 73 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 $protocols));.}....if.(preg_matc
85280 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 73 65 6c 66 3a 3a 67 65 h('{^(?:https?|git)://'.self::ge
852a0 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 tGitHubDomainsRegex($this->confi
852c0 67 29 2e 27 2f 28 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d g).'/(.*)}',.$url,.$match)).{.$m
852e0 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f essages.=.array();.foreach.($pro
85300 74 6f 63 6f 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 69 66 20 28 27 73 73 68 27 tocols.as.$protocol).{.if.('ssh'
85320 20 3d 3d 3d 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 22 67 69 74 40 22 20 .===.$protocol).{.$url.=."git@".
85340 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 22 3a 22 20 2e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d ..$match[1]...":"...$match[2];.}
85360 20 65 6c 73 65 20 7b 0a 24 75 72 6c 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 22 3a 2f 2f 22 20 .else.{.$url.=.$protocol.."://".
85380 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 22 2f 22 20 2e 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d ..$match[1]..."/"...$match[2];.}
853a0 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 ..if.(0.===.$this->process->exec
853c0 75 74 65 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 ute(call_user_func($commandCalla
853e0 62 6c 65 2c 20 24 75 72 6c 29 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 ble,.$url),.$ignoredOutput,.$cwd
85400 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 2d 20 )).{.return;.}.$messages[].=.'-.
85420 27 20 2e 20 24 75 72 6c 20 2e 20 22 5c 6e 22 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 '...$url..."\n"...preg_replace('
85440 23 5e 23 6d 27 2c 20 27 20 20 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 #^#m',.'..',.$this->process->get
85460 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e ErrorOutput());.if.($initialClon
85480 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 e).{.$this->filesystem->removeDi
854a0 72 65 63 74 6f 72 79 28 24 6f 72 69 67 43 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d rectory($origCwd);.}.}....$this-
854c0 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 >throwException('Failed.to.clone
854e0 20 27 20 2e 20 73 65 6c 66 3a 3a 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 2e 27 20 .'...self::sanitizeUrl($url)..'.
85500 76 69 61 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 29 2e via.'.implode(',.',.$protocols).
85520 27 20 70 72 6f 74 6f 63 6f 6c 73 2c 20 61 62 6f 72 74 69 6e 67 2e 27 20 2e 20 22 5c 6e 5c 6e 22 '.protocols,.aborting.'..."\n\n"
85540 20 2e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 2c 20 24 75 72 ...implode("\n",.$messages),.$ur
85560 6c 29 3b 0a 7d 0a 0a 0a 20 24 62 79 70 61 73 73 53 73 68 46 6f 72 47 69 74 48 75 62 20 3d 20 70 l);.}....$bypassSshForGitHub.=.p
85580 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 67 69 74 40 27 2e 73 65 6c 66 3a 3a 67 65 74 47 69 74 48 reg_match('{^git@'.self::getGitH
855a0 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 3a ubDomainsRegex($this->config).':
855c0 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d 69 27 2c 20 24 75 72 6c 29 20 26 26 20 21 69 6e 5f 61 72 72 (.+?)\.git$}i',.$url).&&.!in_arr
855e0 61 79 28 27 73 73 68 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 2c 20 74 72 75 65 29 3b 0a 0a 24 63 ay('ssh',.$protocols,.true);..$c
85600 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 ommand.=.call_user_func($command
85620 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 24 62 79 70 61 73 73 53 73 68 46 Callable,.$url);.if.($bypassSshF
85640 6f 72 47 69 74 48 75 62 20 7c 7c 20 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 orGitHub.||.0.!==.$this->process
85660 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 ->execute($command,.$ignoredOutp
85680 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b ut,.$cwd)).{...if.(preg_match('{
856a0 5e 67 69 74 40 27 2e 73 65 6c 66 3a 3a 67 65 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 ^git@'.self::getGitHubDomainsReg
856c0 65 78 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 2e 27 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 7d ex($this->config).':(.+?)\.git$}
856e0 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d i',.$url,.$match)).{.if.(!$this-
85700 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d >io->hasAuthentication($match[1]
85720 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 )).{.$gitHubUtil.=.new.GitHub($t
85740 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 his->io,.$this->config,.$this->p
85760 72 6f 63 65 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 66 61 69 rocess);.$message.=.'Cloning.fai
85780 6c 65 64 20 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 65 6e 74 led.using.an.ssh.key.for.authent
857a0 69 63 61 74 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 ication,.enter.your.GitHub.crede
857c0 6e 74 69 61 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 3b ntials.to.access.private.repos';
857e0 0a 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 ..if.(!$gitHubUtil->authorizeOAu
85800 74 68 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e th($match[1]).&&.$this->io->isIn
85820 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 teractive()).{.$gitHubUtil->auth
85840 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 68 5b 31 orizeOAuthInteractively($match[1
85860 5d 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f ],.$message);.}.}..if.($this->io
85880 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 20 ->hasAuthentication($match[1])).
858a0 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 {.$auth.=.$this->io->getAuthenti
858c0 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 cation($match[1]);.$url.=.'https
858e0 3a 2f 2f 27 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d ://'.rawurlencode($auth['usernam
85900 65 27 5d 29 20 2e 20 27 3a 27 20 2e 20 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b e'])...':'...rawurlencode($auth[
85920 27 70 61 73 73 77 6f 72 64 27 5d 29 20 2e 20 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 'password'])...'@'.$match[1].'/'
85940 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 .$match[2].'.git';..$command.=.c
85960 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 all_user_func($commandCallable,.
85980 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d $url);.if.(0.===.$this->process-
859a0 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 >execute($command,.$ignoredOutpu
859c0 74 2c 20 24 63 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 t,.$cwd)).{.return;.}.}.}.elseif
859e0 20 28 20 0a 20 24 74 68 69 73 2d 3e 69 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 46 61 69 6c .(...$this->isAuthenticationFail
85a00 75 72 65 28 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 0a 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 ure($url,.$match).).{.if.(strpos
85a20 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 40 27 29 29 20 7b 0a 6c 69 73 74 28 24 61 75 74 68 50 61 ($match[2],.'@')).{.list($authPa
85a40 72 74 73 2c 20 24 6d 61 74 63 68 5b 32 5d 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 40 27 2c 20 24 rts,.$match[2]).=.explode('@',.$
85a60 6d 61 74 63 68 5b 32 5d 2c 20 32 29 3b 0a 7d 0a 0a 24 73 74 6f 72 65 41 75 74 68 20 3d 20 66 61 match[2],.2);.}..$storeAuth.=.fa
85a80 6c 73 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 lse;.if.($this->io->hasAuthentic
85aa0 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 ation($match[2])).{.$auth.=.$thi
85ac0 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b s->io->getAuthentication($match[
85ae0 32 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 2]);.}.elseif.($this->io->isInte
85b00 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 20 3d 20 ractive()).{.$defaultUsername.=.
85b20 6e 75 6c 6c 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 50 61 72 74 73 29 20 26 26 20 24 null;.if.(isset($authParts).&&.$
85b40 61 75 74 68 50 61 72 74 73 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f authParts).{.if.(false.!==.strpo
85b60 73 28 24 61 75 74 68 50 61 72 74 73 2c 20 27 3a 27 29 29 20 7b 0a 6c 69 73 74 28 24 64 65 66 61 s($authParts,.':')).{.list($defa
85b80 75 6c 74 55 73 65 72 6e 61 6d 65 2c 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 61 75 ultUsername,).=.explode(':',.$au
85ba0 74 68 50 61 72 74 73 2c 20 32 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 55 73 thParts,.2);.}.else.{.$defaultUs
85bc0 65 72 6e 61 6d 65 20 3d 20 24 61 75 74 68 50 61 72 74 73 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d ername.=.$authParts;.}.}..$this-
85be0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 >io->writeError('....Authenticat
85c00 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 ion.required.(<info>'.parse_url(
85c20 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 $url,.PHP_URL_HOST).'</info>):')
85c40 3b 0a 24 61 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 24 ;.$auth.=.array(.'username'.=>.$
85c60 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e 61 6d 65 3a 20 27 this->io->ask('......Username:.'
85c80 2c 20 24 64 65 66 61 75 6c 74 55 73 65 72 6e 61 6d 65 29 2c 0a 27 70 61 73 73 77 6f 72 64 27 20 ,.$defaultUsername),.'password'.
85ca0 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 =>.$this->io->askAndHideAnswer('
85cc0 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 3a 20 27 29 2c 0a 29 3b 0a 24 73 74 6f 72 65 41 75 74 ......Password:.'),.);.$storeAut
85ce0 68 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 73 74 6f 72 65 2d 61 75 h.=.$this->config->get('store-au
85d00 74 68 73 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 75 74 68 29 20 7b 0a 24 75 72 6c 20 3d 20 24 6d ths');.}..if.($auth).{.$url.=.$m
85d20 61 74 63 68 5b 31 5d 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 atch[1].rawurlencode($auth['user
85d40 6e 61 6d 65 27 5d 29 2e 27 3a 27 2e 72 61 77 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 name']).':'.rawurlencode($auth['
85d60 70 61 73 73 77 6f 72 64 27 5d 29 2e 27 40 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 24 6d 61 74 63 68 password']).'@'.$match[2].$match
85d80 5b 33 5d 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 [3];..$command.=.call_user_func(
85da0 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 3b 0a 69 66 20 28 30 20 3d $commandCallable,.$url);.if.(0.=
85dc0 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d ==.$this->process->execute($comm
85de0 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 24 74 and,.$ignoredOutput,.$cwd)).{.$t
85e00 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 his->io->setAuthentication($matc
85e20 68 5b 32 5d 2c 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 2c 20 24 61 75 74 68 5b 27 h[2],.$auth['username'],.$auth['
85e40 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 20 3d 20 6e 65 77 20 41 password']);.$authHelper.=.new.A
85e60 75 74 68 48 65 6c 70 65 72 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 uthHelper($this->io,.$this->conf
85e80 69 67 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 2d 3e 73 74 6f 72 65 41 75 74 68 28 24 6d 61 74 ig);.$authHelper->storeAuth($mat
85ea0 63 68 5b 32 5d 2c 20 24 73 74 6f 72 65 41 75 74 68 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d ch[2],.$storeAuth);..return;.}.}
85ec0 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e .}..if.($initialClone).{.$this->
85ee0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 6f 72 69 filesystem->removeDirectory($ori
85f00 67 43 77 64 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 27 gCwd);.}.$this->throwException('
85f20 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 73 65 6c 66 3a 3a 73 61 6e 69 Failed.to.execute.'...self::sani
85f40 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 tizeUrl($command)..."\n\n"...$th
85f60 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 is->process->getErrorOutput(),.$
85f80 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 75 url);.}.}..private.function.isAu
85fa0 74 68 65 6e 74 69 63 61 74 69 6f 6e 46 61 69 6c 75 72 65 20 28 24 75 72 6c 2c 20 26 24 6d 61 74 thenticationFailure.($url,.&$mat
85fc0 63 68 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a ch).{.if.(!preg_match('{(https?:
85fe0 2f 2f 29 28 5b 5e 2f 5d 2b 29 28 2e 2a 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 //)([^/]+)(.*)$}i',.$url,.$match
86000 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 61 75 74 68 46 61 69 6c 75 )).{.return.false;.}..$authFailu
86020 72 65 73 20 3d 20 61 72 72 61 79 28 27 66 61 74 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 res.=.array('fatal:.Authenticati
86040 6f 6e 20 66 61 69 6c 65 64 27 2c 20 27 72 65 6d 6f 74 65 20 65 72 72 6f 72 3a 20 49 6e 76 61 6c on.failed',.'remote.error:.Inval
86060 69 64 20 75 73 65 72 6e 61 6d 65 20 6f 72 20 70 61 73 73 77 6f 72 64 2e 27 29 3b 0a 66 6f 72 65 id.username.or.password.');.fore
86080 61 63 68 20 28 24 61 75 74 68 46 61 69 6c 75 72 65 73 20 61 73 20 24 61 75 74 68 46 61 69 6c 75 ach.($authFailures.as.$authFailu
860a0 72 65 29 20 7b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d re).{.if.(strpos($this->process-
860c0 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 2c 20 24 61 75 74 68 46 61 69 6c 75 72 65 29 >getErrorOutput(),.$authFailure)
860e0 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a .!==.false).{.return.true;.}.}..
86100 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 return.false;.}..public.static.f
86120 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 28 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 unction.cleanEnv().{.if.(ini_get
86140 28 27 73 61 66 65 5f 6d 6f 64 65 27 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f ('safe_mode').&&.false.===.strpo
86160 73 28 69 6e 69 5f 67 65 74 28 27 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f 65 6e 76 s(ini_get('safe_mode_allowed_env
86180 5f 76 61 72 73 27 29 2c 20 27 47 49 54 5f 41 53 4b 50 41 53 53 27 29 29 20 7b 0a 74 68 72 6f 77 _vars'),.'GIT_ASKPASS')).{.throw
861a0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 73 61 66 65 5f 6d 6f 64 .new.\RuntimeException('safe_mod
861c0 65 20 69 73 20 65 6e 61 62 6c 65 64 20 61 6e 64 20 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 e.is.enabled.and.safe_mode_allow
861e0 65 64 5f 65 6e 76 5f 76 61 72 73 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 47 49 54 ed_env_vars.does.not.contain.GIT
86200 5f 41 53 4b 50 41 53 53 2c 20 63 61 6e 20 6e 6f 74 20 73 65 74 20 65 6e 76 20 76 61 72 2e 20 59 _ASKPASS,.can.not.set.env.var..Y
86220 6f 75 20 63 61 6e 20 64 69 73 61 62 6c 65 20 73 61 66 65 5f 6d 6f 64 65 20 77 69 74 68 20 22 2d ou.can.disable.safe_mode.with."-
86240 64 73 61 66 65 5f 6d 6f 64 65 3d 30 22 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f dsafe_mode=0".when.running.compo
86260 73 65 72 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 ser');.}....if.(getenv('GIT_ASKP
86280 41 53 53 27 29 20 21 3d 3d 20 27 65 63 68 6f 27 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f ASS').!==.'echo').{.putenv('GIT_
862a0 41 53 4b 50 41 53 53 3d 65 63 68 6f 27 29 3b 0a 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 ASKPASS=echo');.unset($_SERVER['
862c0 47 49 54 5f 41 53 4b 50 41 53 53 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 GIT_ASKPASS']);.}....if.(getenv(
862e0 27 47 49 54 5f 44 49 52 27 29 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 44 49 52 27 29 3b 'GIT_DIR')).{.putenv('GIT_DIR');
86300 0a 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 47 49 54 5f 44 49 52 27 5d 29 3b 0a 7d 0a 69 .unset($_SERVER['GIT_DIR']);.}.i
86320 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 29 20 7b 0a 70 75 f.(getenv('GIT_WORK_TREE')).{.pu
86340 74 65 6e 76 28 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 3b 0a 75 6e 73 65 74 28 24 5f 53 tenv('GIT_WORK_TREE');.unset($_S
86360 45 52 56 45 52 5b 27 47 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 ERVER['GIT_WORK_TREE']);.}....if
86380 20 28 67 65 74 65 6e 76 28 27 4c 41 4e 47 55 41 47 45 27 29 20 21 3d 3d 20 27 43 27 29 20 7b 0a .(getenv('LANGUAGE').!==.'C').{.
863a0 70 75 74 65 6e 76 28 27 4c 41 4e 47 55 41 47 45 3d 43 27 29 3b 0a 7d 0a 0a 0a 20 70 75 74 65 6e putenv('LANGUAGE=C');.}....puten
863c0 76 28 22 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 22 29 3b 0a 75 6e 73 65 74 28 24 5f v("DYLD_LIBRARY_PATH");.unset($_
863e0 53 45 52 56 45 52 5b 27 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 48 27 5d 29 3b 0a 7d 0a SERVER['DYLD_LIBRARY_PATH']);.}.
86400 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 47 69 74 48 75 .public.static.function.getGitHu
86420 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a bDomainsRegex(Config.$config).{.
86440 72 65 74 75 72 6e 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6d 61 return.'('.implode('|',.array_ma
86460 70 28 27 70 72 65 67 5f 71 75 6f 74 65 27 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 p('preg_quote',.$config->get('gi
86480 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 29 29 29 2e 27 29 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 thub-domains'))).')';.}..public.
864a0 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 6d 65 73 static.function.sanitizeUrl($mes
864c0 73 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 3a 2f sage).{.return.preg_replace('{:/
864e0 2f 28 5b 5e 40 5d 2b 3f 29 3a 2e 2b 3f 40 7d 27 2c 20 27 3a 2f 2f 24 31 3a 2a 2a 2a 40 27 2c 20 /([^@]+?):.+?@}',.'://$1:***@',.
86500 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 $message);.}..private.function.t
86520 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a hrowException($message,.$url).{.
86540 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 if.(0.!==.$this->process->execut
86560 65 28 27 67 69 74 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 e('git.--version',.$ignoredOutpu
86580 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f t)).{.throw.new.\RuntimeExceptio
865a0 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 73 65 6c 66 3a 3a 73 61 6e 69 74 n('Failed.to.clone.'.self::sanit
865c0 69 7a 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e izeUrl($url).',.git.was.not.foun
865e0 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e d,.check.that.it.is.installed.an
86600 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 d.in.your.PATH.env.'..."\n\n"...
86620 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 $this->process->getErrorOutput()
86640 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f );.}..throw.new.\RuntimeExceptio
86660 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a n($message);.}.}.<?php..........
86680 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 ..namespace.Composer\Util;..use.
866a0 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c Composer\Composer;.use.Composer\
866c0 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 Config;.use.Composer\IO\IOInterf
866e0 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 ace;.use.Composer\Downloader\Tra
86700 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6d nsportException;.......class.Rem
86720 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 oteFilesystem.{.private.$io;.pri
86740 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b vate.$config;.private.$bytesMax;
86760 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 .private.$originUrl;.private.$fi
86780 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 leUrl;.private.$fileName;.privat
867a0 65 20 24 72 65 74 72 79 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 e.$retry;.private.$progress;.pri
867c0 76 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 vate.$lastProgress;.private.$opt
867e0 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 3b ions;.private.$retryAuthFailure;
86800 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 48 65 61 64 65 72 73 3b 0a 70 72 69 76 61 74 65 20 24 .private.$lastHeaders;.private.$
86820 73 74 6f 72 65 41 75 74 68 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 storeAuth;.........public.functi
86840 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
86860 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 6f 70 Config.$config.=.null,.array.$op
86880 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 tions.=.array()).{.$this->io.=.$
868a0 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 io;.$this->config.=.$config;.$th
868c0 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a is->options.=.$options;.}.......
868e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 ......public.function.copy($orig
86900 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f inUrl,.$fileUrl,.$fileName,.$pro
86920 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 gress.=.true,.$options.=.array()
86940 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c ).{.return.$this->get($originUrl
86960 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 24 66 69 6c 65 4e 61 6d 65 2c ,.$fileUrl,.$options,.$fileName,
86980 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$progress);.}............public
869a0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c .function.getContents($originUrl
869c0 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f ,.$fileUrl,.$progress.=.true,.$o
869e0 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ptions.=.array()).{.return.$this
86a00 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 ->get($originUrl,.$fileUrl,.$opt
86a20 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ions,.null,.$progress);.}.......
86a40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 public.function.getOptions().{.r
86a60 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 eturn.$this->options;.}.......pu
86a80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 73 74 48 65 61 64 65 72 73 28 29 0a 7b blic.function.getLastHeaders().{
86aa0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 3b 0a 7d 0a 0a 0a .return.$this->lastHeaders;.}...
86ac0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .............protected.function.
86ae0 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 get($originUrl,.$fileUrl,.$addit
86b00 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 69 6c 65 4e 61 6d ionalOptions.=.array(),.$fileNam
86b20 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 e.=.null,.$progress.=.true).{.if
86b40 20 28 73 74 72 70 6f 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 2e 67 69 74 68 75 62 2e 63 6f .(strpos($originUrl,.'.github.co
86b60 6d 27 29 20 3d 3d 3d 20 28 73 74 72 6c 65 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 20 2d 20 31 31 m').===.(strlen($originUrl).-.11
86b80 29 29 20 7b 0a 24 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a )).{.$originUrl.=.'github.com';.
86ba0 7d 0a 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6f }..$this->bytesMax.=.0;.$this->o
86bc0 72 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 riginUrl.=.$originUrl;.$this->fi
86be0 6c 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d leUrl.=.$fileUrl;.$this->fileNam
86c00 65 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 3d e.=.$fileName;.$this->progress.=
86c20 20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 .$progress;.$this->lastProgress.
86c40 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 20 =.null;.$this->retryAuthFailure.
86c60 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 20 3d 20 61 72 72 =.true;.$this->lastHeaders.=.arr
86c80 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 ay();....if.(preg_match('{^https
86ca0 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 27 2c 20 24 66 69 6c 65 55 ?://(.+):(.+)@([^/]+)}i',.$fileU
86cc0 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 rl,.$match)).{.$this->io->setAut
86ce0 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 75 72 6c 64 65 63 6f 64 hentication($originUrl,.urldecod
86d00 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 e($match[1]),.urldecode($match[2
86d20 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 ]));.}..if.(isset($additionalOpt
86d40 69 6f 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 29 20 7b 0a 24 ions['retry-auth-failure'])).{.$
86d60 74 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 20 3d 20 28 62 6f 6f 6c 29 20 this->retryAuthFailure.=.(bool).
86d80 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 $additionalOptions['retry-auth-f
86da0 61 69 6c 75 72 65 27 5d 3b 0a 0a 75 6e 73 65 74 28 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 ailure'];..unset($additionalOpti
86dc0 6f 6e 73 5b 27 72 65 74 72 79 2d 61 75 74 68 2d 66 61 69 6c 75 72 65 27 5d 29 3b 0a 7d 0a 0a 24 ons['retry-auth-failure']);.}..$
86de0 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 options.=.$this->getOptionsForUr
86e00 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 l($originUrl,.$additionalOptions
86e20 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a );..if.($this->io->isDebug()).{.
86e40 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 28 73 75 62 73 74 72 28 24 66 $this->io->writeError((substr($f
86e60 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 20 3f 20 27 44 6f 77 6e ileUrl,.0,.4).===.'http'.?.'Down
86e80 6c 6f 61 64 69 6e 67 20 27 20 3a 20 27 52 65 61 64 69 6e 67 20 27 29 20 2e 20 24 66 69 6c 65 55 loading.'.:.'Reading.')...$fileU
86ea0 72 6c 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 rl);.}.if.(isset($options['githu
86ec0 62 2d 74 6f 6b 65 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 55 72 6c 20 2e 3d 20 28 66 61 6c 73 65 b-token'])).{.$fileUrl..=.(false
86ee0 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 55 72 6c 2c 20 27 3f 27 29 20 3f 20 27 3f 27 .===.strpos($fileUrl,.'?').?.'?'
86f00 20 3a 20 27 26 27 29 20 2e 20 27 61 63 63 65 73 73 5f 74 6f 6b 65 6e 3d 27 2e 24 6f 70 74 69 6f .:.'&')...'access_token='.$optio
86f20 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f ns['github-token'];.unset($optio
86f40 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 ns['github-token']);.}.if.(isset
86f60 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 ($options['http'])).{.$options['
86f80 68 74 74 70 27 5d 5b 27 69 67 6e 6f 72 65 5f 65 72 72 6f 72 73 27 5d 20 3d 20 74 72 75 65 3b 0a http']['ignore_errors'].=.true;.
86fa0 7d 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 }.$ctx.=.StreamContextFactory::g
86fc0 65 74 43 6f 6e 74 65 78 74 28 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 61 72 etContext($fileUrl,.$options,.ar
86fe0 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 28 24 74 68 69 ray('notification'.=>.array($thi
87000 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d s,.'callbackGet')));..if.($this-
87020 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 >progress).{.$this->io->writeErr
87040 6f 72 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 43 6f or("....Downloading:.<comment>Co
87060 6e 6e 65 63 74 69 6e 67 2e 2e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a nnecting...</comment>",.false);.
87080 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 }..$errorMessage.=.'';.$errorCod
870a0 65 20 3d 20 30 3b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 73 65 74 5f 65 72 72 6f e.=.0;.$result.=.false;.set_erro
870c0 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 r_handler(function.($code,.$msg)
870e0 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 .use.(&$errorMessage).{.if.($err
87100 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c orMessage).{.$errorMessage..=."\
87120 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c n";.}.$errorMessage..=.preg_repl
87140 61 63 65 28 27 7b 5e 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a ace('{^file_get_contents\(.*?\):
87160 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c .}',.'',.$msg);.});.try.{.$resul
87180 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 t.=.file_get_contents($fileUrl,.
871a0 66 61 6c 73 65 2c 20 24 63 74 78 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f false,.$ctx);.}.catch.(\Exceptio
871c0 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 n.$e).{.if.($e.instanceof.Transp
871e0 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 ortException.&&.!empty($http_res
87200 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 ponse_header[0])).{.$e->setHeade
87220 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 69 66 20 rs($http_response_header);.}.if.
87240 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f ($e.instanceof.TransportExceptio
87260 6e 20 26 26 20 24 72 65 73 75 6c 74 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 65 2d 3e 73 65 n.&&.$result.!==.false).{.$e->se
87280 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 75 6c 74 29 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 3d 20 tResponse($result);.}.$result.=.
872a0 66 61 6c 73 65 3b 0a 7d 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 26 26 20 21 69 false;.}.if.($errorMessage.&&.!i
872c0 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 ni_get('allow_url_fopen')).{.$er
872e0 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 6d 75 rorMessage.=.'allow_url_fopen.mu
87300 73 74 20 62 65 20 65 6e 61 62 6c 65 64 20 69 6e 20 70 68 70 2e 69 6e 69 20 28 27 2e 24 65 72 72 st.be.enabled.in.php.ini.('.$err
87320 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 orMessage.')';.}.restore_error_h
87340 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 20 26 26 20 21 24 74 68 69 andler();.if.(isset($e).&&.!$thi
87360 73 2d 3e 72 65 74 72 79 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 s->retry).{.throw.$e;.}....if.(!
87380 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 empty($http_response_header[0]).
873a0 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 28 5b 34 35 5d 5c &&.preg_match('{^HTTP/\S+.([45]\
873c0 64 5c 64 29 7d 69 27 2c 20 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 d\d)}i',.$http_response_header[0
873e0 5d 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 24 6d 61 74 63 ],.$match)).{.$errorCode.=.$matc
87400 68 5b 31 5d 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 24 65 20 3d 20 h[1];.if.(!$this->retry).{.$e.=.
87420 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 new.TransportException('The."'.$
87440 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 this->fileUrl.'".file.could.not.
87460 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 27 2e 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f be.downloaded.('.$http_response_
87480 68 65 61 64 65 72 5b 30 5d 2e 27 29 27 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a 24 65 2d 3e header[0].')',.$errorCode);.$e->
874a0 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 setHeaders($http_response_header
874c0 29 3b 0a 24 65 2d 3e 73 65 74 52 65 73 70 6f 6e 73 65 28 24 72 65 73 75 6c 74 29 3b 0a 74 68 72 );.$e->setResponse($result);.thr
874e0 6f 77 20 24 65 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 ow.$e;.}.$result.=.false;.}....i
87500 66 20 28 24 72 65 73 75 6c 74 20 26 26 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 f.($result.&&.extension_loaded('
87520 7a 6c 69 62 27 29 20 26 26 20 73 75 62 73 74 72 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 zlib').&&.substr($fileUrl,.0,.4)
87540 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a .===.'http').{.$decode.=.false;.
87560 66 6f 72 65 61 63 68 20 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 foreach.($http_response_header.a
87580 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 s.$header).{.if.(preg_match('{^c
875a0 6f 6e 74 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 3a 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 ontent-encoding:.*gzip.*$}i',.$h
875c0 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e eader)).{.$decode.=.true;.contin
875e0 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 ue;.}.elseif.(preg_match('{^HTTP
87600 2f 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 /}i',.$header)).{.$decode.=.fals
87620 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 6f 64 65 29 20 7b 0a 69 66 20 28 76 65 72 73 69 e;.}.}..if.($decode).{.if.(versi
87640 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 2e 30 27 2c on_compare(PHP_VERSION,.'5.4.0',
87660 20 27 3e 3d 27 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 .'>=')).{.$result.=.zlib_decode(
87680 24 72 65 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 $result);.}.else.{...$result.=.f
876a0 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a ile_get_contents('compress.zlib:
876c0 2f 2f 64 61 74 61 3a 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b //data:application/octet-stream;
876e0 62 61 73 65 36 34 2c 27 2e 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 base64,'.base64_encode($result))
87700 3b 0a 7d 0a 0a 69 66 20 28 21 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 ;.}..if.(!$result).{.throw.new.T
87720 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 64 65 63 ransportException('Failed.to.dec
87740 6f 64 65 20 7a 6c 69 62 20 73 74 72 65 61 6d 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 ode.zlib.stream');.}.}.}..if.($t
87760 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 20 26 26 20 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 his->progress.&&.!$this->retry).
87780 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 28 22 20 20 20 {.$this->io->overwriteError("...
877a0 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 31 30 30 25 3c 2f 63 6f 6d .Downloading:.<comment>100%</com
877c0 6d 65 6e 74 3e 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 72 65 73 ment>");.}....if.(false.!==.$res
877e0 75 6c 74 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 6d 65 29 20 7b 0a 69 66 20 ult.&&.null.!==.$fileName).{.if.
87800 28 27 27 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 (''.===.$result).{.throw.new.Tra
87820 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 nsportException('"'.$this->fileU
87840 72 6c 2e 27 22 20 61 70 70 65 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e rl.'".appears.broken,.and.return
87860 65 64 20 61 6e 20 65 6d 70 74 79 20 32 30 30 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a 0a 24 ed.an.empty.200.response');.}..$
87880 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e errorMessage.=.'';.set_error_han
878a0 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 65 20 dler(function.($code,.$msg).use.
878c0 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d 65 73 (&$errorMessage).{.if.($errorMes
878e0 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 7d sage).{.$errorMessage..=."\n";.}
87900 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 .$errorMessage..=.preg_replace('
87920 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 2c 20 {^file_put_contents\(.*?\):.}',.
87940 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 28 62 6f 6f 6c 29 20 '',.$msg);.});.$result.=.(bool).
87960 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 4e 61 6d 65 2c 20 24 72 65 file_put_contents($fileName,.$re
87980 73 75 6c 74 29 3b 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a sult);.restore_error_handler();.
879a0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e if.(false.===.$result).{.throw.n
879c0 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 ew.TransportException('The."'.$t
879e0 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 his->fileUrl.'".file.could.not.b
87a00 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 3a 20 27 2e 24 65 e.written.to.'.$fileName.':.'.$e
87a20 72 72 6f 72 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 rrorMessage);.}.}..if.($this->re
87a40 74 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 72 try).{.$this->retry.=.false;..$r
87a60 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e esult.=.$this->get($this->origin
87a80 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c Url,.$this->fileUrl,.$additional
87aa0 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 24 74 68 69 73 2d Options,.$this->fileName,.$this-
87ac0 3e 70 72 6f 67 72 65 73 73 29 3b 0a 0a 24 61 75 74 68 48 65 6c 70 65 72 20 3d 20 6e 65 77 20 41 >progress);..$authHelper.=.new.A
87ae0 75 74 68 48 65 6c 70 65 72 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 uthHelper($this->io,.$this->conf
87b00 69 67 29 3b 0a 24 61 75 74 68 48 65 6c 70 65 72 2d 3e 73 74 6f 72 65 41 75 74 68 28 24 74 68 69 ig);.$authHelper->storeAuth($thi
87b20 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 29 3b s->originUrl,.$this->storeAuth);
87b40 0a 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 .$this->storeAuth.=.false;..retu
87b60 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 rn.$result;.}..if.(false.===.$re
87b80 73 75 6c 74 29 20 7b 0a 24 65 20 3d 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 sult).{.$e.=.new.TransportExcept
87ba0 69 6f 6e 28 27 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 ion('The."'.$this->fileUrl.'".fi
87bc0 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 3a 20 27 2e 24 65 le.could.not.be.downloaded:.'.$e
87be0 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a 69 66 20 28 21 65 rrorMessage,.$errorCode);.if.(!e
87c00 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 mpty($http_response_header[0])).
87c20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f {.$e->setHeaders($http_response_
87c40 68 65 61 64 65 72 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d header);.}..throw.$e;.}..if.(!em
87c60 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b pty($http_response_header[0])).{
87c80 0a 24 74 68 69 73 2d 3e 6c 61 73 74 48 65 61 64 65 72 73 20 3d 20 24 68 74 74 70 5f 72 65 73 70 .$this->lastHeaders.=.$http_resp
87ca0 6f 6e 73 65 5f 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a onse_header;.}..return.$result;.
87cc0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e }.............protected.function
87ce0 20 63 61 6c 6c 62 61 63 6b 47 65 74 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 2c 20 .callbackGet($notificationCode,.
87d00 24 73 65 76 65 72 69 74 79 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 $severity,.$message,.$messageCod
87d20 65 2c 20 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 64 2c 20 24 62 79 74 65 73 4d 61 78 29 e,.$bytesTransferred,.$bytesMax)
87d40 0a 7b 0a 73 77 69 74 63 68 20 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 43 6f 64 65 29 20 7b 0a .{.switch.($notificationCode).{.
87d60 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 41 49 4c 55 52 45 3a 0a 63 61 73 65 case.STREAM_NOTIFY_FAILURE:.case
87d80 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 51 55 49 52 45 44 3a 0a 69 66 .STREAM_NOTIFY_AUTH_REQUIRED:.if
87da0 20 28 34 30 31 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 0a 20 69 66 20 28 .(401.===.$messageCode).{...if.(
87dc0 21 24 74 68 69 73 2d 3e 72 65 74 72 79 41 75 74 68 46 61 69 6c 75 72 65 29 20 7b 0a 62 72 65 61 !$this->retryAuthFailure).{.brea
87de0 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 41 75 74 68 41 6e 64 52 65 74 72 79 28 k;.}..$this->promptAuthAndRetry(
87e00 24 6d 65 73 73 61 67 65 43 6f 64 65 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a $messageCode);.break;.}.break;..
87e20 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 53 55 4c 54 3a 0a case.STREAM_NOTIFY_AUTH_RESULT:.
87e40 69 66 20 28 34 30 33 20 3d 3d 3d 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 20 7b 0a 24 74 68 69 if.(403.===.$messageCode).{.$thi
87e60 73 2d 3e 70 72 6f 6d 70 74 41 75 74 68 41 6e 64 52 65 74 72 79 28 24 6d 65 73 73 61 67 65 43 6f s->promptAuthAndRetry($messageCo
87e80 64 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a de,.$message);.break;.}.break;..
87ea0 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a case.STREAM_NOTIFY_FILE_SIZE_IS:
87ec0 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 .if.($this->bytesMax.<.$bytesMax
87ee0 29 20 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b ).{.$this->bytesMax.=.$bytesMax;
87f00 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 .}.break;..case.STREAM_NOTIFY_PR
87f20 4f 47 52 45 53 53 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 OGRESS:.if.($this->bytesMax.>.0.
87f40 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 &&.$this->progress).{.$progressi
87f60 6f 6e 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 on.=.0;..if.($this->bytesMax.>.0
87f80 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 ).{.$progression.=.round($bytesT
87fa0 72 61 6e 73 66 65 72 72 65 64 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 ransferred./.$this->bytesMax.*.1
87fc0 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 00);.}..if.((0.===.$progression.
87fe0 25 20 35 29 20 26 26 20 31 30 30 20 21 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 26 26 20 %.5).&&.100.!==.$progression.&&.
88000 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 $progression.!==.$this->lastProg
88020 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 ress).{.$this->lastProgress.=.$p
88040 72 6f 67 72 65 73 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 rogression;.$this->io->overwrite
88060 45 72 72 6f 72 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 Error("....Downloading:.<comment
88080 3e 24 70 72 6f 67 72 65 73 73 69 6f 6e 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 >$progression%</comment>",.false
880a0 29 3b 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d );.}.}.break;..default:.break;.}
880c0 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6d 70 74 41 75 74 .}..protected.function.promptAut
880e0 68 41 6e 64 52 65 74 72 79 28 24 68 74 74 70 53 74 61 74 75 73 2c 20 24 72 65 61 73 6f 6e 20 3d hAndRetry($httpStatus,.$reason.=
88100 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 26 26 20 69 6e .null).{.if.($this->config.&&.in
88120 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e _array($this->originUrl,.$this->
88140 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 29 2c 20 74 config->get('github-domains'),.t
88160 72 75 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 5c 6e 22 2e 27 43 6f 75 6c 64 20 6e rue)).{.$message.=."\n".'Could.n
88180 6f 74 20 66 65 74 63 68 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 2c 20 65 6e 74 ot.fetch.'.$this->fileUrl.',.ent
881a0 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 27 2e 28 24 68 er.your.GitHub.credentials.'.($h
881c0 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 34 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 70 ttpStatus.===.404.?.'to.access.p
881e0 72 69 76 61 74 65 20 72 65 70 6f 73 27 20 3a 20 27 74 6f 20 67 6f 20 6f 76 65 72 20 74 68 65 20 rivate.repos'.:.'to.go.over.the.
88200 41 50 49 20 72 61 74 65 20 6c 69 6d 69 74 27 29 3b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 API.rate.limit');.$gitHubUtil.=.
88220 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e new.GitHub($this->io,.$this->con
88240 66 69 67 2c 20 6e 75 6c 6c 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 fig,.null);.if.(!$gitHubUtil->au
88260 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 0a 26 thorizeOAuth($this->originUrl).&
88280 26 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 7c &.(!$this->io->isInteractive().|
882a0 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e |.!$gitHubUtil->authorizeOAuthIn
882c0 74 65 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d teractively($this->originUrl,.$m
882e0 65 73 73 61 67 65 29 29 0a 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 essage)).).{.throw.new.Transport
88300 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 61 74 Exception('Could.not.authenticat
88320 65 20 61 67 61 69 6e 73 74 20 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 34 30 e.against.'.$this->originUrl,.40
88340 31 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 68 74 74 70 53 74 61 74 75 73 1);.}.}.else.{...if.($httpStatus
88360 20 3d 3d 3d 20 34 30 34 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 .===.404).{.return;.}....if.(!$t
88380 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 69 66 20 28 his->io->isInteractive()).{.if.(
883a0 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 $httpStatus.===.401).{.$message.
883c0 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 =."The.'"...$this->fileUrl..."'.
883e0 55 52 4c 20 72 65 71 75 69 72 65 64 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2e 5c 6e 59 6f URL.required.authentication.\nYo
88400 75 20 6d 75 73 74 20 62 65 20 75 73 69 6e 67 20 74 68 65 20 69 6e 74 65 72 61 63 74 69 76 65 20 u.must.be.using.the.interactive.
88420 63 6f 6e 73 6f 6c 65 20 74 6f 20 61 75 74 68 65 6e 74 69 63 61 74 65 22 3b 0a 7d 0a 69 66 20 28 console.to.authenticate";.}.if.(
88440 24 68 74 74 70 53 74 61 74 75 73 20 3d 3d 3d 20 34 30 33 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 $httpStatus.===.403).{.$message.
88460 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 =."The.'"...$this->fileUrl..."'.
88480 55 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 URL.could.not.be.accessed:."...$
884a0 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 reason;.}..throw.new.TransportEx
884c0 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 24 68 74 74 70 53 74 61 74 75 73 29 3b 0a ception($message,.$httpStatus);.
884e0 7d 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 }...if.($this->io->hasAuthentica
88500 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 tion($this->originUrl)).{.throw.
88520 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 22 49 6e 76 61 6c 69 64 20 new.TransportException("Invalid.
88540 63 72 65 64 65 6e 74 69 61 6c 73 20 66 6f 72 20 27 22 20 2e 20 24 74 68 69 73 2d 3e 66 69 6c 65 credentials.for.'"...$this->file
88560 55 72 6c 20 2e 20 22 27 2c 20 61 62 6f 72 74 69 6e 67 2e 22 2c 20 24 68 74 74 70 53 74 61 74 75 Url..."',.aborting.",.$httpStatu
88580 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 45 72 72 6f 72 s);.}..$this->io->overwriteError
885a0 28 27 20 20 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c ('....Authentication.required.(<
885c0 69 6e 66 6f 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c info>'.parse_url($this->fileUrl,
885e0 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 .PHP_URL_HOST).'</info>):');.$us
88600 65 72 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 ername.=.$this->io->ask('......U
88620 73 65 72 6e 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e sername:.');.$password.=.$this->
88640 69 6f 2d 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 io->askAndHideAnswer('......Pass
88660 77 6f 72 64 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 word:.');.$this->io->setAuthenti
88680 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 cation($this->originUrl,.$userna
886a0 6d 65 2c 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 6f 72 65 41 75 74 68 me,.$password);.$this->storeAuth
886c0 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 73 74 6f 72 65 2d 61 75 74 .=.$this->config->get('store-aut
886e0 68 73 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 74 72 75 65 3b 0a 74 68 hs');.}..$this->retry.=.true;.th
88700 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 27 52 45 54 52 row.new.TransportException('RETR
88720 59 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 Y');.}..protected.function.getOp
88740 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 69 74 69 6f tionsForUrl($originUrl,.$additio
88760 6e 61 6c 4f 70 74 69 6f 6e 73 29 0a 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f nalOptions).{.if.(defined('HHVM_
88780 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 70 68 70 56 65 72 73 69 6f 6e 20 3d 20 27 48 48 56 4d VERSION')).{.$phpVersion.=.'HHVM
887a0 20 27 20 2e 20 48 48 56 4d 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 68 70 .'...HHVM_VERSION;.}.else.{.$php
887c0 56 65 72 73 69 6f 6e 20 3d 20 27 50 48 50 20 27 20 2e 20 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 Version.=.'PHP.'...PHP_MAJOR_VER
887e0 53 49 4f 4e 20 2e 20 27 2e 27 20 2e 20 50 48 50 5f 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 20 2e SION...'.'...PHP_MINOR_VERSION..
88800 20 27 2e 27 20 2e 20 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 24 .'.'...PHP_RELEASE_VERSION;.}..$
88820 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d headers.=.array(.sprintf(.'User-
88840 41 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 65 72 2f 25 73 20 28 25 73 3b 20 25 73 3b 20 25 73 29 27 Agent:.Composer/%s.(%s;.%s;.%s)'
88860 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d 3d 20 27 40 70 61 63 6b 61 67 ,.Composer::VERSION.===.'@packag
88880 65 5f 76 65 72 73 69 6f 6e 40 27 20 3f 20 27 73 6f 75 72 63 65 27 20 3a 20 43 6f 6d 70 6f 73 65 e_version@'.?.'source'.:.Compose
888a0 72 3a 3a 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f r::VERSION,.php_uname('s'),.php_
888c0 75 6e 61 6d 65 28 27 72 27 29 2c 0a 24 70 68 70 56 65 72 73 69 6f 6e 0a 29 0a 29 3b 0a 0a 69 66 uname('r'),.$phpVersion.).);..if
888e0 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 29 20 7b 0a 24 68 .(extension_loaded('zlib')).{.$h
88900 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 63 63 65 70 74 2d 45 6e 63 6f 64 69 6e 67 3a 20 67 7a 69 eaders[].=.'Accept-Encoding:.gzi
88920 70 27 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f p';.}..$options.=.array_replace_
88940 72 65 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 61 64 64 69 74 recursive($this->options,.$addit
88960 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 ionalOptions);..if.($this->io->h
88980 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a asAuthentication($originUrl)).{.
889a0 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 $auth.=.$this->io->getAuthentica
889c0 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 69 66 20 28 27 67 69 74 68 75 62 2e 63 6f tion($originUrl);.if.('github.co
889e0 6d 27 20 3d 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 20 26 26 20 27 78 2d 6f 61 75 74 68 2d 62 61 m'.===.$originUrl.&&.'x-oauth-ba
88a00 73 69 63 27 20 3d 3d 3d 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 20 7b 0a 24 6f sic'.===.$auth['password']).{.$o
88a20 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 20 3d 20 24 61 75 74 68 5b 27 ptions['github-token'].=.$auth['
88a40 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 75 74 68 53 74 72 20 3d 20 username'];.}.else.{.$authStr.=.
88a60 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 base64_encode($auth['username'].
88a80 2e 20 27 3a 27 20 2e 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 24 68 65 61 ..':'...$auth['password']);.$hea
88aa0 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 27 ders[].=.'Authorization:.Basic.'
88ac0 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f .$authStr;.}.}..if.(isset($optio
88ae0 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 20 26 26 20 21 69 73 5f 61 72 72 ns['http']['header']).&&.!is_arr
88b00 61 79 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 ay($options['http']['header'])).
88b20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 65 {.$options['http']['header'].=.e
88b40 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 74 72 69 6d 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 xplode("\r\n",.trim($options['ht
88b60 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 2c 20 22 5c 72 5c 6e 22 29 29 3b 0a 7d 0a 66 6f 72 65 tp']['header'],."\r\n"));.}.fore
88b80 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 24 6f 70 74 ach.($headers.as.$header).{.$opt
88ba0 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 24 68 65 61 64 ions['http']['header'][].=.$head
88bc0 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 er;.}..return.$options;.}.}.<?ph
88be0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
88c00 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 73 20 53 74 72 65 61 6d 43 Util;........final.class.StreamC
88c20 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ontextFactory.{..........public.
88c40 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 78 74 28 24 75 72 6c 2c static.function.getContext($url,
88c60 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 .array.$defaultOptions.=.array()
88c80 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 ,.array.$defaultParams.=.array()
88ca0 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 ).{.$options.=.array('http'.=>.a
88cc0 72 72 61 79 28 0a 0a 20 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 31 2c 0a rray(...'follow_location'.=>.1,.
88ce0 27 6d 61 78 5f 72 65 64 69 72 65 63 74 73 27 20 3d 3e 20 32 30 2c 0a 29 29 3b 0a 0a 0a 20 69 66 'max_redirects'.=>.20,.));....if
88d00 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 .(!empty($_SERVER['HTTP_PROXY'])
88d20 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 .||.!empty($_SERVER['http_proxy'
88d40 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 ])).{...$proxy.=.parse_url(!empt
88d60 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 y($_SERVER['http_proxy']).?.$_SE
88d80 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 RVER['http_proxy'].:.$_SERVER['H
88da0 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 TTP_PROXY']);.}....if.(preg_matc
88dc0 68 28 27 7b 5e 68 74 74 70 73 3a 2f 2f 7d 69 27 2c 20 24 75 72 6c 29 20 26 26 20 28 21 65 6d 70 h('{^https://}i',.$url).&&.(!emp
88de0 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 53 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 ty($_SERVER['HTTPS_PROXY']).||.!
88e00 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 29 29 29 empty($_SERVER['https_proxy'])))
88e20 20 7b 0a 24 70 72 6f 78 79 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 .{.$proxy.=.parse_url(!empty($_S
88e40 45 52 56 45 52 5b 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 ERVER['https_proxy']).?.$_SERVER
88e60 5b 27 68 74 74 70 73 5f 70 72 6f 78 79 27 5d 20 3a 20 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 ['https_proxy'].:.$_SERVER['HTTP
88e80 53 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 S_PROXY']);.}....if.(!empty($_SE
88ea0 52 56 45 52 5b 27 6e 6f 5f 70 72 6f 78 79 27 5d 29 20 26 26 20 70 61 72 73 65 5f 75 72 6c 28 24 RVER['no_proxy']).&&.parse_url($
88ec0 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d url,.PHP_URL_HOST)).{.$pattern.=
88ee0 20 6e 65 77 20 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 28 24 5f 53 45 52 56 45 52 5b 27 6e 6f .new.NoProxyPattern($_SERVER['no
88f00 5f 70 72 6f 78 79 27 5d 29 3b 0a 69 66 20 28 24 70 61 74 74 65 72 6e 2d 3e 74 65 73 74 28 24 75 _proxy']);.if.($pattern->test($u
88f20 72 6c 29 29 20 7b 0a 75 6e 73 65 74 28 24 70 72 6f 78 79 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 rl)).{.unset($proxy);.}.}..if.(!
88f40 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 69 73 73 empty($proxy)).{.$proxyURL.=.iss
88f60 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 73 et($proxy['scheme']).?.$proxy['s
88f80 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 3a 20 27 27 3b 0a 24 70 72 6f 78 79 55 52 4c 20 cheme']...'://'.:.'';.$proxyURL.
88fa0 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 6f 78 .=.isset($proxy['host']).?.$prox
88fc0 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 y['host'].:.'';..if.(isset($prox
88fe0 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 20 2e y['port'])).{.$proxyURL..=.":"..
89000 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 70 .$proxy['port'];.}.elseif.('http
89020 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 29 29 ://'.==.substr($proxyURL,.0,.7))
89040 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 66 20 .{.$proxyURL..=.":80";.}.elseif.
89060 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c ('https://'.==.substr($proxyURL,
89080 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b 0a 7d .0,.8)).{.$proxyURL..=.":443";.}
890a0 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 ....$proxyURL.=.str_replace(arra
890c0 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 79 28 y('http://',.'https://'),.array(
890e0 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c 29 3b 'tcp://',.'ssl://'),.$proxyURL);
89100 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 27 73 ..if.(0.===.strpos($proxyURL,.'s
89120 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e sl:').&&.!extension_loaded('open
89140 73 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 ssl')).{.throw.new.\RuntimeExcep
89160 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 tion('You.must.enable.the.openss
89180 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 72 20 l.extension.to.use.a.proxy.over.
891a0 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 https');.}..$options['http']['pr
891c0 6f 78 79 27 5d 20 3d 20 24 70 72 6f 78 79 55 52 4c 3b 0a 0a 0a 20 73 77 69 74 63 68 20 28 70 61 oxy'].=.$proxyURL;....switch.(pa
891e0 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 29 29 20 7b rse_url($url,.PHP_URL_SCHEME)).{
89200 0a 63 61 73 65 20 27 68 74 74 70 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d .case.'http':...$reqFullUriEnv.=
89220 20 67 65 74 65 6e 76 28 27 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c .getenv('HTTP_PROXY_REQUEST_FULL
89240 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 66 61 URI');.if.($reqFullUriEnv.===.fa
89260 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 27 27 20 7c 7c 20 lse.||.$reqFullUriEnv.===.''.||.
89280 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 20 21 3d 3d 20 (strtolower($reqFullUriEnv).!==.
892a0 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 'false'.&&.(bool).$reqFullUriEnv
892c0 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 65 71 75 65 73 74 5f 66 )).{.$options['http']['request_f
892e0 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 ulluri'].=.true;.}.break;.case.'
89300 68 74 74 70 73 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 20 67 65 74 65 6e https':...$reqFullUriEnv.=.geten
89320 76 28 27 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 27 29 v('HTTPS_PROXY_REQUEST_FULLURI')
89340 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 66 61 6c 73 65 20 7c ;.if.($reqFullUriEnv.===.false.|
89360 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 27 27 20 7c 7c 20 28 73 74 72 74 |.$reqFullUriEnv.===.''.||.(strt
89380 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 20 21 3d 3d 20 27 66 61 6c 73 olower($reqFullUriEnv).!==.'fals
893a0 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 29 29 20 7b 0a e'.&&.(bool).$reqFullUriEnv)).{.
893c0 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 $options['http']['request_fullur
893e0 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 68 i'].=.true;.}.break;.}....if.('h
89400 74 74 70 73 27 20 3d 3d 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 ttps'.===.parse_url($url,.PHP_UR
89420 4c 5f 53 43 48 45 4d 45 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 73 73 6c 27 5d 5b 27 53 4e L_SCHEME)).{.$options['ssl']['SN
89440 49 5f 65 6e 61 62 6c 65 64 27 5d 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f I_enabled'].=.true;.if.(version_
89460 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 36 2e 30 27 2c 20 27 3c compare(PHP_VERSION,.'5.6.0',.'<
89480 27 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 73 73 6c 27 5d 5b 27 53 4e 49 5f 73 65 72 76 65 ')).{.$options['ssl']['SNI_serve
894a0 72 5f 6e 61 6d 65 27 5d 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 r_name'].=.parse_url($url,.PHP_U
894c0 52 4c 5f 48 4f 53 54 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 RL_HOST);.}.}....if.(isset($prox
894e0 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 75 72 6c 64 65 63 6f 64 65 28 y['user'])).{.$auth.=.urldecode(
89500 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 $proxy['user']);.if.(isset($prox
89520 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 75 72 6c y['pass'])).{.$auth..=.':'...url
89540 64 65 63 6f 64 65 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 3b 0a 7d 0a 24 61 75 74 68 20 decode($proxy['pass']);.}.$auth.
89560 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 29 3b 0a 0a 0a 20 69 66 20 28 69 =.base64_encode($auth);....if.(i
89580 73 73 65 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 sset($defaultOptions['http']['he
895a0 61 64 65 72 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 66 61 75 6c ader'])).{.if.(is_string($defaul
895c0 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 tOptions['http']['header'])).{.$
895e0 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d defaultOptions['http']['header']
89600 20 3d 20 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d .=.array($defaultOptions['http']
89620 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 ['header']);.}.$defaultOptions['
89640 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 5b 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 http']['header'][].=."Proxy-Auth
89660 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 orization:.Basic.{$auth}";.}.els
89680 65 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d e.{.$options['http']['header'].=
896a0 20 61 72 72 61 79 28 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 .array("Proxy-Authorization:.Bas
896c0 69 63 20 7b 24 61 75 74 68 7d 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 ic.{$auth}");.}.}.}..$options.=.
896e0 61 72 72 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 array_replace_recursive($options
89700 2c 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 ,.$defaultOptions);..if.(isset($
89720 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f options['http']['header'])).{.$o
89740 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 65 6c 66 3a ptions['http']['header'].=.self:
89760 3a 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 :fixHttpHeaderField($options['ht
89780 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 tp']['header']);.}..return.strea
897a0 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 m_context_create($options,.$defa
897c0 75 6c 74 50 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ultParams);.}............private
897e0 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 .static.function.fixHttpHeaderFi
89800 65 6c 64 28 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 68 65 eld($header).{.if.(!is_array($he
89820 61 64 65 72 29 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e ader)).{.$header.=.explode("\r\n
89840 22 2c 20 24 68 65 61 64 65 72 29 3b 0a 7d 0a 75 61 73 6f 72 74 28 24 68 65 61 64 65 72 2c 20 66 ",.$header);.}.uasort($header,.f
89860 75 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 unction.($el).{.return.preg_matc
89880 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 74 79 70 65 7d 69 27 2c 20 24 65 6c 29 20 3f 20 31 20 3a h('{^content-type}i',.$el).?.1.:
898a0 20 2d 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f .-1;.});..return.$header;.}.}.<?
898c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
898e0 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f r\Util;..use.Composer\Package\Lo
89900 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 ader\ArrayLoader;.use.Composer\P
89920 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 ackage\Loader\ValidatingArrayLoa
89940 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 der;.use.Composer\Package\Loader
89960 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f \InvalidPackageException;.use.Co
89980 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 mposer\Json\JsonValidationExcept
899a0 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 ion;.use.Composer\IO\IOInterface
899c0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a ;.use.Composer\Json\JsonFile;...
899e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 0a 7b 0a 70 72 69 .....class.ConfigValidator.{.pri
89a00 76 61 74 65 20 24 69 6f 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e vate.$io;..public.function.__con
89a20 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d struct(IOInterface.$io).{.$this-
89a40 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e >io.=.$io;.}..........public.fun
89a60 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 2c 20 24 61 72 72 61 79 4c 6f 61 64 ction.validate($file,.$arrayLoad
89a80 65 72 56 61 6c 69 64 61 74 69 6f 6e 46 6c 61 67 73 20 3d 20 56 61 6c 69 64 61 74 69 6e 67 41 72 erValidationFlags.=.ValidatingAr
89aa0 72 61 79 4c 6f 61 64 65 72 3a 3a 43 48 45 43 4b 5f 41 4c 4c 29 0a 7b 0a 24 65 72 72 6f 72 73 20 rayLoader::CHECK_ALL).{.$errors.
89ac0 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 3d 20 61 72 72 61 =.array();.$publishErrors.=.arra
89ae0 79 28 29 3b 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 24 6c 61 y();.$warnings.=.array();....$la
89b00 78 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 xValid.=.false;.try.{.$json.=.ne
89b20 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 w.JsonFile($file,.new.RemoteFile
89b40 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 system($this->io));.$manifest.=.
89b60 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 $json->read();..$json->validateS
89b80 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 chema(JsonFile::LAX_SCHEMA);.$la
89ba0 78 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 xValid.=.true;.$json->validateSc
89bc0 68 65 6d 61 28 29 3b 0a 7d 20 63 61 74 63 68 20 28 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 hema();.}.catch.(JsonValidationE
89be0 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e 67 65 74 45 xception.$e).{.foreach.($e->getE
89c00 72 72 6f 72 73 28 29 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 6c 61 78 56 rrors().as.$message).{.if.($laxV
89c20 61 6c 69 64 29 20 7b 0a 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 alid).{.$publishErrors[].=.$mess
89c40 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 age;.}.else.{.$errors[].=.$messa
89c60 67 65 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 ge;.}.}.}.catch.(\Exception.$e).
89c80 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a {.$errors[].=.$e->getMessage();.
89ca0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 .return.array($errors,.$publishE
89cc0 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 rrors,.$warnings);.}....if.(!emp
89ce0 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 0a 20 69 66 ty($manifest['license'])).{...if
89d00 20 28 69 73 5f 61 72 72 61 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 .(is_array($manifest['license'])
89d20 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 ).{.foreach.($manifest['license'
89d40 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 69 66 20 28 27 70 72 ].as.$key.=>.$license).{.if.('pr
89d60 6f 70 72 69 65 74 61 72 79 27 20 3d 3d 3d 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 75 6e 73 65 74 oprietary'.===.$license).{.unset
89d80 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a ($manifest['license'][$key]);.}.
89da0 7d 0a 7d 0a 0a 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 }.}..$licenseValidator.=.new.Spd
89dc0 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 xLicenseIdentifier();.if.('propr
89de0 69 65 74 61 72 79 27 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d ietary'.!==.$manifest['license']
89e00 20 26 26 20 61 72 72 61 79 28 29 20 21 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e .&&.array().!==.$manifest['licen
89e20 73 65 27 5d 20 26 26 20 21 24 6c 69 63 65 6e 73 65 56 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 se'].&&.!$licenseValidator->vali
89e40 64 61 74 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 77 date($manifest['license'])).{.$w
89e60 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 4c 69 63 65 6e 73 65 20 25 73 arnings[].=.sprintf(.'License.%s
89e80 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 53 50 44 58 20 6c 69 63 65 6e 73 65 20 69 64 65 .is.not.a.valid.SPDX.license.ide
89ea0 6e 74 69 66 69 65 72 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 77 77 77 2e 73 70 64 78 2e 6f 72 67 ntifier,.see.http://www.spdx.org
89ec0 2f 6c 69 63 65 6e 73 65 73 2f 20 69 66 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 /licenses/.if.you.use.an.open.li
89ee0 63 65 6e 73 65 2e 27 0a 2e 22 5c 6e 49 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 cense.'.."\nIf.the.software.is.c
89f00 6c 6f 73 65 64 2d 73 6f 75 72 63 65 2c 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 losed-source,.you.may.use.\"prop
89f20 72 69 65 74 61 72 79 5c 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 rietary\".as.license.",.json_enc
89f40 6f 64 65 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d ode($manifest['license']).);.}.}
89f60 20 65 6c 73 65 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 .else.{.$warnings[].=.'No.licens
89f80 65 20 73 70 65 63 69 66 69 65 64 2c 20 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 e.specified,.it.is.recommended.t
89fa0 6f 20 64 6f 20 73 6f 2e 20 46 6f 72 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 o.do.so..For.closed-source.softw
89fc0 61 72 65 20 79 6f 75 20 6d 61 79 20 75 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 are.you.may.use."proprietary".as
89fe0 20 6c 69 63 65 6e 73 65 2e 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 .license.';.}..if.(isset($manife
8a000 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 st['version'])).{.$warnings[].=.
8a020 27 54 68 65 20 76 65 72 73 69 6f 6e 20 66 69 65 6c 64 20 69 73 20 70 72 65 73 65 6e 74 2c 20 69 'The.version.field.is.present,.i
8a040 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 6c 65 61 76 65 20 69 74 20 6f 75 74 t.is.recommended.to.leave.it.out
8a060 20 69 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 70 75 62 6c 69 73 68 65 64 20 6f 6e 20 .if.the.package.is.published.on.
8a080 50 61 63 6b 61 67 69 73 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 Packagist.';.}..if.(!empty($mani
8a0a0 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 fest['name']).&&.preg_match('{[A
8a0c0 2d 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 -Z]}',.$manifest['name'])).{.$su
8a0e0 67 67 65 73 74 4e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b ggestName.=.preg_replace('{(?:([
8a100 61 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 a-z])([A-Z])|([A-Z])([A-Z][a-z])
8a120 29 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b )}',.'\\1\\3-\\2\\4',.$manifest[
8a140 27 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 'name']);.$suggestName.=.strtolo
8a160 77 65 72 28 24 73 75 67 67 65 73 74 4e 61 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 wer($suggestName);..$warnings[].
8a180 3d 20 73 70 72 69 6e 74 66 28 0a 27 4e 61 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d =.sprintf(.'Name."%s".does.not.m
8a1a0 61 74 63 68 20 74 68 65 20 62 65 73 74 20 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 atch.the.best.practice.(e.g..low
8a1c0 65 72 2d 63 61 73 65 64 2f 77 69 74 68 2d 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 er-cased/with-dashes)..We.sugges
8a1e0 74 20 75 73 69 6e 67 20 22 25 73 22 20 69 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f t.using."%s".instead..As.such.yo
8a200 75 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 u.will.not.be.able.to.submit.it.
8a220 74 6f 20 50 61 63 6b 61 67 69 73 74 2e 27 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 to.Packagist.',.$manifest['name'
8a240 5d 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 ],.$suggestName.);.}..if.(!empty
8a260 28 24 6d 61 6e 69 66 65 73 74 5b 27 74 79 70 65 27 5d 29 20 26 26 20 24 6d 61 6e 69 66 65 73 74 ($manifest['type']).&&.$manifest
8a280 5b 27 74 79 70 65 27 5d 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 ['type'].==.'composer-installer'
8a2a0 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 22 54 68 65 20 70 61 63 6b 61 67 65 20 74 ).{.$warnings[].=."The.package.t
8a2c0 79 70 65 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 20 69 73 20 64 65 70 72 ype.'composer-installer'.is.depr
8a2e0 65 63 61 74 65 64 2e 20 50 6c 65 61 73 65 20 64 69 73 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 ecated..Please.distribute.your.c
8a300 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 70 6c 75 67 69 6e 73 20 66 72 6f 6d ustom.installers.as.plugins.from
8a320 20 6e 6f 77 20 6f 6e 2e 20 53 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e .now.on..See.http://getcomposer.
8a340 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 70 6c 75 67 69 6e 73 2e 6d 64 20 66 6f 72 20 org/doc/articles/plugins.md.for.
8a360 70 6c 75 67 69 6e 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2e 22 3b 0a 7d 0a 0a 0a 20 69 66 20 plugin.documentation.";.}....if.
8a380 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 29 20 26 26 20 (isset($manifest['require']).&&.
8a3a0 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 isset($manifest['require-dev']))
8a3c0 20 7b 0a 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 .{.$requireOverrides.=.array_int
8a3e0 65 72 73 65 63 74 5f 6b 65 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 2c ersect_key($manifest['require'],
8a400 20 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 0a 69 66 20 .$manifest['require-dev']);..if.
8a420 28 21 65 6d 70 74 79 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 29 20 7b 0a 24 70 (!empty($requireOverrides)).{.$p
8a440 6c 75 72 61 6c 20 3d 20 28 63 6f 75 6e 74 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 lural.=.(count($requireOverrides
8a460 29 20 3e 20 31 29 20 3f 20 27 61 72 65 27 20 3a 20 27 69 73 27 3b 0a 24 77 61 72 6e 69 6e 67 73 ).>.1).?.'are'.:.'is';.$warnings
8a480 5b 5d 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 [].=.implode(',.',.array_keys($r
8a4a0 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 29 2e 20 22 20 7b 24 70 6c 75 72 61 6c 7d 20 72 equireOverrides))..".{$plural}.r
8a4c0 65 71 75 69 72 65 64 20 62 6f 74 68 20 69 6e 20 72 65 71 75 69 72 65 20 61 6e 64 20 72 65 71 75 equired.both.in.require.and.requ
8a4e0 69 72 65 2d 64 65 76 2c 20 74 68 69 73 20 63 61 6e 20 6c 65 61 64 20 74 6f 20 75 6e 65 78 70 65 ire-dev,.this.can.lead.to.unexpe
8a500 63 74 65 64 20 62 65 68 61 76 69 6f 72 22 3b 0a 7d 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 cted.behavior";.}.}..try.{.$load
8a520 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e er.=.new.ValidatingArrayLoader(n
8a540 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 2c 20 74 72 75 65 2c 20 6e 75 6c 6c 2c 20 24 61 ew.ArrayLoader(),.true,.null,.$a
8a560 72 72 61 79 4c 6f 61 64 65 72 56 61 6c 69 64 61 74 69 6f 6e 46 6c 61 67 73 29 3b 0a 69 66 20 28 rrayLoaderValidationFlags);.if.(
8a580 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a !isset($manifest['version'])).{.
8a5a0 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 27 31 2e 30 2e 30 27 3b 0a $manifest['version'].=.'1.0.0';.
8a5c0 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 29 }.if.(!isset($manifest['name']))
8a5e0 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 27 64 75 6d 6d 79 2f 64 75 .{.$manifest['name'].=.'dummy/du
8a600 6d 6d 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6d 61 6e 69 66 65 73 74 29 mmy';.}.$loader->load($manifest)
8a620 3b 0a 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 ;.}.catch.(InvalidPackageExcepti
8a640 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 on.$e).{.$errors.=.array_merge($
8a660 65 72 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 24 77 61 errors,.$e->getErrors());.}..$wa
8a680 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 61 72 6e 69 6e 67 73 2c 20 rnings.=.array_merge($warnings,.
8a6a0 24 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e $loader->getWarnings());..return
8a6c0 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 .array($errors,.$publishErrors,.
8a6e0 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a $warnings);.}.}.<?php...........
8a700 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a .namespace.Composer\Util;.......
8a720 63 6c 61 73 73 20 45 72 72 6f 72 48 61 6e 64 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a class.ErrorHandler.{............
8a740 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 6e 64 6c 65 28 24 6c public.static.function.handle($l
8a760 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 0a 7b 0a evel,.$message,.$file,.$line).{.
8a780 0a 20 69 66 20 28 21 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 29 29 20 7b 0a 72 65 74 75 ..if.(!error_reporting()).{.retu
8a7a0 72 6e 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 rn;.}..if.(ini_get('xdebug.screa
8a7c0 6d 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 57 61 72 6e 69 6e 67 3a m')).{.$message..=."\n\nWarning:
8a7e0 20 59 6f 75 20 68 61 76 65 20 78 64 65 62 75 67 2e 73 63 72 65 61 6d 20 65 6e 61 62 6c 65 64 2c .You.have.xdebug.scream.enabled,
8a800 20 74 68 65 20 77 61 72 6e 69 6e 67 20 61 62 6f 76 65 20 6d 61 79 20 62 65 22 2e 0a 22 5c 6e 61 .the.warning.above.may.be".."\na
8a820 20 6c 65 67 69 74 69 6d 61 74 65 6c 79 20 73 75 70 70 72 65 73 73 65 64 20 65 72 72 6f 72 20 74 .legitimately.suppressed.error.t
8a840 68 61 74 20 79 6f 75 20 77 65 72 65 20 6e 6f 74 20 73 75 70 70 6f 73 65 64 20 74 6f 20 73 65 65 hat.you.were.not.supposed.to.see
8a860 2e 22 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e .";.}..throw.new.\ErrorException
8a880 28 24 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 6c 65 76 65 6c 2c 20 24 66 69 6c 65 2c 20 24 6c 69 ($message,.0,.$level,.$file,.$li
8a8a0 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 ne);.}.......public.static.funct
8a8c0 69 6f 6e 20 72 65 67 69 73 74 65 72 28 29 0a 7b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c ion.register().{.set_error_handl
8a8e0 65 72 28 61 72 72 61 79 28 5f 5f 43 4c 41 53 53 5f 5f 2c 20 27 68 61 6e 64 6c 65 27 29 29 3b 0a er(array(__CLASS__,.'handle'));.
8a900 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
8a920 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 omposer\Util;..use.Composer\Conf
8a940 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b ig;.use.Composer\IO\IOInterface;
8a960 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 68 48 65 6c 70 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 .....class.AuthHelper.{.protecte
8a980 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 70 75 62 6c 69 d.$io;.protected.$config;..publi
8a9a0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 c.function.__construct(IOInterfa
8a9c0 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d ce.$io,.Config.$config).{.$this-
8a9e0 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 >io.=.$io;.$this->config.=.$conf
8aa00 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 72 65 41 75 74 68 ig;.}..public.function.storeAuth
8aa20 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 73 74 6f 72 65 41 75 74 68 29 0a 7b 0a 24 73 74 6f 72 ($originUrl,.$storeAuth).{.$stor
8aa40 65 20 3d 20 66 61 6c 73 65 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 24 74 68 69 73 e.=.false;.$configSource.=.$this
8aa60 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 3b ->config->getAuthConfigSource();
8aa80 0a 69 66 20 28 24 73 74 6f 72 65 41 75 74 68 20 3d 3d 3d 20 74 72 75 65 29 20 7b 0a 24 73 74 6f .if.($storeAuth.===.true).{.$sto
8aaa0 72 65 20 3d 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 73 re.=.$configSource;.}.elseif.($s
8aac0 74 6f 72 65 41 75 74 68 20 3d 3d 3d 20 27 70 72 6f 6d 70 74 27 29 20 7b 0a 24 61 6e 73 77 65 72 toreAuth.===.'prompt').{.$answer
8aae0 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 27 44 .=.$this->io->askAndValidate(.'D
8ab00 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 73 74 6f 72 65 20 63 72 65 64 65 6e 74 69 61 6c 73 20 o.you.want.to.store.credentials.
8ab20 66 6f 72 20 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2e 27 20 69 6e 20 27 2e 24 63 6f 6e 66 69 67 53 for.'.$originUrl.'.in.'.$configS
8ab40 6f 75 72 63 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3f 20 5b 59 6e 5d 20 27 2c 0a 66 75 6e ource->getName().'.?.[Yn].',.fun
8ab60 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 73 74 72 74 6f 6c ction.($value).{.$input.=.strtol
8ab80 6f 77 65 72 28 73 75 62 73 74 72 28 74 72 69 6d 28 24 76 61 6c 75 65 29 2c 20 30 2c 20 31 29 29 ower(substr(trim($value),.0,.1))
8aba0 3b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 69 6e 70 75 74 2c 20 61 72 72 61 79 28 27 79 27 ;.if.(in_array($input,.array('y'
8abc0 2c 27 6e 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 3b 0a 7d 0a 74 68 72 6f 77 ,'n'))).{.return.$input;.}.throw
8abe0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 61 .new.\RuntimeException('Please.a
8ac00 6e 73 77 65 72 20 28 79 29 65 73 20 6f 72 20 28 6e 29 6f 27 29 3b 0a 7d 2c 0a 66 61 6c 73 65 2c nswer.(y)es.or.(n)o');.},.false,
8ac20 0a 27 79 27 0a 29 3b 0a 0a 69 66 20 28 24 61 6e 73 77 65 72 20 3d 3d 3d 20 27 79 27 29 20 7b 0a .'y'.);..if.($answer.===.'y').{.
8ac40 24 73 74 6f 72 65 20 3d 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 7d 0a 69 66 20 28 $store.=.$configSource;.}.}.if.(
8ac60 24 73 74 6f 72 65 29 20 7b 0a 24 73 74 6f 72 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 $store).{.$store->addConfigSetti
8ac80 6e 67 28 0a 27 68 74 74 70 2d 62 61 73 69 63 2e 27 2e 24 6f 72 69 67 69 6e 55 72 6c 2c 0a 24 74 ng(.'http-basic.'.$originUrl,.$t
8aca0 68 69 73 2d 3e 69 6f 2d 3e 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 his->io->getAuthentication($orig
8acc0 69 6e 55 72 6c 29 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a inUrl).);.}.}.}.<?php...........
8ace0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 .namespace.Composer\Util;..use.C
8ad00 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c omposer\Json\JsonFile;........cl
8ad20 61 73 73 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 0a 7b 0a 0a 0a 0a 70 ass.SpdxLicenseIdentifier.{....p
8ad40 72 69 76 61 74 65 20 24 69 64 65 6e 74 69 66 69 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e rivate.$identifiers;..public.fun
8ad60 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 ction.__construct().{.$this->ini
8ad80 74 49 64 65 6e 74 69 66 69 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tIdentifiers();.}........public.
8ada0 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 69 66 function.validate($license).{.if
8adc0 20 28 69 73 5f 61 72 72 61 79 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 24 63 6f 75 6e 74 20 3d .(is_array($license)).{.$count.=
8ade0 20 63 6f 75 6e 74 28 24 6c 69 63 65 6e 73 65 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 21 3d 3d .count($license);.if.($count.!==
8ae00 20 63 6f 75 6e 74 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6c 69 63 65 6e 73 65 2c 20 27 69 .count(array_filter($license,.'i
8ae20 73 5f 73 74 72 69 6e 67 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 s_string'))).{.throw.new.\Invali
8ae40 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 72 72 61 79 20 6f 66 20 73 74 72 dArgumentException('Array.of.str
8ae60 69 6e 67 73 20 65 78 70 65 63 74 65 64 2e 27 29 3b 0a 7d 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 ings.expected.');.}.$license.=.$
8ae80 63 6f 75 6e 74 20 3e 20 31 20 3f 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 20 6f 72 20 27 2c 20 count.>.1.?.'('.implode('.or.',.
8aea0 24 6c 69 63 65 6e 73 65 29 2e 27 29 27 20 3a 20 28 73 74 72 69 6e 67 29 20 72 65 73 65 74 28 24 $license).')'.:.(string).reset($
8aec0 6c 69 63 65 6e 73 65 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 6c 69 63 65 license);.}.if.(!is_string($lice
8aee0 6e 73 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 nse)).{.throw.new.\InvalidArgume
8af00 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 41 72 72 61 79 20 6f 72 20 53 ntException(sprintf(.'Array.or.S
8af20 74 72 69 6e 67 20 65 78 70 65 63 74 65 64 2c 20 25 73 20 67 69 76 65 6e 2e 27 2c 20 67 65 74 74 tring.expected,.%s.given.',.gett
8af40 79 70 65 28 24 6c 69 63 65 6e 73 65 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ype($license).));.}..return.$thi
8af60 73 2d 3e 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 s->isValidLicenseString($license
8af80 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 49 64 );.}.....private.function.initId
8afa0 65 6e 74 69 66 69 65 72 73 28 29 0a 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 entifiers().{.$jsonFile.=.new.Js
8afc0 6f 6e 46 69 6c 65 28 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f onFile(__DIR__...'/../../../res/
8afe0 73 70 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 spdx-identifier.json');.$this->i
8b000 64 65 6e 74 69 66 69 65 72 73 20 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a dentifiers.=.$jsonFile->read();.
8b020 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 }.......private.function.isValid
8b040 4c 69 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b LicenseIdentifier($identifier).{
8b060 0a 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 .return.in_array($identifier,.$t
8b080 68 69 73 2d 3e 69 64 65 6e 74 69 66 69 65 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 his->identifiers);.}........priv
8b0a0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e ate.function.isValidLicenseStrin
8b0c0 67 28 24 6c 69 63 65 6e 73 65 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 g($license).{.$tokens.=.array(.'
8b0e0 70 6f 27 20 3d 3e 20 27 5c 28 27 2c 0a 27 70 63 27 20 3d 3e 20 27 5c 29 27 2c 0a 27 6f 70 27 20 po'.=>.'\(',.'pc'.=>.'\)',.'op'.
8b100 3d 3e 20 27 28 3f 3a 6f 72 7c 61 6e 64 29 27 2c 0a 27 6c 69 78 27 20 3d 3e 20 27 28 3f 3a 4e 4f =>.'(?:or|and)',.'lix'.=>.'(?:NO
8b120 4e 45 7c 4e 4f 41 53 53 45 52 54 49 4f 4e 29 27 2c 0a 27 6c 69 72 27 20 3d 3e 20 27 4c 69 63 65 NE|NOASSERTION)',.'lir'.=>.'Lice
8b140 6e 73 65 52 65 66 2d 5c 64 2b 27 2c 0a 27 6c 69 63 27 20 3d 3e 20 27 5b 2d 2b 5f 2e 61 2d 7a 41 nseRef-\d+',.'lic'.=>.'[-+_.a-zA
8b160 2d 5a 30 2d 39 5d 7b 33 2c 7d 27 2c 0a 27 77 73 27 20 3d 3e 20 27 5c 73 2b 27 2c 0a 27 5f 27 20 -Z0-9]{3,}',.'ws'.=>.'\s+',.'_'.
8b180 3d 3e 20 27 2e 27 2c 0a 29 3b 0a 0a 24 6e 65 78 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 =>.'.',.);..$next.=.function.().
8b1a0 75 73 65 20 28 24 6c 69 63 65 6e 73 65 2c 20 24 74 6f 6b 65 6e 73 29 20 7b 0a 73 74 61 74 69 63 use.($license,.$tokens).{.static
8b1c0 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 69 66 20 28 24 6f 66 66 73 65 74 20 3e 3d 20 73 74 .$offset.=.0;..if.($offset.>=.st
8b1e0 72 6c 65 6e 28 24 6c 69 63 65 6e 73 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d rlen($license)).{.return.null;.}
8b200 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 ..foreach.($tokens.as.$name.=>.$
8b220 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 20 3d 20 70 72 65 67 token).{.if.(false.===.$r.=.preg
8b240 5f 6d 61 74 63 68 28 27 7b 27 20 2e 20 24 74 6f 6b 65 6e 20 2e 20 27 7d 27 2c 20 24 6c 69 63 65 _match('{'...$token...'}',.$lice
8b260 6e 73 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 nse,.$matches,.PREG_OFFSET_CAPTU
8b280 52 45 2c 20 24 6f 66 66 73 65 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 RE,.$offset)).{.throw.new.\Runti
8b2a0 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 74 74 65 72 6e 20 66 6f 72 20 74 6f 6b 65 6e 20 25 meException('Pattern.for.token.%
8b2c0 73 20 66 61 69 6c 65 64 20 28 72 65 67 65 78 20 65 72 72 6f 72 29 2e 27 2c 20 24 6e 61 6d 65 29 s.failed.(regex.error).',.$name)
8b2e0 3b 0a 7d 0a 69 66 20 28 24 72 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a ;.}.if.($r.===.0).{.continue;.}.
8b300 69 66 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 5b 31 5d 20 21 3d 3d 20 24 6f 66 66 73 65 74 29 20 if.($matches[0][1].!==.$offset).
8b320 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 6f 66 66 73 65 74 20 2b 3d 20 73 74 72 6c 65 6e 28 {.continue;.}.$offset.+=.strlen(
8b340 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 $matches[0][0]);..return.array($
8b360 6e 61 6d 65 2c 20 24 6d 61 74 63 68 65 73 5b 30 5d 5b 30 5d 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 name,.$matches[0][0]);.}..throw.
8b380 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 74 20 6c 65 61 73 74 20 new.\RuntimeException('At.least.
8b3a0 74 68 65 20 6c 61 73 74 20 70 61 74 74 65 72 6e 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 2c the.last.pattern.needs.to.match,
8b3c0 20 62 75 74 20 69 74 20 64 69 64 20 6e 6f 74 20 28 64 6f 74 2d 6d 61 74 63 68 2d 61 6c 6c 20 69 .but.it.did.not.(dot-match-all.i
8b3e0 73 20 6d 69 73 73 69 6e 67 3f 29 2e 27 29 3b 0a 7d 3b 0a 0a 24 6f 70 65 6e 20 3d 20 30 3b 0a 24 s.missing?).');.};..$open.=.0;.$
8b400 72 65 71 75 69 72 65 20 3d 20 31 3b 0a 24 6c 61 73 74 6f 70 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 require.=.1;.$lastop.=.null;..wh
8b420 69 6c 65 20 28 6c 69 73 74 28 24 74 6f 6b 65 6e 2c 20 24 73 74 72 69 6e 67 29 20 3d 20 24 6e 65 ile.(list($token,.$string).=.$ne
8b440 78 74 28 29 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 63 61 73 65 20 27 xt()).{.switch.($token).{.case.'
8b460 70 6f 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 7c 7c 20 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 po':.if.($open.||.!$require).{.r
8b480 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 31 3b 0a 62 72 65 61 6b 3b eturn.false;.}.$open.=.1;.break;
8b4a0 0a 63 61 73 65 20 27 70 63 27 3a 0a 69 66 20 28 24 6f 70 65 6e 20 21 3d 3d 20 31 20 7c 7c 20 24 .case.'pc':.if.($open.!==.1.||.$
8b4c0 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6c 61 73 74 6f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 require.||.!$lastop).{.return.fa
8b4e0 6c 73 65 3b 0a 7d 0a 24 6f 70 65 6e 20 3d 20 32 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6f lse;.}.$open.=.2;.break;.case.'o
8b500 70 27 3a 0a 69 66 20 28 24 72 65 71 75 69 72 65 20 7c 7c 20 21 24 6f 70 65 6e 29 20 7b 0a 72 65 p':.if.($require.||.!$open).{.re
8b520 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 6c 61 73 74 6f 70 20 7c 7c 20 24 6c 61 73 74 6f 70 turn.false;.}.$lastop.||.$lastop
8b540 20 3d 20 24 73 74 72 69 6e 67 3b 0a 69 66 20 28 24 6c 61 73 74 6f 70 20 21 3d 3d 20 24 73 74 72 .=.$string;.if.($lastop.!==.$str
8b560 69 6e 67 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 ing).{.return.false;.}.$require.
8b580 3d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6c 69 78 27 3a 0a 69 66 20 28 24 6f 70 65 =.1;.break;.case.'lix':.if.($ope
8b5a0 6e 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 67 6f 74 6f 20 6c 69 72 3b 0a 63 n).{.return.false;.}.goto.lir;.c
8b5c0 61 73 65 20 27 6c 69 63 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4c 69 ase.'lic':.if.(!$this->isValidLi
8b5e0 63 65 6e 73 65 49 64 65 6e 74 69 66 69 65 72 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 censeIdentifier($string)).{.retu
8b600 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 20 63 61 73 65 20 27 6c 69 72 27 3a 0a 6c 69 72 3a 0a 69 rn.false;.}...case.'lir':.lir:.i
8b620 66 20 28 21 24 72 65 71 75 69 72 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a f.(!$require).{.return.false;.}.
8b640 24 72 65 71 75 69 72 65 20 3d 20 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 77 73 27 3a 0a $require.=.0;.break;.case.'ws':.
8b660 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 5f 27 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 64 break;.case.'_':.return.false;.d
8b680 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 efault:.throw.new.\RuntimeExcept
8b6a0 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 70 61 72 73 65 64 20 74 6f 6b 65 6e 3a 20 25 73 2e ion(sprintf('Unparsed.token:.%s.
8b6c0 27 2c 20 70 72 69 6e 74 5f 72 28 24 74 6f 6b 65 6e 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 7d 0a ',.print_r($token,.true)));.}.}.
8b6e0 0a 72 65 74 75 72 6e 20 21 28 24 6f 70 65 6e 20 25 20 32 20 7c 7c 20 24 72 65 71 75 69 72 65 29 .return.!($open.%.2.||.$require)
8b700 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
8b720 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 50 72 6f 78 .Composer\Util;.....class.NoProx
8b740 79 50 61 74 74 65 72 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 20 3d yPattern.{....protected.$rules.=
8b760 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f .array();.....public.function.__
8b780 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c construct($pattern).{.$this->rul
8b7a0 65 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 22 2f 5b 5c 73 2c 5d 2b 2f 22 2c 20 24 70 61 74 es.=.preg_split("/[\s,]+/",.$pat
8b7c0 74 65 72 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e tern);.}.........public.function
8b7e0 20 74 65 73 74 28 24 75 72 6c 29 0a 7b 0a 24 68 6f 73 74 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 .test($url).{.$host.=.parse_url(
8b800 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 24 70 6f 72 74 20 3d 20 70 61 72 $url,.PHP_URL_HOST);.$port.=.par
8b820 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 50 4f 52 54 29 3b 0a 0a 69 66 20 se_url($url,.PHP_URL_PORT);..if.
8b840 28 65 6d 70 74 79 28 24 70 6f 72 74 29 29 20 7b 0a 73 77 69 74 63 68 20 28 70 61 72 73 65 5f 75 (empty($port)).{.switch.(parse_u
8b860 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 29 29 20 7b 0a 63 61 73 65 rl($url,.PHP_URL_SCHEME)).{.case
8b880 20 27 68 74 74 70 27 3a 0a 24 70 6f 72 74 20 3d 20 38 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 .'http':.$port.=.80;.break;.case
8b8a0 20 27 68 74 74 70 73 27 3a 0a 24 70 6f 72 74 20 3d 20 34 34 33 3b 0a 62 72 65 61 6b 3b 0a 7d 0a .'https':.$port.=.443;.break;.}.
8b8c0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 61 73 20 24 72 75 6c }..foreach.($this->rules.as.$rul
8b8e0 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 3d 3d 20 27 2a 27 29 20 7b 0a 72 65 74 75 72 6e 20 e).{.if.($rule.==.'*').{.return.
8b900 74 72 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 6c 69 73 74 28 24 true;.}..$match.=.false;..list($
8b920 72 75 6c 65 48 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b ruleHost).=.explode(':',.$rule);
8b940 0a 6c 69 73 74 28 24 62 61 73 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 72 75 6c .list($base).=.explode('/',.$rul
8b960 65 48 6f 73 74 29 3b 0a 0a 69 66 20 28 66 69 6c 74 65 72 5f 76 61 72 28 24 62 61 73 65 2c 20 46 eHost);..if.(filter_var($base,.F
8b980 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 ILTER_VALIDATE_IP,.FILTER_FLAG_I
8b9a0 50 56 34 29 29 20 7b 0a 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 69 70 29 29 20 7b 0a 24 69 70 PV4)).{...if.(!isset($ip)).{.$ip
8b9c0 20 3d 20 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 28 24 68 6f 73 74 29 3b 0a 7d 0a 0a 69 66 20 28 .=.gethostbyname($host);.}..if.(
8b9e0 73 74 72 70 6f 73 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 strpos($ruleHost,.'/').===.false
8ba00 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 24 69 70 20 3d 3d 3d 20 24 72 75 6c 65 48 6f 73 74 3b 0a ).{.$match.=.$ip.===.$ruleHost;.
8ba20 7d 20 65 6c 73 65 20 7b 0a 0a 20 0a 20 69 66 20 28 24 69 70 20 3d 3d 3d 20 24 68 6f 73 74 29 20 }.else.{.....if.($ip.===.$host).
8ba40 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6d 61 {.$match.=.false;.}.else.{...$ma
8ba60 74 63 68 20 3d 20 73 65 6c 66 3a 3a 69 6e 43 49 44 52 42 6c 6f 63 6b 28 24 72 75 6c 65 48 6f 73 tch.=.self::inCIDRBlock($ruleHos
8ba80 74 2c 20 24 69 70 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 0a 24 68 61 79 73 74 61 63 t,.$ip);.}.}.}.else.{...$haystac
8baa0 6b 20 3d 20 27 2e 27 20 2e 20 74 72 69 6d 28 24 68 6f 73 74 2c 20 27 2e 27 29 20 2e 20 27 2e 27 k.=.'.'...trim($host,.'.')...'.'
8bac0 3b 0a 24 6e 65 65 64 6c 65 20 3d 20 27 2e 27 2e 20 74 72 69 6d 28 24 72 75 6c 65 48 6f 73 74 2c ;.$needle.=.'.'..trim($ruleHost,
8bae0 20 27 2e 27 29 20 2e 27 2e 27 3b 0a 24 6d 61 74 63 68 20 3d 20 73 74 72 69 70 6f 73 28 73 74 72 .'.')..'.';.$match.=.stripos(str
8bb00 72 65 76 28 24 68 61 79 73 74 61 63 6b 29 2c 20 73 74 72 72 65 76 28 24 6e 65 65 64 6c 65 29 29 rev($haystack),.strrev($needle))
8bb20 20 3d 3d 3d 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 20 26 26 20 73 74 72 70 6f .===.0;.}....if.($match.&&.strpo
8bb40 73 28 24 72 75 6c 65 2c 20 27 3a 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 6c 69 73 74 28 s($rule,.':').!==.false).{.list(
8bb60 2c 20 24 72 75 6c 65 50 6f 72 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c ,.$rulePort).=.explode(':',.$rul
8bb80 65 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 72 75 6c 65 50 6f 72 74 29 20 26 26 20 24 70 6f e);.if.(!empty($rulePort).&&.$po
8bba0 72 74 20 21 3d 20 24 72 75 6c 65 50 6f 72 74 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 rt.!=.$rulePort).{.$match.=.fals
8bbc0 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 e;.}.}..if.($match).{.return.tru
8bbe0 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a e;.}.}..return.false;.}.........
8bc00 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 43 49 44 ...private.static.function.inCID
8bc20 52 42 6c 6f 63 6b 28 24 63 69 64 72 2c 20 24 69 70 29 0a 7b 0a 0a 20 6c 69 73 74 28 24 62 61 73 RBlock($cidr,.$ip).{...list($bas
8bc40 65 2c 20 24 62 69 74 73 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 63 69 64 72 29 3b e,.$bits).=.explode('/',.$cidr);
8bc60 0a 0a 0a 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 2c 20 24 64 29 20 3d 20 65 78 70 6c 6f ....list($a,.$b,.$c,.$d).=.explo
8bc80 64 65 28 27 2e 27 2c 20 24 62 61 73 65 29 3b 0a 0a 0a 20 24 69 20 3d 20 28 24 61 20 3c 3c 20 32 de('.',.$base);....$i.=.($a.<<.2
8bca0 34 29 20 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b 20 28 24 63 20 3c 3c 20 38 29 20 2b 20 24 64 4).+.($b.<<.16).+.($c.<<.8).+.$d
8bcc0 3b 0a 24 6d 61 73 6b 20 3d 20 24 62 69 74 73 20 3d 3d 20 30 20 3f 20 30 20 3a 20 28 7e 30 20 3c ;.$mask.=.$bits.==.0.?.0.:.(~0.<
8bce0 3c 20 28 33 32 20 2d 20 24 62 69 74 73 29 29 3b 0a 0a 0a 20 24 6c 6f 77 20 3d 20 24 69 20 26 20 <.(32.-.$bits));....$low.=.$i.&.
8bd00 24 6d 61 73 6b 3b 0a 0a 0a 20 24 68 69 67 68 20 3d 20 24 69 20 7c 20 28 7e 24 6d 61 73 6b 20 26 $mask;....$high.=.$i.|.(~$mask.&
8bd20 20 30 78 46 46 46 46 46 46 46 46 29 3b 0a 0a 0a 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 .0xFFFFFFFF);....list($a,.$b,.$c
8bd40 2c 20 24 64 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 69 70 29 3b 0a 0a 0a 20 24 63 ,.$d).=.explode('.',.$ip);....$c
8bd60 68 65 63 6b 20 3d 20 28 24 61 20 3c 3c 20 32 34 29 20 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b heck.=.($a.<<.24).+.($b.<<.16).+
8bd80 20 28 24 63 20 3c 3c 20 38 29 20 2b 20 24 64 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 24 63 68 .($c.<<.8).+.$d;......return.$ch
8bda0 65 63 6b 20 3e 3d 20 24 6c 6f 77 20 26 26 20 24 63 68 65 63 6b 20 3c 3d 20 24 68 69 67 68 3b 0a eck.>=.$low.&&.$check.<=.$high;.
8bdc0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 }.}.<?php............namespace.C
8bde0 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 omposer\Util;..use.Composer\Conf
8be00 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b ig;.use.Composer\IO\IOInterface;
8be20 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 0a 7b 0a 63 6f 6e 73 74 20 4d 41 58 5f 51 54 59 5f ......class.Svn.{.const.MAX_QTY_
8be40 41 55 54 48 5f 54 52 49 45 53 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 AUTH_TRIES.=.5;.....protected.$c
8be60 72 65 64 65 6e 74 69 61 6c 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 41 75 redentials;.....protected.$hasAu
8be80 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 th;.....protected.$io;.....prote
8bea0 63 74 65 64 20 24 75 72 6c 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 43 cted.$url;.....protected.$cacheC
8bec0 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 redentials.=.true;.....protected
8bee0 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 71 74 79 41 75 74 .$process;.....protected.$qtyAut
8bf00 68 54 72 69 65 73 20 3d 20 30 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 hTries.=.0;.....protected.$confi
8bf20 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 g;........public.function.__cons
8bf40 74 72 75 63 74 28 24 75 72 6c 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e truct($url,.IOInterface.$io,.Con
8bf60 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 fig.$config,.ProcessExecutor.$pr
8bf80 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 75 72 ocess.=.null).{.$this->url.=.$ur
8bfa0 6c 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 l;.$this->io.=.$io;.$this->confi
8bfc0 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 g.=.$config;.$this->process.=.$p
8bfe0 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d rocess.?:.new.ProcessExecutor;.}
8c000 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e ..public.static.function.cleanEn
8c020 76 28 29 0a 7b 0a 0a 20 70 75 74 65 6e 76 28 22 44 59 4c 44 5f 4c 49 42 52 41 52 59 5f 50 41 54 v().{...putenv("DYLD_LIBRARY_PAT
8c040 48 22 29 3b 0a 75 6e 73 65 74 28 24 5f 53 45 52 56 45 52 5b 27 44 59 4c 44 5f 4c 49 42 52 41 52 H");.unset($_SERVER['DYLD_LIBRAR
8c060 59 5f 50 41 54 48 27 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Y_PATH']);.}................publ
8c080 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 ic.function.execute($command,.$u
8c0a0 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 rl,.$cwd.=.null,.$path.=.null,.$
8c0c0 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 73 76 6e 43 6f 6d 6d 61 6e 64 20 3d verbose.=.false).{.$svnCommand.=
8c0e0 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 .$this->getCommand($command,.$ur
8c100 6c 2c 20 24 70 61 74 68 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 69 6f 20 3d l,.$path);.$output.=.null;.$io.=
8c120 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 24 68 61 6e 64 6c 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 .$this->io;.$handler.=.function.
8c140 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 20 75 73 65 20 28 26 24 6f 75 74 70 75 74 2c 20 ($type,.$buffer).use.(&$output,.
8c160 24 69 6f 2c 20 24 76 65 72 62 6f 73 65 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 21 3d 3d 20 27 $io,.$verbose).{.if.($type.!==.'
8c180 6f 75 74 27 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 27 52 65 64 69 72 65 63 74 69 out').{.return;.}.if.('Redirecti
8c1a0 6e 67 20 74 6f 20 55 52 4c 20 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 75 66 66 65 72 2c 20 ng.to.URL.'.===.substr($buffer,.
8c1c0 30 2c 20 31 39 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 0,.19)).{.return;.}.$output..=.$
8c1e0 62 75 66 66 65 72 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 buffer;.if.($verbose).{.$io->wri
8c200 74 65 45 72 72 6f 72 28 24 62 75 66 66 65 72 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 3b 0a 24 73 teError($buffer,.false);.}.};.$s
8c220 74 61 74 75 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 tatus.=.$this->process->execute(
8c240 24 73 76 6e 43 6f 6d 6d 61 6e 64 2c 20 24 68 61 6e 64 6c 65 72 2c 20 24 63 77 64 29 3b 0a 69 66 $svnCommand,.$handler,.$cwd);.if
8c260 20 28 30 20 3d 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 .(0.===.$status).{.return.$outpu
8c280 74 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 t;.}..if.(empty($output)).{.$out
8c2a0 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 put.=.$this->process->getErrorOu
8c2c0 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 tput();.}....if.(false.===.strip
8c2e0 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 43 6f 75 6c 64 20 6e 6f 74 20 61 75 74 68 65 6e 74 69 63 os($output,.'Could.not.authentic
8c300 61 74 65 20 74 6f 20 73 65 72 76 65 72 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 ate.to.server:').&&.false.===.st
8c320 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 ripos($output,.'authorization.fa
8c340 69 6c 65 64 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 iled').&&.false.===.stripos($out
8c360 70 75 74 2c 20 27 73 76 6e 3a 20 45 31 37 30 30 30 31 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d put,.'svn:.E170001:').&&.false.=
8c380 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 45 32 31 35 30 30 ==.stripos($output,.'svn:.E21500
8c3a0 34 3a 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 4:')).{.throw.new.\RuntimeExcept
8c3c0 69 6f 6e 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 ion($output);.}..if.(!$this->has
8c3e0 41 75 74 68 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 41 75 74 68 44 61 6e 63 65 28 29 3b 0a Auth()).{.$this->doAuthDance();.
8c400 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 71 74 79 41 75 74 68 54 72 69 65 73 2b 2b 20 3c }....if.($this->qtyAuthTries++.<
8c420 20 73 65 6c 66 3a 3a 4d 41 58 5f 51 54 59 5f 41 55 54 48 5f 54 52 49 45 53 29 20 7b 0a 0a 20 72 .self::MAX_QTY_AUTH_TRIES).{...r
8c440 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 eturn.$this->execute($command,.$
8c460 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 76 65 72 62 6f 73 65 29 3b 0a 7d 0a 0a url,.$cwd,.$path,.$verbose);.}..
8c480 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 77 72 throw.new.\RuntimeException(.'wr
8c4a0 6f 6e 67 20 63 72 65 64 65 6e 74 69 61 6c 73 20 70 72 6f 76 69 64 65 64 20 28 27 2e 24 6f 75 74 ong.credentials.provided.('.$out
8c4c0 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e put.')'.);.}.....public.function
8c4e0 20 73 65 74 43 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 28 24 63 61 63 68 65 43 72 65 64 65 .setCacheCredentials($cacheCrede
8c500 6e 74 69 61 6c 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c ntials).{.$this->cacheCredential
8c520 73 20 3d 20 24 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s.=.$cacheCredentials;.}........
8c540 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 75 74 68 44 61 6e 63 65 28 29 protected.function.doAuthDance()
8c560 0a 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 .{...if.(!$this->io->isInteracti
8c580 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ve()).{.throw.new.\RuntimeExcept
8c5a0 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 ion(.'can.not.ask.for.authentica
8c5c0 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 27 0a 29 3b tion.in.non.interactive.mode'.);
8c5e0 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 22 54 68 65 20 53 .}..$this->io->writeError("The.S
8c600 75 62 76 65 72 73 69 6f 6e 20 73 65 72 76 65 72 20 28 7b 24 74 68 69 73 2d 3e 75 72 6c 7d 29 20 ubversion.server.({$this->url}).
8c620 72 65 71 75 65 73 74 65 64 20 63 72 65 64 65 6e 74 69 61 6c 73 3a 22 29 3b 0a 0a 24 74 68 69 73 requested.credentials:");..$this
8c640 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 ->hasAuth.=.true;.$this->credent
8c660 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 ials['username'].=.$this->io->as
8c680 6b 28 22 55 73 65 72 6e 61 6d 65 3a 20 22 29 3b 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 k("Username:.");.$this->credenti
8c6a0 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b als['password'].=.$this->io->ask
8c6c0 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 22 50 61 73 73 77 6f 72 64 3a 20 22 29 3b 0a 0a 24 74 AndHideAnswer("Password:.");..$t
8c6e0 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 65 6e 74 69 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 69 his->cacheCredentials.=.$this->i
8c700 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 22 53 68 6f 75 6c 64 20 53 75 62 76 65 o->askConfirmation("Should.Subve
8c720 72 73 69 6f 6e 20 63 61 63 68 65 20 74 68 65 73 65 20 63 72 65 64 65 6e 74 69 61 6c 73 3f 20 28 rsion.cache.these.credentials?.(
8c740 79 65 73 2f 6e 6f 29 20 22 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b yes/no).",.true);..return.$this;
8c760 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .}...........protected.function.
8c780 67 65 74 43 6f 6d 6d 61 6e 64 28 24 63 6d 64 2c 20 24 75 72 6c 2c 20 24 70 61 74 68 20 3d 20 6e getCommand($cmd,.$url,.$path.=.n
8c7a0 75 6c 6c 29 0a 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 25 73 20 25 ull).{.$cmd.=.sprintf('%s.%s%s.%
8c7c0 73 27 2c 0a 24 63 6d 64 2c 0a 27 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 61 63 74 69 76 65 20 27 2c 0a s',.$cmd,.'--non-interactive.',.
8c7e0 24 74 68 69 73 2d 3e 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 2c 0a 50 72 $this->getCredentialString(),.Pr
8c800 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 75 72 6c 29 0a 29 3b 0a 0a ocessExecutor::escape($url).);..
8c820 69 66 20 28 24 70 61 74 68 29 20 7b 0a 24 63 6d 64 20 2e 3d 20 27 20 27 20 2e 20 50 72 6f 63 65 if.($path).{.$cmd..=.'.'...Proce
8c840 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 ssExecutor::escape($path);.}..re
8c860 74 75 72 6e 20 24 63 6d 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 turn.$cmd;.}.........protected.f
8c880 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 65 64 65 6e 74 69 61 6c 53 74 72 69 6e 67 28 29 0a 7b 0a unction.getCredentialString().{.
8c8a0 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 if.(!$this->hasAuth()).{.return.
8c8c0 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 0a 27 20 25 73 2d 2d 75 73 65 '';.}..return.sprintf(.'.%s--use
8c8e0 72 6e 61 6d 65 20 25 73 20 2d 2d 70 61 73 73 77 6f 72 64 20 25 73 20 27 2c 0a 24 74 68 69 73 2d rname.%s.--password.%s.',.$this-
8c900 3e 67 65 74 41 75 74 68 43 61 63 68 65 28 29 2c 0a 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 >getAuthCache(),.ProcessExecutor
8c920 3a 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 6e 61 6d 65 28 29 29 2c 0a ::escape($this->getUsername()),.
8c940 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 74 68 69 73 2d 3e 67 ProcessExecutor::escape($this->g
8c960 65 74 50 61 73 73 77 6f 72 64 28 29 29 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 etPassword()).);.}........protec
8c980 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 73 77 6f 72 64 28 29 0a 7b 0a 69 66 20 ted.function.getPassword().{.if.
8c9a0 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a ($this->credentials.===.null).{.
8c9c0 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 throw.new.\LogicException("No.sv
8c9e0 6e 20 61 75 74 68 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 n.auth.detected.");.}..return.is
8ca00 73 65 74 28 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 set($this->credentials['password
8ca20 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f ']).?.$this->credentials['passwo
8ca40 72 64 27 5d 20 3a 20 27 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 rd'].:.'';.}........protected.fu
8ca60 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 72 6e 61 6d 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 nction.getUsername().{.if.($this
8ca80 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 74 68 72 6f 77 20 ->credentials.===.null).{.throw.
8caa0 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 22 4e 6f 20 73 76 6e 20 61 75 74 68 new.\LogicException("No.svn.auth
8cac0 20 64 65 74 65 63 74 65 64 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 .detected.");.}..return.$this->c
8cae0 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a redentials['username'];.}.......
8cb00 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 75 74 68 28 29 0a 7b 0a 69 protected.function.hasAuth().{.i
8cb20 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 29 20 7b 0a 72 65 f.(null.!==.$this->hasAuth).{.re
8cb40 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 turn.$this->hasAuth;.}..if.(fals
8cb60 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 75 74 68 46 72 6f 6d 43 6f 6e 66 69 e.===.$this->createAuthFromConfi
8cb80 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 75 74 68 46 72 6f 6d 55 72 6c 28 g()).{.$this->createAuthFromUrl(
8cba0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 3b 0a 7d 0a 0a );.}..return.$this->hasAuth;.}..
8cbc0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 .....protected.function.getAuthC
8cbe0 61 63 68 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 43 72 65 64 ache().{.return.$this->cacheCred
8cc00 65 6e 74 69 61 6c 73 20 3f 20 27 27 20 3a 20 27 2d 2d 6e 6f 2d 61 75 74 68 2d 63 61 63 68 65 20 entials.?.''.:.'--no-auth-cache.
8cc20 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 ';.}.......private.function.crea
8cc40 74 65 41 75 74 68 46 72 6f 6d 43 6f 6e 66 69 67 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d teAuthFromConfig().{.if.(!$this-
8cc60 3e 63 6f 6e 66 69 67 2d 3e 68 61 73 28 27 68 74 74 70 2d 62 61 73 69 63 27 29 29 20 7b 0a 72 65 >config->has('http-basic')).{.re
8cc80 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a turn.$this->hasAuth.=.false;.}..
8cca0 24 61 75 74 68 43 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 $authConfig.=.$this->config->get
8ccc0 28 27 68 74 74 70 2d 62 61 73 69 63 27 29 3b 0a 0a 24 68 6f 73 74 20 3d 20 70 61 72 73 65 5f 75 ('http-basic');..$host.=.parse_u
8cce0 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 69 66 rl($this->url,.PHP_URL_HOST);.if
8cd00 20 28 69 73 73 65 74 28 24 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 29 29 20 7b 0a 24 .(isset($authConfig[$host])).{.$
8cd20 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 this->credentials['username'].=.
8cd40 24 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a $authConfig[$host]['username'];.
8cd60 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d $this->credentials['password'].=
8cd80 20 24 61 75 74 68 43 6f 6e 66 69 67 5b 24 68 6f 73 74 5d 5b 27 70 61 73 73 77 6f 72 64 27 5d 3b .$authConfig[$host]['password'];
8cda0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 74 72 75 65 3b 0a ..return.$this->hasAuth.=.true;.
8cdc0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d 20 66 61 6c 73 65 }..return.$this->hasAuth.=.false
8cde0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 ;.}.......private.function.creat
8ce00 65 41 75 74 68 46 72 6f 6d 55 72 6c 28 29 0a 7b 0a 24 75 72 69 20 3d 20 70 61 72 73 65 5f 75 72 eAuthFromUrl().{.$uri.=.parse_ur
8ce20 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 69 5b 27 75 l($this->url);.if.(empty($uri['u
8ce40 73 65 72 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 ser'])).{.return.$this->hasAuth.
8ce60 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 72 65 64 65 6e 74 69 61 6c 73 5b 27 =.false;.}..$this->credentials['
8ce80 75 73 65 72 6e 61 6d 65 27 5d 20 3d 20 24 75 72 69 5b 27 75 73 65 72 27 5d 3b 0a 69 66 20 28 21 username'].=.$uri['user'];.if.(!
8cea0 65 6d 70 74 79 28 24 75 72 69 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 72 empty($uri['pass'])).{.$this->cr
8cec0 65 64 65 6e 74 69 61 6c 73 5b 27 70 61 73 73 77 6f 72 64 27 5d 20 3d 20 24 75 72 69 5b 27 70 61 edentials['password'].=.$uri['pa
8cee0 73 73 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 20 3d ss'];.}..return.$this->hasAuth.=
8cf00 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 .true;.}.}.<?php............name
8cf20 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 space.Composer;..use.Composer\Pa
8cf40 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 ckage\RootPackageInterface;.use.
8cf60 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d Composer\Package\Locker;.use.Com
8cf80 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 poser\Repository\RepositoryManag
8cfa0 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 er;.use.Composer\Installer\Insta
8cfc0 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 llationManager;.use.Composer\Plu
8cfe0 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c gin\PluginManager;.use.Composer\
8d000 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 Downloader\DownloadManager;.use.
8d020 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 Composer\EventDispatcher\EventDi
8d040 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c spatcher;.use.Composer\Autoload\
8d060 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 AutoloadGenerator;.......class.C
8d080 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 31 2e 30 2e 30 omposer.{.const.VERSION.=.'1.0.0
8d0a0 2d 61 6c 70 68 61 31 30 27 3b 0a 63 6f 6e 73 74 20 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 -alpha10';.const.BRANCH_ALIAS_VE
8d0c0 52 53 49 4f 4e 20 3d 20 27 27 3b 0a 63 6f 6e 73 74 20 52 45 4c 45 41 53 45 5f 44 41 54 45 20 3d RSION.=.'';.const.RELEASE_DATE.=
8d0e0 20 27 32 30 31 35 2d 30 34 2d 31 34 20 32 31 3a 31 38 3a 35 31 27 3b 0a 0a 0a 0a 0a 70 72 69 76 .'2015-04-14.21:18:51';.....priv
8d100 61 74 65 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 ate.$package;.....private.$locke
8d120 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 r;.....private.$repositoryManage
8d140 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b r;.....private.$downloadManager;
8d160 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 .....private.$installationManage
8d180 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 0a r;.....private.$pluginManager;..
8d1a0 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ...private.$config;.....private.
8d1c0 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 $eventDispatcher;.....private.$a
8d1e0 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 utoloadGenerator;......public.fu
8d200 6e 63 74 69 6f 6e 20 73 65 74 50 61 63 6b 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 nction.setPackage(RootPackageInt
8d220 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 erface.$package).{.$this->packag
8d240 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e.=.$package;.}.....public.funct
8d260 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getPackage().{.return.$this-
8d280 3e 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >package;.}.....public.function.
8d2a0 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 setConfig(Config.$config).{.$thi
8d2c0 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s->config.=.$config;.}.....publi
8d2e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 c.function.getConfig().{.return.
8d300 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $this->config;.}.....public.func
8d320 74 69 6f 6e 20 73 65 74 4c 6f 63 6b 65 72 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a 7b tion.setLocker(Locker.$locker).{
8d340 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a .$this->locker.=.$locker;.}.....
8d360 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 65 public.function.getLocker().{.re
8d380 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 turn.$this->locker;.}.....public
8d3a0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 52 .function.setRepositoryManager(R
8d3c0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 epositoryManager.$manager).{.$th
8d3e0 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 is->repositoryManager.=.$manager
8d400 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 ;.}.....public.function.getRepos
8d420 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 itoryManager().{.return.$this->r
8d440 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 epositoryManager;.}.....public.f
8d460 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e 6c unction.setDownloadManager(Downl
8d480 6f 61 64 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f oadManager.$manager).{.$this->do
8d4a0 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a wnloadManager.=.$manager;.}.....
8d4c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 public.function.getDownloadManag
8d4e0 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e er().{.return.$this->downloadMan
8d500 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 ager;.}.....public.function.setI
8d520 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d nstallationManager(InstallationM
8d540 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c anager.$manager).{.$this->instal
8d560 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a lationManager.=.$manager;.}.....
8d580 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d public.function.getInstallationM
8d5a0 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c anager().{.return.$this->install
8d5c0 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ationManager;.}.....public.funct
8d5e0 69 6f 6e 20 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 50 6c 75 67 69 6e 4d 61 6e 61 67 ion.setPluginManager(PluginManag
8d600 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e 61 er.$manager).{.$this->pluginMana
8d620 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ger.=.$manager;.}.....public.fun
8d640 63 74 69 6f 6e 20 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 ction.getPluginManager().{.retur
8d660 6e 20 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 n.$this->pluginManager;.}.....pu
8d680 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 blic.function.setEventDispatcher
8d6a0 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 (EventDispatcher.$eventDispatche
8d6c0 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 r).{.$this->eventDispatcher.=.$e
8d6e0 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ventDispatcher;.}.....public.fun
8d700 63 74 69 6f 6e 20 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 0a 7b 0a 72 65 74 ction.getEventDispatcher().{.ret
8d720 75 72 6e 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a urn.$this->eventDispatcher;.}...
8d740 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e ..public.function.setAutoloadGen
8d760 65 72 61 74 6f 72 28 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f erator(AutoloadGenerator.$autolo
8d780 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 adGenerator).{.$this->autoloadGe
8d7a0 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a nerator.=.$autoloadGenerator;.}.
8d7c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 47 ....public.function.getAutoloadG
8d7e0 65 6e 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c enerator().{.return.$this->autol
8d800 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a oadGenerator;.}.}.<?php.........
8d820 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a ...namespace.Composer\Json;.....
8d840 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 class.JsonManipulator.{.private.
8d860 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 3b 0a 70 72 69 76 61 74 65 20 static.$RECURSE_BLOCKS;.private.
8d880 73 74 61 74 69 63 20 24 52 45 43 55 52 53 45 5f 41 52 52 41 59 53 3b 0a 70 72 69 76 61 74 65 20 static.$RECURSE_ARRAYS;.private.
8d8a0 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 56 41 4c 55 45 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 static.$JSON_VALUE;.private.stat
8d8c0 69 63 20 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 ic.$JSON_STRING;..private.$conte
8d8e0 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 nts;.private.$newline;.private.$
8d900 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 indent;..public.function.__const
8d920 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 52 45 ruct($contents).{.if.(!self::$RE
8d940 43 55 52 53 45 5f 42 4c 4f 43 4b 53 29 20 7b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 CURSE_BLOCKS).{.self::$RECURSE_B
8d960 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c LOCKS.=.'(?:[^{}]*|\{(?:[^{}]*|\
8d980 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d 2a 5c {(?:[^{}]*|\{(?:[^{}]*|\{[^{}]*\
8d9a0 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 27 3b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 })*\})*\})*\})*';.self::$RECURSE
8d9c0 5f 41 52 52 41 59 53 20 3d 20 27 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d 2a _ARRAYS.=.'(?:[^\]]*|\[(?:[^\]]*
8d9e0 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 28 3f 3a 5b 5e 5c 5d 5d 2a 7c 5c 5b 5b 5e 5c 5d 5d |\[(?:[^\]]*|\[(?:[^\]]*|\[[^\]]
8da00 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 29 2a 5c 5d 7c 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 *\])*\])*\])*\]|'.self::$RECURSE
8da20 5f 42 4c 4f 43 4b 53 2e 27 29 2a 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 _BLOCKS.')*';.self::$JSON_STRING
8da40 20 3d 20 27 22 28 3f 3a 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d .=.'"(?:[^\0-\x09\x0a-\x1f\\\\"]
8da60 2b 7c 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 +|\\\\["bfnrt/\\\\]|\\\\u[a-fA-F
8da80 30 2d 39 5d 7b 34 7d 29 2a 22 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 20 3d 0-9]{4})*"';.self::$JSON_VALUE.=
8daa0 20 27 28 3f 3a 5b 30 2d 39 2e 5d 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 27 2e 73 .'(?:[0-9.]+|null|true|false|'.s
8dac0 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7c 5c 5b 27 2e 73 65 6c 66 3a 3a 24 52 elf::$JSON_STRING.'|\['.self::$R
8dae0 45 43 55 52 53 45 5f 41 52 52 41 59 53 2e 27 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 45 43 ECURSE_ARRAYS.'\]|\{'.self::$REC
8db00 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 27 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 URSE_BLOCKS.'\})';.}..$contents.
8db20 3d 20 74 72 69 6d 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 =.trim($contents);.if.($contents
8db40 20 3d 3d 3d 20 27 27 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 27 7b 7d 27 3b 0a 7d 0a 69 .===.'').{.$contents.=.'{}';.}.i
8db60 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5e 5c 7b 28 2e 2a 29 5c 7d f.(!$this->pregMatch('#^\{(.*)\}
8db80 24 23 73 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 $#s',.$contents)).{.throw.new.\I
8dba0 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 6a 73 6f nvalidArgumentException('The.jso
8dbc0 6e 20 66 69 6c 65 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 28 7b 7d 29 27 29 3b n.file.must.be.an.object.({})');
8dbe0 0a 7d 0a 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 .}.$this->newline.=.false.!==.st
8dc00 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 22 5c 72 5c 6e 22 29 20 3f 20 22 5c 72 5c 6e 22 rpos($contents,."\r\n").?."\r\n"
8dc20 20 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 .:."\n";.$this->contents.=.$cont
8dc40 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 3f 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 ents.===.'{}'.?.'{'...$this->new
8dc60 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 64 line...'}'.:.$contents;.$this->d
8dc80 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etectIndenting();.}..public.func
8dca0 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.getContents().{.return.$thi
8dcc0 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d 0a s->contents...$this->newline;.}.
8dce0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 .public.function.addLink($type,.
8dd00 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 73 6f 72 74 50 61 63 6b $package,.$constraint,.$sortPack
8dd20 61 67 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 ages.=.false).{.$decoded.=.JsonF
8dd40 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b ile::parseJson($this->contents);
8dd60 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 29 29 ....if.(!isset($decoded[$type]))
8dd80 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 .{.return.$this->addMainKey($typ
8dda0 65 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 e,.array($package.=>.$constraint
8ddc0 29 29 3b 0a 7d 0a 0a 24 72 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 ));.}..$regex.=.'{^(\s*\{\s*(?:'
8dde0 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 .self::$JSON_STRING.'\s*:\s*'.se
8de00 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 lf::$JSON_VALUE.'\s*,\s*)*?)'..'
8de20 28 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 ('.preg_quote(JsonFile::encode($
8de40 74 79 70 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 type)).'\s*:\s*)('.self::$JSON_V
8de60 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 ALUE.')(.*)}s';.if.(!$this->preg
8de80 4d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 Match($regex,.$this->contents,.$
8dea0 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 matches)).{.return.false;.}..$li
8dec0 6e 6b 73 20 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 nks.=.$matches[3];..if.(isset($d
8dee0 65 63 6f 64 65 64 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 0a 20 24 70 ecoded[$type][$package])).{...$p
8df00 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 ackageRegex.=.str_replace('/',.'
8df20 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a \\\\?/',.preg_quote($package));.
8df40 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 ..$links.=.preg_replace('{"'.$pa
8df60 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c 73 2a 3a 5c 73 2a 29 27 2e 73 65 6c 66 3a 3a 24 4a ckageRegex.'"(\s*:\s*)'.self::$J
8df80 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7d 69 27 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 6f SON_STRING.'}i',.addcslashes(Jso
8dfa0 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 2e nFile::encode($package).'${1}"'.
8dfc0 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 2c 20 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 3b $constraint.'"',.'\\'),.$links);
8dfe0 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 .}.else.{.if.($this->pregMatch('
8e000 23 5e 5c 73 2a 5c 7b 5c 73 2a 5c 53 2b 2e 2a 3f 28 5c 73 2a 5c 7d 5c 73 2a 29 24 23 73 27 2c 20 #^\s*\{\s*\S+.*?(\s*\}\s*)$#s',.
8e020 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 $links,.$match)).{...$links.=.pr
8e040 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 eg_replace(.'{'.preg_quote($matc
8e060 68 5b 31 5d 29 2e 27 24 7d 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 h[1]).'$}',.addcslashes(','...$t
8e080 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 his->newline...$this->indent...$
8e0a0 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 this->indent...JsonFile::encode(
8e0c0 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 $package).':.'.JsonFile::encode(
8e0e0 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c $constraint)...$match[1],.'\\'),
8e100 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 27 .$links.);.}.else.{...$links.=.'
8e120 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 {'...$this->newline...$this->ind
8e140 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a ent...$this->indent...JsonFile::
8e160 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 6c 65 3a 3a encode($package).':.'.JsonFile::
8e180 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 encode($constraint)...$this->new
8e1a0 6c 69 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 27 7d 27 3b 0a 7d 0a 7d 0a line...$this->indent...'}';.}.}.
8e1c0 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 73 6f 72 74 50 61 63 6b 61 67 65 73 29 20 7b 0a 24 .if.(true.===.$sortPackages).{.$
8e1e0 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6c 69 6e 6b requirements.=.json_decode($link
8e200 73 2c 20 74 72 75 65 29 3b 0a 0a 6b 73 6f 72 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 3b s,.true);..ksort($requirements);
8e220 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 72 65 71 75 69 72 65 .$links.=.$this->format($require
8e240 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 6d 61 ments);.}..$this->contents.=.$ma
8e260 74 63 68 65 73 5b 31 5d 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 24 6c 69 6e 6b 73 20 tches[1]...$matches[2]...$links.
8e280 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a ..$matches[4];..return.true;.}..
8e2a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e public.function.addRepository($n
8e2c0 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 ame,.$config).{.return.$this->ad
8e2e0 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e 61 6d 65 2c 20 dSubNode('repositories',.$name,.
8e300 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d $config);.}..public.function.rem
8e320 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 oveRepository($name).{.return.$t
8e340 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 his->removeSubNode('repositories
8e360 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 ',.$name);.}..public.function.ad
8e380 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a dConfigSetting($name,.$value).{.
8e3a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 63 6f 6e 66 69 67 return.$this->addSubNode('config
8e3c0 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e ',.$name,.$value);.}..public.fun
8e3e0 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 ction.removeConfigSetting($name)
8e400 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 .{.return.$this->removeSubNode('
8e420 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 config',.$name);.}..public.funct
8e440 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c ion.addSubNode($mainNode,.$name,
8e460 20 24 76 61 6c 75 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a .$value).{.$decoded.=.JsonFile::
8e480 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 parseJson($this->contents);....i
8e4a0 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 29 29 20 f.(!isset($decoded[$mainNode])).
8e4c0 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 {.$this->addMainKey($mainNode,.a
8e4e0 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 rray($name.=>.$value));..return.
8e500 74 72 75 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 6e true;.}..$subName.=.null;.if.(in
8e520 5f 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 _array($mainNode,.array('config'
8e540 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 ,.'repositories')).&&.false.!==.
8e560 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 strpos($name,.'.')).{.list($name
8e580 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d 65 ,.$subName).=.explode('.',.$name
8e5a0 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c ,.2);.}....$nodeRegex.=.'{^(\s*\
8e5c0 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 5c 73 2a {\s*(?:'.self::$JSON_STRING.'\s*
8e5e0 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 2a 2c 5c 73 2a :\s*'.self::$JSON_VALUE.'\s*,\s*
8e600 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a )*?)'..'('.preg_quote(JsonFile::
8e620 65 6e 63 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 29 29 2e 27 5c 73 2a 3a 5c 73 2a 5c 7b 29 28 27 encode($mainNode)).'\s*:\s*\{)('
8e640 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 28 2e 2a .self::$RECURSE_BLOCKS.')(\})(.*
8e660 29 7d 73 27 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 )}s';.try.{.if.(!$this->pregMatc
8e680 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 h($nodeRegex,.$this->contents,.$
8e6a0 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 20 63 61 74 63 match)).{.return.false;.}.}.catc
8e6c0 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 h.(\RuntimeException.$e).{.if.($
8e6e0 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b 5f e->getCode().===.PREG_BACKTRACK_
8e700 4c 49 4d 49 54 5f 45 52 52 4f 52 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 74 LIMIT_ERROR).{.return.false;.}.t
8e720 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 33 hrow.$e;.}..$children.=.$match[3
8e740 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 ];....if.(!@json_decode('{'.$chi
8e760 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 ldren.'}')).{.return.false;.}..$
8e780 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 that.=.$this;....if.($this->preg
8e7a0 4d 61 74 63 68 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 Match('{("'.preg_quote($name).'"
8e7c0 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 \s*:\s*)('.self::$JSON_VALUE.')(
8e7e0 2c 3f 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 ,?)}',.$children,.$matches)).{.$
8e800 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b children.=.preg_replace_callback
8e820 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 5c ('{("'.preg_quote($name).'"\s*:\
8e840 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2c 3f 29 7d 27 s*)('.self::$JSON_VALUE.')(,?)}'
8e860 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 6e 61 6d 65 ,.function.($matches).use.($name
8e880 2c 20 24 73 75 62 4e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 24 74 68 61 74 29 20 7b 0a 69 66 20 ,.$subName,.$value,.$that).{.if.
8e8a0 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 ($subName.!==.null).{.$curVal.=.
8e8c0 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 74 72 75 65 29 3b 0a json_decode($matches[2],.true);.
8e8e0 24 63 75 72 56 61 6c 5b 24 73 75 62 4e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 24 76 61 6c $curVal[$subName].=.$value;.$val
8e900 75 65 20 3d 20 24 63 75 72 56 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 ue.=.$curVal;.}..return.$matches
8e920 5b 31 5d 20 2e 20 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c 20 31 29 20 2e [1]...$that->format($value,.1)..
8e940 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 24 63 68 69 6c 64 72 65 6e 29 3b 0a 7d 20 65 .$matches[3];.},.$children);.}.e
8e960 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 lseif.($this->pregMatch('#[^\s](
8e980 5c 73 2a 29 24 23 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 \s*)$#',.$children,.$match)).{.i
8e9a0 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d f.($subName.!==.null).{.$value.=
8e9c0 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a .array($subName.=>.$value);.}...
8e9e0 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 .$children.=.preg_replace(.'#'.$
8ea00 6d 61 74 63 68 5b 31 5d 2e 27 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e match[1].'$#',.addcslashes(','..
8ea20 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 .$this->newline...$this->indent.
8ea40 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f ..$this->indent...JsonFile::enco
8ea60 64 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 de($name).':.'.$this->format($va
8ea80 6c 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 63 68 69 lue,.1)...$match[1],.'\\'),.$chi
8eaa0 6c 64 72 65 6e 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 ldren.);.}.else.{.if.($subName.!
8eac0 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 75 62 4e 61 ==.null).{.$value.=.array($subNa
8eae0 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 me.=>.$value);.}....$children.=.
8eb00 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e $this->newline...$this->indent..
8eb20 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 .$this->indent...JsonFile::encod
8eb40 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c e($name).':.'.$this->format($val
8eb60 75 65 2c 20 31 29 20 2e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f ue,.1)...$children;.}..$this->co
8eb80 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 ntents.=.preg_replace($nodeRegex
8eba0 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 27 24 7b 31 7d 24 7b 32 7d 27 2e 24 63 68 69 6c 64 72 ,.addcslashes('${1}${2}'.$childr
8ebc0 65 6e 2e 27 24 7b 34 7d 24 7b 35 7d 27 2c 20 27 5c 5c 27 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e en.'${4}${5}',.'\\'),.$this->con
8ebe0 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 tents);..return.true;.}..public.
8ec00 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 function.removeSubNode($mainNode
8ec20 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a ,.$name).{.$decoded.=.JsonFile::
8ec40 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 0a 20 69 parseJson($this->contents);....i
8ec60 66 20 28 65 6d 70 74 79 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 29 29 20 7b f.(empty($decoded[$mainNode])).{
8ec80 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 .return.true;.}....$nodeRegex.=.
8eca0 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 '{^(\s*\{\s*(?:'.self::$JSON_STR
8ecc0 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e ING.'\s*:\s*'.self::$JSON_VALUE.
8ece0 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 '\s*,\s*)*?)'..'('.preg_quote(Js
8ed00 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 29 29 2e 27 5c 73 2a 3a onFile::encode($mainNode)).'\s*:
8ed20 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 \s*\{)('.self::$RECURSE_BLOCKS.'
8ed40 29 28 5c 7d 29 28 2e 2a 29 7d 73 27 3b 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e )(\})(.*)}s';.try.{.if.(!$this->
8ed60 70 72 65 67 4d 61 74 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e pregMatch($nodeRegex,.$this->con
8ed80 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a tents,.$match)).{.return.false;.
8eda0 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 }.}.catch.(\RuntimeException.$e)
8edc0 20 7b 0a 69 66 20 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 50 52 45 47 5f 42 41 .{.if.($e->getCode().===.PREG_BA
8ede0 43 4b 54 52 41 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 CKTRACK_LIMIT_ERROR).{.return.fa
8ee00 6c 73 65 3b 0a 7d 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 lse;.}.throw.$e;.}..$children.=.
8ee20 24 6d 61 74 63 68 5b 33 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 $match[3];....if.(!@json_decode(
8ee40 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 '{'.$children.'}',.true)).{.retu
8ee60 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 rn.false;.}..$subName.=.null;.if
8ee80 20 28 69 6e 5f 61 72 72 61 79 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 61 72 72 61 79 28 27 63 6f 6e .(in_array($mainNode,.array('con
8eea0 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 20 26 26 20 66 61 6c 73 65 20 fig',.'repositories')).&&.false.
8eec0 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 !==.strpos($name,.'.')).{.list($
8eee0 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 name,.$subName).=.explode('.',.$
8ef00 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 64 65 63 6f 64 name,.2);.}....if.(!isset($decod
8ef20 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d 5b 24 6e 61 6d 65 5d 29 20 7c 7c 20 28 24 73 75 62 4e 61 ed[$mainNode][$name]).||.($subNa
8ef40 6d 65 20 26 26 20 21 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6d 61 69 6e 4e 6f 64 65 5d me.&&.!isset($decoded[$mainNode]
8ef60 5b 24 6e 61 6d 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 [$name][$subName]))).{.return.tr
8ef80 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 7b ue;.}....if.($this->pregMatch('{
8efa0 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a 7d 69 27 2c 20 "'.preg_quote($name).'"\s*:}i',.
8efc0 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 5f 61 $children)).{...if.(preg_match_a
8efe0 6c 6c 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 5c 73 2a 3a ll('{"'.preg_quote($name).'"\s*:
8f000 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 7d 27 2c 20 \s*(?:'.self::$JSON_VALUE.')}',.
8f020 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 $children,.$matches)).{.$bestMat
8f040 63 68 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 ch.=.'';.foreach.($matches[0].as
8f060 20 24 6d 61 74 63 68 29 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 62 65 73 74 4d 61 74 63 68 .$match).{.if.(strlen($bestMatch
8f080 29 20 3c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 65 73 74 4d 61 74 63 68 ).<.strlen($match)).{.$bestMatch
8f0a0 20 3d 20 24 6d 61 74 63 68 3b 0a 7d 0a 7d 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 .=.$match;.}.}.$childrenClean.=.
8f0c0 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2c 5c 73 2a 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 preg_replace('{,\s*'.preg_quote(
8f0e0 24 62 65 73 74 4d 61 74 63 68 29 2e 27 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c $bestMatch).'}i',.'',.$children,
8f100 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 .-1,.$count);.if.(1.!==.$count).
8f120 7b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 {.$childrenClean.=.preg_replace(
8f140 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 5c 73 2a 2c '{'.preg_quote($bestMatch).'\s*,
8f160 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 2c 20 2d 31 2c ?\s*}i',.'',.$childrenClean,.-1,
8f180 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 72 65 .$count);.if.(1.!==.$count).{.re
8f1a0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 68 69 6c turn.false;.}.}.}.}.else.{.$chil
8f1c0 64 72 65 6e 43 6c 65 61 6e 20 3d 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 drenClean.=.$children;.}....if.(
8f1e0 21 74 72 69 6d 28 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e !trim($childrenClean)).{.$this->
8f200 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 contents.=.preg_replace($nodeReg
8f220 65 78 2c 20 27 24 31 24 32 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e 24 74 68 69 73 2d ex,.'$1$2'.$this->newline.$this-
8f240 3e 69 6e 64 65 6e 74 2e 27 24 34 24 35 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 >indent.'$4$5',.$this->contents)
8f260 3b 0a 0a 0a 20 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 ;....if.($subName.!==.null).{.$c
8f280 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 urVal.=.json_decode('{'.$childre
8f2a0 6e 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d n.'}',.true);.unset($curVal[$nam
8f2c0 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 e][$subName]);.$this->addSubNode
8f2e0 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c 20 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 ($mainNode,.$name,.$curVal[$name
8f300 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 ]);.}..return.true;.}..$that.=.$
8f320 74 68 69 73 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 this;.$this->contents.=.preg_rep
8f340 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 66 75 6e 63 74 69 lace_callback($nodeRegex,.functi
8f360 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 6e 61 6d 65 2c on.($matches).use.($that,.$name,
8f380 20 24 73 75 62 4e 61 6d 65 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 20 7b 0a 69 66 20 .$subName,.$childrenClean).{.if.
8f3a0 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 ($subName.!==.null).{.$curVal.=.
8f3c0 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 33 5d 2e 27 7d 27 2c json_decode('{'.$matches[3].'}',
8f3e0 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b 24 73 75 .true);.unset($curVal[$name][$su
8f400 62 4e 61 6d 65 5d 29 3b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 73 75 62 73 74 72 bName]);.$childrenClean.=.substr
8f420 28 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 63 75 72 56 61 6c 2c 20 30 29 2c 20 31 2c 20 2d ($that->format($curVal,.0),.1,.-
8f440 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 6d 61 74 1);.}..return.$matches[1]...$mat
8f460 63 68 65 73 5b 32 5d 20 2e 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 63 ches[2]...$childrenClean...$matc
8f480 68 65 73 5b 34 5d 20 2e 20 24 6d 61 74 63 68 65 73 5b 35 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e hes[4]...$matches[5];.},.$this->
8f4a0 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c contents);..return.true;.}..publ
8f4c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4d 61 69 6e 4b 65 79 28 24 6b 65 79 2c 20 24 63 6f ic.function.addMainKey($key,.$co
8f4e0 6e 74 65 6e 74 29 0a 7b 0a 24 64 65 63 6f 64 65 64 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 ntent).{.$decoded.=.JsonFile::pa
8f500 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 24 63 6f 6e 74 65 rseJson($this->contents);.$conte
8f520 6e 74 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 0a nt.=.$this->format($content);...
8f540 20 24 72 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a .$regex.=.'{^(\s*\{\s*(?:'.self:
8f560 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a :$JSON_STRING.'\s*:\s*'.self::$J
8f580 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 SON_VALUE.'\s*,\s*)*?)'..'('.pre
8f5a0 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 29 2e g_quote(JsonFile::encode($key)).
8f5c0 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2e '\s*:\s*'.self::$JSON_VALUE.')(.
8f5e0 2a 29 7d 73 27 3b 0a 69 66 20 28 69 73 73 65 74 28 24 64 65 63 6f 64 65 64 5b 24 6b 65 79 5d 29 *)}s';.if.(isset($decoded[$key])
8f600 20 26 26 20 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 74 68 .&&.$this->pregMatch($regex,.$th
8f620 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 is->contents,.$matches)).{...if.
8f640 28 21 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 (!@json_decode('{'.$matches[2].'
8f660 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 }')).{.return.false;.}..$this->c
8f680 6f 6e 74 65 6e 74 73 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 4a 73 6f 6e 46 69 6c 65 ontents.=.$matches[1]...JsonFile
8f6a0 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 ::encode($key).':.'.$content...$
8f6c0 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 matches[3];..return.true;.}....i
8f6e0 66 20 28 24 74 68 69 73 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 23 5b 5e 7b 5c 73 5d 28 5c 73 2a f.($this->pregMatch('#[^{\s](\s*
8f700 29 5c 7d 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 )\}$#',.$this->contents,.$match)
8f720 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 ).{.$this->contents.=.preg_repla
8f740 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c ce(.'#'.$match[1].'\}$#',.addcsl
8f760 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 ashes(','...$this->newline...$th
8f780 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b is->indent...JsonFile::encode($k
8f7a0 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 ey)..':.'..$content...$this->new
8f7c0 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e line...'}',.'\\'),.$this->conten
8f7e0 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e ts.);..return.true;.}....$this->
8f800 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 27 contents.=.preg_replace(.'#\}$#'
8f820 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 ,.addcslashes($this->indent...Js
8f840 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 onFile::encode($key)..':.'.$cont
8f860 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c 27 ent...$this->newline...'}',.'\\'
8f880 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 ),.$this->contents.);..return.tr
8f8a0 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 64 ue;.}..public.function.format($d
8f8c0 61 74 61 2c 20 24 64 65 70 74 68 20 3d 20 30 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 ata,.$depth.=.0).{.if.(is_array(
8f8e0 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 28 24 64 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f $data)).{.reset($data);..if.(is_
8f900 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 numeric(key($data))).{.foreach.(
8f920 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b 24 $data.as.$key.=>.$val).{.$data[$
8f940 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 key].=.$this->format($val,.$dept
8f960 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c h.+.1);.}..return.'['.implode(',
8f980 20 27 2c 20 24 64 61 74 61 29 2e 27 5d 27 3b 0a 7d 0a 0a 24 6f 75 74 20 3d 20 27 7b 27 20 2e 20 .',.$data).']';.}..$out.=.'{'...
8f9a0 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 24 65 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 $this->newline;.$elems.=.array()
8f9c0 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c ;.foreach.($data.as.$key.=>.$val
8f9e0 29 20 7b 0a 24 65 6c 65 6d 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d ).{.$elems[].=.str_repeat($this-
8fa00 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 32 29 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a >indent,.$depth.+.2)...JsonFile:
8fa20 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 :encode($key)..':.'.$this->forma
8fa40 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 t($val,.$depth.+.1);.}..return.$
8fa60 6f 75 74 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 out...implode(','.$this->newline
8fa80 2c 20 24 65 6c 65 6d 73 29 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 72 ,.$elems)...$this->newline...str
8faa0 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 _repeat($this->indent,.$depth.+.
8fac0 31 29 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 1)...'}';.}..return.JsonFile::en
8fae0 63 6f 64 65 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 code($data);.}..protected.functi
8fb00 6f 6e 20 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 on.detectIndenting().{.if.($this
8fb20 2d 3e 70 72 65 67 4d 61 74 63 68 28 27 7b 5e 28 5c 73 2b 29 22 7d 6d 27 2c 20 24 74 68 69 73 2d ->pregMatch('{^(\s+)"}m',.$this-
8fb40 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 >contents,.$match)).{.$this->ind
8fb60 65 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ent.=.$match[1];.}.else.{.$this-
8fb80 3e 69 6e 64 65 6e 74 20 3d 20 27 20 20 20 20 27 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 >indent.=.'....';.}.}..protected
8fba0 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 67 4d 61 74 63 68 28 24 72 65 2c 20 24 73 74 72 2c 20 26 .function.pregMatch($re,.$str,.&
8fbc0 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 75 6e 74 20 3d 20 70 $matches.=.array()).{.$count.=.p
8fbe0 72 65 67 5f 6d 61 74 63 68 28 24 72 65 2c 20 24 73 74 72 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a reg_match($re,.$str,.$matches);.
8fc00 0a 69 66 20 28 24 63 6f 75 6e 74 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 73 77 69 74 63 68 20 .if.($count.===.false).{.switch.
8fc20 28 70 72 65 67 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 50 52 45 47 5f (preg_last_error()).{.case.PREG_
8fc40 4e 4f 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 NO_ERROR:.throw.new.\RuntimeExce
8fc60 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 ption('Failed.to.execute.regex:.
8fc80 50 52 45 47 5f 4e 4f 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 4e 4f 5f 45 52 52 4f 52 29 3b 0a PREG_NO_ERROR',.PREG_NO_ERROR);.
8fca0 63 61 73 65 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 case.PREG_INTERNAL_ERROR:.throw.
8fcc0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f new.\RuntimeException('Failed.to
8fce0 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 52 .execute.regex:.PREG_INTERNAL_ER
8fd00 52 4f 52 27 2c 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f 45 52 52 4f 52 29 3b 0a 63 61 73 65 ROR',.PREG_INTERNAL_ERROR);.case
8fd20 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 74 68 72 .PREG_BACKTRACK_LIMIT_ERROR:.thr
8fd40 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 ow.new.\RuntimeException('Failed
8fd60 20 74 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 .to.execute.regex:.PREG_BACKTRAC
8fd80 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 42 41 43 4b 54 52 41 43 4b 5f 4c K_LIMIT_ERROR',.PREG_BACKTRACK_L
8fda0 49 4d 49 54 5f 45 52 52 4f 52 29 3b 0a 63 61 73 65 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f 4e IMIT_ERROR);.case.PREG_RECURSION
8fdc0 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 _LIMIT_ERROR:.throw.new.\Runtime
8fde0 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 72 65 67 Exception('Failed.to.execute.reg
8fe00 65 78 3a 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f 4e 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 27 2c ex:.PREG_RECURSION_LIMIT_ERROR',
8fe20 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f 4e 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 29 3b 0a 63 61 .PREG_RECURSION_LIMIT_ERROR);.ca
8fe40 73 65 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 20 6e 65 se.PREG_BAD_UTF8_ERROR:.throw.ne
8fe60 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 w.\RuntimeException('Failed.to.e
8fe80 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f xecute.regex:.PREG_BAD_UTF8_ERRO
8fea0 52 27 2c 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 45 52 52 4f 52 29 3b 0a 63 61 73 65 20 50 R',.PREG_BAD_UTF8_ERROR);.case.P
8fec0 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f 46 46 53 45 54 5f 45 52 52 4f 52 3a 0a 74 68 72 6f 77 REG_BAD_UTF8_OFFSET_ERROR:.throw
8fee0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 .new.\RuntimeException('Failed.t
8ff00 6f 20 65 78 65 63 75 74 65 20 72 65 67 65 78 3a 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f o.execute.regex:.PREG_BAD_UTF8_O
8ff20 46 46 53 45 54 5f 45 52 52 4f 52 27 2c 20 50 52 45 47 5f 42 41 44 5f 55 54 46 38 5f 4f 46 46 53 FFSET_ERROR',.PREG_BAD_UTF8_OFFS
8ff40 45 54 5f 45 52 52 4f 52 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 ET_ERROR);.default:.throw.new.\R
8ff60 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 untimeException('Failed.to.execu
8ff80 74 65 20 72 65 67 65 78 3a 20 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 29 3b 0a 7d 0a 7d 0a 0a te.regex:.Unknown.error');.}.}..
8ffa0 72 65 74 75 72 6e 20 24 63 6f 75 6e 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a return.$count;.}.}.<?php........
8ffc0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 ....namespace.Composer\Json;..us
8ffe0 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 53 65 6c 64 e.JsonSchema\Validator;.use.Seld
90000 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a \JsonLint\JsonParser;.use.Seld\J
90020 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f sonLint\ParsingException;.use.Co
90040 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 mposer\Util\RemoteFilesystem;.us
90060 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 e.Composer\Downloader\TransportE
90080 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a xception;........class.JsonFile.
900a0 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 {.const.LAX_SCHEMA.=.1;.const.ST
900c0 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 RICT_SCHEMA.=.2;..const.JSON_UNE
900e0 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f SCAPED_SLASHES.=.64;.const.JSON_
90100 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 PRETTY_PRINT.=.128;.const.JSON_U
90120 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 NESCAPED_UNICODE.=.256;..private
90140 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .$path;.private.$rfs;.........pu
90160 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 2c blic.function.__construct($path,
90180 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b .RemoteFilesystem.$rfs.=.null).{
901a0 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 .$this->path.=.$path;..if.(null.
901c0 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f ===.$rfs.&&.preg_match('{^https?
901e0 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 ://}i',.$path)).{.throw.new.\Inv
90200 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 alidArgumentException('http.urls
90220 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 .require.a.RemoteFilesystem.inst
90240 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 ance.to.be.passed');.}.$this->rf
90260 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 s.=.$rfs;.}.....public.function.
90280 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a getPath().{.return.$this->path;.
902a0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 69 73 74 73 28 29 }.......public.function.exists()
902c0 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a .{.return.is_file($this->path);.
902e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 29 0a }........public.function.read().
90300 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 {.try.{.if.($this->rfs).{.$json.
90320 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d =.$this->rfs->getContents($this-
90340 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c >path,.$this->path,.false);.}.el
90360 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 se.{.$json.=.file_get_contents($
90380 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 this->path);.}.}.catch.(Transpor
903a0 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 tException.$e).{.throw.new.\Runt
903c0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 30 imeException($e->getMessage(),.0
903e0 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b ,.$e);.}.catch.(\Exception.$e).{
90400 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f .throw.new.\RuntimeException('Co
90420 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 22 5c 6e 5c 6e uld.not.read.'.$this->path."\n\n
90440 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 ".$e->getMessage());.}..return.s
90460 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 74 68 69 73 2d 3e 70 tatic::parseJson($json,.$this->p
90480 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ath);.}.........public.function.
904a0 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 write(array.$hash,.$options.=.44
904c0 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 70 61 74 68 29 8).{.$dir.=.dirname($this->path)
904e0 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f ;.if.(!is_dir($dir)).{.if.(file_
90500 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 exists($dir)).{.throw.new.\Unexp
90520 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 65 78 69 73 ectedValueException(.$dir.'.exis
90540 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d ts.and.is.not.a.directory.'.);.}
90560 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 .if.(!@mkdir($dir,.0777,.true)).
90580 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 {.throw.new.\UnexpectedValueExce
905a0 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 ption(.$dir.'.does.not.exist.and
905c0 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 0a .could.not.be.created.'.);.}.}..
905e0 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 $retries.=.3;.while.($retries--)
90600 20 7b 0a 74 72 79 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 .{.try.{.file_put_contents($this
90620 2d 3e 70 61 74 68 2c 20 73 74 61 74 69 63 3a 3a 65 6e 63 6f 64 65 28 24 68 61 73 68 2c 20 24 6f ->path,.static::encode($hash,.$o
90640 70 74 69 6f 6e 73 29 2e 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f ptions)..($options.&.self::JSON_
90660 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3f 20 22 5c 6e 22 20 3a 20 27 27 29 29 3b 0a 62 72 65 61 PRETTY_PRINT.?."\n".:.''));.brea
90680 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 k;.}.catch.(\Exception.$e).{.if.
906a0 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 63 6f 6e ($retries).{.usleep(500000);.con
906c0 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a tinue;.}..throw.$e;.}.}.}.......
906e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 ..public.function.validateSchema
90700 28 24 73 63 68 65 6d 61 20 3d 20 73 65 6c 66 3a 3a 53 54 52 49 43 54 5f 53 43 48 45 4d 41 29 0a ($schema.=.self::STRICT_SCHEMA).
90720 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 {.$content.=.file_get_contents($
90740 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 24 64 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 this->path);.$data.=.json_decode
90760 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 20 ($content);..if.(null.===.$data.
90780 26 26 20 27 6e 75 6c 6c 27 20 21 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 73 65 6c 66 3a 3a &&.'null'.!==.$content).{.self::
907a0 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 63 6f 6e 74 65 6e 74 2c 20 24 74 68 69 73 2d 3e validateSyntax($content,.$this->
907c0 70 61 74 68 29 3b 0a 7d 0a 0a 24 73 63 68 65 6d 61 46 69 6c 65 20 3d 20 5f 5f 44 49 52 5f 5f 20 path);.}..$schemaFile.=.__DIR__.
907e0 2e 20 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 72 65 73 2f 63 6f 6d 70 6f 73 65 72 2d 73 63 68 65 6d 61 ..'/../../../res/composer-schema
90800 2e 6a 73 6f 6e 27 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 .json';.$schemaData.=.json_decod
90820 65 28 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 73 63 68 65 6d 61 46 69 6c 65 29 e(file_get_contents($schemaFile)
90840 29 3b 0a 0a 69 66 20 28 24 73 63 68 65 6d 61 20 3d 3d 3d 20 73 65 6c 66 3a 3a 4c 41 58 5f 53 43 );..if.($schema.===.self::LAX_SC
90860 48 45 4d 41 29 20 7b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 HEMA).{.$schemaData->additionalP
90880 72 6f 70 65 72 74 69 65 73 20 3d 20 74 72 75 65 3b 0a 24 73 63 68 65 6d 61 44 61 74 61 2d 3e 72 roperties.=.true;.$schemaData->r
908a0 65 71 75 69 72 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 76 61 6c 69 64 61 74 6f 72 equired.=.array();.}..$validator
908c0 20 3d 20 6e 65 77 20 56 61 6c 69 64 61 74 6f 72 28 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e .=.new.Validator();.$validator->
908e0 63 68 65 63 6b 28 24 64 61 74 61 2c 20 24 73 63 68 65 6d 61 44 61 74 61 29 3b 0a 0a 0a 0a 69 66 check($data,.$schemaData);....if
90900 20 28 21 24 76 61 6c 69 64 61 74 6f 72 2d 3e 69 73 56 61 6c 69 64 28 29 29 20 7b 0a 24 65 72 72 .(!$validator->isValid()).{.$err
90920 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 ors.=.array();.foreach.((array).
90940 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 20 61 73 20 24 65 72 72 6f $validator->getErrors().as.$erro
90960 72 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 28 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 r).{.$errors[].=.($error['proper
90980 74 79 27 5d 20 3f 20 24 65 72 72 6f 72 5b 27 70 72 6f 70 65 72 74 79 27 5d 2e 27 20 3a 20 27 20 ty'].?.$error['property'].'.:.'.
909a0 3a 20 27 27 29 2e 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 3b 0a 7d 0a 74 68 72 6f 77 :.'').$error['message'];.}.throw
909c0 20 6e 65 77 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 22 27 .new.JsonValidationException('"'
909e0 2e 24 74 68 69 73 2d 3e 70 61 74 68 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 .$this->path.'".does.not.match.t
90a00 68 65 20 65 78 70 65 63 74 65 64 20 4a 53 4f 4e 20 73 63 68 65 6d 61 27 2c 20 24 65 72 72 6f 72 he.expected.JSON.schema',.$error
90a20 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 s);.}..return.true;.}.........pu
90a40 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 63 6f 64 65 28 24 64 61 74 blic.static.function.encode($dat
90a60 61 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 69 66 20 28 76 65 72 73 69 6f 6e a,.$options.=.448).{.if.(version
90a80 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3e 3d _compare(PHP_VERSION,.'5.4',.'>=
90aa0 27 29 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c ')).{.$json.=.json_encode($data,
90ac0 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6a 73 6f 6e 29 .$options);.if.(false.===.$json)
90ae0 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 6a 73 6f 6e 5f 6c .{.self::throwEncodeError(json_l
90b00 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 50 48 50 5f 56 45 52 53 49 ast_error());.}....if.(PHP_VERSI
90b20 4f 4e 5f 49 44 20 3c 20 35 30 34 32 38 20 7c 7c 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 ON_ID.<.50428.||.(PHP_VERSION_ID
90b40 20 3e 3d 20 35 30 35 30 30 20 26 26 20 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 .>=.50500.&&.PHP_VERSION_ID.<.50
90b60 35 31 32 29 20 7c 7c 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 43 5f 56 45 52 53 49 4f 4e 512).||.(defined('JSON_C_VERSION
90b80 27 29 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 70 68 70 76 65 72 73 69 6f 6e ').&&.version_compare(phpversion
90ba0 28 27 6a 73 6f 6e 27 29 2c 20 27 31 2e 33 2e 36 27 2c 20 27 3c 27 29 29 29 20 7b 0a 24 6a 73 6f ('json'),.'1.3.6',.'<'))).{.$jso
90bc0 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 5b 5c 73 2b 5c 5d 2f 27 2c 20 27 5b n.=.preg_replace('/\[\s+\]/',.'[
90be0 5d 27 2c 20 24 6a 73 6f 6e 29 3b 0a 24 6a 73 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 ]',.$json);.$json.=.preg_replace
90c00 28 27 2f 5c 7b 5c 73 2b 5c 7d 2f 27 2c 20 27 7b 7d 27 2c 20 24 6a 73 6f 6e 29 3b 0a 7d 0a 0a 72 ('/\{\s+\}/',.'{}',.$json);.}..r
90c20 65 74 75 72 6e 20 24 6a 73 6f 6e 3b 0a 7d 0a 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 65 6e 63 eturn.$json;.}..$json.=.json_enc
90c40 6f 64 65 28 24 64 61 74 61 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6a 73 6f 6e 29 ode($data);.if.(false.===.$json)
90c60 20 7b 0a 73 65 6c 66 3a 3a 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 6a 73 6f 6e 5f 6c .{.self::throwEncodeError(json_l
90c80 61 73 74 5f 65 72 72 6f 72 28 29 29 3b 0a 7d 0a 0a 24 70 72 65 74 74 79 50 72 69 6e 74 20 3d 20 ast_error());.}..$prettyPrint.=.
90ca0 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 50 52 (bool).($options.&.self::JSON_PR
90cc0 45 54 54 59 5f 50 52 49 4e 54 29 3b 0a 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 3d 20 ETTY_PRINT);.$unescapeUnicode.=.
90ce0 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 4f 4e 5f 55 4e (bool).($options.&.self::JSON_UN
90d00 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 ESCAPED_UNICODE);.$unescapeSlash
90d20 65 73 20 3d 20 28 62 6f 6f 6c 29 20 28 24 6f 70 74 69 6f 6e 73 20 26 20 73 65 6c 66 3a 3a 4a 53 es.=.(bool).($options.&.self::JS
90d40 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 29 3b 0a 0a 69 66 20 28 21 24 70 72 ON_UNESCAPED_SLASHES);..if.(!$pr
90d60 65 74 74 79 50 72 69 6e 74 20 26 26 20 21 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 ettyPrint.&&.!$unescapeUnicode.&
90d80 26 20 21 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a &.!$unescapeSlashes).{.return.$j
90da0 73 6f 6e 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 4a 73 6f 6e 46 6f 72 6d 61 74 74 65 72 3a son;.}..$result.=.JsonFormatter:
90dc0 3a 66 6f 72 6d 61 74 28 24 6a 73 6f 6e 2c 20 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 2c :format($json,.$unescapeUnicode,
90de0 20 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 .$unescapeSlashes);..return.$res
90e00 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e ult;.}........private.static.fun
90e20 63 74 69 6f 6e 20 74 68 72 6f 77 45 6e 63 6f 64 65 45 72 72 6f 72 28 24 63 6f 64 65 29 0a 7b 0a ction.throwEncodeError($code).{.
90e40 73 77 69 74 63 68 20 28 24 63 6f 64 65 29 20 7b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 switch.($code).{.case.JSON_ERROR
90e60 5f 44 45 50 54 48 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 78 69 6d 75 6d 20 73 74 61 63 6b 20 64 65 _DEPTH:.$msg.=.'Maximum.stack.de
90e80 70 74 68 20 65 78 63 65 65 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f pth.exceeded';.break;.case.JSON_
90ea0 45 52 52 4f 52 5f 53 54 41 54 45 5f 4d 49 53 4d 41 54 43 48 3a 0a 24 6d 73 67 20 3d 20 27 55 6e ERROR_STATE_MISMATCH:.$msg.=.'Un
90ec0 64 65 72 66 6c 6f 77 20 6f 72 20 74 68 65 20 6d 6f 64 65 73 20 6d 69 73 6d 61 74 63 68 27 3b 0a derflow.or.the.modes.mismatch';.
90ee0 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 43 54 52 4c 5f 43 48 41 52 break;.case.JSON_ERROR_CTRL_CHAR
90f00 3a 0a 24 6d 73 67 20 3d 20 27 55 6e 65 78 70 65 63 74 65 64 20 63 6f 6e 74 72 6f 6c 20 63 68 61 :.$msg.=.'Unexpected.control.cha
90f20 72 61 63 74 65 72 20 66 6f 75 6e 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f racter.found';.break;.case.JSON_
90f40 45 52 52 4f 52 5f 55 54 46 38 3a 0a 24 6d 73 67 20 3d 20 27 4d 61 6c 66 6f 72 6d 65 64 20 55 54 ERROR_UTF8:.$msg.=.'Malformed.UT
90f60 46 2d 38 20 63 68 61 72 61 63 74 65 72 73 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 65 F-8.characters,.possibly.incorre
90f80 63 74 6c 79 20 65 6e 63 6f 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 ctly.encoded';.break;.default:.$
90fa0 6d 73 67 20 3d 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 msg.=.'Unknown.error';.}..throw.
90fc0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 65 6e 63 6f new.\RuntimeException('JSON.enco
90fe0 64 69 6e 67 20 66 61 69 6c 65 64 3a 20 27 2e 24 6d 73 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ding.failed:.'.$msg);.}.........
91000 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4a 73 6f .public.static.function.parseJso
91020 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c n($json,.$file.=.null).{.if.(nul
91040 6c 20 3d 3d 3d 20 24 6a 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 64 61 74 61 20 3d l.===.$json).{.return;.}.$data.=
91060 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6a 73 6f 6e 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 6e .json_decode($json,.true);.if.(n
91080 75 6c 6c 20 3d 3d 3d 20 24 64 61 74 61 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 ull.===.$data.&&.JSON_ERROR_NONE
910a0 20 21 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 73 65 6c 66 3a 3a .!==.json_last_error()).{.self::
910c0 76 61 6c 69 64 61 74 65 53 79 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 29 3b 0a 7d 0a validateSyntax($json,.$file);.}.
910e0 0a 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 .return.$data;.}............prot
91100 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 79 ected.static.function.validateSy
91120 6e 74 61 78 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 72 ntax($json,.$file.=.null).{.$par
91140 73 65 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 72 65 73 75 6c 74 20 ser.=.new.JsonParser();.$result.
91160 3d 20 24 70 61 72 73 65 72 2d 3e 6c 69 6e 74 28 24 6a 73 6f 6e 29 3b 0a 69 66 20 28 6e 75 6c 6c =.$parser->lint($json);.if.(null
91180 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 4a 53 4f .===.$result).{.if.(defined('JSO
911a0 4e 5f 45 52 52 4f 52 5f 55 54 46 38 27 29 20 26 26 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 N_ERROR_UTF8').&&.JSON_ERROR_UTF
911c0 38 20 3d 3d 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 74 68 72 6f 77 8.===.json_last_error()).{.throw
911e0 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
91200 22 27 2e 24 66 69 6c 65 2e 27 22 20 69 73 20 6e 6f 74 20 55 54 46 2d 38 2c 20 63 6f 75 6c 64 20 "'.$file.'".is.not.UTF-8,.could.
91220 6e 6f 74 20 70 61 72 73 65 20 61 73 20 4a 53 4f 4e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 not.parse.as.JSON');.}..return.t
91240 72 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 rue;.}..throw.new.ParsingExcepti
91260 6f 6e 28 27 22 27 2e 24 66 69 6c 65 2e 27 22 20 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e on('"'.$file.'".does.not.contain
91280 20 76 61 6c 69 64 20 4a 53 4f 4e 27 2e 22 5c 6e 22 2e 24 72 65 73 75 6c 74 2d 3e 67 65 74 4d 65 .valid.JSON'."\n".$result->getMe
912a0 73 73 61 67 65 28 29 2c 20 24 72 65 73 75 6c 74 2d 3e 67 65 74 44 65 74 61 69 6c 73 28 29 29 3b ssage(),.$result->getDetails());
912c0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
912e0 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 Composer\Json;..........class.Js
91300 6f 6e 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 onFormatter.{..............publi
91320 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6a 73 6f 6e 2c 20 c.static.function.format($json,.
91340 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 2c 20 24 75 6e 65 73 63 61 70 65 53 6c 61 73 68 $unescapeUnicode,.$unescapeSlash
91360 65 73 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 27 27 3b 0a 24 70 6f 73 20 3d 20 30 3b 0a 24 73 es).{.$result.=.'';.$pos.=.0;.$s
91380 74 72 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6a 73 6f 6e 29 3b 0a 24 69 6e 64 65 6e 74 53 74 trLen.=.strlen($json);.$indentSt
913a0 72 20 3d 20 27 20 20 20 20 27 3b 0a 24 6e 65 77 4c 69 6e 65 20 3d 20 22 5c 6e 22 3b 0a 24 6f 75 r.=.'....';.$newLine.=."\n";.$ou
913c0 74 4f 66 51 75 6f 74 65 73 20 3d 20 74 72 75 65 3b 0a 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a tOfQuotes.=.true;.$buffer.=.'';.
913e0 24 6e 6f 65 73 63 61 70 65 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 $noescape.=.true;..for.($i.=.0;.
91400 24 69 20 3c 20 24 73 74 72 4c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 0a 20 24 63 68 61 72 20 3d 20 $i.<.$strLen;.$i++).{...$char.=.
91420 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 27 22 27 substr($json,.$i,.1);....if.('"'
91440 20 3d 3d 3d 20 24 63 68 61 72 20 26 26 20 24 6e 6f 65 73 63 61 70 65 29 20 7b 0a 24 6f 75 74 4f .===.$char.&&.$noescape).{.$outO
91460 66 51 75 6f 74 65 73 20 3d 20 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 3b 0a 7d 0a 0a 69 66 20 28 fQuotes.=.!$outOfQuotes;.}..if.(
91480 21 24 6f 75 74 4f 66 51 75 6f 74 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 2e 3d 20 24 63 68 61 !$outOfQuotes).{.$buffer..=.$cha
914a0 72 3b 0a 24 6e 6f 65 73 63 61 70 65 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 24 63 68 61 72 20 3f 20 r;.$noescape.=.'\\'.===.$char.?.
914c0 21 24 6e 6f 65 73 63 61 70 65 20 3a 20 74 72 75 65 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 !$noescape.:.true;.continue;.}.e
914e0 6c 73 65 69 66 20 28 27 27 20 21 3d 3d 20 24 62 75 66 66 65 72 29 20 7b 0a 69 66 20 28 24 75 6e lseif.(''.!==.$buffer).{.if.($un
91500 65 73 63 61 70 65 53 6c 61 73 68 65 73 29 20 7b 0a 24 62 75 66 66 65 72 20 3d 20 73 74 72 5f 72 escapeSlashes).{.$buffer.=.str_r
91520 65 70 6c 61 63 65 28 27 5c 5c 2f 27 2c 20 27 2f 27 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 0a eplace('\\/',.'/',.$buffer);.}..
91540 69 66 20 28 24 75 6e 65 73 63 61 70 65 55 6e 69 63 6f 64 65 20 26 26 20 66 75 6e 63 74 69 6f 6e if.($unescapeUnicode.&&.function
91560 5f 65 78 69 73 74 73 28 27 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 27 29 29 20 _exists('mb_convert_encoding')).
91580 7b 0a 0a 20 24 62 75 66 66 65 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 {...$buffer.=.preg_replace_callb
915a0 61 63 6b 28 27 2f 28 5c 5c 5c 5c 2b 29 75 28 5b 30 2d 39 61 2d 66 5d 7b 34 7d 29 2f 69 27 2c 20 ack('/(\\\\+)u([0-9a-f]{4})/i',.
915c0 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 7b 0a 24 6c 20 3d 20 73 74 72 6c 65 6e 28 function.($match).{.$l.=.strlen(
915e0 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 0a 69 66 20 28 24 6c 20 25 20 32 29 20 7b 0a 72 65 74 75 72 $match[1]);..if.($l.%.2).{.retur
91600 6e 20 73 74 72 5f 72 65 70 65 61 74 28 27 5c 5c 27 2c 20 24 6c 20 2d 20 31 29 20 2e 20 6d 62 5f n.str_repeat('\\',.$l.-.1)...mb_
91620 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 0a 70 61 63 6b 28 27 48 2a 27 2c 20 24 6d 61 convert_encoding(.pack('H*',.$ma
91640 74 63 68 5b 32 5d 29 2c 0a 27 55 54 46 2d 38 27 2c 0a 27 55 43 53 2d 32 42 45 27 0a 29 3b 0a 7d tch[2]),.'UTF-8',.'UCS-2BE'.);.}
91660 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 7d 2c 20 24 62 75 66 66 65 72 29 3b ..return.$match[0];.},.$buffer);
91680 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 62 75 66 66 65 72 2e 24 63 68 61 72 3b 0a 24 62 .}..$result..=.$buffer.$char;.$b
916a0 75 66 66 65 72 20 3d 20 27 27 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 3a 27 uffer.=.'';.continue;.}..if.(':'
916c0 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 0a 20 24 63 68 61 72 20 2e 3d 20 27 20 27 3b 0a 7d 20 .===.$char).{...$char..=.'.';.}.
916e0 65 6c 73 65 69 66 20 28 28 27 7d 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5d 27 20 3d 3d elseif.(('}'.===.$char.||.']'.==
91700 3d 20 24 63 68 61 72 29 29 20 7b 0a 24 70 6f 73 2d 2d 3b 0a 24 70 72 65 76 43 68 61 72 20 3d 20 =.$char)).{.$pos--;.$prevChar.=.
91720 73 75 62 73 74 72 28 24 6a 73 6f 6e 2c 20 24 69 20 2d 20 31 2c 20 31 29 3b 0a 0a 69 66 20 28 27 substr($json,.$i.-.1,.1);..if.('
91740 7b 27 20 21 3d 3d 20 24 70 72 65 76 43 68 61 72 20 26 26 20 27 5b 27 20 21 3d 3d 20 24 70 72 65 {'.!==.$prevChar.&&.'['.!==.$pre
91760 76 43 68 61 72 29 20 7b 0a 0a 20 0a 20 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e 65 77 4c 69 6e 65 vChar).{.....$result..=.$newLine
91780 3b 0a 66 6f 72 20 28 24 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 ;.for.($j.=.0;.$j.<.$pos;.$j++).
917a0 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 20 65 6c 73 {.$result..=.$indentStr;.}.}.els
917c0 65 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 72 74 72 69 6d 28 24 72 65 73 75 6c 74 29 3b 0a e.{...$result.=.rtrim($result);.
917e0 7d 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 63 68 61 72 3b 0a 0a 0a 20 0a 20 69 66 20 28 }.}..$result..=.$char;......if.(
91800 27 2c 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c ','.===.$char.||.'{'.===.$char.|
91820 7c 20 27 5b 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 6e |.'['.===.$char).{.$result..=.$n
91840 65 77 4c 69 6e 65 3b 0a 0a 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 68 61 72 20 7c 7c 20 27 5b ewLine;..if.('{'.===.$char.||.'[
91860 27 20 3d 3d 3d 20 24 63 68 61 72 29 20 7b 0a 24 70 6f 73 2b 2b 3b 0a 7d 0a 0a 66 6f 72 20 28 24 '.===.$char).{.$pos++;.}..for.($
91880 6a 20 3d 20 30 3b 20 24 6a 20 3c 20 24 70 6f 73 3b 20 24 6a 2b 2b 29 20 7b 0a 24 72 65 73 75 6c j.=.0;.$j.<.$pos;.$j++).{.$resul
918a0 74 20 2e 3d 20 24 69 6e 64 65 6e 74 53 74 72 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 t..=.$indentStr;.}.}.}..return.$
918c0 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d result;.}.}.<?php............nam
918e0 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 45 78 63 65 70 espace.Composer\Json;..use.Excep
91900 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 tion;.....class.JsonValidationEx
91920 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 ception.extends.Exception.{.prot
91940 65 63 74 65 64 20 24 65 72 72 6f 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ected.$errors;..public.function.
91960 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 73 20 3d 20 __construct($message,.$errors.=.
91980 61 72 72 61 79 28 29 2c 20 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e array(),.Exception.$previous.=.n
919a0 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 73 3b 0a ull).{.$this->errors.=.$errors;.
919c0 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 30 2c parent::__construct($message,.0,
919e0 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .$previous);.}..public.function.
91a00 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f getErrors().{.return.$this->erro
91a20 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 rs;.}.}.<?php............namespa
91a40 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 ce.Composer;..use.Composer\Confi
91a60 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 g\ConfigSourceInterface;.....cla
91a80 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 63 6f 6e 73 74 20 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 ss.Config.{.const.RELATIVE_PATHS
91aa0 20 3d 20 31 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 43 6f 6e .=.1;..public.static.$defaultCon
91ac0 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d fig.=.array(.'process-timeout'.=
91ae0 3e 20 33 30 30 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 66 61 6c >.300,.'use-include-path'.=>.fal
91b00 73 65 2c 0a 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 27 61 75 74 6f se,.'preferred-install'.=>.'auto
91b20 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 74 72 75 65 2c 0a ',.'notify-on-install'.=>.true,.
91b40 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 27 67 69 74 'github-protocols'.=>.array('git
91b60 27 2c 20 27 68 74 74 70 73 27 2c 20 27 73 73 68 27 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 ',.'https',.'ssh'),.'vendor-dir'
91b80 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 27 20 3d 3e 20 27 7b 24 76 65 .=>.'vendor',.'bin-dir'.=>.'{$ve
91ba0 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 63 61 63 68 65 2d 64 69 72 27 20 3d 3e 20 27 ndor-dir}/bin',.'cache-dir'.=>.'
91bc0 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 {$home}/cache',.'cache-files-dir
91be0 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 27 2c 0a 27 63 61 63 68 '.=>.'{$cache-dir}/files',.'cach
91c00 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 e-repo-dir'.=>.'{$cache-dir}/rep
91c20 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d o',.'cache-vcs-dir'.=>.'{$cache-
91c40 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 20 3d 3e 20 31 35 35 35 32 30 dir}/vcs',.'cache-ttl'.=>.155520
91c60 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 6e 75 6c 6c 2c 00,...'cache-files-ttl'.=>.null,
91c80 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 3d 3e 20 27 33 30 30 ...'cache-files-maxsize'.=>.'300
91ca0 4d 69 42 27 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 20 3d 3e 20 66 61 6c 73 65 MiB',.'discard-changes'.=>.false
91cc0 2c 0a 27 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 ,.'autoloader-suffix'.=>.null,.'
91ce0 6f 70 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 optimize-autoloader'.=>.false,.'
91d00 63 6c 61 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 20 3d 3e 20 66 61 6c 73 65 classmap-authoritative'.=>.false
91d20 2c 0a 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e 20 74 72 75 65 2c 0a ,.'prepend-autoloader'.=>.true,.
91d40 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 72 72 61 79 28 27 67 69 74 68 75 'github-domains'.=>.array('githu
91d60 62 2e 63 6f 6d 27 29 2c 0a 27 67 69 74 68 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 b.com'),.'github-expose-hostname
91d80 27 20 3d 3e 20 74 72 75 65 2c 0a 27 73 74 6f 72 65 2d 61 75 74 68 73 27 20 3d 3e 20 27 70 72 6f '.=>.true,.'store-auths'.=>.'pro
91da0 6d 70 74 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 64 mpt',.......);..public.static.$d
91dc0 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 efaultRepositories.=.array(.'pac
91de0 6b 61 67 69 73 74 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 63 6f 6d kagist'.=>.array(.'type'.=>.'com
91e00 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3f 3a 2f 2f 70 61 63 6b 61 poser',.'url'.=>.'https?://packa
91e20 67 69 73 74 2e 6f 72 67 27 2c 0a 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 gist.org',.'allow_ssl_downgrade'
91e40 20 3d 3e 20 74 72 75 65 2c 0a 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b .=>.true,.).);..private.$config;
91e60 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f .private.$baseDir;.private.$repo
91e80 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b sitories;.private.$configSource;
91ea0 0a 70 72 69 76 61 74 65 20 24 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 70 72 69 76 .private.$authConfigSource;.priv
91ec0 61 74 65 20 24 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ate.$useEnvironment;.....public.
91ee0 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 75 73 65 45 6e 76 69 72 6f 6e function.__construct($useEnviron
91f00 6d 65 6e 74 20 3d 20 74 72 75 65 2c 20 24 62 61 73 65 44 69 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ment.=.true,.$baseDir.=.null).{.
91f20 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 ..$this->config.=.static::$defau
91f40 6c 74 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 ltConfig;.$this->repositories.=.
91f60 73 74 61 74 69 63 3a 3a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 24 74 static::$defaultRepositories;.$t
91f80 68 69 73 2d 3e 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 20 3d 20 28 62 6f 6f 6c 29 20 24 75 73 his->useEnvironment.=.(bool).$us
91fa0 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 20 24 eEnvironment;.$this->baseDir.=.$
91fc0 62 61 73 65 44 69 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 baseDir;.}..public.function.setC
91fe0 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 onfigSource(ConfigSourceInterfac
92000 65 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 e.$source).{.$this->configSource
92020 20 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .=.$source;.}..public.function.g
92040 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d etConfigSource().{.return.$this-
92060 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >configSource;.}..public.functio
92080 6e 20 73 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 n.setAuthConfigSource(ConfigSour
920a0 63 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 ceInterface.$source).{.$this->au
920c0 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 thConfigSource.=.$source;.}..pub
920e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 43 6f 6e 66 69 67 53 6f 75 72 63 65 lic.function.getAuthConfigSource
92100 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 43 6f 6e 66 69 67 53 6f 75 ().{.return.$this->authConfigSou
92120 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 65 72 rce;.}.......public.function.mer
92140 67 65 28 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 ge($config).{...if.(!empty($conf
92160 69 67 5b 27 63 6f 6e 66 69 67 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 ig['config']).&&.is_array($confi
92180 67 5b 27 63 6f 6e 66 69 67 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 g['config'])).{.foreach.($config
921a0 5b 27 63 6f 6e 66 69 67 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 ['config'].as.$key.=>.$val).{.if
921c0 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 67 69 74 68 75 62 2d 6f .(in_array($key,.array('github-o
921e0 61 75 74 68 27 2c 20 27 68 74 74 70 2d 62 61 73 69 63 27 29 29 20 26 26 20 69 73 73 65 74 28 24 auth',.'http-basic')).&&.isset($
92200 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f this->config[$key])).{.$this->co
92220 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e nfig[$key].=.array_merge($this->
92240 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 76 61 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 config[$key],.$val);.}.else.{.$t
92260 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c 3b 0a 7d 0a 7d 0a 7d 0a his->config[$key].=.$val;.}.}.}.
92280 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 .if.(!empty($config['repositorie
922a0 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 s']).&&.is_array($config['reposi
922c0 74 6f 72 69 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 tories'])).{.$this->repositories
922e0 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f .=.array_reverse($this->reposito
92300 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 24 6e 65 77 52 65 70 6f 73 20 3d 20 61 72 72 61 79 5f 72 ries,.true);.$newRepos.=.array_r
92320 65 76 65 72 73 65 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 2c 20 everse($config['repositories'],.
92340 74 72 75 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6e 65 77 52 65 70 6f 73 20 61 73 20 24 6e 61 true);.foreach.($newRepos.as.$na
92360 6d 65 20 3d 3e 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 20 69 66 20 28 66 61 6c 73 65 me.=>.$repository).{...if.(false
92380 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d .===.$repository).{.unset($this-
923a0 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b >repositories[$name]);.continue;
923c0 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 69 74 6f 72 79 29 20 .}....if.(is_array($repository).
923e0 26 26 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 72 65 70 6f 73 69 74 6f 72 79 29 20 26 26 20 66 &&.1.===.count($repository).&&.f
92400 61 6c 73 65 20 3d 3d 3d 20 63 75 72 72 65 6e 74 28 24 72 65 70 6f 73 69 74 6f 72 79 29 29 20 7b alse.===.current($repository)).{
92420 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 6b 65 79 28 24 .unset($this->repositories[key($
92440 72 65 70 6f 73 69 74 6f 72 79 29 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 repository)]);.continue;.}....if
92460 20 28 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 .(is_int($name)).{.$this->reposi
92480 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 20 65 6c 73 65 20 7b tories[].=.$repository;.}.else.{
924a0 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 .$this->repositories[$name].=.$r
924c0 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 epository;.}.}.$this->repositori
924e0 65 73 20 3d 20 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 es.=.array_reverse($this->reposi
92500 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tories,.true);.}.}.....public.fu
92520 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 nction.getRepositories().{.retur
92540 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a n.$this->repositories;.}........
92560 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6b 65 79 2c 20 24 66 6c 61 ..public.function.get($key,.$fla
92580 67 73 20 3d 20 30 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6b 65 79 29 20 7b 0a 63 61 73 65 20 27 gs.=.0).{.switch.($key).{.case.'
925a0 76 65 6e 64 6f 72 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 62 69 6e 2d 64 69 72 27 3a 0a 63 61 73 vendor-dir':.case.'bin-dir':.cas
925c0 65 20 27 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 e.'process-timeout':.case.'cache
925e0 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 3a 0a 63 -dir':.case.'cache-files-dir':.c
92600 61 73 65 20 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 ase.'cache-repo-dir':.case.'cach
92620 65 2d 76 63 73 2d 64 69 72 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 43 4f 4d 50 4f 53 45 52 5f 27 e-vcs-dir':...$env.=.'COMPOSER_'
92640 20 2e 20 73 74 72 74 6f 75 70 70 65 72 28 73 74 72 74 72 28 24 6b 65 79 2c 20 27 2d 27 2c 20 27 ...strtoupper(strtr($key,.'-',.'
92660 5f 27 29 29 3b 0a 0a 24 76 61 6c 20 3d 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 _'));..$val.=.rtrim($this->proce
92680 73 73 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 24 65 6e 76 29 20 3f ss($this->getComposerEnv($env).?
926a0 3a 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 66 6c 61 67 73 29 2c 20 :.$this->config[$key],.$flags),.
926c0 27 2f 5c 5c 27 29 3b 0a 24 76 61 6c 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 28 '/\\');.$val.=.preg_replace('#^(
926e0 5c 24 48 4f 4d 45 7c 7e 29 28 2f 7c 24 29 23 27 2c 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 27 \$HOME|~)(/|$)#',.rtrim(getenv('
92700 48 4f 4d 45 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 55 53 45 52 50 52 4f 46 49 4c 45 27 29 2c HOME').?:.getenv('USERPROFILE'),
92720 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 2c 20 24 76 61 6c 29 3b 0a 0a 69 66 20 28 73 75 62 73 74 .'/\\')...'/',.$val);..if.(subst
92740 72 28 24 6b 65 79 2c 20 2d 34 29 20 21 3d 3d 20 27 2d 64 69 72 27 29 20 7b 0a 72 65 74 75 72 6e r($key,.-4).!==.'-dir').{.return
92760 20 24 76 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 66 6c 61 67 73 20 26 20 73 65 6c 66 3a .$val;.}..return.($flags.&.self:
92780 3a 52 45 4c 41 54 49 56 45 5f 50 41 54 48 53 20 3d 3d 20 31 29 20 3f 20 24 76 61 6c 20 3a 20 24 :RELATIVE_PATHS.==.1).?.$val.:.$
927a0 74 68 69 73 2d 3e 72 65 61 6c 70 61 74 68 28 24 76 61 6c 29 3b 0a 0a 63 61 73 65 20 27 63 61 63 this->realpath($val);..case.'cac
927c0 68 65 2d 74 74 6c 27 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e he-ttl':.return.(int).$this->con
927e0 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 fig[$key];..case.'cache-files-ma
92800 78 73 69 7a 65 27 3a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b xsize':.if.(!preg_match('/^\s*([
92820 30 2d 39 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 0-9.]+)\s*(?:([kmg])(?:i?b)?)?\s
92840 2a 24 2f 69 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 6d 61 74 *$/i',.$this->config[$key],.$mat
92860 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 ches)).{.throw.new.\RuntimeExcep
92880 74 69 6f 6e 28 0a 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 68 65 20 76 61 6c 75 65 tion(."Could.not.parse.the.value
928a0 20 6f 66 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 20 7b 24 74 68 69 .of.'cache-files-maxsize':.{$thi
928c0 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 7d 22 0a 29 3b 0a 7d 0a 24 73 69 7a 65 20 3d 20 24 s->config[$key]}".);.}.$size.=.$
928e0 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 matches[1];.if.(isset($matches[2
92900 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 ])).{.switch.(strtolower($matche
92920 73 5b 32 5d 29 29 20 7b 0a 63 61 73 65 20 27 67 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 s[2])).{.case.'g':.$size.*=.1024
92940 3b 0a 0a 20 63 61 73 65 20 27 6d 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 ;...case.'m':.$size.*=.1024;...c
92960 61 73 65 20 27 6b 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d ase.'k':.$size.*=.1024;.break;.}
92980 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 .}..return.$size;..case.'cache-f
929a0 69 6c 65 73 2d 74 74 6c 27 3a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 iles-ttl':.if.(isset($this->conf
929c0 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d ig[$key])).{.return.(int).$this-
929e0 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 >config[$key];.}..return.(int).$
92a00 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 63 61 63 68 65 2d 74 74 6c 27 5d 3b 0a 0a 63 61 73 65 this->config['cache-ttl'];..case
92a20 20 27 68 6f 6d 65 27 3a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f .'home':.return.rtrim($this->pro
92a40 63 65 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 66 6c 61 67 73 cess($this->config[$key],.$flags
92a60 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 ),.'/\\');..case.'discard-change
92a80 73 27 3a 0a 69 66 20 28 24 65 6e 76 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 s':.if.($env.=.$this->getCompose
92aa0 72 45 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 27 29 rEnv('COMPOSER_DISCARD_CHANGES')
92ac0 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c 20 61 72 72 61 79 28 27 73 ).{.if.(!in_array($env,.array('s
92ae0 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 tash',.'true',.'false',.'1',.'0'
92b00 29 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ),.true)).{.throw.new.\RuntimeEx
92b20 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 43 4f 4d 50 ception(."Invalid.value.for.COMP
92b40 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b 24 65 6e 76 7d 2e 20 45 78 OSER_DISCARD_CHANGES:.{$env}..Ex
92b60 70 65 63 74 65 64 20 31 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 pected.1,.0,.true,.false.or.stas
92b80 68 22 0a 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 65 6e 76 29 20 7b 0a h".);.}.if.('stash'.===.$env).{.
92ba0 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 65 6e 76 return.'stash';.}....return.$env
92bc0 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 65 6e 76 3b 0a 7d 0a 0a .!==.'false'.&&.(bool).$env;.}..
92be0 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 if.(!in_array($this->config[$key
92c00 5d 2c 20 61 72 72 61 79 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 73 74 61 73 68 27 29 2c 20 ],.array(true,.false,.'stash'),.
92c20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 true)).{.throw.new.\RuntimeExcep
92c40 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f 72 20 27 64 69 73 63 61 72 tion(."Invalid.value.for.'discar
92c60 64 2d 63 68 61 6e 67 65 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d d-changes':.{$this->config[$key]
92c80 7d 2e 20 45 78 70 65 63 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 73 74 61 73 68 }..Expected.true,.false.or.stash
92ca0 22 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 ".);.}..return.$this->config[$ke
92cc0 79 5d 3b 0a 0a 63 61 73 65 20 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 3a 0a 69 66 y];..case.'github-protocols':.if
92ce0 20 28 72 65 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 67 69 74 68 75 62 2d 70 72 .(reset($this->config['github-pr
92d00 6f 74 6f 63 6f 6c 73 27 5d 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 74 68 72 6f 77 20 6e otocols']).===.'http').{.throw.n
92d20 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 68 74 74 70 20 70 ew.\RuntimeException('The.http.p
92d40 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 67 69 74 68 75 62 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 rotocol.for.github.is.not.availa
92d60 62 6c 65 20 61 6e 79 6d 6f 72 65 2c 20 75 70 64 61 74 65 20 79 6f 75 72 20 63 6f 6e 66 69 67 5c ble.anymore,.update.your.config\
92d80 27 73 20 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 22 68 74 74 70 's.github-protocols.to.use."http
92da0 73 22 2c 20 22 67 69 74 22 20 6f 72 20 22 73 73 68 22 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 s",."git".or."ssh"');.}..return.
92dc0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 69 $this->config[$key];..default:.i
92de0 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 f.(!isset($this->config[$key])).
92e00 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e {.return.null;.}..return.$this->
92e20 70 72 6f 63 65 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 66 6c process($this->config[$key],.$fl
92e40 61 67 73 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 ags);.}.}..public.function.all($
92e60 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 61 6c 6c 20 3d 20 61 72 72 61 79 28 0a 27 72 65 70 6f flags.=.0).{.$all.=.array(.'repo
92e80 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 sitories'.=>.$this->getRepositor
92ea0 69 65 73 28 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 ies(),.);.foreach.(array_keys($t
92ec0 68 69 73 2d 3e 63 6f 6e 66 69 67 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 24 61 6c 6c 5b 27 63 6f his->config).as.$key).{.$all['co
92ee0 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6b 65 79 2c 20 nfig'][$key].=.$this->get($key,.
92f00 24 66 6c 61 67 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c $flags);.}..return.$all;.}..publ
92f20 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 61 77 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 ic.function.raw().{.return.array
92f40 28 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 (.'repositories'.=>.$this->getRe
92f60 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 27 63 6f 6e 66 69 67 27 20 3d 3e 20 24 74 68 69 73 2d positories(),.'config'.=>.$this-
92f80 3e 63 6f 6e 66 69 67 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >config,.);.}........public.func
92fa0 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 tion.has($key).{.return.array_ke
92fc0 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 3b 0a 7d y_exists($key,.$this->config);.}
92fe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 .........private.function.proces
93000 73 28 24 76 61 6c 75 65 2c 20 24 66 6c 61 67 73 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 s($value,.$flags).{.$config.=.$t
93020 68 69 73 3b 0a 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a his;..if.(!is_string($value)).{.
93040 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 return.$value;.}..return.preg_re
93060 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 23 5c 7b 5c 24 28 2e 2b 29 5c 7d 23 27 2c 20 66 place_callback('#\{\$(.+)\}#',.f
93080 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 63 6f 6e 66 69 67 2c 20 24 unction.($match).use.($config,.$
930a0 66 6c 61 67 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6d 61 flags).{.return.$config->get($ma
930c0 74 63 68 5b 31 5d 2c 20 24 66 6c 61 67 73 29 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a tch[1],.$flags);.},.$value);.}..
930e0 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 6c 70 61 74 ........private.function.realpat
93100 68 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 h($path).{.if.(substr($path,.0,.
93120 31 29 20 3d 3d 3d 20 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 1).===.'/'.||.substr($path,.1,.1
93140 29 20 3d 3d 3d 20 27 3a 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 72 65 ).===.':').{.return.$path;.}..re
93160 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 turn.$this->baseDir...'/'...$pat
93180 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 h;.}...........private.function.
931a0 67 65 74 43 6f 6d 70 6f 73 65 72 45 6e 76 28 24 76 61 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 getComposerEnv($var).{.if.($this
931c0 2d 3e 75 73 65 45 6e 76 69 72 6f 6e 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 67 65 74 65 6e ->useEnvironment).{.return.geten
931e0 76 28 24 76 61 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f v($var);.}..return.false;.}.}.<?
93200 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 php............namespace.Compose
93220 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a r\EventDispatcher;..............
93240 69 6e 74 65 72 66 61 63 65 20 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 interface.EventSubscriberInterfa
93260 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 ce.{...................public.st
93280 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 atic.function.getSubscribedEvent
932a0 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 s();.}.<?php............namespac
932c0 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a e.Composer\EventDispatcher;.....
932e0 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 ..class.Event.{....protected.$na
93300 6d 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 73 3b 0a 0a 0a 0a 0a 70 72 6f me;.....protected.$args;.....pro
93320 74 65 63 74 65 64 20 24 66 6c 61 67 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 70 tected.$flags;.....private.$prop
93340 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a agationStopped.=.false;.........
93360 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d public.function.__construct($nam
93380 65 2c 20 61 72 72 61 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 e,.array.$args.=.array(),.array.
933a0 24 66 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 $flags.=.array()).{.$this->name.
933c0 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 72 67 73 20 3d 20 24 61 72 67 73 3b 0a 24 74 =.$name;.$this->args.=.$args;.$t
933e0 68 69 73 2d 3e 66 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 his->flags.=.$flags;.}.......pub
93400 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
93420 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $this->name;.}.......public.func
93440 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getArguments().{.return.$th
93460 69 73 2d 3e 61 72 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f is->args;.}.......public.functio
93480 6e 20 67 65 74 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 6c 61 n.getFlags().{.return.$this->fla
934a0 67 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 72 gs;.}.......public.function.isPr
934c0 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 opagationStopped().{.return.$thi
934e0 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 s->propagationStopped;.}.....pub
93500 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28 29 0a 7b lic.function.stopPropagation().{
93520 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 74 72 75 .$this->propagationStopped.=.tru
93540 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 e;.}.}.<?php............namespac
93560 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 75 73 65 e.Composer\EventDispatcher;..use
93580 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6c .Composer\DependencyResolver\Pol
935a0 69 63 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e icyInterface;.use.Composer\Depen
935c0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 dencyResolver\Pool;.use.Composer
935e0 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 \DependencyResolver\Request;.use
93600 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 45 76 65 .Composer\Installer\InstallerEve
93620 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b nt;.use.Composer\IO\IOInterface;
93640 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 .use.Composer\Composer;.use.Comp
93660 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f oser\DependencyResolver\Operatio
93680 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 n\OperationInterface;.use.Compos
936a0 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 er\Repository\CompositeRepositor
936c0 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 75 73 65 20 43 6f 6d 70 y;.use.Composer\Script;.use.Comp
936e0 6f 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f oser\Script\PackageEvent;.use.Co
93700 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a mposer\Util\ProcessExecutor;....
93720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 ...........class.EventDispatcher
93740 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 .{.protected.$composer;.protecte
93760 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 d.$io;.protected.$loader;.protec
93780 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 73 74 65 6e 65 ted.$process;.protected.$listene
937a0 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f rs;.........public.function.__co
937c0 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e nstruct(Composer.$composer,.IOIn
937e0 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 terface.$io,.ProcessExecutor.$pr
93800 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 ocess.=.null).{.$this->composer.
93820 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 =.$composer;.$this->io.=.$io;.$t
93840 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 his->process.=.$process.?:.new.P
93860 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rocessExecutor($io);.}..........
93880 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 4e public.function.dispatch($eventN
938a0 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 ame,.Event.$event.=.null).{.if.(
938c0 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 45 null.==.$event).{.$event.=.new.E
938e0 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 vent($eventName);.}..return.$thi
93900 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->doDispatch($event);.}........
93920 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 53 63 72 69 ....public.function.dispatchScri
93940 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 2c pt($eventName,.$devMode.=.false,
93960 20 24 61 64 64 69 74 69 6f 6e 61 6c 41 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 24 66 6c 61 .$additionalArgs.=.array(),.$fla
93980 67 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f gs.=.array()).{.return.$this->do
939a0 44 69 73 70 61 74 63 68 28 6e 65 77 20 53 63 72 69 70 74 5c 45 76 65 6e 74 28 24 65 76 65 6e 74 Dispatch(new.Script\Event($event
939c0 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f Name,.$this->composer,.$this->io
939e0 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 41 72 67 73 2c 20 24 66 6c ,.$devMode,.$additionalArgs,.$fl
93a00 61 67 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ags));.}.................public.
93a20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 function.dispatchPackageEvent($e
93a40 76 65 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 ventName,.$devMode,.PolicyInterf
93a60 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 ace.$policy,.Pool.$pool,.Composi
93a80 74 65 52 65 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 teRepository.$installedRepo,.Req
93aa0 75 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 uest.$request,.array.$operations
93ac0 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 ,.OperationInterface.$operation)
93ae0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 6e 65 77 20 .{.return.$this->doDispatch(new.
93b00 50 61 63 6b 61 67 65 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e PackageEvent($eventName,.$this->
93b20 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 composer,.$this->io,.$devMode,.$
93b40 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 policy,.$pool,.$installedRepo,.$
93b60 72 65 71 75 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e request,.$operations,.$operation
93b80 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ));.}................public.func
93ba0 74 69 6f 6e 20 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 24 65 76 65 tion.dispatchInstallerEvent($eve
93bc0 6e 74 4e 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 ntName,.$devMode,.PolicyInterfac
93be0 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 65 e.$policy,.Pool.$pool,.Composite
93c00 52 65 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 65 Repository.$installedRepo,.Reque
93c20 73 74 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d st.$request,.array.$operations.=
93c40 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 .array()).{.return.$this->doDisp
93c60 61 74 63 68 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 atch(new.InstallerEvent($eventNa
93c80 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 me,.$this->composer,.$this->io,.
93ca0 24 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 $devMode,.$policy,.$pool,.$insta
93cc0 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 lledRepo,.$request,.$operations)
93ce0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 );.}............protected.functi
93d00 6f 6e 20 64 6f 44 69 73 70 61 74 63 68 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 6c on.doDispatch(Event.$event).{.$l
93d20 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 65 6e 65 72 73 28 24 isteners.=.$this->getListeners($
93d40 65 76 65 6e 74 29 3b 0a 0a 24 72 65 74 75 72 6e 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 event);..$return.=.0;.foreach.($
93d60 6c 69 73 74 65 6e 65 72 73 20 61 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 69 66 20 28 21 69 listeners.as.$callable).{.if.(!i
93d80 73 5f 73 74 72 69 6e 67 28 24 63 61 6c 6c 61 62 6c 65 29 20 26 26 20 69 73 5f 63 61 6c 6c 61 62 s_string($callable).&&.is_callab
93da0 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 24 74 68 69 73 2d le($callable)).{.$event.=.$this-
93dc0 3e 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 76 65 6e 74 28 24 63 61 6c >checkListenerExpectedEvent($cal
93de0 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 29 3b 0a 24 72 65 74 75 72 6e 20 3d 20 66 61 6c 73 65 20 lable,.$event);.$return.=.false.
93e00 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 ===.call_user_func($callable,.$e
93e20 76 65 6e 74 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e vent).?.1.:.0;.}.elseif.($this->
93e40 69 73 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 63 6c 61 73 73 isPhpScript($callable)).{.$class
93e60 4e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 30 2c 20 73 74 72 70 Name.=.substr($callable,.0,.strp
93e80 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 29 3b 0a 24 6d 65 74 68 6f 64 4e 61 6d os($callable,.'::'));.$methodNam
93ea0 65 20 3d 20 73 75 62 73 74 72 28 24 63 61 6c 6c 61 62 6c 65 2c 20 73 74 72 70 6f 73 28 24 63 61 e.=.substr($callable,.strpos($ca
93ec0 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 20 2b 20 32 29 3b 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f llable,.'::').+.2);..if.(!class_
93ee0 65 78 69 73 74 73 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d exists($className)).{.$this->io-
93f00 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6c 61 73 73 20 27 2e 24 63 >writeError('<warning>Class.'.$c
93f20 6c 61 73 73 4e 61 6d 65 2e 27 20 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c 20 lassName.'.is.not.autoloadable,.
93f40 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 can.not.call.'.$event->getName()
93f60 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b .'.script</warning>');.continue;
93f80 0a 7d 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 .}.if.(!is_callable($callable)).
93fa0 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e {.$this->io->writeError('<warnin
93fc0 67 3e 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c 61 62 6c 65 2e 27 20 69 73 20 6e 6f 74 20 63 61 g>Method.'.$callable.'.is.not.ca
93fe0 6c 6c 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c 6c 20 27 2e 24 65 76 65 6e 74 2d 3e 67 llable,.can.not.call.'.$event->g
94000 65 74 4e 61 6d 65 28 29 2e 27 20 73 63 72 69 70 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 etName().'.script</warning>');.c
94020 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 72 65 74 75 72 6e 20 3d 20 66 61 6c 73 ontinue;.}..try.{.$return.=.fals
94040 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 e.===.$this->executeEventPhpScri
94060 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 65 pt($className,.$methodName,.$eve
94080 6e 74 29 20 3f 20 31 20 3a 20 30 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e nt).?.1.:.0;.}.catch.(\Exception
940a0 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 6e .$e).{.$message.=."Script.%s.han
940c0 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 dling.the.%s.event.terminated.wi
940e0 74 68 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 th.an.exception";.$this->io->wri
94100 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 27 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 61 teError('<error>'.sprintf($messa
94120 67 65 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 ge,.$callable,.$event->getName()
94140 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c 73 ).'</error>');.throw.$e;.}.}.els
94160 65 20 7b 0a 24 61 72 67 73 20 3d 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d e.{.$args.=.implode('.',.array_m
94180 61 70 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 ap(array('Composer\Util\ProcessE
941a0 78 65 63 75 74 6f 72 27 2c 27 65 73 63 61 70 65 27 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 41 xecutor','escape'),.$event->getA
941c0 72 67 75 6d 65 6e 74 73 28 29 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 28 24 65 78 69 74 43 6f rguments()));.if.(0.!==.($exitCo
941e0 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 61 de.=.$this->process->execute($ca
94200 6c 6c 61 62 6c 65 20 2e 20 28 24 61 72 67 73 20 3d 3d 3d 20 27 27 20 3f 20 27 27 20 3a 20 27 20 llable...($args.===.''.?.''.:.'.
94220 27 2e 24 61 72 67 73 29 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 '.$args)))).{.$this->io->writeEr
94240 72 6f 72 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 53 63 72 69 70 74 20 25 73 20 68 61 ror(sprintf('<error>Script.%s.ha
94260 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 72 65 74 75 72 6e 65 64 20 77 69 74 ndling.the.%s.event.returned.wit
94280 68 20 61 6e 20 65 72 72 6f 72 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 h.an.error</error>',.$callable,.
942a0 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 $event->getName()));..throw.new.
942c0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 4f 75 74 70 75 74 3a \RuntimeException('Error.Output:
942e0 20 27 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 .'.$this->process->getErrorOutpu
94300 74 28 29 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 76 65 6e 74 t(),.$exitCode);.}.}..if.($event
94320 2d 3e 69 73 50 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 29 20 7b 0a 62 72 65 61 ->isPropagationStopped()).{.brea
94340 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a k;.}.}..return.$return;.}.......
94360 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 45 76 65 6e 74 50 protected.function.executeEventP
94380 68 70 53 63 72 69 70 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 hpScript($className,.$methodName
943a0 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 65 76 65 6e 74 20 3d 20 24 74 68 69 73 ,.Event.$event).{.$event.=.$this
943c0 2d 3e 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 76 65 6e 74 28 61 72 72 ->checkListenerExpectedEvent(arr
943e0 61 79 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 29 2c 20 24 65 76 ay($className,.$methodName),.$ev
94400 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 6f ent);..return.$className::$metho
94420 64 4e 61 6d 65 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 dName($event);.}.......protected
94440 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4c 69 73 74 65 6e 65 72 45 78 70 65 63 74 65 64 45 .function.checkListenerExpectedE
94460 76 65 6e 74 28 24 74 61 72 67 65 74 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 74 72 vent($target,.Event.$event).{.tr
94480 79 20 7b 0a 24 72 65 66 6c 65 63 74 65 64 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e y.{.$reflected.=.new.\Reflection
944a0 50 61 72 61 6d 65 74 65 72 28 24 74 61 72 67 65 74 2c 20 30 29 3b 0a 7d 20 63 61 74 63 68 20 28 Parameter($target,.0);.}.catch.(
944c0 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 3b 0a \Exception.$e).{.return.$event;.
944e0 7d 0a 0a 24 74 79 70 65 68 69 6e 74 20 3d 20 24 72 65 66 6c 65 63 74 65 64 2d 3e 67 65 74 43 6c }..$typehint.=.$reflected->getCl
94500 61 73 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 79 70 65 68 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f ass();..if.(!$typehint.instanceo
94520 66 20 5c 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 76 f.\ReflectionClass).{.return.$ev
94540 65 6e 74 3b 0a 7d 0a 0a 24 65 78 70 65 63 74 65 64 20 3d 20 24 74 79 70 65 68 69 6e 74 2d 3e 67 ent;.}..$expected.=.$typehint->g
94560 65 74 4e 61 6d 65 28 29 3b 0a 0a 0a 20 69 66 20 28 21 24 65 76 65 6e 74 20 69 6e 73 74 61 6e 63 etName();....if.(!$event.instanc
94580 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 78 70 65 63 74 65 64 20 3d 3d 3d 20 27 eof.$expected.&&.$expected.===.'
945a0 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 27 29 20 7b Composer\Script\CommandEvent').{
945c0 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 43 .$event.=.new.\Composer\Script\C
945e0 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 ommandEvent(.$event->getName(),.
94600 24 65 76 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 $event->getComposer(),.$event->g
94620 65 74 49 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 65 76 4d 6f 64 65 28 29 2c 20 24 65 76 etIO(),.$event->isDevMode(),.$ev
94640 65 6e 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 29 3b 0a 7d 0a 69 66 20 28 21 24 65 ent->getArguments().);.}.if.(!$e
94660 76 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 78 vent.instanceof.$expected.&&.$ex
94680 70 65 63 74 65 64 20 3d 3d 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 6b pected.===.'Composer\Script\Pack
946a0 61 67 65 45 76 65 6e 74 27 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f ageEvent').{.$event.=.new.\Compo
946c0 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 2d ser\Script\PackageEvent(.$event-
946e0 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 >getName(),.$event->getComposer(
94700 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 49 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 65 ),.$event->getIO(),.$event->isDe
94720 76 4d 6f 64 65 28 29 2c 0a 24 65 76 65 6e 74 2d 3e 67 65 74 50 6f 6c 69 63 79 28 29 2c 20 24 65 vMode(),.$event->getPolicy(),.$e
94740 76 65 6e 74 2d 3e 67 65 74 50 6f 6f 6c 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 49 6e 73 74 vent->getPool(),.$event->getInst
94760 61 6c 6c 65 64 52 65 70 6f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 52 65 71 75 65 73 74 28 alledRepo(),.$event->getRequest(
94780 29 2c 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 2c 20 24 65 76 65 ),.$event->getOperations(),.$eve
947a0 6e 74 2d 3e 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 29 3b 0a 7d 0a 69 66 20 28 21 24 65 76 nt->getOperation().);.}.if.(!$ev
947c0 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 24 65 78 70 65 63 74 65 64 20 26 26 20 24 65 78 70 ent.instanceof.$expected.&&.$exp
947e0 65 63 74 65 64 20 3d 3d 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 45 76 65 6e 74 ected.===.'Composer\Script\Event
94800 27 29 20 7b 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 ').{.$event.=.new.\Composer\Scri
94820 70 74 5c 45 76 65 6e 74 28 0a 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 65 76 pt\Event(.$event->getName(),.$ev
94840 65 6e 74 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 49 ent->getComposer(),.$event->getI
94860 4f 28 29 2c 20 24 65 76 65 6e 74 2d 3e 69 73 44 65 76 4d 6f 64 65 28 29 2c 0a 24 65 76 65 6e 74 O(),.$event->isDevMode(),.$event
94880 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 46 6c 61 ->getArguments(),.$event->getFla
948a0 67 73 28 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a gs().);.}..return.$event;.}.....
948c0 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 69 73 74 65 6e ....protected.function.addListen
948e0 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 6c 69 73 74 65 6e 65 72 2c 20 24 70 72 69 6f 72 er($eventName,.$listener,.$prior
94900 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 ity.=.0).{.$this->listeners[$eve
94920 6e 74 4e 61 6d 65 5d 5b 24 70 72 69 6f 72 69 74 79 5d 5b 5d 20 3d 20 24 6c 69 73 74 65 6e 65 72 ntName][$priority][].=.$listener
94940 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 ;.}.........public.function.addS
94960 75 62 73 63 72 69 62 65 72 28 45 76 65 6e 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 ubscriber(EventSubscriberInterfa
94980 63 65 20 24 73 75 62 73 63 72 69 62 65 72 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 75 62 73 ce.$subscriber).{.foreach.($subs
949a0 63 72 69 62 65 72 2d 3e 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 73 28 29 20 61 73 criber->getSubscribedEvents().as
949c0 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 3e 20 24 70 61 72 61 6d 73 29 20 7b 0a 69 66 20 28 69 73 .$eventName.=>.$params).{.if.(is
949e0 5f 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 69 _string($params)).{.$this->addLi
94a00 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 63 72 stener($eventName,.array($subscr
94a20 69 62 65 72 2c 20 24 70 61 72 61 6d 73 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 73 74 iber,.$params));.}.elseif.(is_st
94a40 72 69 6e 67 28 24 70 61 72 61 6d 73 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 69 ring($params[0])).{.$this->addLi
94a60 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 63 72 stener($eventName,.array($subscr
94a80 69 62 65 72 2c 20 24 70 61 72 61 6d 73 5b 30 5d 29 2c 20 69 73 73 65 74 28 24 70 61 72 61 6d 73 iber,.$params[0]),.isset($params
94aa0 5b 31 5d 29 20 3f 20 24 70 61 72 61 6d 73 5b 31 5d 20 3a 20 30 29 3b 0a 7d 20 65 6c 73 65 20 7b [1]).?.$params[1].:.0);.}.else.{
94ac0 0a 66 6f 72 65 61 63 68 20 28 24 70 61 72 61 6d 73 20 61 73 20 24 6c 69 73 74 65 6e 65 72 29 20 .foreach.($params.as.$listener).
94ae0 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c {.$this->addListener($eventName,
94b00 20 61 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 24 6c 69 73 74 65 6e 65 72 5b 30 5d .array($subscriber,.$listener[0]
94b20 29 2c 20 69 73 73 65 74 28 24 6c 69 73 74 65 6e 65 72 5b 31 5d 29 20 3f 20 24 6c 69 73 74 65 6e ),.isset($listener[1]).?.$listen
94b40 65 72 5b 31 5d 20 3a 20 30 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 er[1].:.0);.}.}.}.}........prote
94b60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 cted.function.getListeners(Event
94b80 20 24 65 76 65 6e 74 29 0a 7b 0a 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 .$event).{.$scriptListeners.=.$t
94ba0 68 69 73 2d 3e 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 24 65 76 65 6e 74 29 3b his->getScriptListeners($event);
94bc0 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 ..if.(!isset($this->listeners[$e
94be0 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c vent->getName()][0])).{.$this->l
94c00 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 20 3d isteners[$event->getName()][0].=
94c20 20 61 72 72 61 79 28 29 3b 0a 7d 0a 6b 72 73 6f 72 74 28 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e .array();.}.krsort($this->listen
94c40 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 0a 24 6c 69 73 74 65 ers[$event->getName()]);..$liste
94c60 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 3b 0a 24 6c 69 73 74 65 6e ners.=.$this->listeners;.$listen
94c80 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 20 3d 20 61 72 72 61 ers[$event->getName()][0].=.arra
94ca0 79 5f 6d 65 72 67 65 28 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 y_merge($listeners[$event->getNa
94cc0 6d 65 28 29 5d 5b 30 5d 2c 20 24 73 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 29 3b 0a 0a 72 65 me()][0],.$scriptListeners);..re
94ce0 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 turn.call_user_func_array('array
94d00 5f 6d 65 72 67 65 27 2c 20 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e _merge',.$listeners[$event->getN
94d20 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ame()]);.}........public.functio
94d40 6e 20 68 61 73 45 76 65 6e 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 n.hasEventListeners(Event.$event
94d60 29 0a 7b 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 69 73 74 65 ).{.$listeners.=.$this->getListe
94d80 6e 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 6c 69 73 ners($event);..return.count($lis
94da0 74 65 6e 65 72 73 29 20 3e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 teners).>.0;.}........protected.
94dc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e 65 72 73 28 45 76 65 6e function.getScriptListeners(Even
94de0 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f t.$event).{.$package.=.$this->co
94e00 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 73 63 72 69 70 74 73 20 3d mposer->getPackage();.$scripts.=
94e20 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 63 72 69 70 74 73 28 29 3b 0a 0a 69 66 20 28 65 6d .$package->getScripts();..if.(em
94e40 70 74 79 28 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 pty($scripts[$event->getName()])
94e60 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 ).{.return.array();.}..if.($this
94e80 2d 3e 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 75 6e 72 65 67 ->loader).{.$this->loader->unreg
94ea0 69 73 74 65 72 28 29 3b 0a 7d 0a 0a 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e ister();.}..$generator.=.$this->
94ec0 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 composer->getAutoloadGenerator()
94ee0 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 ;.$packages.=.$this->composer->g
94f00 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 etRepositoryManager()->getLocalR
94f20 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 epository()->getCanonicalPackage
94f40 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 62 s();.$packageMap.=.$generator->b
94f60 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e uildPackageMap($this->composer->
94f80 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 20 24 70 61 63 6b 61 getInstallationManager(),.$packa
94fa0 67 65 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 24 6d 61 70 20 3d 20 24 67 65 6e 65 72 61 74 6f ge,.$packages);.$map.=.$generato
94fc0 72 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 r->parseAutoloads($packageMap,.$
94fe0 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 package);.$this->loader.=.$gener
95000 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 74 68 69 73 2d ator->createLoader($map);.$this-
95020 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 63 >loader->register();..return.$sc
95040 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 7d 0a 0a 0a 0a 0a ripts[$event->getName()];.}.....
95060 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 68 70 53 63 72 69 70 ...protected.function.isPhpScrip
95080 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 3d 3d 3d 20 t($callable).{.return.false.===.
950a0 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 20 27 29 20 26 26 20 66 61 6c 73 65 20 strpos($callable,.'.').&&.false.
950c0 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a 3a 27 29 3b 0a 7d 0a 7d !==.strpos($callable,.'::');.}.}
950e0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
95100 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f oser\Script;..use.Composer\Compo
95120 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 ser;.use.Composer\IO\IOInterface
95140 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 ;.use.Composer\EventDispatcher\E
95160 76 65 6e 74 20 61 73 20 42 61 73 65 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 vent.as.BaseEvent;........class.
95180 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 Event.extends.BaseEvent.{....pri
951a0 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b vate.$composer;.....private.$io;
951c0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .....private.$devMode;..........
951e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e ..public.function.__construct($n
95200 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 ame,.Composer.$composer,.IOInter
95220 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 2c 20 61 72 72 61 face.$io,.$devMode.=.false,.arra
95240 79 20 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 66 6c 61 67 73 20 y.$args.=.array(),.array.$flags.
95260 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 =.array()).{.parent::__construct
95280 28 24 6e 61 6d 65 2c 20 24 61 72 67 73 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e 63 ($name,.$args,.$flags);.$this->c
952a0 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d omposer.=.$composer;.$this->io.=
952c0 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 24 64 65 76 4d 6f 64 65 3b .$io;.$this->devMode.=.$devMode;
952e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 .}.......public.function.getComp
95300 6f 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b oser().{.return.$this->composer;
95320 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 .}.......public.function.getIO()
95340 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .{.return.$this->io;.}.......pub
95360 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 4d 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 lic.function.isDevMode().{.retur
95380 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a n.$this->devMode;.}.}.<?php.....
953a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 .......namespace.Composer\Script
953c0 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 72 69 70 74 45 76 65 6e 74 73 0a 7b 0a 0a 0a ;........class.ScriptEvents.{...
953e0 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 72 .....const.PRE_INSTALL_CMD.=.'pr
95400 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f e-install-cmd';.........const.PO
95420 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 ST_INSTALL_CMD.=.'post-install-c
95440 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 55 50 44 41 54 45 5f 43 4d md';.........const.PRE_UPDATE_CM
95460 44 20 3d 20 27 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f D.=.'pre-update-cmd';.........co
95480 6e 73 74 20 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 75 70 64 61 nst.POST_UPDATE_CMD.=.'post-upda
954a0 74 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 53 54 41 54 55 te-cmd';.........const.PRE_STATU
954c0 53 5f 43 4d 44 20 3d 20 27 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a S_CMD.=.'pre-status-cmd';.......
954e0 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d ..const.POST_STATUS_CMD.=.'post-
95500 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 status-cmd';...........const.PRE
95520 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 27 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 _AUTOLOAD_DUMP.=.'pre-autoload-d
95540 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 ump';.........const.POST_AUTOLOA
95560 44 5f 44 55 4d 50 20 3d 20 27 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a D_DUMP.=.'post-autoload-dump';..
95580 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 .......const.POST_ROOT_PACKAGE_I
955a0 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 NSTALL.=.'post-root-package-inst
955c0 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 43 52 45 41 54 45 all';..........const.POST_CREATE
955e0 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a _PROJECT_CMD.=.'post-create-proj
95600 65 63 74 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 52 43 48 ect-cmd';.........const.PRE_ARCH
95620 49 56 45 5f 43 4d 44 20 3d 20 27 70 72 65 2d 61 72 63 68 69 76 65 2d 63 6d 64 27 3b 0a 0a 0a 0a IVE_CMD.=.'pre-archive-cmd';....
95640 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 52 43 48 49 56 45 5f 43 4d 44 20 3d 20 27 70 .....const.POST_ARCHIVE_CMD.=.'p
95660 6f 73 74 2d 61 72 63 68 69 76 65 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 ost-archive-cmd';..........const
95680 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b .PRE_PACKAGE_INSTALL.=.'pre-pack
956a0 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 age-install';..........const.POS
956c0 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 T_PACKAGE_INSTALL.=.'post-packag
956e0 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 e-install';..........const.PRE_P
95700 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 ACKAGE_UPDATE.=.'pre-package-upd
95720 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 ate';..........const.POST_PACKAG
95740 45 5f 55 50 44 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 E_UPDATE.=.'post-package-update'
95760 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 4e 49 ;..........const.PRE_PACKAGE_UNI
95780 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 NSTALL.=.'pre-package-uninstall'
957a0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 4e ;..........const.POST_PACKAGE_UN
957c0 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c INSTALL.=.'post-package-uninstal
957e0 6c 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 l';.}.<?php............namespace
95800 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f .Composer\Script;.......class.Co
95820 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 mmandEvent.extends.Event.{.}.<?p
95840 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
95860 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 \Script;..use.Composer\Installer
95880 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 20 61 73 20 42 61 73 65 50 61 63 6b 61 67 65 45 76 65 6e \PackageEvent.as.BasePackageEven
958a0 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 t;.......class.PackageEvent.exte
958c0 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a nds.BasePackageEvent.{.}.<?php..
958e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 ..........namespace.Composer\Ins
95900 74 61 6c 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 taller;.......class.PackageEvent
95920 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 49 4e 53 s.{........const.PRE_PACKAGE_INS
95940 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a TALL.=.'pre-package-install';...
95960 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c ......const.POST_PACKAGE_INSTALL
95980 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a .=.'post-package-install';......
959a0 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 ...const.PRE_PACKAGE_UPDATE.=.'p
959c0 72 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 re-package-update';.........cons
959e0 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 55 50 44 41 54 45 20 3d 20 27 70 6f 73 74 2d 70 61 t.POST_PACKAGE_UPDATE.=.'post-pa
95a00 63 6b 61 67 65 2d 75 70 64 61 74 65 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 ckage-update';.........const.PRE
95a20 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 72 65 2d 70 61 63 6b 61 67 _PACKAGE_UNINSTALL.=.'pre-packag
95a40 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 e-uninstall';.........const.POST
95a60 5f 50 41 43 4b 41 47 45 5f 55 4e 49 4e 53 54 41 4c 4c 20 3d 20 27 70 6f 73 74 2d 70 61 63 6b 61 _PACKAGE_UNINSTALL.=.'post-packa
95a80 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ge-uninstall';.}.<?php..........
95aa0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a ..namespace.Composer\Installer;.
95ac0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 .use.Composer\Composer;.use.Comp
95ae0 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6c 69 63 79 49 6e oser\DependencyResolver\PolicyIn
95b00 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 terface;.use.Composer\Dependency
95b20 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 Resolver\Operation\OperationInte
95b40 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 rface;.use.Composer\DependencyRe
95b60 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 solver\Pool;.use.Composer\Depend
95b80 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 encyResolver\Request;.use.Compos
95ba0 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f er\EventDispatcher\Event;.use.Co
95bc0 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f mposer\IO\IOInterface;.use.Compo
95be0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f ser\Repository\CompositeReposito
95c00 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 20 65 ry;.......class.InstallerEvent.e
95c20 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f xtends.Event.{....private.$compo
95c40 73 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 ser;.....private.$io;.....privat
95c60 65 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6c 69 63 79 3b e.$devMode;.....private.$policy;
95c80 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 6f 6f 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 .....private.$pool;.....private.
95ca0 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 65 71 $installedRepo;.....private.$req
95cc0 75 65 73 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 0a uest;.....private.$operations;..
95ce0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 .............public.function.__c
95d00 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 onstruct($eventName,.Composer.$c
95d20 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f omposer,.IOInterface.$io,.$devMo
95d40 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 63 79 2c 20 50 6f 6f de,.PolicyInterface.$policy,.Poo
95d60 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 20 24 69 6e l.$pool,.CompositeRepository.$in
95d80 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 65 73 74 20 24 72 65 71 75 65 73 74 2c 20 61 stalledRepo,.Request.$request,.a
95da0 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 rray.$operations.=.array()).{.pa
95dc0 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 0a rent::__construct($eventName);..
95de0 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 $this->composer.=.$composer;.$th
95e00 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 24 is->io.=.$io;.$this->devMode.=.$
95e20 64 65 76 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 70 6f 6c 69 63 79 devMode;.$this->policy.=.$policy
95e40 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e ;.$this->pool.=.$pool;.$this->in
95e60 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 24 74 stalledRepo.=.$installedRepo;.$t
95e80 68 69 73 2d 3e 72 65 71 75 65 73 74 20 3d 20 24 72 65 71 75 65 73 74 3b 0a 24 74 68 69 73 2d 3e his->request.=.$request;.$this->
95ea0 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a operations.=.$operations;.}.....
95ec0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a 7b 0a public.function.getComposer().{.
95ee0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->composer;.}.....pu
95f00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 blic.function.getIO().{.return.$
95f20 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 this->io;.}.....public.function.
95f40 69 73 44 65 76 4d 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d isDevMode().{.return.$this->devM
95f60 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f ode;.}.....public.function.getPo
95f80 6c 69 63 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 3b 0a 7d licy().{.return.$this->policy;.}
95fa0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 6f 6c 28 29 0a 7b .....public.function.getPool().{
95fc0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .return.$this->pool;.}.....publi
95fe0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 28 29 0a 7b 0a c.function.getInstalledRepo().{.
96000 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 3b 0a 7d 0a 0a return.$this->installedRepo;.}..
96020 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 65 73 74 28 29 0a ...public.function.getRequest().
96040 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 70 {.return.$this->request;.}.....p
96060 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 29 0a 7b ublic.function.getOperations().{
96080 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 7d 0a 3c .return.$this->operations;.}.}.<
960a0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
960c0 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f er\Installer;..use.Composer\Repo
960e0 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 sitory\InstalledRepositoryInterf
96100 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 ace;.use.Composer\Package\Packag
96120 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 6e eInterface;.........class.NoopIn
96140 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 staller.implements.InstallerInte
96160 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f rface.{....public.function.suppo
96180 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b rts($packageType).{.return.true;
961a0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c .}.....public.function.isInstall
961c0 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 ed(InstalledRepositoryInterface.
961e0 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 $repo,.PackageInterface.$package
96200 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 ).{.return.$repo->hasPackage($pa
96220 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e ckage);.}.....public.function.in
96240 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 stall(InstalledRepositoryInterfa
96260 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ce.$repo,.PackageInterface.$pack
96280 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 age).{.if.(!$repo->hasPackage($p
962a0 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f ackage)).{.$repo->addPackage(clo
962c0 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ne.$package);.}.}.....public.fun
962e0 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 ction.update(InstalledRepository
96300 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
96320 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 e.$initial,.PackageInterface.$ta
96340 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 rget).{.if.(!$repo->hasPackage($
96360 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 initial)).{.throw.new.\InvalidAr
96380 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 gumentException('Package.is.not.
963a0 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f installed:.'.$initial);.}..$repo
963c0 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 ->removePackage($initial);.if.(!
963e0 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 $repo->hasPackage($target)).{.$r
96400 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a epo->addPackage(clone.$target);.
96420 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c }.}.....public.function.uninstal
96440 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 l(InstalledRepositoryInterface.$
96460 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 repo,.PackageInterface.$package)
96480 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 .{.if.(!$repo->hasPackage($packa
964a0 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e ge)).{.throw.new.\InvalidArgumen
964c0 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 tException('Package.is.not.insta
964e0 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f lled:.'.$package);.}.$repo->remo
96500 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 vePackage($package);.}.....publi
96520 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 c.function.getInstallPath(Packag
96540 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 69 eInterface.$package).{.$targetDi
96560 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 r.=.$package->getTargetDir();..r
96580 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 eturn.$package->getPrettyName().
965a0 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a ..($targetDir.?.'/'.$targetDir.:
965c0 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .'');.}.}.<?php............names
965e0 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f pace.Composer\Installer;..use.Co
96600 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 mposer\Repository\InstalledRepos
96620 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 itoryInterface;.use.Composer\Pac
96640 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 kage\PackageInterface;.......cla
96660 73 73 20 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e ss.MetapackageInstaller.implemen
96680 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 ts.InstallerInterface.{....publi
966a0 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 c.function.supports($packageType
966c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 74 ).{.return.$packageType.===.'met
966e0 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e apackage';.}.....public.function
96700 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 .isInstalled(InstalledRepository
96720 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
96740 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 e.$package).{.return.$repo->hasP
96760 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ackage($package);.}.....public.f
96780 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 unction.install(InstalledReposit
967a0 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 oryInterface.$repo,.PackageInter
967c0 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 face.$package).{.$repo->addPacka
967e0 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ge(clone.$package);.}.....public
96800 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 .function.update(InstalledReposi
96820 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 toryInterface.$repo,.PackageInte
96840 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 rface.$initial,.PackageInterface
96860 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 .$target).{.if.(!$repo->hasPacka
96880 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c ge($initial)).{.throw.new.\Inval
968a0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 idArgumentException('Package.is.
968c0 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 not.installed:.'.$initial);.}..$
968e0 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 repo->removePackage($initial);.$
96900 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b repo->addPackage(clone.$target);
96920 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c .}.....public.function.uninstall
96940 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 (InstalledRepositoryInterface.$r
96960 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a epo,.PackageInterface.$package).
96980 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 {.if.(!$repo->hasPackage($packag
969a0 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 e)).{.throw.new.\InvalidArgument
969c0 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c Exception('Package.is.not.instal
969e0 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f led:.'.$package);.}..$repo->remo
96a00 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 vePackage($package);.}.....publi
96a20 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 c.function.getInstallPath(Packag
96a40 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 27 27 eInterface.$package).{.return.''
96a60 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 ;.}.}.<?php............namespace
96a80 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 .Composer\Installer;..use.Compos
96aa0 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c er\IO\IOInterface;.use.Composer\
96ac0 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 Composer;.use.Composer\Downloade
96ae0 72 5c 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 r\PearPackageExtractor;.use.Comp
96b00 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 oser\Repository\InstalledReposit
96b20 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 oryInterface;.use.Composer\Packa
96b40 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ge\PackageInterface;.use.Compose
96b60 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 r\Util\ProcessExecutor;........c
96b80 6c 61 73 73 20 50 65 61 72 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e 64 73 20 4c 69 62 72 61 lass.PearInstaller.extends.Libra
96ba0 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ryInstaller.{........public.func
96bc0 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f tion.__construct(IOInterface.$io
96be0 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 70 ,.Composer.$composer,.$type.=.'p
96c00 65 61 72 2d 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ear-library').{.parent::__constr
96c20 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a uct($io,.$composer,.$type);.}...
96c40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c ..public.function.update(Install
96c60 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 edRepositoryInterface.$repo,.Pac
96c80 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 kageInterface.$initial,.PackageI
96ca0 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 nterface.$target).{.$this->unins
96cc0 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e tall($repo,.$initial);.$this->in
96ce0 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 stall($repo,.$target);.}..protec
96d00 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 ted.function.installCode(Package
96d20 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e Interface.$package).{.parent::in
96d40 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 stallCode($package);.parent::ini
96d60 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 3b 0a 0a 24 69 73 57 69 6e 64 6f 77 73 20 3d 20 64 tializeBinDir();..$isWindows.=.d
96d80 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c efined('PHP_WINDOWS_VERSION_BUIL
96da0 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 2e 20 D');.$php_bin.=.$this->binDir...
96dc0 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 ($isWindows.?.'/composer-php.bat
96de0 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 69 73 57 '.:.'/composer-php');..if.(!$isW
96e00 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 6e 2f 65 indows).{.$php_bin.=.'/usr/bin/e
96e20 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 nv.'...$php_bin;.}..$installPath
96e40 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 .=.$this->getInstallPath($packag
96e60 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 57 69 e);.$vars.=.array(.'os'.=>.$isWi
96e80 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 70 68 ndows.?.'windows'.:.'linux',.'ph
96ea0 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 20 3d p_bin'.=>.$php_bin,.'pear_php'.=
96ec0 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 69 6e >.$installPath,.'php_dir'.=>.$in
96ee0 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c stallPath,.'bin_dir'.=>.$install
96f00 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 69 6e Path...'/bin',.'data_dir'.=>.$in
96f20 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d stallPath...'/data',.'version'.=
96f40 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a >.$package->getPrettyVersion(),.
96f60 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 );..$packageArchive.=.$this->get
96f80 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 69 6e InstallPath($package).'/'.pathin
96fa0 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 49 fo($package->getDistUrl(),.PATHI
96fc0 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 3d 20 NFO_BASENAME);.$pearExtractor.=.
96fe0 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b 61 67 new.PearPackageExtractor($packag
97000 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 72 61 eArchive);.$pearExtractor->extra
97020 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b ctTo($this->getInstallPath($pack
97040 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 age),.array('php'.=>.'/',.'scrip
97060 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 27 29 t'.=>.'/bin',.'data'.=>.'/data')
97080 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 62 ,.$vars);..if.($this->io->isVerb
970a0 6f 73 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 ose()).{.$this->io->writeError('
970c0 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 65 ....Cleaning.up');.}.$this->file
970e0 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 29 3b system->unlink($packageArchive);
97100 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 .}..protected.function.getBinari
97120 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a es(PackageInterface.$package).{.
97140 24 62 69 6e 61 72 69 65 73 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c $binariesPath.=.$this->getInstal
97160 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 6e 2f 27 3b 0a 24 62 69 6e 61 lPath($package)...'/bin/';.$bina
97180 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 ries.=.array();.if.(file_exists(
971a0 24 62 69 6e 61 72 69 65 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 6e 65 77 20 5c $binariesPath)).{.foreach.(new.\
971c0 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 FilesystemIterator($binariesPath
971e0 2c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 4b 45 59 5f 41 53 5f 46 49 ,.\FilesystemIterator::KEY_AS_FI
97200 4c 45 4e 41 4d 45 20 7c 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 43 55 LENAME.|.\FilesystemIterator::CU
97220 52 52 45 4e 54 5f 41 53 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 24 66 69 6c 65 4e 61 6d 65 20 RRENT_AS_FILEINFO).as.$fileName.
97240 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 2d 3e 69 73 44 69 72 28 =>.$value).{.if.(!$value->isDir(
97260 29 29 20 7b 0a 24 62 69 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 6e 2f 27 2e 24 66 69 6c 65 4e )).{.$binaries[].=.'bin/'.$fileN
97280 61 6d 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a ame;.}.}.}..return.$binaries;.}.
972a0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 .protected.function.initializeBi
972c0 6e 44 69 72 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 nDir().{.parent::initializeBinDi
972e0 72 28 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 62 69 r();.file_put_contents($this->bi
97300 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e nDir.'/composer-php',.$this->gen
97320 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d 6f erateUnixyPhpProxyCode());.@chmo
97340 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c d($this->binDir.'/composer-php',
97360 20 30 37 37 37 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d .0777);.file_put_contents($this-
97380 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 24 74 68 >binDir.'/composer-php.bat',.$th
973a0 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 is->generateWindowsPhpProxyCode(
973c0 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f ));.@chmod($this->binDir.'/compo
973e0 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 ser-php.bat',.0777);.}..protecte
97400 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 d.function.generateWindowsProxyC
97420 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 ode($bin,.$link).{.$binPath.=.$t
97440 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 his->filesystem->findShortestPat
97460 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 h($link,.$bin);.if.('.bat'.===.s
97480 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 ubstr($bin,.-4)).{.$caller.=.'ca
974a0 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 ll';.}.else.{.$handle.=.fopen($b
974c0 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 in,.'r');.$line.=.fgets($handle)
974e0 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 ;.fclose($handle);.if.(preg_matc
97500 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d h('{^#!/(?:usr/bin/env.)?(?:[^/]
97520 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a +/)*(.+)$}m',.$line,.$match)).{.
97540 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 $caller.=.trim($match[1]);.}.els
97560 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6c e.{.$caller.=.'php';.}..if.($cal
97580 6c 65 72 20 3d 3d 3d 20 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 6f ler.===.'php').{.return."@echo.o
975a0 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 63 64 20 25 7e 64 70 ff\r\n".."pushd..\r\n".."cd.%~dp
975c0 30 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d 25 43 44 25 5c 5c 63 6f 6d 0\r\n".."set.PHP_PROXY=%CD%\\com
975e0 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 50 72 6f 63 65 73 poser-php.bat\r\n".."cd.".Proces
97600 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 sExecutor::escape(dirname($binPa
97620 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 th))."\r\n".."set.BIN_TARGET=%CD
97640 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a %\\".basename($binPath)."\r\n"..
97660 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e 5f "popd\r\n".."%PHP_PROXY%.\"%BIN_
97680 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 TARGET%\".%*\r\n";.}.}..return."
976a0 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 0a 22 70 75 73 68 64 20 2e 5c 72 5c 6e 22 2e 0a 22 @echo.off\r\n".."pushd..\r\n".."
976c0 63 64 20 25 7e 64 70 30 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 50 72 6f 63 65 73 73 45 78 65 63 cd.%~dp0\r\n".."cd.".ProcessExec
976e0 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e utor::escape(dirname($binPath)).
97700 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e "\r\n".."set.BIN_TARGET=%CD%\\".
97720 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 basename($binPath)."\r\n".."popd
97740 5c 72 5c 6e 22 2e 0a 24 63 61 6c 6c 65 72 2e 22 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c \r\n"..$caller.".\"%BIN_TARGET%\
97760 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 ".%*\r\n";.}..private.function.g
97780 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 enerateWindowsPhpProxyCode().{.$
977a0 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d binToVendor.=.$this->filesystem-
977c0 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c >findShortestPath($this->binDir,
977e0 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 .$this->vendorDir,.true);..retur
97800 6e 0a 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 6c 6f 63 61 6c 20 65 6e n."@echo.off\r\n"..."setlocal.en
97820 61 62 6c 65 64 65 6c 61 79 65 64 65 78 70 61 6e 73 69 6f 6e 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 abledelayedexpansion\r\n"..."set
97840 20 42 49 4e 5f 44 49 52 3d 25 7e 64 70 30 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 56 45 4e 44 4f .BIN_DIR=%~dp0\r\n"..."set.VENDO
97860 52 5f 44 49 52 3d 25 42 49 4e 5f 44 49 52 25 5c 5c 22 2e 24 62 69 6e 54 6f 56 65 6e 64 6f 72 2e R_DIR=%BIN_DIR%\\".$binToVendor.
97880 22 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 2e 0a 22 46 4f 52 "\r\n"..."set.DIRS=.\r\n"..."FOR
978a0 20 2f 44 20 25 25 56 20 49 4e 20 28 25 56 45 4e 44 4f 52 5f 44 49 52 25 5c 5c 2a 29 20 44 4f 20 ./D.%%V.IN.(%VENDOR_DIR%\\*).DO.
978c0 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 46 4f 52 20 2f 44 20 25 25 50 20 49 4e 20 28 25 25 56 (\r\n"..."....FOR./D.%%P.IN.(%%V
978e0 5c 5c 2a 29 20 44 4f 20 28 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 20 20 20 20 73 65 74 20 44 49 \\*).DO.(\r\n"..."........set.DI
97900 52 53 3d 21 44 49 52 53 21 3b 25 25 7e 66 50 5c 72 5c 6e 22 20 2e 0a 22 20 20 20 20 29 5c 72 5c RS=!DIRS!;%%~fP\r\n"..."....)\r\
97920 6e 22 20 2e 0a 22 29 5c 72 5c 6e 22 20 2e 0a 22 70 68 70 2e 65 78 65 20 2d 64 20 69 6e 63 6c 75 n"...")\r\n"..."php.exe.-d.inclu
97940 64 65 5f 70 61 74 68 3d 21 44 49 52 53 21 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 69 76 61 de_path=!DIRS!.%*\r\n";.}..priva
97960 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 68 70 50 72 6f 78 te.function.generateUnixyPhpProx
97980 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e yCode().{.$binToVendor.=.$this->
979a0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 74 68 filesystem->findShortestPath($th
979c0 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 is->binDir,.$this->vendorDir,.tr
979e0 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c ue);..return."#!/usr/bin/env.sh\
97a00 6e 22 2e 0a 22 53 52 43 5f 44 49 52 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 4e 5f 44 49 52 3d n".."SRC_DIR=`pwd`\n".."BIN_DIR=
97a20 60 64 69 72 6e 61 6d 65 20 24 30 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 49 52 3d 5c 24 42 `dirname.$0`\n".."VENDOR_DIR=\$B
97a40 49 4e 5f 44 49 52 2f 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 69 6e 54 6f 56 65 IN_DIR/".escapeshellarg($binToVe
97a60 6e 64 6f 72 29 2e 22 5c 6e 22 2e 0a 22 44 49 52 53 3d 5c 22 5c 22 5c 6e 22 2e 0a 22 66 6f 72 20 ndor)."\n".."DIRS=\"\"\n".."for.
97a80 76 65 6e 64 6f 72 20 69 6e 20 5c 24 56 45 4e 44 4f 52 5f 44 49 52 2f 2a 3b 20 64 6f 5c 6e 22 2e vendor.in.\$VENDOR_DIR/*;.do\n".
97aa0 0a 22 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 76 65 6e 64 6f 72 5c 22 20 5d 3b 20 74 68 ."....if.[.-d.\"\$vendor\".];.th
97ac0 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 66 6f 72 20 70 61 63 6b 61 67 65 20 69 6e 20 5c en\n".."........for.package.in.\
97ae0 24 76 65 6e 64 6f 72 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 69 $vendor/*;.do\n".."............i
97b00 66 20 5b 20 2d 64 20 5c 22 5c 24 70 61 63 6b 61 67 65 5c 22 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e f.[.-d.\"\$package\".];.then\n".
97b20 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 49 52 53 3d 5c 22 5c 24 7b 44 49 52 53 ."................DIRS=\"\${DIRS
97b40 7d 3a 5c 24 7b 70 61 63 6b 61 67 65 7d 5c 22 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 }:\${package}\"\n".."...........
97b60 20 66 69 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 64 6f 6e 65 5c 6e 22 2e 0a 22 20 20 20 20 66 .fi\n".."........done\n".."....f
97b80 69 5c 6e 22 2e 0a 22 64 6f 6e 65 5c 6e 22 2e 0a 22 70 68 70 20 2d 64 20 69 6e 63 6c 75 64 65 5f i\n".."done\n".."php.-d.include_
97ba0 70 61 74 68 3d 5c 22 2e 5c 24 44 49 52 53 5c 22 20 24 40 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 path=\".\$DIRS\".$@\n";.}.}.<?ph
97bc0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c p............namespace.Composer\
97be0 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 Installer;..use.Composer\Package
97c00 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
97c20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 Downloader\DownloadManager;.use.
97c40 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 Composer\Repository\InstalledRep
97c60 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 ositoryInterface;.use.Composer\U
97c80 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f til\Filesystem;........class.Pro
97ca0 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 73 74 61 6c 6c jectInstaller.implements.Install
97cc0 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 50 61 erInterface.{.private.$installPa
97ce0 74 68 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 th;.private.$downloadManager;.pr
97d00 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ivate.$filesystem;..public.funct
97d20 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 44 6f ion.__construct($installPath,.Do
97d40 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 wnloadManager.$dm).{.$this->inst
97d60 61 6c 6c 50 61 74 68 20 3d 20 72 74 72 69 6d 28 73 74 72 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 allPath.=.rtrim(strtr($installPa
97d80 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 24 74 68 69 73 2d th,.'\\',.'/'),.'/').'/';.$this-
97da0 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 64 6d 3b 0a 24 74 68 69 73 2d 3e 66 >downloadManager.=.$dm;.$this->f
97dc0 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 7d 0a 0a 0a ilesystem.=.new.Filesystem;.}...
97de0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 .....public.function.supports($p
97e00 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a ackageType).{.return.true;.}....
97e20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 .public.function.isInstalled(Ins
97e40 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c talledRepositoryInterface.$repo,
97e60 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 .PackageInterface.$package).{.re
97e80 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f turn.false;.}.....public.functio
97ea0 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 n.install(InstalledRepositoryInt
97ec0 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 erface.$repo,.PackageInterface.$
97ee0 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d package).{.$installPath.=.$this-
97f00 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 >installPath;.if.(file_exists($i
97f20 6e 73 74 61 6c 6c 50 61 74 68 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 nstallPath).&&.!$this->filesyste
97f40 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 74 m->isDirEmpty($installPath)).{.t
97f60 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
97f80 6f 6e 28 22 50 72 6f 6a 65 63 74 20 64 69 72 65 63 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 50 61 on("Project.directory.$installPa
97fa0 74 68 20 69 73 20 6e 6f 74 20 65 6d 70 74 79 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 64 69 th.is.not.empty.");.}.if.(!is_di
97fc0 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 6d 6b 64 69 72 28 24 69 6e 73 74 61 6c r($installPath)).{.mkdir($instal
97fe0 6c 50 61 74 68 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 lPath,.0777,.true);.}.$this->dow
98000 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c nloadManager->download($package,
98020 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$installPath);.}.....public.fun
98040 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 ction.update(InstalledRepository
98060 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
98080 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 e.$initial,.PackageInterface.$ta
980a0 72 67 65 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 rget).{.throw.new.\InvalidArgume
980c0 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a ntException("not.supported");.}.
980e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 49 6e ....public.function.uninstall(In
98100 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f stalledRepositoryInterface.$repo
98120 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 74 ,.PackageInterface.$package).{.t
98140 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 hrow.new.\InvalidArgumentExcepti
98160 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 on("not.supported");.}........pu
98180 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 blic.function.getInstallPath(Pac
981a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e kageInterface.$package).{.return
981c0 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .$this->installPath;.}.}.<?php..
981e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 ..........namespace.Composer\Ins
98200 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a taller;..use.Composer\Composer;.
98220 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 use.Composer\IO\IOInterface;.use
98240 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 .Composer\Repository\InstalledRe
98260 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c positoryInterface;.use.Composer\
98280 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f Package\PackageInterface;.use.Co
982a0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 mposer\Util\Filesystem;.use.Comp
982c0 6f 73 65 72 5c 55 74 69 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 0a 0a 0a 0a oser\Util\ProcessExecutor;......
982e0 0a 0a 63 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 ..class.LibraryInstaller.impleme
98300 6e 74 73 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 nts.InstallerInterface.{.protect
98320 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 6f 72 44 ed.$composer;.protected.$vendorD
98340 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 ir;.protected.$binDir;.protected
98360 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f .$downloadManager;.protected.$io
98380 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 ;.protected.$type;.protected.$fi
983a0 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 lesystem;..........public.functi
983c0 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 on.__construct(IOInterface.$io,.
983e0 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 Composer.$composer,.$type.=.'lib
98400 72 61 72 79 27 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 rary',.Filesystem.$filesystem.=.
98420 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f null).{.$this->composer.=.$compo
98440 73 65 72 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 63 ser;.$this->downloadManager.=.$c
98460 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 omposer->getDownloadManager();.$
98480 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 this->io.=.$io;.$this->type.=.$t
984a0 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 6c 65 73 ype;..$this->filesystem.=.$files
984c0 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 74 68 69 73 ystem.?:.new.Filesystem();.$this
984e0 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 ->vendorDir.=.rtrim($composer->g
98500 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2c 20 27 etConfig()->get('vendor-dir'),.'
98520 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 /');.$this->binDir.=.rtrim($comp
98540 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 72 27 oser->getConfig()->get('bin-dir'
98560 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ),.'/');.}.....public.function.s
98580 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 upports($packageType).{.return.$
985a0 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c 7c 20 6e packageType.===.$this->type.||.n
985c0 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ull.===.$this->type;.}.....publi
985e0 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 c.function.isInstalled(Installed
98600 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 RepositoryInterface.$repo,.Packa
98620 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 geInterface.$package).{.return.$
98640 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 69 73 repo->hasPackage($package).&&.is
98660 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 _readable($this->getInstallPath(
98680 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $package));.}.....public.functio
986a0 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 n.install(InstalledRepositoryInt
986c0 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 erface.$repo,.PackageInterface.$
986e0 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 package).{.$this->initializeVend
98700 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e orDir();.$downloadPath.=.$this->
98720 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 69 66 20 getInstallPath($package);....if.
98740 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 26 26 20 (!is_readable($downloadPath).&&.
98760 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 $repo->hasPackage($package)).{.$
98780 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a this->removeBinaries($package);.
987a0 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b }..$this->installCode($package);
987c0 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 .$this->installBinaries($package
987e0 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 );.if.(!$repo->hasPackage($packa
98800 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 ge)).{.$repo->addPackage(clone.$
98820 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f package);.}.}.....public.functio
98840 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 n.update(InstalledRepositoryInte
98860 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 rface.$repo,.PackageInterface.$i
98880 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 nitial,.PackageInterface.$target
988a0 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 ).{.if.(!$repo->hasPackage($init
988c0 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 ial)).{.throw.new.\InvalidArgume
988e0 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 ntException('Package.is.not.inst
98900 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e alled:.'.$initial);.}..$this->in
98920 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6d itializeVendorDir();..$this->rem
98940 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 75 70 oveBinaries($initial);.$this->up
98960 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 dateCode($initial,.$target);.$th
98980 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 74 61 72 67 65 74 29 3b 0a 24 72 is->installBinaries($target);.$r
989a0 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 epo->removePackage($initial);.if
989c0 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b .(!$repo->hasPackage($target)).{
989e0 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 .$repo->addPackage(clone.$target
98a00 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 );.}.}.....public.function.unins
98a20 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 tall(InstalledRepositoryInterfac
98a40 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 e.$repo,.PackageInterface.$packa
98a60 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 ge).{.if.(!$repo->hasPackage($pa
98a80 63 6b 61 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 ckage)).{.throw.new.\InvalidArgu
98aa0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e mentException('Package.is.not.in
98ac0 73 74 61 6c 6c 65 64 3a 20 27 2e 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e stalled:.'.$package);.}..$this->
98ae0 72 65 6d 6f 76 65 43 6f 64 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d removeCode($package);.$this->rem
98b00 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 oveBinaries($package);.$repo->re
98b20 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 64 6f 77 6e 6c 6f 61 movePackage($package);..$downloa
98b40 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 dPath.=.$this->getPackageBasePat
98b60 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 h($package);.if.(strpos($package
98b80 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 6e ->getName(),.'/')).{.$packageVen
98ba0 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b dorDir.=.dirname($downloadPath);
98bc0 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 20 26 .if.(is_dir($packageVendorDir).&
98be0 26 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 &.$this->filesystem->isDirEmpty(
98c00 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 61 $packageVendorDir)).{.@rmdir($pa
98c20 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ckageVendorDir);.}.}.}.....publi
98c40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 c.function.getInstallPath(Packag
98c60 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 69 eInterface.$package).{.$targetDi
98c80 72 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 r.=.$package->getTargetDir();..r
98ca0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 eturn.$this->getPackageBasePath(
98cc0 24 70 61 63 6b 61 67 65 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 $package)...($targetDir.?.'/'.$t
98ce0 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e argetDir.:.'');.}..protected.fun
98d00 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 50 61 63 6b 61 67 65 ction.getPackageBasePath(Package
98d20 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 Interface.$package).{.$this->ini
98d40 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 tializeVendorDir();..return.($th
98d60 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 is->vendorDir.?.$this->vendorDir
98d80 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 .'/'.:.'')...$package->getPretty
98da0 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e Name();.}..protected.function.in
98dc0 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b stallCode(PackageInterface.$pack
98de0 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 age).{.$downloadPath.=.$this->ge
98e00 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 tInstallPath($package);.$this->d
98e20 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 ownloadManager->download($packag
98e40 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 e,.$downloadPath);.}..protected.
98e60 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 function.updateCode(PackageInter
98e80 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 face.$initial,.PackageInterface.
98ea0 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 $target).{.$initialDownloadPath.
98ec0 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 69 6e 69 74 69 61 6c =.$this->getInstallPath($initial
98ee0 29 3b 0a 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e );.$targetDownloadPath.=.$this->
98f00 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 74 61 72 67 65 74 29 3b 0a 69 66 20 28 24 74 61 getInstallPath($target);.if.($ta
98f20 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 21 3d 3d 20 24 69 6e 69 74 69 61 6c 44 6f 77 rgetDownloadPath.!==.$initialDow
98f40 6e 6c 6f 61 64 50 61 74 68 29 20 7b 0a 0a 20 0a 20 69 66 20 28 73 75 62 73 74 72 28 24 69 6e 69 nloadPath).{.....if.(substr($ini
98f60 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 61 72 tialDownloadPath,.0,.strlen($tar
98f80 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 44 6f 77 getDownloadPath)).===.$targetDow
98fa0 6e 6c 6f 61 64 50 61 74 68 0a 7c 7c 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 44 6f 77 6e 6c nloadPath.||.substr($targetDownl
98fc0 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c oadPath,.0,.strlen($initialDownl
98fe0 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 oadPath)).===.$initialDownloadPa
99000 74 68 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 43 6f 64 65 28 24 69 6e 69 74 69 61 th.).{.$this->removeCode($initia
99020 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 74 61 72 67 65 74 29 3b l);.$this->installCode($target);
99040 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e ..return;.}..$this->filesystem->
99060 72 65 6e 61 6d 65 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 24 74 61 rename($initialDownloadPath,.$ta
99080 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 6f 77 6e rgetDownloadPath);.}.$this->down
990a0 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 75 70 64 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 loadManager->update($initial,.$t
990c0 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a arget,.$targetDownloadPath);.}..
990e0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 64 65 28 50 61 protected.function.removeCode(Pa
99100 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e ckageInterface.$package).{.$down
99120 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 loadPath.=.$this->getPackageBase
99140 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d Path($package);.$this->downloadM
99160 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f anager->remove($package,.$downlo
99180 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 adPath);.}..protected.function.g
991a0 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 etBinaries(PackageInterface.$pac
991c0 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 kage).{.return.$package->getBina
991e0 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e ries();.}..protected.function.in
99200 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 stallBinaries(PackageInterface.$
99220 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 package).{.$binaries.=.$this->ge
99240 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 tBinaries($package);.if.(!$binar
99260 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 ies).{.return;.}.foreach.($binar
99280 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d ies.as.$bin).{.$binPath.=.$this-
992a0 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 >getInstallPath($package).'/'.$b
992c0 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 50 61 74 68 29 29 20 in;.if.(!file_exists($binPath)).
992e0 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 20 20 20 3c 77 61 {.$this->io->writeError('....<wa
99300 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 62 69 rning>Skipped.installation.of.bi
99320 6e 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 n.'.$bin.'.for.package.'.$packag
99340 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 66 6f 75 6e 64 20 69 e->getName().':.file.not.found.i
99360 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b n.package</warning>');.continue;
99380 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 20 24 62 69 6e 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 .}..........$binPath.=.realpath(
993a0 24 62 69 6e 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e $binPath);..$this->initializeBin
993c0 44 69 72 28 29 3b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 Dir();.$link.=.$this->binDir.'/'
993e0 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 .basename($bin);.if.(file_exists
99400 28 24 6c 69 6e 6b 29 29 20 7b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 29 20 7b ($link)).{.if.(is_link($link)).{
99420 0a 0a 20 0a 20 0a 20 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 .......@chmod($link,.0777.&.~uma
99440 73 6b 28 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 sk());.}.$this->io->writeError('
99460 20 20 20 20 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 62 69 6e 20 ....Skipped.installation.of.bin.
99480 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 65 2d '.$bin.'.for.package.'.$package-
994a0 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 >getName().':.name.conflicts.wit
994c0 68 20 61 6e 20 65 78 69 73 74 69 6e 67 20 66 69 6c 65 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a h.an.existing.file');.continue;.
994e0 7d 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 }.if.(defined('PHP_WINDOWS_VERSI
99500 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 ON_BUILD')).{...if.('.bat'.!==.s
99520 75 62 73 74 72 28 24 62 69 6e 50 61 74 68 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f ubstr($binPath,.-4)).{.file_put_
99540 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 contents($link,.$this->generateU
99560 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b nixyProxyCode($binPath,.$link));
99580 0a 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b .@chmod($link,.0777.&.~umask());
995a0 0a 24 6c 69 6e 6b 20 2e 3d 20 27 2e 62 61 74 27 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 .$link..=.'.bat';.if.(file_exist
995c0 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f s($link)).{.$this->io->writeErro
995e0 72 28 27 20 20 20 20 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 62 r('....Skipped.installation.of.b
99600 69 6e 20 27 2e 24 62 69 6e 2e 27 2e 62 61 74 20 70 72 6f 78 79 20 66 6f 72 20 70 61 63 6b 61 67 in.'.$bin.'.bat.proxy.for.packag
99620 65 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 61 20 2e 62 61 e.'.$package->getName().':.a..ba
99640 74 20 70 72 6f 78 79 20 77 61 73 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 27 29 3b t.proxy.was.already.installed');
99660 0a 7d 0a 7d 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a .}.}.if.(!file_exists($link)).{.
99680 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e file_put_contents($link,.$this->
996a0 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 generateWindowsProxyCode($binPat
996c0 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 77 64 20 3d 20 67 65 h,.$link));.}.}.else.{.$cwd.=.ge
996e0 74 63 77 64 28 29 3b 0a 74 72 79 20 7b 0a 0a 20 0a 20 24 72 65 6c 61 74 69 76 65 42 69 6e 20 3d tcwd();.try.{.....$relativeBin.=
99700 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 .$this->filesystem->findShortest
99720 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 50 61 74 68 29 3b 0a 63 68 64 69 72 28 64 69 72 Path($link,.$binPath);.chdir(dir
99740 6e 61 6d 65 28 24 6c 69 6e 6b 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 79 6d 6c name($link));.if.(false.===.syml
99760 69 6e 6b 28 24 72 65 6c 61 74 69 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 29 20 7b 0a 74 68 72 6f ink($relativeBin,.$link)).{.thro
99780 77 20 6e 65 77 20 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 7d 0a 7d 20 63 61 74 w.new.\ErrorException();.}.}.cat
997a0 63 68 20 28 5c 45 72 72 6f 72 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c 65 5f 70 ch.(\ErrorException.$e).{.file_p
997c0 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 ut_contents($link,.$this->genera
997e0 74 65 55 6e 69 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b teUnixyProxyCode($binPath,.$link
99800 29 29 3b 0a 7d 0a 63 68 64 69 72 28 24 63 77 64 29 3b 0a 7d 0a 40 63 68 6d 6f 64 28 24 6c 69 6e ));.}.chdir($cwd);.}.@chmod($lin
99820 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 k,.0777.&.~umask());.}.}..protec
99840 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 6b ted.function.removeBinaries(Pack
99860 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 ageInterface.$package).{.$binari
99880 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 es.=.$this->getBinaries($package
998a0 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 );.if.(!$binaries).{.return;.}.f
998c0 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 oreach.($binaries.as.$bin).{.$li
998e0 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 nk.=.$this->binDir.'/'.basename(
99900 24 62 69 6e 29 3b 0a 69 66 20 28 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 20 7c 7c 20 66 69 6c $bin);.if.(is_link($link).||.fil
99920 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 e_exists($link)).{.$this->filesy
99940 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f stem->unlink($link);.}.if.(file_
99960 65 78 69 73 74 73 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 exists($link.'.bat')).{.$this->f
99980 69 6c 65 73 79 73 74 65 6d 2d 3e 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 3b ilesystem->unlink($link.'.bat');
999a0 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 .}.}.}..protected.function.initi
999c0 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 alizeVendorDir().{.$this->filesy
999e0 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 stem->ensureDirectoryExists($thi
99a00 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 s->vendorDir);.$this->vendorDir.
99a20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a =.realpath($this->vendorDir);.}.
99a40 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 .protected.function.initializeBi
99a60 6e 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 nDir().{.$this->filesystem->ensu
99a80 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 reDirectoryExists($this->binDir)
99aa0 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 ;.$this->binDir.=.realpath($this
99ac0 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ->binDir);.}..protected.function
99ae0 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 .generateWindowsProxyCode($bin,.
99b00 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 $link).{.$binPath.=.$this->files
99b20 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 ystem->findShortestPath($link,.$
99b40 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e bin);.if.('.bat'.===.substr($bin
99b60 2c 20 2d 34 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c ,.-4).||.'.exe'.===.substr($bin,
99b80 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 .-4)).{.$caller.=.'call';.}.else
99ba0 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 .{.$handle.=.fopen($bin,.'r');.$
99bc0 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 line.=.fgets($handle);.fclose($h
99be0 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a andle);.if.(preg_match('{^#!/(?:
99c00 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d usr/bin/env.)?(?:[^/]+/)*(.+)$}m
99c20 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 ',.$line,.$match)).{.$caller.=.t
99c40 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 rim($match[1]);.}.else.{.$caller
99c60 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 46 .=.'php';.}.}..return."@ECHO.OFF
99c80 5c 72 5c 6e 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 7e 64 70 30 2f 22 2e 74 \r\n".."SET.BIN_TARGET=%~dp0/".t
99ca0 72 69 6d 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 70 65 28 24 62 69 6e rim(ProcessExecutor::escape($bin
99cc0 50 61 74 68 29 2c 20 27 22 27 29 2e 22 5c 72 5c 6e 22 2e 0a 22 7b 24 63 61 6c 6c 65 72 7d 20 5c Path),.'"')."\r\n".."{$caller}.\
99ce0 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 "%BIN_TARGET%\".%*\r\n";.}..prot
99d00 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 ected.function.generateUnixyProx
99d20 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 20 3d 20 yCode($bin,.$link).{.$binPath.=.
99d40 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 $this->filesystem->findShortestP
99d60 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 22 23 21 2f 75 73 ath($link,.$bin);..return."#!/us
99d80 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 27 53 52 43 5f 44 49 52 3d 22 60 70 77 64 60 r/bin/env.sh\n"..'SRC_DIR="`pwd`
99da0 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 22 60 64 69 72 6e 61 6d 65 20 22 24 30 22 60 22 27 2e 22 "'."\n"..'cd."`dirname."$0"`"'."
99dc0 5c 6e 22 2e 0a 27 63 64 20 27 2e 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 65 73 63 61 \n"..'cd.'.ProcessExecutor::esca
99de0 70 65 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 49 4e pe(dirname($binPath))."\n"..'BIN
99e00 5f 54 41 52 47 45 54 3d 22 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 _TARGET="`pwd`/'.basename($binPa
99e20 74 68 29 2e 22 5c 22 5c 6e 22 2e 0a 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c 6e 22 th)."\"\n"..'cd."$SRC_DIR"'."\n"
99e40 2e 0a 27 22 24 42 49 4e 5f 54 41 52 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a 7d ..'"$BIN_TARGET"."$@"'."\n";.}.}
99e60 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
99e80 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 oser\Installer;..use.Composer\Pa
99ea0 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ckage\PackageInterface;.use.Comp
99ec0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 oser\Package\AliasPackage;.use.C
99ee0 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 omposer\Repository\RepositoryInt
99f00 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c erface;.use.Composer\Repository\
99f20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 InstalledRepositoryInterface;.us
99f40 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 e.Composer\DependencyResolver\Op
99f60 65 72 61 74 69 6f 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 eration\OperationInterface;.use.
99f80 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 Composer\DependencyResolver\Oper
99fa0 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 ation\InstallOperation;.use.Comp
99fc0 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f oser\DependencyResolver\Operatio
99fe0 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c n\UpdateOperation;.use.Composer\
9a000 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 DependencyResolver\Operation\Uni
9a020 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 nstallOperation;.use.Composer\De
9a040 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4d 61 72 6b 41 pendencyResolver\Operation\MarkA
9a060 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 liasInstalledOperation;.use.Comp
9a080 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f oser\DependencyResolver\Operatio
9a0a0 6e 5c 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b n\MarkAliasUninstalledOperation;
9a0c0 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 .use.Composer\Util\StreamContext
9a0e0 46 61 63 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 61 74 Factory;.........class.Installat
9a100 69 6f 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 65 72 73 ionManager.{.private.$installers
9a120 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 61 63 68 65 20 3d 20 61 72 72 .=.array();.private.$cache.=.arr
9a140 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 ay();.private.$notifiablePackage
9a160 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 s.=.array();..public.function.re
9a180 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 set().{.$this->notifiablePackage
9a1a0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s.=.array();.}.......public.func
9a1c0 74 69 6f 6e 20 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 tion.addInstaller(InstallerInter
9a1e0 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 face.$installer).{.array_unshift
9a200 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 69 6e 73 74 61 6c 6c 65 72 29 3b ($this->installers,.$installer);
9a220 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a .$this->cache.=.array();.}......
9a240 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 49 6e 73 74 61 6c 6c 65 72 .public.function.removeInstaller
9a260 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 29 0a (InstallerInterface.$installer).
9a280 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 79 20 3d 20 61 72 72 61 79 5f 73 65 {.if.(false.!==.($key.=.array_se
9a2a0 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 72 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 arch($installer,.$this->installe
9a2c0 72 73 2c 20 74 72 75 65 29 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 rs,.true))).{.array_splice($this
9a2e0 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 24 74 68 69 73 2d 3e 63 ->installers,.$key,.1);.$this->c
9a300 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ache.=.array();.}.}.........publ
9a320 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 66 ic.function.disablePlugins().{.f
9a340 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 20 oreach.($this->installers.as.$i.
9a360 3d 3e 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 65 72 =>.$installer).{.if.(!$installer
9a380 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 63 .instanceof.PluginInstaller).{.c
9a3a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c ontinue;.}..unset($this->install
9a3c0 65 72 73 5b 24 69 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ers[$i]);.}.}...........public.f
9a3e0 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 79 70 65 29 0a 7b 0a 24 74 unction.getInstaller($type).{.$t
9a400 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 0a 69 66 20 28 69 73 ype.=.strtolower($type);..if.(is
9a420 73 65 74 28 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 set($this->cache[$type])).{.retu
9a440 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 66 6f 72 65 61 rn.$this->cache[$type];.}..forea
9a460 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 6e 73 74 61 6c ch.($this->installers.as.$instal
9a480 6c 65 72 29 20 7b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 ler).{.if.($installer->supports(
9a4a0 24 74 79 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 $type)).{.return.$this->cache[$t
9a4c0 79 70 65 5d 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 ype].=.$installer;.}.}..throw.ne
9a4e0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b w.\InvalidArgumentException('Unk
9a500 6e 6f 77 6e 20 69 6e 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b 0a 7d nown.installer.type:.'.$type);.}
9a520 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b ..........public.function.isPack
9a540 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 ageInstalled(InstalledRepository
9a560 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 Interface.$repo,.PackageInterfac
9a580 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 e.$package).{.if.($package.insta
9a5a0 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 nceof.AliasPackage).{.return.$re
9a5c0 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 20 24 74 68 69 po->hasPackage($package).&&.$thi
9a5e0 73 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 s->isPackageInstalled($repo,.$pa
9a600 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ckage->getAliasOf());.}..return.
9a620 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 $this->getInstaller($package->ge
9a640 74 54 79 70 65 28 29 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 70 61 tType())->isInstalled($repo,.$pa
9a660 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ckage);.}........public.function
9a680 20 65 78 65 63 75 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 .execute(RepositoryInterface.$re
9a6a0 70 6f 2c 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f po,.OperationInterface.$operatio
9a6c0 6e 29 0a 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f n).{.$method.=.$operation->getJo
9a6e0 62 54 79 70 65 28 29 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 68 6f 64 28 24 72 65 70 6f 2c 20 24 bType();.$this->$method($repo,.$
9a700 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 operation);.}........public.func
9a720 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 tion.install(RepositoryInterface
9a740 20 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 .$repo,.InstallOperation.$operat
9a760 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 ion).{.$package.=.$operation->ge
9a780 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e tPackage();.$installer.=.$this->
9a7a0 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 getInstaller($package->getType()
9a7c0 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 );.$installer->install($repo,.$p
9a7e0 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 ackage);.$this->markForNotificat
9a800 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ion($package);.}........public.f
9a820 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 unction.update(RepositoryInterfa
9a840 63 65 20 24 72 65 70 6f 2c 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 ce.$repo,.UpdateOperation.$opera
9a860 74 69 6f 6e 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 tion).{.$initial.=.$operation->g
9a880 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 6f etInitialPackage();.$target.=.$o
9a8a0 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 peration->getTargetPackage();..$
9a8c0 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 54 79 70 65 28 initialType.=.$initial->getType(
9a8e0 29 3b 0a 24 74 61 72 67 65 74 54 79 70 65 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 54 79 70 );.$targetType.=.$target->getTyp
9a900 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 72 67 e();..if.($initialType.===.$targ
9a920 65 74 54 79 70 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 etType).{.$installer.=.$this->ge
9a940 74 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 3b 0a 24 69 6e 73 74 61 tInstaller($initialType);.$insta
9a960 6c 6c 65 72 2d 3e 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 ller->update($repo,.$initial,.$t
9a980 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 arget);.$this->markForNotificati
9a9a0 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 on($target);.}.else.{.$this->get
9a9c0 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 69 74 69 61 6c 54 79 70 65 29 2d 3e 75 6e 69 6e 73 74 61 Installer($initialType)->uninsta
9a9e0 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 ll($repo,.$initial);.$this->getI
9aa00 6e 73 74 61 6c 6c 65 72 28 24 74 61 72 67 65 74 54 79 70 65 29 2d 3e 69 6e 73 74 61 6c 6c 28 24 nstaller($targetType)->install($
9aa20 72 65 70 6f 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 repo,.$target);.}.}........publi
9aa40 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 c.function.uninstall(RepositoryI
9aa60 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 nterface.$repo,.UninstallOperati
9aa80 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 on.$operation).{.$package.=.$ope
9aaa0 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 ration->getPackage();.$installer
9aac0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d .=.$this->getInstaller($package-
9aae0 3e 67 65 74 54 79 70 65 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 75 6e 69 6e 73 74 61 >getType());.$installer->uninsta
9ab00 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ll($repo,.$package);.}........pu
9ab20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 blic.function.markAliasInstalled
9ab40 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 72 6b (RepositoryInterface.$repo,.Mark
9ab60 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 AliasInstalledOperation.$operati
9ab80 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 on).{.$package.=.$operation->get
9aba0 50 61 63 6b 61 67 65 28 29 3b 0a 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 Package();..if.(!$repo->hasPacka
9abc0 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 ge($package)).{.$repo->addPackag
9abe0 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 e(clone.$package);.}.}........pu
9ac00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c blic.function.markAliasUninstall
9ac20 65 64 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 4d 61 ed(RepositoryInterface.$repo,.Ma
9ac40 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 rkAliasUninstalledOperation.$ope
9ac60 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d ration).{.$package.=.$operation-
9ac80 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 >getPackage();..$repo->removePac
9aca0 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 kage($package);.}........public.
9acc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 function.getInstallPath(PackageI
9ace0 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 nterface.$package).{.$installer.
9ad00 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e =.$this->getInstaller($package->
9ad20 67 65 74 54 79 70 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e getType());..return.$installer->
9ad40 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 75 62 getInstallPath($package);.}..pub
9ad60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 0a 7b 0a lic.function.notifyInstalls().{.
9ad80 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 foreach.($this->notifiablePackag
9ada0 65 73 20 61 73 20 24 72 65 70 6f 55 72 6c 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 0a es.as.$repoUrl.=>.$packages).{..
9adc0 20 69 66 20 28 73 74 72 70 6f 73 28 24 72 65 70 6f 55 72 6c 2c 20 27 25 70 61 63 6b 61 67 65 25 .if.(strpos($repoUrl,.'%package%
9ade0 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 ')).{.foreach.($packages.as.$pac
9ae00 6b 61 67 65 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 70 61 63 kage).{.$url.=.str_replace('%pac
9ae20 6b 61 67 65 25 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 kage%',.$package->getPrettyName(
9ae40 29 2c 20 24 72 65 70 6f 55 72 6c 29 3b 0a 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 0a ),.$repoUrl);..$params.=.array(.
9ae60 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 'version'.=>.$package->getPretty
9ae80 56 65 72 73 69 6f 6e 28 29 2c 0a 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 Version(),.'version_normalized'.
9aea0 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 24 6f =>.$package->getVersion(),.);.$o
9aec0 70 74 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 pts.=.array('http'.=>.array(.'me
9aee0 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 72 72 thod'.=>.'POST',.'header'.=>.arr
9af00 61 79 28 27 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 78 2d ay('Content-type:.application/x-
9af20 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 27 29 2c 0a 27 63 6f 6e 74 65 6e 74 27 www-form-urlencoded'),.'content'
9af40 20 3d 3e 20 68 74 74 70 5f 62 75 69 6c 64 5f 71 75 65 72 79 28 24 70 61 72 61 6d 73 2c 20 27 27 .=>.http_build_query($params,.''
9af60 2c 20 27 26 27 29 2c 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 2c 0a 29 0a 29 3b 0a 0a 24 63 ,.'&'),.'timeout'.=>.3,.).);..$c
9af80 6f 6e 74 65 78 74 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 ontext.=.StreamContextFactory::g
9afa0 65 74 43 6f 6e 74 65 78 74 28 24 75 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 etContext($url,.$opts);.@file_ge
9afc0 74 5f 63 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 t_contents($url,.false,.$context
9afe0 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 74 44 61 74 61 20 3d 20 61 );.}..continue;.}..$postData.=.a
9b000 72 72 61 79 28 27 64 6f 77 6e 6c 6f 61 64 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 66 6f rray('downloads'.=>.array());.fo
9b020 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a reach.($packages.as.$package).{.
9b040 24 70 6f 73 74 44 61 74 61 5b 27 64 6f 77 6e 6c 6f 61 64 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 $postData['downloads'][].=.array
9b060 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e (.'name'.=>.$package->getPrettyN
9b080 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ame(),.'version'.=>.$package->ge
9b0a0 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 70 74 73 20 3d 20 61 72 72 61 79 28 tVersion(),.);.}..$opts.=.array(
9b0c0 27 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 'http'.=>.array(.'method'.=>.'PO
9b0e0 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e 74 2d ST',.'header'.=>.array('Content-
9b100 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 27 29 2c 0a 27 63 6f 6e 74 65 Type:.application/json'),.'conte
9b120 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 6f 73 74 44 61 74 61 29 2c 0a 27 nt'.=>.json_encode($postData),.'
9b140 74 69 6d 65 6f 75 74 27 20 3d 3e 20 36 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 3d 20 timeout'.=>.6,.).);..$context.=.
9b160 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 78 74 StreamContextFactory::getContext
9b180 28 24 72 65 70 6f 55 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 6f 6e ($repoUrl,.$opts);.@file_get_con
9b1a0 74 65 6e 74 73 28 24 72 65 70 6f 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 74 29 tents($repoUrl,.false,.$context)
9b1c0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 ;.}..$this->reset();.}..private.
9b1e0 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 50 61 63 function.markForNotification(Pac
9b200 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 kageInterface.$package).{.if.($p
9b220 61 63 6b 61 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 29 20 7b 0a ackage->getNotificationUrl()).{.
9b240 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 $this->notifiablePackages[$packa
9b260 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 5d 5b 24 70 61 63 6b 61 ge->getNotificationUrl()][$packa
9b280 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d ge->getName()].=.$package;.}.}.}
9b2a0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 .<?php............namespace.Comp
9b2c0 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 oser\Installer;.......class.Inst
9b2e0 61 6c 6c 65 72 45 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 allerEvents.{..........const.PRE
9b300 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 20 3d 20 27 70 72 65 2d 64 65 70 _DEPENDENCIES_SOLVING.=.'pre-dep
9b320 65 6e 64 65 6e 63 69 65 73 2d 73 6f 6c 76 69 6e 67 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f endencies-solving';...........co
9b340 6e 73 74 20 50 4f 53 54 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 20 3d 20 nst.POST_DEPENDENCIES_SOLVING.=.
9b360 27 70 6f 73 74 2d 64 65 70 65 6e 64 65 6e 63 69 65 73 2d 73 6f 6c 76 69 6e 67 27 3b 0a 7d 0a 3c 'post-dependencies-solving';.}.<
9b380 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 ?php............namespace.Compos
9b3a0 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 er\Installer;..use.Composer\Comp
9b3c0 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 oser;.use.Composer\Package\Packa
9b3e0 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b ge;.use.Composer\IO\IOInterface;
9b400 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c .use.Composer\Repository\Install
9b420 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f edRepositoryInterface;.use.Compo
9b440 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a ser\Package\PackageInterface;...
9b460 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 20 65 78 74 65 6e .....class.PluginInstaller.exten
9b480 64 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 ds.LibraryInstaller.{.private.$i
9b4a0 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 nstallationManager;.private.stat
9b4c0 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ic.$classCounter.=.0;.........pu
9b4e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 blic.function.__construct(IOInte
9b500 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 rface.$io,.Composer.$composer,.$
9b520 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f type.=.'library').{.parent::__co
9b540 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 63 6f 6d 70 6f 73 65 nstruct($io,.$composer,.'compose
9b560 72 2d 70 6c 75 67 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d r-plugin');.$this->installationM
9b580 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 anager.=.$composer->getInstallat
9b5a0 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ionManager();.}.....public.funct
9b5c0 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 ion.supports($packageType).{.ret
9b5e0 75 72 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 urn.$packageType.===.'composer-p
9b600 6c 75 67 69 6e 27 20 7c 7c 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 63 6f 6d 70 lugin'.||.$packageType.===.'comp
9b620 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 oser-installer';.}.....public.fu
9b640 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f nction.install(InstalledReposito
9b660 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ryInterface.$repo,.PackageInterf
9b680 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b 61 67 ace.$package).{.$extra.=.$packag
9b6a0 65 2d 3e 67 65 74 45 78 74 72 61 28 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b e->getExtra();.if.(empty($extra[
9b6c0 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 'class'])).{.throw.new.\Unexpect
9b6e0 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e edValueException('Error.while.in
9b700 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 stalling.'.$package->getPrettyNa
9b720 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 65 73 me().',.composer-plugin.packages
9b740 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 .should.have.a.class.defined.in.
9b760 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b their.extra.key.to.be.usable.');
9b780 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 70 61 63 6b .}..parent::install($repo,.$pack
9b7a0 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 6c 75 67 69 6e age);.$this->composer->getPlugin
9b7c0 4d 61 6e 61 67 65 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b Manager()->registerPackage($pack
9b7e0 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f age,.true);.}.....public.functio
9b800 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 n.update(InstalledRepositoryInte
9b820 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 rface.$repo,.PackageInterface.$i
9b840 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 nitial,.PackageInterface.$target
9b860 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 ).{.$extra.=.$target->getExtra()
9b880 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a ;.if.(empty($extra['class'])).{.
9b8a0 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 throw.new.\UnexpectedValueExcept
9b8c0 69 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 ion('Error.while.installing.'.$t
9b8e0 61 72 67 65 74 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 arget->getPrettyName().',.compos
9b900 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 er-plugin.packages.should.have.a
9b920 20 63 6c 61 73 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 69 72 20 65 78 74 72 61 20 6b 65 .class.defined.in.their.extra.ke
9b940 79 20 74 6f 20 62 65 20 75 73 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 75 70 y.to.be.usable.');.}..parent::up
9b960 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a date($repo,.$initial,.$target);.
9b980 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 $this->composer->getPluginManage
9b9a0 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 2c 20 74 72 r()->registerPackage($target,.tr
9b9c0 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 ue);.}.}.<?php............namesp
9b9e0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 65 20 43 6f 6d ace.Composer\Installer;..use.Com
9ba00 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a poser\Package\PackageInterface;.
9ba20 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 use.Composer\Repository\Installe
9ba40 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 dRepositoryInterface;........int
9ba60 65 72 66 61 63 65 20 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a erface.InstallerInterface.{.....
9ba80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b ..public.function.supports($pack
9baa0 61 67 65 54 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ageType);..........public.functi
9bac0 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f on.isInstalled(InstalledReposito
9bae0 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ryInterface.$repo,.PackageInterf
9bb00 61 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ace.$package);........public.fun
9bb20 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 ction.install(InstalledRepositor
9bb40 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 yInterface.$repo,.PackageInterfa
9bb60 63 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ce.$package);...........public.f
9bb80 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f unction.update(InstalledReposito
9bba0 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ryInterface.$repo,.PackageInterf
9bbc0 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 ace.$initial,.PackageInterface.$
9bbe0 74 61 72 67 65 74 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 target);........public.function.
9bc00 75 6e 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 uninstall(InstalledRepositoryInt
9bc20 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 erface.$repo,.PackageInterface.$
9bc40 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e package);........public.function
9bc60 20 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 .getInstallPath(PackageInterface
9bc80 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .$package);.}.<?php............n
9bca0 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 0a 75 73 amespace.Composer\Installer;..us
9bcc0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 e.Composer\Composer;.use.Compose
9bce0 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 r\IO\IOInterface;.use.Composer\D
9bd00 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 4f 70 65 72 ependencyResolver\Operation\Oper
9bd20 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 ationInterface;.use.Composer\Dep
9bd40 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 3b endencyResolver\PolicyInterface;
9bd60 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 .use.Composer\DependencyResolver
9bd80 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 \Pool;.use.Composer\DependencyRe
9bda0 73 6f 6c 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 solver\Request;.use.Composer\Eve
9bdc0 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ntDispatcher\Event;.use.Composer
9bde0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b \Repository\CompositeRepository;
9be00 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 45 76 65 6e 74 20 65 78 74 65 6e 64 .......class.PackageEvent.extend
9be20 73 20 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f s.InstallerEvent.{....private.$o
9be40 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 peration;................public.
9be60 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c function.__construct($eventName,
9be80 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 .Composer.$composer,.IOInterface
9bea0 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 .$io,.$devMode,.PolicyInterface.
9bec0 24 70 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 43 6f 6d 70 6f 73 69 74 65 52 65 $policy,.Pool.$pool,.CompositeRe
9bee0 70 6f 73 69 74 6f 72 79 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 52 65 71 75 65 73 74 pository.$installedRepo,.Request
9bf00 20 24 72 65 71 75 65 73 74 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 4f 70 .$request,.array.$operations,.Op
9bf20 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 70 erationInterface.$operation).{.p
9bf40 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 arent::__construct($eventName,.$
9bf60 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 composer,.$io,.$devMode,.$policy
9bf80 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 ,.$pool,.$installedRepo,.$reques
9bfa0 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 t,.$operations);..$this->operati
9bfc0 6f 6e 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 on.=.$operation;.}.......public.
9bfe0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e function.getOperation().{.return
9c000 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .$this->operation;.}.}.<?php....
9c020 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f ........namespace.Composer\Conso
9c040 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f le;..use.Symfony\Component\Conso
9c060 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f le\Application.as.BaseApplicatio
9c080 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
9c0a0 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
9c0c0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
9c0e0 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
9c100 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 nsole\Output\ConsoleOutputInterf
9c120 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
9c140 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 le\Output\OutputInterface;.use.S
9c160 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
9c180 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f ConsoleOutput;.use.Symfony\Compo
9c1a0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 nent\Console\Formatter\OutputFor
9c1c0 6d 61 74 74 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 matter;.use.Composer\Command;.us
9c1e0 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 e.Composer\Command\Helper\Dialog
9c200 48 65 6c 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 Helper;.use.Composer\Composer;.u
9c220 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 se.Composer\Factory;.use.Compose
9c240 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 r\IO\IOInterface;.use.Composer\I
9c260 4f 5c 43 6f 6e 73 6f 6c 65 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a O\ConsoleIO;.use.Composer\Json\J
9c280 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 sonValidationException;.use.Comp
9c2a0 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a oser\Util\ErrorHandler;.........
9c2c0 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 42 61 73 65 41 70 class.Application.extends.BaseAp
9c2e0 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 plication.{....protected.$compos
9c300 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 er;.....protected.$io;..private.
9c320 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 3d 20 27 20 20 20 5f 5f 5f 5f 5f 5f 0a 20 20 2f 20 5f 5f static.$logo.=.'...______.../.__
9c340 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f __/___..____.___..____..____..__
9c360 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 0a 20 2f 20 2f 20 20 20 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 ______.._____.././.../.__.\/.__.
9c380 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 5f 5f 5f 2f 20 5f 20 5c 2f 20 5f 5f 5f `__.\/.__.\/.__.\/.___/._.\/.___
9c3a0 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 5f 2f 20 2f 20 /././___/./_/./././././././_/./.
9c3c0 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f 5f 2f 20 2f 0a 5c 5f 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 2f /_/.(__..)..__/./.\____/\____/_/
9c3e0 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 5f 5f 5f 2f 5c 5f 5f 5f 2f 5f 2f ./_/./_/..___/\____/____/\___/_/
9c400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 5f 2f 0a 27 3b 0a 0a 70 75 62 ...................../_/.';..pub
9c420 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 lic.function.__construct().{.if.
9c440 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 20 26 26 20 65 (function_exists('ini_set').&&.e
9c460 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 62 75 67 27 29 29 20 7b 0a 69 6e 69 xtension_loaded('xdebug')).{.ini
9c480 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 68 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 63 _set('xdebug.show_exception_trac
9c4a0 65 27 2c 20 66 61 6c 73 65 29 3b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 e',.false);.ini_set('xdebug.scre
9c4c0 61 6d 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 am',.false);.}..if.(function_exi
9c4e0 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 27 29 sts('date_default_timezone_set')
9c500 20 26 26 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c .&&.function_exists('date_defaul
9c520 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 27 29 29 20 7b 0a 64 61 74 65 5f 64 65 66 61 75 6c 74 t_timezone_get')).{.date_default
9c540 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 28 40 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 _timezone_set(@date_default_time
9c560 7a 6f 6e 65 5f 67 65 74 28 29 29 3b 0a 7d 0a 0a 45 72 72 6f 72 48 61 6e 64 6c 65 72 3a 3a 72 65 zone_get());.}..ErrorHandler::re
9c580 67 69 73 74 65 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 27 43 gister();.parent::__construct('C
9c5a0 6f 6d 70 6f 73 65 72 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 0a omposer',.Composer::VERSION);.}.
9c5c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 ....public.function.run(InputInt
9c5e0 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 65 erface.$input.=.null,.OutputInte
9c600 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c rface.$output.=.null).{.if.(null
9c620 20 3d 3d 3d 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 73 74 79 6c 65 73 20 3d 20 46 61 63 74 6f 72 .===.$output).{.$styles.=.Factor
9c640 79 3a 3a 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 3b 0a 24 66 6f y::createAdditionalStyles();.$fo
9c660 72 6d 61 74 74 65 72 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e 75 rmatter.=.new.OutputFormatter(nu
9c680 6c 6c 2c 20 24 73 74 79 6c 65 73 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 ll,.$styles);.$output.=.new.Cons
9c6a0 6f 6c 65 4f 75 74 70 75 74 28 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 oleOutput(ConsoleOutput::VERBOSI
9c6c0 54 59 5f 4e 4f 52 4d 41 4c 2c 20 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a TY_NORMAL,.null,.$formatter);.}.
9c6e0 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 .return.parent::run($input,.$out
9c700 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 put);.}.....public.function.doRu
9c720 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 n(InputInterface.$input,.OutputI
9c740 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 nterface.$output).{.$this->io.=.
9c760 6e 65 77 20 43 6f 6e 73 6f 6c 65 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 new.ConsoleIO($input,.$output,.$
9c780 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 73 this->getHelperSet());..if.(vers
9c7a0 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 ion_compare(PHP_VERSION,.'5.3.2'
9c7c0 2c 20 27 3c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 ,.'<')).{.$this->getIO()->writeE
9c7e0 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6f 6d 70 6f 73 65 72 20 6f 6e 6c 79 20 6f 66 66 rror('<warning>Composer.only.off
9c800 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 48 50 20 35 2e 33 2e 32 20 61 6e 64 20 61 icially.supports.PHP.5.3.2.and.a
9c820 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 69 6b 65 6c 79 20 65 6e 63 6f 75 bove,.you.will.most.likely.encou
9c840 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 79 6f 75 72 20 50 48 50 20 27 2e 50 48 nter.problems.with.your.PHP.'.PH
9c860 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 64 69 6e 67 20 69 73 20 73 74 72 6f 6e 67 P_VERSION.',.upgrading.is.strong
9c880 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a ly.recommended.</warning>');.}..
9c8a0 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e if.(defined('COMPOSER_DEV_WARNIN
9c8c0 47 5f 54 49 4d 45 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 27 27 3b 0a 69 G_TIME')).{.$commandName.=.'';.i
9c8e0 66 20 28 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 f.($name.=.$this->getCommandName
9c900 28 24 69 6e 70 75 74 29 29 20 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d ($input)).{.try.{.$commandName.=
9c920 20 24 74 68 69 73 2d 3e 66 69 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a .$this->find($name)->getName();.
9c940 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 }.catch.(\InvalidArgumentExcepti
9c960 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 21 3d on.$e).{.}.}.if.($commandName.!=
9c980 3d 20 27 73 65 6c 66 2d 75 70 64 61 74 65 27 20 26 26 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 =.'self-update'.&&.$commandName.
9c9a0 21 3d 3d 20 27 73 65 6c 66 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 74 69 6d 65 28 29 20 3e !==.'selfupdate').{.if.(time().>
9c9c0 20 43 4f 4d 50 4f 53 45 52 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 29 20 7b 0a 24 74 .COMPOSER_DEV_WARNING_TIME).{.$t
9c9e0 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 73 70 72 69 6e 74 66 his->getIO()->writeError(sprintf
9ca00 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 20 64 65 76 65 6c 6f 70 ('<warning>Warning:.This.develop
9ca20 6d 65 6e 74 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 76 65 72 20 33 ment.build.of.composer.is.over.3
9ca40 30 20 64 61 79 73 20 6f 6c 64 2e 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 0.days.old..It.is.recommended.to
9ca60 20 75 70 64 61 74 65 20 69 74 20 62 79 20 72 75 6e 6e 69 6e 67 20 22 25 73 20 73 65 6c 66 2d 75 .update.it.by.running."%s.self-u
9ca80 70 64 61 74 65 22 20 74 6f 20 67 65 74 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e pdate".to.get.the.latest.version
9caa0 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 2c 20 24 5f 53 45 52 56 45 52 5b 27 50 48 50 5f 53 45 4c 46 .</warning>',.$_SERVER['PHP_SELF
9cac0 27 5d 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 ']));.}.}.}..if.(getenv('COMPOSE
9cae0 52 5f 4e 4f 5f 49 4e 54 45 52 41 43 54 49 4f 4e 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 R_NO_INTERACTION')).{.$input->se
9cb00 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e tInteractive(false);.}....if.($n
9cb20 65 77 57 6f 72 6b 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 77 57 6f 72 6b 69 6e 67 ewWorkDir.=.$this->getNewWorking
9cb40 44 69 72 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 20 3d 20 Dir($input)).{.$oldWorkingDir.=.
9cb60 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 72 28 24 6e 65 77 57 6f 72 6b 44 69 72 29 3b 0a 69 66 getcwd();.chdir($newWorkDir);.if
9cb80 20 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 69 73 44 65 62 75 67 28 29 20 3e 3d 20 34 .($this->getIO()->isDebug().>=.4
9cba0 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 ).{.$this->getIO()->writeError('
9cbc0 43 68 61 6e 67 65 64 20 43 57 44 20 74 6f 20 27 20 2e 20 67 65 74 63 77 64 28 29 29 3b 0a 7d 0a Changed.CWD.to.'...getcwd());.}.
9cbe0 7d 0a 0a 0a 20 24 66 69 6c 65 20 3d 20 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 }....$file.=.Factory::getCompose
9cc00 72 46 69 6c 65 28 29 3b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 rFile();.if.(is_file($file).&&.i
9cc20 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 6c 65 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 s_readable($file).&&.is_array($c
9cc40 6f 6d 70 6f 73 65 72 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 66 69 6c 65 5f 67 65 74 5f 63 omposer.=.json_decode(file_get_c
9cc60 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 29 2c 20 74 72 75 65 29 29 29 20 7b 0a 69 66 20 28 69 73 ontents($file),.true))).{.if.(is
9cc80 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 5f set($composer['scripts']).&&.is_
9cca0 61 72 72 61 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a 66 array($composer['scripts'])).{.f
9ccc0 6f 72 65 61 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 63 72 69 70 74 73 27 5d 20 61 73 20 oreach.($composer['scripts'].as.
9cce0 24 73 63 72 69 70 74 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 69 66 20 28 21 64 65 66 69 6e 65 $script.=>.$dummy).{.if.(!define
9cd00 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a d('Composer\Script\ScriptEvents:
9cd20 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2d 27 2c 20 27 5f 27 2c 20 73 74 72 74 6f 75 70 :'.str_replace('-',.'_',.strtoup
9cd40 70 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 per($script)))).{.if.($this->has
9cd60 28 24 73 63 72 69 70 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 ($script)).{.$this->getIO()->wri
9cd80 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 41 20 73 63 72 69 70 74 20 6e 61 6d 65 64 teError('<warning>A.script.named
9cda0 20 27 2e 24 73 63 72 69 70 74 2e 27 20 77 6f 75 6c 64 20 6f 76 65 72 72 69 64 65 20 61 20 6e 61 .'.$script.'.would.override.a.na
9cdc0 74 69 76 65 20 43 6f 6d 70 6f 73 65 72 20 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 68 61 73 20 62 tive.Composer.function.and.has.b
9cde0 65 65 6e 20 73 6b 69 70 70 65 64 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 een.skipped</warning>');.}.else.
9ce00 7b 0a 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 63 72 69 70 74 41 {.$this->add(new.Command\ScriptA
9ce20 6c 69 61 73 43 6f 6d 6d 61 6e 64 28 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d liasCommand($script));.}.}.}.}.}
9ce40 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e ..if.($input->hasParameterOption
9ce60 28 27 2d 2d 70 72 6f 66 69 6c 65 27 29 29 20 7b 0a 24 73 74 61 72 74 54 69 6d 65 20 3d 20 6d 69 ('--profile')).{.$startTime.=.mi
9ce80 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 65 6e 61 62 6c 65 crotime(true);.$this->io->enable
9cea0 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c Debugging($startTime);.}..$resul
9cec0 74 20 3d 20 70 61 72 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 t.=.parent::doRun($input,.$outpu
9cee0 74 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 29 20 t);..if.(isset($oldWorkingDir)).
9cf00 7b 0a 63 68 64 69 72 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 {.chdir($oldWorkingDir);.}..if.(
9cf20 69 73 73 65 74 28 24 73 74 61 72 74 54 69 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 isset($startTime)).{.$this->getI
9cf40 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 4d 65 6d 6f 72 79 20 75 73 O()->writeError('<info>Memory.us
9cf60 61 67 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 age:.'.round(memory_get_usage().
9cf80 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 20 28 70 65 61 6b 3a 20 27 2e 72 /.1024./.1024,.2).'MB.(peak:.'.r
9cfa0 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 70 65 61 6b 5f 75 73 61 67 65 28 29 20 2f 20 31 ound(memory_get_peak_usage()./.1
9cfc0 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d 42 29 2c 20 74 69 6d 65 3a 20 27 2e 72 6f 75 024./.1024,.2).'MB),.time:.'.rou
9cfe0 6e 64 28 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 73 74 61 72 74 54 69 6d 65 2c nd(microtime(true).-.$startTime,
9d000 20 32 29 2e 27 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a .2).'s');.}..return.$result;.}..
9d020 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 77 57 6f 72 6b .....private.function.getNewWork
9d040 69 6e 67 44 69 72 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a ingDir(InputInterface.$input).{.
9d060 24 77 6f 72 6b 69 6e 67 44 69 72 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 $workingDir.=.$input->getParamet
9d080 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 erOption(array('--working-dir',.
9d0a0 27 2d 64 27 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 6f 72 6b 69 6e 67 44 69 '-d'));.if.(false.!==.$workingDi
9d0c0 72 20 26 26 20 21 69 73 5f 64 69 72 28 24 77 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 74 68 72 r.&&.!is_dir($workingDir)).{.thr
9d0e0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 ow.new.\RuntimeException('Invali
9d100 64 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 20 73 70 65 63 69 66 69 65 64 2e 27 29 d.working.directory.specified.')
9d120 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 6f 72 6b 69 6e 67 44 69 72 3b 0a 7d 0a 0a 0a 0a 0a 70 ;.}..return.$workingDir;.}.....p
9d140 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 ublic.function.renderException($
9d160 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 74 72 79 20 7b 0a 24 63 6f 6d exception,.$output).{.try.{.$com
9d180 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 poser.=.$this->getComposer(false
9d1a0 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 ,.true);.if.($composer).{.$confi
9d1c0 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 6d 69 g.=.$composer->getConfig();..$mi
9d1e0 6e 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 69 66 20 28 28 28 24 64 nSpaceFree.=.1024*1024;.if.((($d
9d200 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e f.=.@disk_free_space($dir.=.$con
9d220 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 fig->get('home'))).!==.false.&&.
9d240 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 28 28 24 64 66 20 3d 20 $df.<.$minSpaceFree).||.(($df.=.
9d260 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d @disk_free_space($dir.=.$config-
9d280 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 >get('vendor-dir'))).!==.false.&
9d2a0 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 28 28 24 64 66 20 &.$df.<.$minSpaceFree).||.(($df.
9d2c0 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 73 79 73 5f 67 65 =.@disk_free_space($dir.=.sys_ge
9d2e0 74 5f 74 65 6d 70 5f 64 69 72 28 29 29 29 20 21 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 t_temp_dir())).!==.false.&&.$df.
9d300 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 <.$minSpaceFree).).{.$this->getI
9d320 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b O()->writeError('<error>The.disk
9d340 20 68 6f 73 74 69 6e 67 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 2c 20 74 68 69 73 20 .hosting.'.$dir.'.is.full,.this.
9d360 6d 61 79 20 62 65 20 74 68 65 20 63 61 75 73 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e may.be.the.cause.of.the.followin
9d380 67 20 65 78 63 65 70 74 69 6f 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 g.exception</error>');.}.}.}.cat
9d3a0 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 ch.(\Exception.$e).{.}..if.(defi
9d3c0 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 ned('PHP_WINDOWS_VERSION_BUILD')
9d3e0 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 65 78 63 65 70 74 69 6f 6e 2d .&&.false.!==.strpos($exception-
9d400 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 54 68 65 20 73 79 73 74 65 6d 20 63 61 6e 6e 6f >getMessage(),.'The.system.canno
9d420 74 20 66 69 6e 64 20 74 68 65 20 70 61 74 68 20 73 70 65 63 69 66 69 65 64 27 29 29 20 7b 0a 24 t.find.the.path.specified')).{.$
9d440 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f this->getIO()->writeError('<erro
9d460 72 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 20 6d 61 79 20 62 65 r>The.following.exception.may.be
9d480 20 63 61 75 73 65 64 20 62 79 20 61 20 73 74 61 6c 65 20 65 6e 74 72 79 20 69 6e 20 79 6f 75 72 .caused.by.a.stale.entry.in.your
9d4a0 20 63 6d 64 2e 65 78 65 20 41 75 74 6f 52 75 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 .cmd.exe.AutoRun</error>');.$thi
9d4c0 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 43 s->getIO()->writeError('<error>C
9d4e0 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 heck.https://getcomposer.org/doc
9d500 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f 6f 74 69 6e 67 2e 6d 64 23 2d 74 68 /articles/troubleshooting.md#-th
9d520 65 2d 73 79 73 74 65 6d 2d 63 61 6e 6e 6f 74 2d 66 69 6e 64 2d 74 68 65 2d 70 61 74 68 2d 73 70 e-system-cannot-find-the-path-sp
9d540 65 63 69 66 69 65 64 2d 77 69 6e 64 6f 77 73 2d 20 66 6f 72 20 64 65 74 61 69 6c 73 3c 2f 65 72 ecified-windows-.for.details</er
9d560 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 ror>');.}..if.(false.!==.strpos(
9d580 24 65 78 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 27 66 6f 72 6b 20 $exception->getMessage(),.'fork.
9d5a0 66 61 69 6c 65 64 20 2d 20 43 61 6e 6e 6f 74 20 61 6c 6c 6f 63 61 74 65 20 6d 65 6d 6f 72 79 27 failed.-.Cannot.allocate.memory'
9d5c0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 )).{.$this->getIO()->writeError(
9d5e0 27 3c 65 72 72 6f 72 3e 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 20 '<error>The.following.exception.
9d600 69 73 20 63 61 75 73 65 64 20 62 79 20 61 20 6c 61 63 6b 20 6f 66 20 6d 65 6d 6f 72 79 20 61 6e is.caused.by.a.lack.of.memory.an
9d620 64 20 6e 6f 74 20 68 61 76 69 6e 67 20 73 77 61 70 20 63 6f 6e 66 69 67 75 72 65 64 3c 2f 65 72 d.not.having.swap.configured</er
9d640 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 77 72 69 74 65 45 72 72 ror>');.$this->getIO()->writeErr
9d660 6f 72 28 27 3c 65 72 72 6f 72 3e 43 68 65 63 6b 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 or('<error>Check.https://getcomp
9d680 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 68 6f oser.org/doc/articles/troublesho
9d6a0 6f 74 69 6e 67 2e 6d 64 23 70 72 6f 63 2d 6f 70 65 6e 2d 66 6f 72 6b 2d 66 61 69 6c 65 64 2d 65 oting.md#proc-open-fork-failed-e
9d6c0 72 72 6f 72 73 20 66 6f 72 20 64 65 74 61 69 6c 73 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a rrors.for.details</error>');.}..
9d6e0 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 if.($output.instanceof.ConsoleOu
9d700 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 6e 64 65 72 45 tputInterface).{.parent::renderE
9d720 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 xception($exception,.$output->ge
9d740 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 70 61 72 65 6e 74 tErrorOutput());.}.else.{.parent
9d760 3a 3a 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f ::renderException($exception,.$o
9d780 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 utput);.}.}........public.functi
9d7a0 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 28 24 72 65 71 75 69 72 65 64 20 3d 20 74 72 75 65 2c on.getComposer($required.=.true,
9d7c0 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 .$disablePlugins.=.false).{.if.(
9d7e0 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 72 79 20 null.===.$this->composer).{.try.
9d800 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 {.$this->composer.=.Factory::cre
9d820 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 ate($this->io,.null,.$disablePlu
9d840 67 69 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 gins);.}.catch.(\InvalidArgument
9d860 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b Exception.$e).{.if.($required).{
9d880 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 65 2d 3e 67 65 74 4d 65 .$this->io->writeError($e->getMe
9d8a0 73 73 61 67 65 28 29 29 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 4a 73 ssage());.exit(1);.}.}.catch.(Js
9d8c0 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 onValidationException.$e).{.$err
9d8e0 6f 72 73 20 3d 20 27 20 2d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 20 2e 20 ors.=.'.-.'...implode(PHP_EOL...
9d900 27 20 2d 20 27 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 24 6d 65 73 73 61 67 '.-.',.$e->getErrors());.$messag
9d920 65 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 27 3a 27 20 2e 20 50 48 50 e.=.$e->getMessage()...':'...PHP
9d940 5f 45 4f 4c 20 2e 20 24 65 72 72 6f 72 73 3b 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 61 _EOL...$errors;.throw.new.JsonVa
9d960 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d lidationException($message);.}.}
9d980 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a ..return.$this->composer;.}.....
9d9a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 43 6f 6d 70 6f 73 65 72 28 29 0a public.function.resetComposer().
9d9c0 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a {.$this->composer.=.null;.}.....
9d9e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 72 6e public.function.getIO().{.return
9da00 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .$this->io;.}..public.function.g
9da20 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 67 6f 20 2e 20 etHelp().{.return.self::$logo...
9da40 70 61 72 65 6e 74 3a 3a 67 65 74 48 65 6c 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 parent::getHelp();.}.....protect
9da60 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 ed.function.getDefaultCommands()
9da80 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c .{.$commands.=.parent::getDefaul
9daa0 74 43 6f 6d 6d 61 6e 64 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 tCommands();.$commands[].=.new.C
9dac0 6f 6d 6d 61 6e 64 5c 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 ommand\AboutCommand();.$commands
9dae0 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 28 29 [].=.new.Command\ConfigCommand()
9db00 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 65 70 65 ;.$commands[].=.new.Command\Depe
9db20 6e 64 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 ndsCommand();.$commands[].=.new.
9db40 43 6f 6d 6d 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 Command\InitCommand();.$commands
9db60 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e 64 28 [].=.new.Command\InstallCommand(
9db80 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 72 65 );.$commands[].=.new.Command\Cre
9dba0 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d ateProjectCommand();.$commands[]
9dbc0 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a .=.new.Command\UpdateCommand();.
9dbe0 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 61 72 63 68 $commands[].=.new.Command\Search
9dc00 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d Command();.$commands[].=.new.Com
9dc20 6d 61 6e 64 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 mand\ValidateCommand();.$command
9dc40 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 29 3b s[].=.new.Command\ShowCommand();
9dc60 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 71 75 69 .$commands[].=.new.Command\Requi
9dc80 72 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 reCommand();.$commands[].=.new.C
9dca0 6f 6d 6d 61 6e 64 5c 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 ommand\DumpAutoloadCommand();.$c
9dcc0 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 74 61 74 75 73 43 6f ommands[].=.new.Command\StatusCo
9dce0 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 mmand();.$commands[].=.new.Comma
9dd00 6e 64 5c 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d nd\ArchiveCommand();.$commands[]
9dd20 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 28 29 .=.new.Command\DiagnoseCommand()
9dd40 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 75 6e 53 ;.$commands[].=.new.Command\RunS
9dd60 63 72 69 70 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 criptCommand();.$commands[].=.ne
9dd80 77 20 43 6f 6d 6d 61 6e 64 5c 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f w.Command\LicensesCommand();.$co
9dda0 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 47 6c 6f 62 61 6c 43 6f 6d mmands[].=.new.Command\GlobalCom
9ddc0 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e mand();.$commands[].=.new.Comman
9dde0 64 5c 43 6c 65 61 72 43 61 63 68 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 d\ClearCacheCommand();.$commands
9de00 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 52 65 6d 6f 76 65 43 6f 6d 6d 61 6e 64 28 29 [].=.new.Command\RemoveCommand()
9de20 3b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 48 6f 6d 65 ;.$commands[].=.new.Command\Home
9de40 43 6f 6d 6d 61 6e 64 28 29 3b 0a 0a 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 Command();..if.('phar:'.===.subs
9de60 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b tr(__FILE__,.0,.5)).{.$commands[
9de80 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e ].=.new.Command\SelfUpdateComman
9dea0 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a d();.}..return.$commands;.}.....
9dec0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 public.function.getLongVersion()
9dee0 0a 7b 0a 69 66 20 28 43 6f 6d 70 6f 73 65 72 3a 3a 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 .{.if.(Composer::BRANCH_ALIAS_VE
9df00 52 53 49 4f 4e 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 0a 27 3c 69 6e 66 6f 3e RSION).{.return.sprintf(.'<info>
9df20 25 73 3c 2f 69 6e 66 6f 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 20 28 25 %s</info>.version.<comment>%s.(%
9df40 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 2c 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 s)</comment>.%s',.$this->getName
9df60 28 29 2c 0a 43 6f 6d 70 6f 73 65 72 3a 3a 42 52 41 4e 43 48 5f 41 4c 49 41 53 5f 56 45 52 53 49 (),.Composer::BRANCH_ALIAS_VERSI
9df80 4f 4e 2c 0a 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 43 6f 6d 70 6f 73 65 ON,.$this->getVersion(),.Compose
9dfa0 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 r::RELEASE_DATE.);.}..return.par
9dfc0 65 6e 74 3a 3a 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 2e 20 43 6f ent::getLongVersion()...'.'...Co
9dfe0 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 mposer::RELEASE_DATE;.}.....prot
9e000 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 ected.function.getDefaultInputDe
9e020 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 70 61 72 65 6e finition().{.$definition.=.paren
9e040 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a t::getDefaultInputDefinition();.
9e060 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 $definition->addOption(new.Input
9e080 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f Option('--profile',.null,.InputO
9e0a0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 74 69 6d 69 ption::VALUE_NONE,.'Display.timi
9e0c0 6e 67 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 ng.and.memory.usage.information'
9e0e0 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 ));.$definition->addOption(new.I
9e100 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 nputOption('--working-dir',.'-d'
9e120 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 ,.InputOption::VALUE_REQUIRED,.'
9e140 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 65 20 67 69 76 65 6e 20 64 69 72 65 If.specified,.use.the.given.dire
9e160 63 74 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 79 2e 27 29 29 3b 0a ctory.as.working.directory.'));.
9e180 0a 72 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 .return.$definition;.}.....prote
9e1a0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 cted.function.getDefaultHelperSe
9e1c0 74 28 29 0a 7b 0a 24 68 65 6c 70 65 72 53 65 74 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 t().{.$helperSet.=.parent::getDe
9e1e0 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 24 68 65 6c 70 65 72 53 65 74 2d 3e 73 65 faultHelperSet();.$helperSet->se
9e200 74 28 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 t(new.DialogHelper());..return.$
9e220 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a helperSet;.}.}.<?php............
9e240 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 namespace.Composer\Console;..use
9e260 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 .Symfony\Component\Console\Forma
9e280 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 tter\OutputFormatter;.....class.
9e2a0 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 65 78 74 65 6e 64 73 20 4f 75 74 70 HtmlOutputFormatter.extends.Outp
9e2c0 75 74 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 utFormatter.{.private.static.$av
9e2e0 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 ailableForegroundColors.=.array(
9e300 0a 33 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 33 31 20 3d 3e 20 27 72 65 64 27 2c 0a 33 32 20 .30.=>.'black',.31.=>.'red',.32.
9e320 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 33 34 20 3d =>.'green',.33.=>.'yellow',.34.=
9e340 3e 20 27 62 6c 75 65 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 33 36 20 3d 3e >.'blue',.35.=>.'magenta',.36.=>
9e360 20 27 63 79 61 6e 27 2c 0a 33 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b 0a 70 72 69 76 61 74 .'cyan',.37.=>.'white'.);.privat
9e380 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c e.static.$availableBackgroundCol
9e3a0 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 34 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 34 31 20 3d ors.=.array(.40.=>.'black',.41.=
9e3c0 3e 20 27 72 65 64 27 2c 0a 34 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 34 33 20 3d 3e 20 27 79 >.'red',.42.=>.'green',.43.=>.'y
9e3e0 65 6c 6c 6f 77 27 2c 0a 34 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 34 35 20 3d 3e 20 27 6d 61 67 ellow',.44.=>.'blue',.45.=>.'mag
9e400 65 6e 74 61 27 2c 0a 34 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 34 37 20 3d 3e 20 27 77 68 69 74 enta',.46.=>.'cyan',.47.=>.'whit
9e420 65 27 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f e'.);.private.static.$availableO
9e440 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 20 3d 3e 20 27 62 6f 6c 64 27 2c 0a 34 20 3d ptions.=.array(.1.=>.'bold',.4.=
9e460 3e 20 27 75 6e 64 65 72 73 63 6f 72 65 27 2c 0a 0a 20 0a 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 62 >.'underscore',.......);.....pub
9e480 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 lic.function.__construct(array.$
9e4a0 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f styles.=.array()).{.parent::__co
9e4c0 6e 73 74 72 75 63 74 28 74 72 75 65 2c 20 24 73 74 79 6c 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 nstruct(true,.$styles);.}..publi
9e4e0 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 66 c.function.format($message).{.$f
9e500 6f 72 6d 61 74 74 65 64 20 3d 20 70 61 72 65 6e 74 3a 3a 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 ormatted.=.parent::format($messa
9e520 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 ge);..return.preg_replace_callba
9e540 63 6b 28 22 7b 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d 2b 29 6d 28 2e 2a 3f 29 5c 30 33 33 5c 5b ck("{\033\[([0-9;]+)m(.*?)\033\[
9e560 30 6d 7d 73 22 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 66 6f 72 6d 61 74 48 74 6d 6c 27 0m}s",.array($this,.'formatHtml'
9e580 29 2c 20 24 66 6f 72 6d 61 74 74 65 64 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 ),.$formatted);.}..private.funct
9e5a0 69 6f 6e 20 66 6f 72 6d 61 74 48 74 6d 6c 28 24 6d 61 74 63 68 65 73 29 0a 7b 0a 24 6f 75 74 20 ion.formatHtml($matches).{.$out.
9e5c0 3d 20 27 3c 73 70 61 6e 20 73 74 79 6c 65 3d 22 27 3b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c =.'<span.style="';.foreach.(expl
9e5e0 6f 64 65 28 27 3b 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 61 73 20 24 63 6f 64 65 29 20 ode(';',.$matches[1]).as.$code).
9e600 7b 0a 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 {.if.(isset(self::$availableFore
9e620 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 groundColors[$code])).{.$out..=.
9e640 27 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 'color:'.self::$availableForegro
9e660 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 undColors[$code].';';.}.elseif.(
9e680 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 isset(self::$availableBackground
9e6a0 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 62 61 63 6b 67 Colors[$code])).{.$out..=.'backg
9e6c0 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 round-color:'.self::$availableBa
9e6e0 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 ckgroundColors[$code].';';.}.els
9e700 65 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f eif.(isset(self::$availableOptio
9e720 6e 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 65 6c 66 3a 3a 24 61 76 61 ns[$code])).{.switch.(self::$ava
9e740 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 20 7b 0a 63 61 73 65 20 27 62 6f ilableOptions[$code]).{.case.'bo
9e760 6c 64 27 3a 0a 24 6f 75 74 20 2e 3d 20 27 66 6f 6e 74 2d 77 65 69 67 68 74 3a 62 6f 6c 64 3b 27 ld':.$out..=.'font-weight:bold;'
9e780 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 64 65 72 73 63 6f 72 65 27 3a 0a 24 6f 75 ;.break;..case.'underscore':.$ou
9e7a0 74 20 2e 3d 20 27 74 65 78 74 2d 64 65 63 6f 72 61 74 69 6f 6e 3a 75 6e 64 65 72 6c 69 6e 65 3b t..=.'text-decoration:underline;
9e7c0 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 2e 27 22 3e ';.break;.}.}.}..return.$out.'">
9e7e0 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 3c 2f 73 70 61 6e 3e 27 3b 0a 7d 0a 7d 0a 3c 3f 70 '.$matches[2].'</span>';.}.}.<?p
9e800 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 hp............namespace.Composer
9e820 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b \Autoload;..use.Composer\Config;
9e840 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 .use.Composer\EventDispatcher\Ev
9e860 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 entDispatcher;.use.Composer\Inst
9e880 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 aller\InstallationManager;.use.C
9e8a0 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 omposer\IO\IOInterface;.use.Comp
9e8c0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 oser\Package\AliasPackage;.use.C
9e8e0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
9e900 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c ;.use.Composer\Repository\Instal
9e920 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 ledRepositoryInterface;.use.Comp
9e940 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 oser\Util\Filesystem;.use.Compos
9e960 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 er\Script\ScriptEvents;......cla
9e980 73 73 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 ss.AutoloadGenerator.{....privat
9e9a0 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 e.$eventDispatcher;.....private.
9e9c0 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a $io;..private.$devMode.=.false;.
9e9e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 45 76 65 .public.function.__construct(Eve
9ea00 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 49 ntDispatcher.$eventDispatcher,.I
9ea20 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e OInterface.$io.=.null).{.$this->
9ea40 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 eventDispatcher.=.$eventDispatch
9ea60 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 er;.$this->io.=.$io;.}..public.f
9ea80 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 3d 20 74 72 unction.setDevMode($devMode.=.tr
9eaa0 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 ue).{.$this->devMode.=.(boolean)
9eac0 20 24 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 .$devMode;.}..public.function.du
9eae0 6d 70 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f mp(Config.$config,.InstalledRepo
9eb00 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 50 61 63 6b sitoryInterface.$localRepo,.Pack
9eb20 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 49 6e 73 74 61 ageInterface.$mainPackage,.Insta
9eb40 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 llationManager.$installationMana
9eb60 67 65 72 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 ger,.$targetDir,.$scanPsr0Packag
9eb80 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 73 75 66 66 69 78 20 3d 20 27 27 29 0a 7b 0a 24 74 68 69 es.=.false,.$suffix.=.'').{.$thi
9eba0 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 s->eventDispatcher->dispatchScri
9ebc0 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 pt(ScriptEvents::PRE_AUTOLOAD_DU
9ebe0 4d 50 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 28 29 2c 20 61 72 72 MP,.$this->devMode,.array(),.arr
9ec00 61 79 28 0a 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 28 62 6f 6f 6c 29 20 24 73 63 61 6e 50 73 ay(.'optimize'.=>.(bool).$scanPs
9ec20 72 30 50 61 63 6b 61 67 65 73 2c 0a 29 29 3b 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e r0Packages,.));..$filesystem.=.n
9ec40 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e ew.Filesystem();.$filesystem->en
9ec60 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 sureDirectoryExists($config->get
9ec80 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 66 69 ('vendor-dir'));.$basePath.=.$fi
9eca0 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 lesystem->normalizePath(realpath
9ecc0 28 67 65 74 63 77 64 28 29 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 24 66 69 6c 65 (getcwd()));.$vendorPath.=.$file
9ece0 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 28 24 system->normalizePath(realpath($
9ed00 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 3b 0a 24 75 73 config->get('vendor-dir')));.$us
9ed20 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 28 62 6f 6f 6c 29 20 24 63 6f 6e eGlobalIncludePath.=.(bool).$con
9ed40 66 69 67 2d 3e 67 65 74 28 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 24 70 fig->get('use-include-path');.$p
9ed60 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 rependAutoloader.=.$config->get(
9ed80 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 'prepend-autoloader').===.false.
9eda0 3f 20 27 66 61 6c 73 65 27 20 3a 20 27 74 72 75 65 27 3b 0a 24 63 6c 61 73 73 4d 61 70 41 75 74 ?.'false'.:.'true';.$classMapAut
9edc0 68 6f 72 69 74 61 74 69 76 65 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 6c 61 73 73 horitative.=.$config->get('class
9ede0 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 27 29 3b 0a 24 74 61 72 67 65 74 44 69 72 20 map-authoritative');.$targetDir.
9ee00 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 3b 0a 24 66 =.$vendorPath.'/'.$targetDir;.$f
9ee20 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 ilesystem->ensureDirectoryExists
9ee40 28 24 74 61 72 67 65 74 44 69 72 29 3b 0a 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d ($targetDir);..$vendorPathCode.=
9ee60 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f .$filesystem->findShortestPathCo
9ee80 64 65 28 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 de(realpath($targetDir),.$vendor
9eea0 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 20 3d Path,.true);.$vendorPathCode52.=
9eec0 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d 65 .str_replace('__DIR__',.'dirname
9eee0 28 5f 5f 46 49 4c 45 5f 5f 29 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 29 3b 0a 24 (__FILE__)',.$vendorPathCode);.$
9ef00 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c vendorPathToTargetDirCode.=.$fil
9ef20 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 esystem->findShortestPathCode($v
9ef40 65 6e 64 6f 72 50 61 74 68 2c 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c endorPath,.realpath($targetDir),
9ef60 20 74 72 75 65 29 3b 0a 0a 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 .true);..$appBaseDirCode.=.$file
9ef80 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 76 65 system->findShortestPathCode($ve
9efa0 6e 64 6f 72 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 ndorPath,.$basePath,.true);.$app
9efc0 42 61 73 65 44 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 BaseDirCode.=.str_replace('__DIR
9efe0 5f 5f 27 2c 20 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f __',.'$vendorDir',.$appBaseDirCo
9f000 64 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c de);..$namespacesFile.=.<<<EOF.<
9f020 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 ?php..//.autoload_namespaces.php
9f040 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f .@generated.by.Composer..\$vendo
9f060 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 rDir.=.$vendorPathCode52;.\$base
9f080 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 Dir.=.$appBaseDirCode;..return.a
9f0a0 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 24 70 73 72 34 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a rray(..EOF;..$psr4File.=.<<<EOF.
9f0c0 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 20 40 67 65 6e <?php..//.autoload_psr4.php.@gen
9f0e0 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 erated.by.Composer..\$vendorDir.
9f100 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d =.$vendorPathCode52;.\$baseDir.=
9f120 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 .$appBaseDirCode;..return.array(
9f140 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 62 ..EOF;....$packageMap.=.$this->b
9f160 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 uildPackageMap($installationMana
9f180 67 65 72 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 ger,.$mainPackage,.$localRepo->g
9f1a0 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 etCanonicalPackages());.$autoloa
9f1c0 64 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b ds.=.$this->parseAutoloads($pack
9f1e0 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 ageMap,.$mainPackage);....foreac
9f200 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 h.($autoloads['psr-0'].as.$names
9f220 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 pace.=>.$paths).{.$exportedPaths
9f240 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 .=.array();.foreach.($paths.as.$
9f260 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 path).{.$exportedPaths[].=.$this
9f280 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 ->getPathCode($filesystem,.$base
9f2a0 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 Path,.$vendorPath,.$path);.}.$ex
9f2c0 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 portedPrefix.=.var_export($names
9f2e0 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 pace,.true);.$namespacesFile..=.
9f300 22 20 20 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 6e 61 6d 65 "....$exportedPrefix.=>.";.$name
9f320 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 spacesFile..=."array(".implode('
9f340 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 ,.',.$exportedPaths)."),\n";.}.$
9f360 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 0a 20 66 6f 72 namespacesFile..=.");\n";....for
9f380 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 each.($autoloads['psr-4'].as.$na
9f3a0 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 mespace.=>.$paths).{.$exportedPa
9f3c0 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 ths.=.array();.foreach.($paths.a
9f3e0 73 20 24 70 61 74 68 29 20 7b 0a 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 5b 5d 20 3d 20 24 74 s.$path).{.$exportedPaths[].=.$t
9f400 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 his->getPathCode($filesystem,.$b
9f420 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a asePath,.$vendorPath,.$path);.}.
9f440 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 $exportedPrefix.=.var_export($na
9f460 6d 65 73 70 61 63 65 2c 20 74 72 75 65 29 3b 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 22 20 20 mespace,.true);.$psr4File..=."..
9f480 20 20 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 70 73 72 34 46 69 6c ..$exportedPrefix.=>.";.$psr4Fil
9f4a0 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 e..=."array(".implode(',.',.$exp
9f4c0 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 70 73 72 34 46 69 6c 65 20 ortedPaths)."),\n";.}.$psr4File.
9f4e0 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c 3c 45 .=.");\n";..$classmapFile.=.<<<E
9f500 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 OF.<?php..//.autoload_classmap.p
9f520 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e hp.@generated.by.Composer..\$ven
9f540 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 dorDir.=.$vendorPathCode52;.\$ba
9f560 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e seDir.=.$appBaseDirCode;..return
9f580 20 61 72 72 61 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 .array(..EOF;....$targetDirLoade
9f5a0 72 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 r.=.null;.$mainAutoload.=.$mainP
9f5c0 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e ackage->getAutoload();.if.($main
9f5e0 50 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 74 Package->getTargetDir().&&.!empt
9f600 79 28 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 6c 65 y($mainAutoload['psr-0'])).{.$le
9f620 76 65 6c 73 20 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c 65 73 vels.=.count(explode('/',.$files
9f640 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 6d 61 69 6e 50 61 63 6b 61 67 ystem->normalizePath($mainPackag
9f660 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 e->getTargetDir())));.$prefixes.
9f680 3d 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 =.implode(',.',.array_map(functi
9f6a0 6f 6e 20 28 24 70 72 65 66 69 78 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 on.($prefix).{.return.var_export
9f6c0 28 24 70 72 65 66 69 78 2c 20 74 72 75 65 29 3b 0a 7d 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 ($prefix,.true);.},.array_keys($
9f6e0 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 29 3b 0a 24 62 61 73 65 44 mainAutoload['psr-0'])));.$baseD
9f700 69 72 46 72 6f 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 3d 20 24 66 69 6c 65 73 79 73 74 65 irFromTargetDirCode.=.$filesyste
9f720 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 74 44 m->findShortestPathCode($targetD
9f740 69 72 2c 20 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 ir,.$basePath,.true);..$targetDi
9f760 72 4c 6f 61 64 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 rLoader.=.<<<EOF......public.sta
9f780 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 0a 20 tic.function.autoload(\$class)..
9f7a0 20 20 20 7b 0a 20 20 20 20 20 20 20 20 5c 24 64 69 72 20 3d 20 24 62 61 73 65 44 69 72 46 72 6f ...{.........\$dir.=.$baseDirFro
9f7c0 6d 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 27 2f 27 3b 0a 20 20 20 20 20 20 20 20 5c 24 mTargetDirCode...'/';.........\$
9f7e0 70 72 65 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 24 70 72 65 66 69 78 65 73 29 3b 0a 20 20 20 prefixes.=.array($prefixes);....
9f800 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 5c 24 70 72 65 66 69 78 65 73 20 61 73 20 5c 24 70 72 .....foreach.(\$prefixes.as.\$pr
9f820 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 21 3d 3d 20 73 74 efix).{.............if.(0.!==.st
9f840 72 70 6f 73 28 5c 24 63 6c 61 73 73 2c 20 5c 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 rpos(\$class,.\$prefix)).{......
9f860 20 20 20 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 ...........continue;............
9f880 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 5c 24 70 61 74 68 20 3d 20 5c 24 64 69 72 20 2e 20 .}.............\$path.=.\$dir...
9f8a0 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 61 72 72 61 79 5f 73 6c 69 63 65 28 65 78 70 6c 6f 64 65 implode('/',.array_slice(explode
9f8c0 28 27 5c 5c 5c 5c 27 2c 20 5c 24 63 6c 61 73 73 29 2c 20 24 6c 65 76 65 6c 73 29 29 2e 27 2e 70 ('\\\\',.\$class),.$levels)).'.p
9f8e0 68 70 27 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 5c 24 70 61 74 68 20 3d 20 73 hp';.............if.(!\$path.=.s
9f900 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 5c 24 70 61 74 tream_resolve_include_path(\$pat
9f920 68 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c h)).{.................return.fal
9f940 73 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 se;.............}.............re
9f960 71 75 69 72 65 20 5c 24 70 61 74 68 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 quire.\$path;..............retur
9f980 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d 0a n.true;.........}.....}..EOF;.}.
9f9a0 0a 0a 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 63 61 ...$classMap.=.array();.if.($sca
9f9c0 6e 50 73 72 30 50 61 63 6b 61 67 65 73 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 nPsr0Packages).{...foreach.(arra
9f9e0 79 28 27 70 73 72 2d 30 27 2c 20 27 70 73 72 2d 34 27 29 20 61 73 20 24 70 73 72 54 79 70 65 29 y('psr-0',.'psr-4').as.$psrType)
9fa00 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 24 70 73 72 54 79 70 65 5d .{.foreach.($autoloads[$psrType]
9fa20 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 .as.$namespace.=>.$paths).{.fore
9fa40 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 66 ach.($paths.as.$dir).{.$dir.=.$f
9fa60 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 ilesystem->normalizePath($filesy
9fa80 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 64 69 72 29 20 3f 20 24 64 69 stem->isAbsolutePath($dir).?.$di
9faa0 72 20 3a 20 24 62 61 73 65 50 61 74 68 2e 27 2f 27 2e 24 64 69 72 29 3b 0a 69 66 20 28 21 69 73 r.:.$basePath.'/'.$dir);.if.(!is
9fac0 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 77 68 69 74 65 _dir($dir)).{.continue;.}.$white
9fae0 6c 69 73 74 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 7b 25 73 2f 25 73 2e 2b 28 3f 3c 21 28 3f 3c list.=.sprintf(.'{%s/%s.+(?<!(?<
9fb00 21 2f 29 54 65 73 74 5c 2e 70 68 70 29 24 7d 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 !/)Test\.php)$}',.preg_quote($di
9fb20 72 29 2c 0a 28 24 70 73 72 54 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 20 26 26 20 73 74 72 r),.($psrType.===.'psr-0'.&&.str
9fb40 70 6f 73 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 5f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 pos($namespace,.'_').===.false).
9fb60 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 ?.preg_quote(strtr($namespace,.'
9fb80 5c 5c 27 2c 20 27 2f 27 29 29 20 3a 20 27 27 0a 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 46 69 \\',.'/')).:.''.);..$namespaceFi
9fba0 6c 74 65 72 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 27 27 20 3f 20 6e 75 6c 6c 20 lter.=.$namespace.===.''.?.null.
9fbc0 3a 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 :.$namespace;.foreach.(ClassMapG
9fbe0 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 enerator::createMap($dir,.$white
9fc00 6c 69 73 74 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 6e 61 6d 65 73 70 61 63 65 46 69 6c 74 65 list,.$this->io,.$namespaceFilte
9fc20 72 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 21 69 73 r).as.$class.=>.$path).{.if.(!is
9fc40 73 65 74 28 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 70 61 74 68 20 set($classMap[$class])).{.$path.
9fc60 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d =.$this->getPathCode($filesystem
9fc80 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 ,.$basePath,.$vendorPath,.$path)
9fca0 3b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e ;.$classMap[$class].=.$path.",\n
9fcc0 22 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f ";.}.}.}.}.}.}..foreach.($autolo
9fce0 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 65 61 ads['classmap'].as.$dir).{.forea
9fd00 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 ch.(ClassMapGenerator::createMap
9fd20 28 24 64 69 72 2c 20 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 20 61 73 20 24 63 6c 61 73 ($dir,.null,.$this->io).as.$clas
9fd40 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 s.=>.$path).{.$path.=.$this->get
9fd60 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c PathCode($filesystem,.$basePath,
9fd80 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 63 6c 61 73 73 4d 61 70 5b .$vendorPath,.$path);.$classMap[
9fda0 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 6b 73 6f 72 $class].=.$path.",\n";.}.}..ksor
9fdc0 74 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 4d 61 70 t($classMap);.foreach.($classMap
9fde0 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 63 6f 64 65 29 20 7b 0a 24 63 6c 61 73 73 6d 61 70 .as.$class.=>.$code).{.$classmap
9fe00 46 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 File..=.'....'.var_export($class
9fe20 2c 20 74 72 75 65 29 2e 27 20 3d 3e 20 27 2e 24 63 6f 64 65 3b 0a 7d 0a 24 63 6c 61 73 73 6d 61 ,.true).'.=>.'.$code;.}.$classma
9fe40 70 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 20 pFile..=.");\n";..if.(!$suffix).
9fe60 7b 0a 69 66 20 28 69 73 5f 72 65 61 64 61 62 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f {.if.(is_readable($vendorPath.'/
9fe80 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c autoload.php')).{.$content.=.fil
9fea0 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 e_get_contents($vendorPath.'/aut
9fec0 6f 6c 6f 61 64 2e 70 68 70 27 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 6f oload.php');.if.(preg_match('{Co
9fee0 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 28 5b 5e 3a 5c 73 5d 2b 29 3a 3a 7d mposerAutoloaderInit([^:\s]+)::}
9ff00 27 2c 20 24 63 6f 6e 74 65 6e 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 73 75 66 66 69 78 20 ',.$content,.$match)).{.$suffix.
9ff20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 20 =.$match[1];.}.}..if.(!$suffix).
9ff40 7b 0a 24 73 75 66 66 69 78 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 61 75 74 6f 6c 6f {.$suffix.=.$config->get('autolo
9ff60 61 64 65 72 2d 73 75 66 66 69 78 27 29 20 3f 3a 20 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 ader-suffix').?:.md5(uniqid('',.
9ff80 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 true));.}.}..file_put_contents($
9ffa0 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e targetDir.'/autoload_namespaces.
9ffc0 70 68 70 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 php',.$namespacesFile);.file_put
9ffe0 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f _contents($targetDir.'/autoload_
a0000 70 73 72 34 2e 70 68 70 27 2c 20 24 70 73 72 34 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f psr4.php',.$psr4File);.file_put_
a0020 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 contents($targetDir.'/autoload_c
a0040 6c 61 73 73 6d 61 70 2e 70 68 70 27 2c 20 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 29 3b 0a 69 66 lassmap.php',.$classmapFile);.if
a0060 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 .($includePathFile.=.$this->getI
a0080 6e 63 6c 75 64 65 50 61 74 68 73 46 69 6c 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 66 69 ncludePathsFile($packageMap,.$fi
a00a0 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 lesystem,.$basePath,.$vendorPath
a00c0 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 ,.$vendorPathCode52,.$appBaseDir
a00e0 43 6f 64 65 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 Code)).{.file_put_contents($targ
a0100 65 74 44 69 72 2e 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 2c 20 24 69 6e 63 etDir.'/include_paths.php',.$inc
a0120 6c 75 64 65 50 61 74 68 46 69 6c 65 29 3b 0a 7d 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 46 69 6c ludePathFile);.}.if.($includeFil
a0140 65 73 46 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 esFile.=.$this->getIncludeFilesF
a0160 69 6c 65 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 2c 20 24 66 69 6c 65 73 79 ile($autoloads['files'],.$filesy
a0180 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 stem,.$basePath,.$vendorPath,.$v
a01a0 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 endorPathCode52,.$appBaseDirCode
a01c0 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 )).{.file_put_contents($targetDi
a01e0 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 27 2c 20 24 69 6e 63 6c 75 64 r.'/autoload_files.php',.$includ
a0200 65 46 69 6c 65 73 46 69 6c 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 eFilesFile);.}.file_put_contents
a0220 28 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 61 75 74 6f 6c 6f 61 64 2e 70 68 70 27 2c 20 24 74 ($vendorPath.'/autoload.php',.$t
a0240 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 his->getAutoloadFile($vendorPath
a0260 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 29 3b 0a 66 69 6c 65 ToTargetDirCode,.$suffix));.file
a0280 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c _put_contents($targetDir.'/autol
a02a0 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 oad_real.php',.$this->getAutoloa
a02c0 64 52 65 61 6c 46 69 6c 65 28 74 72 75 65 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 dRealFile(true,.(bool).$includeP
a02e0 61 74 68 46 69 6c 65 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 28 62 6f 6f 6c athFile,.$targetDirLoader,.(bool
a0300 29 20 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 ).$includeFilesFile,.$vendorPath
a0320 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 Code,.$appBaseDirCode,.$suffix,.
a0340 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 $useGlobalIncludePath,.$prependA
a0360 75 74 6f 6c 6f 61 64 65 72 2c 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 utoloader,.$classMapAuthoritativ
a0380 65 29 29 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 20 3d 20 66 6f 70 65 6e 28 e));......$sourceLoader.=.fopen(
a03a0 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 72 27 29 __DIR__.'/ClassLoader.php',.'r')
a03c0 3b 0a 24 74 61 72 67 65 74 4c 6f 61 64 65 72 20 3d 20 66 6f 70 65 6e 28 24 74 61 72 67 65 74 44 ;.$targetLoader.=.fopen($targetD
a03e0 69 72 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 77 2b 27 29 3b 0a 73 74 ir.'/ClassLoader.php',.'w+');.st
a0400 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 ream_copy_to_stream($sourceLoade
a0420 72 2c 20 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 73 6f 75 72 63 r,.$targetLoader);.fclose($sourc
a0440 65 4c 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b eLoader);.fclose($targetLoader);
a0460 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 65 74 4c 6f 61 .unset($sourceLoader,.$targetLoa
a0480 64 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 der);..$this->eventDispatcher->d
a04a0 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 ispatchScript(ScriptEvents::POST
a04c0 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 _AUTOLOAD_DUMP,.$this->devMode,.
a04e0 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 0a 27 6f 70 74 69 6d 69 7a 65 27 20 3d 3e 20 28 62 array(),.array(.'optimize'.=>.(b
a0500 6f 6f 6c 29 20 24 73 63 61 6e 50 73 72 30 50 61 63 6b 61 67 65 73 2c 0a 29 29 3b 0a 7d 0a 0a 70 ool).$scanPsr0Packages,.));.}..p
a0520 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4d 61 70 28 49 ublic.function.buildPackageMap(I
a0540 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e nstallationManager.$installation
a0560 4d 61 6e 61 67 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 6d 61 69 6e 50 Manager,.PackageInterface.$mainP
a0580 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 0a 20 24 70 61 ackage,.array.$packages).{...$pa
a05a0 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b ckageMap.=.array(array($mainPack
a05c0 61 67 65 2c 20 27 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 age,.''));..foreach.($packages.a
a05e0 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 s.$package).{.if.($package.insta
a0600 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a nceof.AliasPackage).{.continue;.
a0620 7d 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 }.$this->validatePackage($packag
a0640 65 29 3b 0a 0a 24 70 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 e);..$packageMap[].=.array(.$pac
a0660 6b 61 67 65 2c 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 kage,.$installationManager->getI
a0680 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2c 0a 29 3b 0a 7d 0a 0a 72 65 74 75 nstallPath($package),.);.}..retu
a06a0 72 6e 20 24 70 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 rn.$packageMap;.}.......protecte
a06c0 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 d.function.validatePackage(Packa
a06e0 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 geInterface.$package).{.$autoloa
a0700 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 d.=.$package->getAutoload();.if.
a0720 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 6e (!empty($autoload['psr-4']).&&.n
a0740 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 ull.!==.$package->getTargetDir()
a0760 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b ).{.$name.=.$package->getName();
a0780 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 74 68 72 6f 77 .$package->getTargetDir();.throw
a07a0 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 .new.\InvalidArgumentException("
a07c0 50 53 52 2d 34 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 69 73 20 69 6e 63 6f 6d 70 61 74 69 62 6c PSR-4.autoloading.is.incompatibl
a07e0 65 20 77 69 74 68 20 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2c 20 e.with.the.target-dir.property,.
a0800 72 65 6d 6f 76 65 20 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 69 6e 20 70 61 63 6b 61 67 65 remove.the.target-dir.in.package
a0820 20 27 24 6e 61 6d 65 27 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c .'$name'.");.}.if.(!empty($autol
a0840 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c oad['psr-4'])).{.foreach.($autol
a0860 6f 61 64 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 64 oad['psr-4'].as.$namespace.=>.$d
a0880 69 72 73 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 21 3d 3d 20 27 27 20 26 26 20 irs).{.if.($namespace.!==.''.&&.
a08a0 27 5c 5c 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 2d 31 29 29 '\\'.!==.substr($namespace,.-1))
a08c0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
a08e0 65 70 74 69 6f 6e 28 22 70 73 72 2d 34 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 6e eption("psr-4.namespaces.must.en
a0900 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2c 20 27 24 d.with.a.namespace.separator,.'$
a0920 6e 61 6d 65 73 70 61 63 65 27 20 64 6f 65 73 20 6e 6f 74 2c 20 75 73 65 20 27 24 6e 61 6d 65 73 namespace'.does.not,.use.'$names
a0940 70 61 63 65 5c 5c 27 2e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c pace\\'.");.}.}.}.}.........publ
a0960 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 ic.function.parseAutoloads(array
a0980 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 .$packageMap,.PackageInterface.$
a09a0 6d 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 3d mainPackage).{.$mainPackageMap.=
a09c0 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 .array_shift($packageMap);.$sort
a09e0 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 edPackageMap.=.$this->sortPackag
a0a00 65 4d 61 70 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 eMap($packageMap);.$sortedPackag
a0a20 65 4d 61 70 5b 5d 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 5f eMap[].=.$mainPackageMap;.array_
a0a40 75 6e 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 unshift($packageMap,.$mainPackag
a0a60 65 4d 61 70 29 3b 0a 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f eMap);..$psr0.=.$this->parseAuto
a0a80 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c 20 loadsType($packageMap,.'psr-0',.
a0aa0 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 70 73 72 34 20 3d 20 24 74 68 69 73 2d 3e 70 61 $mainPackage);.$psr4.=.$this->pa
a0ac0 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 rseAutoloadsType($packageMap,.'p
a0ae0 73 72 2d 34 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 sr-4',.$mainPackage);.$classmap.
a0b00 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 =.$this->parseAutoloadsType($sor
a0b20 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 6e tedPackageMap,.'classmap',.$main
a0b40 50 61 63 6b 61 67 65 29 3b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 Package);.$files.=.$this->parseA
a0b60 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 utoloadsType($sortedPackageMap,.
a0b80 27 66 69 6c 65 73 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 73 6f 72 74 28 'files',.$mainPackage);..krsort(
a0ba0 24 70 73 72 30 29 3b 0a 6b 72 73 6f 72 74 28 24 70 73 72 34 29 3b 0a 0a 72 65 74 75 72 6e 20 61 $psr0);.krsort($psr4);..return.a
a0bc0 72 72 61 79 28 27 70 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 27 70 73 72 2d 34 27 20 3d rray('psr-0'.=>.$psr0,.'psr-4'.=
a0be0 3e 20 24 70 73 72 34 2c 20 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 70 >.$psr4,.'classmap'.=>.$classmap
a0c00 2c 20 27 66 69 6c 65 73 27 20 3d 3e 20 24 66 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 ,.'files'.=>.$files);.}........p
a0c20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 61 ublic.function.createLoader(arra
a0c40 79 20 24 61 75 74 6f 6c 6f 61 64 73 29 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 6c y.$autoloads).{.$loader.=.new.Cl
a0c60 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 assLoader();..if.(isset($autoloa
a0c80 64 73 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f ds['psr-0'])).{.foreach.($autolo
a0ca0 61 64 73 5b 27 70 73 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 ads['psr-0'].as.$namespace.=>.$p
a0cc0 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 ath).{.$loader->add($namespace,.
a0ce0 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 $path);.}.}..if.(isset($autoload
a0d00 73 5b 27 70 73 72 2d 34 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 s['psr-4'])).{.foreach.($autoloa
a0d20 64 73 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 ds['psr-4'].as.$namespace.=>.$pa
a0d40 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 50 73 72 34 28 24 6e 61 6d 65 73 70 61 63 th).{.$loader->addPsr4($namespac
a0d60 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a e,.$path);.}.}..return.$loader;.
a0d80 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 }..protected.function.getInclude
a0da0 50 61 74 68 73 46 69 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 6c PathsFile(array.$packageMap,.Fil
a0dc0 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 esystem.$filesystem,.$basePath,.
a0de0 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 $vendorPath,.$vendorPathCode,.$a
a0e00 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 0a 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d ppBaseDirCode).{.$includePaths.=
a0e20 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 .array();..foreach.($packageMap.
a0e40 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 as.$item).{.list($package,.$inst
a0e60 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 allPath).=.$item;..if.(null.!==.
a0e80 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 73 74 72 6c $package->getTargetDir().&&.strl
a0ea0 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 3e 20 30 en($package->getTargetDir()).>.0
a0ec0 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 6e 73 74 61 ).{.$installPath.=.substr($insta
a0ee0 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d llPath,.0,.-strlen('/'.$package-
a0f00 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 >getTargetDir()));.}..foreach.($
a0f20 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 20 61 73 20 24 69 package->getIncludePaths().as.$i
a0f40 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 69 ncludePath).{.$includePath.=.tri
a0f60 6d 28 24 69 6e 63 6c 75 64 65 50 61 74 68 2c 20 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 m($includePath,.'/');.$includePa
a0f80 74 68 73 5b 5d 20 3d 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 69 ths[].=.empty($installPath).?.$i
a0fa0 6e 63 6c 75 64 65 50 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 69 ncludePath.:.$installPath.'/'.$i
a0fc0 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 61 ncludePath;.}.}..if.(!$includePa
a0fe0 74 68 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 ths).{.return;.}..$includePathsC
a1000 6f 64 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 ode.=.'';.foreach.($includePaths
a1020 20 61 73 20 24 70 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 2e .as.$path).{.$includePathsCode..
a1040 3d 20 22 20 20 20 20 22 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 =."...."...$this->getPathCode($f
a1060 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 ilesystem,.$basePath,.$vendorPat
a1080 68 2c 20 24 70 61 74 68 29 20 2e 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c h,.$path)...",\n";.}..return.<<<
a10a0 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 EOF.<?php..//.include_paths.php.
a10c0 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 @generated.by.Composer..\$vendor
a10e0 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 Dir.=.$vendorPathCode;.\$baseDir
a1100 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 .=.$appBaseDirCode;..return.arra
a1120 79 28 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a y(.$includePathsCode);..EOF;.}..
a1140 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 46 69 6c protected.function.getIncludeFil
a1160 65 73 46 69 6c 65 28 61 72 72 61 79 20 24 66 69 6c 65 73 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 esFile(array.$files,.Filesystem.
a1180 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 $filesystem,.$basePath,.$vendorP
a11a0 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 ath,.$vendorPathCode,.$appBaseDi
a11c0 72 43 6f 64 65 29 0a 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 rCode).{.$filesCode.=.'';.foreac
a11e0 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 20 7b 0a 24 66 h.($files.as.$functionFile).{.$f
a1200 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 74 ilesCode..=.'....'.$this->getPat
a1220 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 hCode($filesystem,.$basePath,.$v
a1240 65 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 2e 22 2c 5c 6e 22 3b endorPath,.$functionFile).",\n";
a1260 0a 7d 0a 0a 69 66 20 28 21 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 .}..if.(!$filesCode).{.return.fa
a1280 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 lse;.}..return.<<<EOF.<?php..//.
a12a0 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 autoload_files.php.@generated.by
a12c0 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 .Composer..\$vendorDir.=.$vendor
a12e0 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 42 61 73 65 44 69 PathCode;.\$baseDir.=.$appBaseDi
a1300 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 66 69 6c 65 73 43 6f 64 65 rCode;..return.array(.$filesCode
a1320 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 );..EOF;.}..protected.function.g
a1340 65 74 50 61 74 68 43 6f 64 65 28 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 etPathCode(Filesystem.$filesyste
a1360 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 m,.$basePath,.$vendorPath,.$path
a1380 29 0a 7b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 ).{.if.(!$filesystem->isAbsolute
a13a0 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 62 61 73 65 50 61 74 68 Path($path)).{.$path.=.$basePath
a13c0 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 24 70 61 74 68 20 3d 20 24 66 69 6c 65 73 ...'/'...$path;.}.$path.=.$files
a13e0 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 0a 24 62 ystem->normalizePath($path);..$b
a1400 61 73 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 74 68 2e 27 2f aseDir.=.'';.if.(strpos($path.'/
a1420 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 70 61 ',.$vendorPath.'/').===.0).{.$pa
a1440 74 68 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 76 65 6e 64 6f th.=.substr($path,.strlen($vendo
a1460 72 50 61 74 68 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 27 24 76 65 6e 64 6f 72 44 69 72 27 rPath));.$baseDir.=.'$vendorDir'
a1480 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 62 61 73 65 44 ;..if.($path.!==.false).{.$baseD
a14a0 69 72 20 2e 3d 20 22 20 2e 20 22 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 68 20 3d 20 ir..=."...";.}.}.else.{.$path.=.
a14c0 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 $filesystem->normalizePath($file
a14e0 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 28 24 62 61 73 65 50 61 system->findShortestPath($basePa
a1500 74 68 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 th,.$path,.true));.if.(!$filesys
a1520 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 62 tem->isAbsolutePath($path)).{.$b
a1540 61 73 65 44 69 72 20 3d 20 27 24 62 61 73 65 44 69 72 20 2e 20 27 3b 0a 24 70 61 74 68 20 3d 20 aseDir.=.'$baseDir...';.$path.=.
a1560 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 '/'...$path;.}.}..if.(preg_match
a1580 28 27 2f 5c 2e 70 68 61 72 24 2f 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 62 61 73 65 44 69 72 ('/\.phar$/',.$path)).{.$baseDir
a15a0 20 3d 20 22 27 70 68 61 72 3a 2f 2f 27 20 2e 20 22 20 2e 20 24 62 61 73 65 44 69 72 3b 0a 7d 0a .=."'phar://'..."...$baseDir;.}.
a15c0 0a 72 65 74 75 72 6e 20 24 62 61 73 65 44 69 72 20 2e 20 28 28 24 70 61 74 68 20 21 3d 3d 20 66 .return.$baseDir...(($path.!==.f
a15e0 61 6c 73 65 29 20 3f 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c 20 74 72 75 65 29 20 alse).?.var_export($path,.true).
a1600 3a 20 22 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 :."");.}..protected.function.get
a1620 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 AutoloadFile($vendorPathToTarget
a1640 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 41 55 DirCode,.$suffix).{.return.<<<AU
a1660 54 4f 4c 4f 41 44 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 2e 70 68 70 20 40 67 TOLOAD.<?php..//.autoload.php.@g
a1680 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 71 75 69 72 65 5f 6f 6e enerated.by.Composer..require_on
a16a0 63 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 20 2e 20 ce.$vendorPathToTargetDirCode...
a16c0 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f '/autoload_real.php';..return.Co
a16e0 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 3a 3a 67 65 74 mposerAutoloaderInit$suffix::get
a1700 4c 6f 61 64 65 72 28 29 3b 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 Loader();..AUTOLOAD;.}..protecte
a1720 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 61 6c 46 69 6c 65 28 24 d.function.getAutoloadRealFile($
a1740 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 74 useClassMap,.$useIncludePath,.$t
a1760 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 46 69 6c 65 73 argetDirLoader,.$useIncludeFiles
a1780 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f ,.$vendorPathCode,.$appBaseDirCo
a17a0 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 de,.$suffix,.$useGlobalIncludePa
a17c0 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 2c 20 24 63 6c 61 73 73 4d 61 th,.$prependAutoloader,.$classMa
a17e0 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 66 pAuthoritative).{.............$f
a1800 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f ile.=.<<<HEADER.<?php..//.autolo
a1820 61 64 5f 72 65 61 6c 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 ad_real.php.@generated.by.Compos
a1840 65 72 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 er..class.ComposerAutoloaderInit
a1860 24 73 75 66 66 69 78 0a 7b 0a 20 20 20 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 5c 24 6c $suffix.{.....private.static.\$l
a1880 6f 61 64 65 72 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 oader;......public.static.functi
a18a0 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 on.loadClassLoader(\$class).....
a18c0 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 {.........if.('Composer\\Autoloa
a18e0 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 5c 24 63 6c 61 73 73 29 20 7b 0a 20 d\\ClassLoader'.===.\$class).{..
a1900 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 ...........require.__DIR__...'/C
a1920 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d lassLoader.php';.........}.....}
a1940 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ......public.static.function.get
a1960 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20 Loader().....{.........if.(null.
a1980 21 3d 3d 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 !==.self::\$loader).{...........
a19a0 20 20 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 20 20 20 ..return.self::\$loader;........
a19c0 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 .}..........spl_autoload_registe
a19e0 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 r(array('ComposerAutoloaderInit$
a1a00 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 suffix',.'loadClassLoader'),.tru
a1a20 65 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 20 20 20 20 20 20 20 20 e,.$prependAutoloader);.........
a1a40 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 20 3d 20 5c 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 self::\$loader.=.\$loader.=.new.
a1a60 5c 5c 43 6f 6d 70 6f 73 65 72 5c 5c 41 75 74 6f 6c 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 \\Composer\\Autoload\\ClassLoade
a1a80 72 28 29 3b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 r();.........spl_autoload_unregi
a1aa0 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e ster(array('ComposerAutoloaderIn
a1ac0 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b it$suffix',.'loadClassLoader'));
a1ae0 0a 0a 0a 48 45 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 ...HEADER;..if.($useIncludePath)
a1b00 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 .{.$file..=.<<<'INCLUDE_PATH'...
a1b20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 5f 5f ......$includePaths.=.require.__
a1b40 44 49 52 5f 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 DIR__...'/include_paths.php';...
a1b60 20 20 20 20 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 ......array_push($includePaths,.
a1b80 67 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 20 20 20 20 20 20 73 65 74 get_include_path());.........set
a1ba0 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 6a 6f 69 6e 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f _include_path(join(PATH_SEPARATO
a1bc0 52 2c 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 29 3b 0a 0a 0a 49 4e 43 4c 55 44 45 5f 50 41 R,.$includePaths));...INCLUDE_PA
a1be0 54 48 3b 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 20 20 TH;.}..$file..=.<<<'PSR0'.......
a1c00 20 20 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 ..$map.=.require.__DIR__...'/aut
a1c20 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 oload_namespaces.php';.........f
a1c40 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 oreach.($map.as.$namespace.=>.$p
a1c60 61 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 28 ath).{.............$loader->set(
a1c80 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a $namespace,.$path);.........}...
a1ca0 50 53 52 30 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 34 27 0a 20 20 20 20 20 20 PSR0;..$file..=.<<<'PSR4'.......
a1cc0 20 20 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 ..$map.=.require.__DIR__...'/aut
a1ce0 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 oload_psr4.php';.........foreach
a1d00 20 28 24 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b .($map.as.$namespace.=>.$path).{
a1d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 50 73 72 34 28 24 6e .............$loader->setPsr4($n
a1d40 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 50 53 amespace,.$path);.........}...PS
a1d60 52 34 3b 0a 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 2e R4;..if.($useClassMap).{.$file..
a1d80 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4d 61 =.<<<'CLASSMAP'.........$classMa
a1da0 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 p.=.require.__DIR__...'/autoload
a1dc0 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6c 61 _classmap.php';.........if.($cla
a1de0 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 ssMap).{.............$loader->ad
a1e00 64 43 6c 61 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a dClassMap($classMap);.........}.
a1e20 0a 0a 43 4c 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 63 6c 61 73 73 4d 61 70 41 75 74 68 ..CLASSMAP;.}..if.($classMapAuth
a1e40 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 43 4c 41 53 53 4d oritative).{.$file..=.<<<'CLASSM
a1e60 41 50 41 55 54 48 4f 52 49 54 41 54 49 56 45 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 APAUTHORITATIVE'.........$loader
a1e80 2d 3e 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 74 72 75 65 29 ->setClassMapAuthoritative(true)
a1ea0 3b 0a 0a 43 4c 41 53 53 4d 41 50 41 55 54 48 4f 52 49 54 41 54 49 56 45 3b 0a 7d 0a 0a 69 66 20 ;..CLASSMAPAUTHORITATIVE;.}..if.
a1ec0 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 66 69 6c 65 20 ($useGlobalIncludePath).{.$file.
a1ee0 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 50 41 54 48 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 .=.<<<'INCLUDEPATH'.........$loa
a1f00 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 0a 49 der->setUseIncludePath(true);..I
a1f20 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 28 24 74 61 72 67 65 74 44 69 72 4c 6f 61 NCLUDEPATH;.}..if.($targetDirLoa
a1f40 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 41 55 54 4f der).{.$file..=.<<<REGISTER_AUTO
a1f60 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 LOAD.........spl_autoload_regist
a1f80 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 er(array('ComposerAutoloaderInit
a1fa0 24 73 75 66 66 69 78 27 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 2c 20 74 72 75 65 2c 20 74 72 75 $suffix',.'autoload'),.true,.tru
a1fc0 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 24 66 69 6c e);...REGISTER_AUTOLOAD;.}..$fil
a1fe0 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f 4c 4f 41 44 45 52 0a 20 20 20 20 20 20 20 20 e..=.<<<REGISTER_LOADER.........
a2000 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 41 75 74 6f 6c \$loader->register($prependAutol
a2020 6f 61 64 65 72 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 4c 4f 41 44 45 52 3b 0a 0a 69 66 20 28 oader);...REGISTER_LOADER;..if.(
a2040 24 75 73 65 49 6e 63 6c 75 64 65 46 69 6c 65 73 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c $useIncludeFiles).{.$file..=.<<<
a2060 49 4e 43 4c 55 44 45 5f 46 49 4c 45 53 0a 20 20 20 20 20 20 20 20 5c 24 69 6e 63 6c 75 64 65 46 INCLUDE_FILES.........\$includeF
a2080 69 6c 65 73 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c iles.=.require.__DIR__...'/autol
a20a0 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 oad_files.php';.........foreach.
a20c0 28 5c 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 61 73 20 5c 24 66 69 6c 65 29 20 7b 0a 20 20 20 (\$includeFiles.as.\$file).{....
a20e0 20 20 20 20 20 20 20 20 20 63 6f 6d 70 6f 73 65 72 52 65 71 75 69 72 65 24 73 75 66 66 69 78 28 .........composerRequire$suffix(
a2100 5c 24 66 69 6c 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 49 4e 43 4c 55 44 45 5f 46 49 4c \$file);.........}...INCLUDE_FIL
a2120 45 53 3b 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 4d 45 54 48 4f 44 5f 46 4f 4f 54 45 52 ES;.}..$file..=.<<<METHOD_FOOTER
a2140 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 7d 0a .........return.\$loader;.....}.
a2160 0a 4d 45 54 48 4f 44 5f 46 4f 4f 54 45 52 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 67 65 .METHOD_FOOTER;..$file..=.$targe
a2180 74 44 69 72 4c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 20 2e 20 3c 3c 3c 46 tDirLoader;..return.$file...<<<F
a21a0 4f 4f 54 45 52 0a 7d 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 6f 73 65 72 52 65 71 75 69 72 OOTER.}..function.composerRequir
a21c0 65 24 73 75 66 66 69 78 28 5c 24 66 69 6c 65 29 0a 7b 0a 20 20 20 20 72 65 71 75 69 72 65 20 5c e$suffix(\$file).{.....require.\
a21e0 24 66 69 6c 65 3b 0a 7d 0a 0a 46 4f 4f 54 45 52 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 $file;.}..FOOTER;.}..protected.f
a2200 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 unction.parseAutoloadsType(array
a2220 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 74 79 70 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 .$packageMap,.$type,.PackageInte
a2240 72 66 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 rface.$mainPackage).{.$autoloads
a2260 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 .=.array();..foreach.($packageMa
a2280 70 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e p.as.$item).{.list($package,.$in
a22a0 73 74 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 20 3d stallPath).=.$item;..$autoload.=
a22c0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 74 .$package->getAutoload();.if.($t
a22e0 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 6d 61 his->devMode.&&.$package.===.$ma
a2300 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 61 72 72 61 79 5f 6d inPackage).{.$autoload.=.array_m
a2320 65 72 67 65 5f 72 65 63 75 72 73 69 76 65 28 24 61 75 74 6f 6c 6f 61 64 2c 20 24 70 61 63 6b 61 erge_recursive($autoload,.$packa
a2340 67 65 2d 3e 67 65 74 44 65 76 41 75 74 6f 6c 6f 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 ge->getDevAutoload());.}....if.(
a2360 21 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 69 73 5f !isset($autoload[$type]).||.!is_
a2380 61 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 array($autoload[$type])).{.conti
a23a0 6e 75 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 nue;.}.if.(null.!==.$package->ge
a23c0 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 tTargetDir().&&.$package.!==.$ma
a23e0 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 inPackage).{.$installPath.=.subs
a2400 74 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 2c 20 2d 73 74 72 6c 65 6e 28 27 2f 27 2e tr($installPath,.0,.-strlen('/'.
a2420 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 3b 0a 7d 0a 0a 66 $package->getTargetDir()));.}..f
a2440 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 6e 61 6d oreach.($autoload[$type].as.$nam
a2460 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 espace.=>.$paths).{.foreach.((ar
a2480 72 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 28 24 74 79 ray).$paths.as.$path).{.if.(($ty
a24a0 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 7c 7c 20 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 pe.===.'files'.||.$type.===.'cla
a24c0 73 73 6d 61 70 27 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 ssmap').&&.$package->getTargetDi
a24e0 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 r().&&.!is_readable($installPath
a2500 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 3d .'/'.$path)).{...if.($package.==
a2520 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 73 =.$mainPackage).{.$targetDir.=.s
a2540 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 27 5b 5c 5c 5c tr_replace('\\<dirsep\\>',.'[\\\
a2560 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 \/]',.preg_quote(str_replace(arr
a2580 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 24 70 61 63 6b ay('/',.'\\'),.'<dirsep>',.$pack
a25a0 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 74 68 20 3d 20 age->getTargetDir())));.$path.=.
a25c0 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 72 67 65 74 44 ltrim(preg_replace('{^'.$targetD
a25e0 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c 5c 2f 27 29 29 ir.'}',.'',.ltrim($path,.'\\/'))
a2600 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 70 61 74 68 20 3d 20 24 70 61 ,.'\\/');.}.else.{...$path.=.$pa
a2620 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 ckage->getTargetDir()...'/'...$p
a2640 61 74 68 3b 0a 7d 0a 7d 0a 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 65 6d 70 74 79 28 ath;.}.}..$relativePath.=.empty(
a2660 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 28 65 6d 70 74 79 28 24 70 61 74 68 29 20 3f 20 $installPath).?.(empty($path).?.
a2680 27 2e 27 20 3a 20 24 70 61 74 68 29 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e '.'.:.$path).:.$installPath.'/'.
a26a0 24 70 61 74 68 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 7c 7c $path;..if.($type.===.'files'.||
a26c0 20 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 29 20 7b 0a 24 61 75 74 6f 6c 6f .$type.===.'classmap').{.$autolo
a26e0 61 64 73 5b 5d 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 63 6f 6e 74 69 6e 75 65 3b ads[].=.$relativePath;.continue;
a2700 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 24 .}..$autoloads[$namespace][].=.$
a2720 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 75 74 relativePath;.}.}.}..return.$aut
a2740 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e oloads;.}..........protected.fun
a2760 63 74 69 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 61 72 72 61 79 20 24 70 61 63 6b ction.sortPackageMap(array.$pack
a2780 61 67 65 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 ageMap).{.$packages.=.array();.$
a27a0 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 73 61 67 65 4c 69 73 74 20 3d 20 61 72 paths.=.array();.$usageList.=.ar
a27c0 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 ray();..foreach.($packageMap.as.
a27e0 24 69 74 65 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 20 3d $item).{.list($package,.$path).=
a2800 20 24 69 74 65 6d 3b 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d .$item;.$name.=.$package->getNam
a2820 65 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 e();.$packages[$name].=.$package
a2840 3b 0a 24 70 61 74 68 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 74 68 3b 0a 0a 66 6f 72 65 61 63 ;.$paths[$name].=.$path;..foreac
a2860 68 20 28 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 h.(array_merge($package->getRequ
a2880 69 72 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 ires(),.$package->getDevRequires
a28a0 28 29 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 6c 69 6e 6b 2d ()).as.$link).{.$target.=.$link-
a28c0 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 24 75 73 61 67 65 4c 69 73 74 5b 24 74 61 72 67 65 74 >getTarget();.$usageList[$target
a28e0 5d 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 70 75 74 69 6e 67 20 3d 20 61 ][].=.$name;.}.}..$computing.=.a
a2900 72 72 61 79 28 29 3b 0a 24 63 6f 6d 70 75 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f rray();.$computed.=.array();.$co
a2920 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6e 61 6d mputeImportance.=.function.($nam
a2940 65 29 20 75 73 65 20 28 26 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 2c 20 26 24 63 e).use.(&$computeImportance,.&$c
a2960 6f 6d 70 75 74 69 6e 67 2c 20 26 24 63 6f 6d 70 75 74 65 64 2c 20 24 75 73 61 67 65 4c 69 73 74 omputing,.&$computed,.$usageList
a2980 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 5d ).{...if.(isset($computed[$name]
a29a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a )).{.return.$computed[$name];.}.
a29c0 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 6f 6d 70 75 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 ...if.(isset($computing[$name]))
a29e0 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 63 6f 6d 70 75 74 69 6e 67 5b 24 6e 61 6d 65 .{.return.0;.}..$computing[$name
a2a00 5d 20 3d 20 74 72 75 65 3b 0a 24 77 65 69 67 68 74 20 3d 20 30 3b 0a 0a 69 66 20 28 69 73 73 65 ].=.true;.$weight.=.0;..if.(isse
a2a20 74 28 24 75 73 61 67 65 4c 69 73 74 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 t($usageList[$name])).{.foreach.
a2a40 28 24 75 73 61 67 65 4c 69 73 74 5b 24 6e 61 6d 65 5d 20 61 73 20 24 75 73 65 72 29 20 7b 0a 24 ($usageList[$name].as.$user).{.$
a2a60 77 65 69 67 68 74 20 2d 3d 20 31 20 2d 20 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 weight.-=.1.-.$computeImportance
a2a80 28 24 75 73 65 72 29 3b 0a 7d 0a 7d 0a 0a 75 6e 73 65 74 28 24 63 6f 6d 70 75 74 69 6e 67 5b 24 ($user);.}.}..unset($computing[$
a2aa0 6e 61 6d 65 5d 29 3b 0a 24 63 6f 6d 70 75 74 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 77 65 69 67 name]);.$computed[$name].=.$weig
a2ac0 68 74 3b 0a 0a 72 65 74 75 72 6e 20 24 77 65 69 67 68 74 3b 0a 7d 3b 0a 0a 24 77 65 69 67 68 74 ht;..return.$weight;.};..$weight
a2ae0 4c 69 73 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 List.=.array();..foreach.($packa
a2b00 67 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 77 65 69 ges.as.$name.=>.$package).{.$wei
a2b20 67 68 74 20 3d 20 24 63 6f 6d 70 75 74 65 49 6d 70 6f 72 74 61 6e 63 65 28 24 6e 61 6d 65 29 3b ght.=.$computeImportance($name);
a2b40 0a 24 77 65 69 67 68 74 4c 69 73 74 5b 24 6e 61 6d 65 5d 20 3d 20 24 77 65 69 67 68 74 3b 0a 7d .$weightList[$name].=.$weight;.}
a2b60 0a 0a 24 73 74 61 62 6c 65 5f 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 61 72 72 ..$stable_sort.=.function.(&$arr
a2b80 61 79 29 20 7b 0a 73 74 61 74 69 63 20 24 74 72 61 6e 73 66 6f 72 6d 2c 20 24 72 65 73 74 6f 72 ay).{.static.$transform,.$restor
a2ba0 65 3b 0a 0a 24 69 20 3d 20 30 3b 0a 0a 69 66 20 28 21 24 74 72 61 6e 73 66 6f 72 6d 29 20 7b 0a e;..$i.=.0;..if.(!$transform).{.
a2bc0 24 74 72 61 6e 73 66 6f 72 6d 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 76 2c 20 24 6b 29 20 $transform.=.function.(&$v,.$k).
a2be0 75 73 65 20 28 26 24 69 29 20 7b 0a 24 76 20 3d 20 61 72 72 61 79 28 24 76 2c 20 2b 2b 24 69 2c use.(&$i).{.$v.=.array($v,.++$i,
a2c00 20 24 6b 2c 20 24 76 29 3b 0a 7d 3b 0a 0a 24 72 65 73 74 6f 72 65 20 3d 20 66 75 6e 63 74 69 6f .$k,.$v);.};..$restore.=.functio
a2c20 6e 20 28 26 24 76 2c 20 24 6b 29 20 7b 0a 24 76 20 3d 20 24 76 5b 33 5d 3b 0a 7d 3b 0a 7d 0a 0a n.(&$v,.$k).{.$v.=.$v[3];.};.}..
a2c40 61 72 72 61 79 5f 77 61 6c 6b 28 24 61 72 72 61 79 2c 20 24 74 72 61 6e 73 66 6f 72 6d 29 3b 0a array_walk($array,.$transform);.
a2c60 61 73 6f 72 74 28 24 61 72 72 61 79 29 3b 0a 61 72 72 61 79 5f 77 61 6c 6b 28 24 61 72 72 61 79 asort($array);.array_walk($array
a2c80 2c 20 24 72 65 73 74 6f 72 65 29 3b 0a 7d 3b 0a 0a 24 73 74 61 62 6c 65 5f 73 6f 72 74 28 24 77 ,.$restore);.};..$stable_sort($w
a2ca0 65 69 67 68 74 4c 69 73 74 29 3b 0a 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d eightList);..$sortedPackageMap.=
a2cc0 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 .array();..foreach.(array_keys($
a2ce0 77 65 69 67 68 74 4c 69 73 74 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 73 6f 72 74 65 64 50 weightList).as.$name).{.$sortedP
a2d00 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 73 5b 24 6e ackageMap[].=.array($packages[$n
a2d20 61 6d 65 5d 2c 20 24 70 61 74 68 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ame],.$paths[$name]);.}..return.
a2d40 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a $sortedPackageMap;.}.}.<?php....
a2d60 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f .........namespace.Composer\Auto
a2d80 6c 6f 61 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e load;..use.Symfony\Component\Fin
a2da0 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e der\Finder;.use.Composer\IO\IOIn
a2dc0 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 terface;........class.ClassMapGe
a2de0 6e 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 nerator.{.......public.static.fu
a2e00 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 nction.dump($dirs,.$file).{.$map
a2e20 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 s.=.array();..foreach.($dirs.as.
a2e40 24 64 69 72 29 20 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 $dir).{.$maps.=.array_merge($map
a2e60 73 2c 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a s,.static::createMap($dir));.}..
a2e80 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 file_put_contents($file,.sprintf
a2ea0 28 27 3c 3f 70 68 70 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 ('<?php.return.%s;',.var_export(
a2ec0 24 6d 61 70 73 2c 20 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 $maps,.true)));.}..............p
a2ee0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 ublic.static.function.createMap(
a2f00 24 70 61 74 68 2c 20 24 77 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 2c 20 49 4f 49 6e 74 65 $path,.$whitelist.=.null,.IOInte
a2f20 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e rface.$io.=.null,.$namespace.=.n
a2f40 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 74 68 29 29 20 7b 0a 69 ull).{.if.(is_string($path)).{.i
a2f60 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 61 72 72 f.(is_file($path)).{.$path.=.arr
a2f80 61 79 28 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 70 61 74 68 29 29 3b 0a 7d 20 65 ay(new.\SplFileInfo($path));.}.e
a2fa0 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 lseif.(is_dir($path)).{.$path.=.
a2fc0 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 66 69 6c 65 73 28 29 2d 3e 66 6f 6c 6c 6f Finder::create()->files()->follo
a2fe0 77 4c 69 6e 6b 73 28 29 2d 3e 6e 61 6d 65 28 27 2f 5c 2e 28 70 68 70 7c 69 6e 63 7c 68 68 29 24 wLinks()->name('/\.(php|inc|hh)$
a3000 2f 27 29 2d 3e 69 6e 28 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e /')->in($path);.}.else.{.throw.n
a3020 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 ew.\RuntimeException(.'Could.not
a3040 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 22 27 2e 24 70 61 74 .scan.for.classes.inside."'.$pat
a3060 68 2e 0a 27 22 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 62 h..'".which.does.not.appear.to.b
a3080 65 20 61 20 66 69 6c 65 20 6e 6f 72 20 61 20 66 6f 6c 64 65 72 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 e.a.file.nor.a.folder'.);.}.}..$
a30a0 6d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 20 61 map.=.array();..foreach.($path.a
a30c0 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 50 61 74 68 20 3d 20 24 66 69 6c 65 2d 3e 67 65 s.$file).{.$filePath.=.$file->ge
a30e0 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 70 61 74 68 tRealPath();..if.(!in_array(path
a3100 69 6e 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 info($filePath,.PATHINFO_EXTENSI
a3120 4f 4e 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 69 6e 63 27 2c 20 27 68 68 27 29 29 29 ON),.array('php',.'inc',.'hh')))
a3140 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 68 69 74 65 6c 69 73 74 20 26 .{.continue;.}..if.($whitelist.&
a3160 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 2c 20 73 74 72 74 72 28 &.!preg_match($whitelist,.strtr(
a3180 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e $filePath,.'\\',.'/'))).{.contin
a31a0 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 69 6e 64 43 6c 61 73 ue;.}..$classes.=.self::findClas
a31c0 73 65 73 28 24 66 69 6c 65 50 61 74 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 ses($filePath);..foreach.($class
a31e0 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 es.as.$class).{...if.(null.!==.$
a3200 6e 61 6d 65 73 70 61 63 65 20 26 26 20 30 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 namespace.&&.0.!==.strpos($class
a3220 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 ,.$namespace)).{.continue;.}..if
a3240 20 28 21 69 73 73 65 74 28 24 6d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 6d 61 70 5b 24 .(!isset($map[$class])).{.$map[$
a3260 63 6c 61 73 73 5d 20 3d 20 24 66 69 6c 65 50 61 74 68 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 class].=.$filePath;.}.elseif.($i
a3280 6f 20 26 26 20 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 21 3d 3d 20 24 66 69 6c 65 50 61 74 68 20 o.&&.$map[$class].!==.$filePath.
a32a0 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 2f 28 74 65 73 74 7c 66 69 78 74 75 72 65 7c &&.!preg_match('{/(test|fixture|
a32c0 65 78 61 6d 70 6c 65 29 73 3f 2f 7d 69 27 2c 20 73 74 72 74 72 28 24 6d 61 70 5b 24 63 6c 61 73 example)s?/}i',.strtr($map[$clas
a32e0 73 5d 2e 27 20 27 2e 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b s].'.'.$filePath,.'\\',.'/'))).{
a3300 0a 24 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e .$io->writeError(.'<warning>Warn
a3320 69 6e 67 3a 20 41 6d 62 69 67 75 6f 75 73 20 63 6c 61 73 73 20 72 65 73 6f 6c 75 74 69 6f 6e 2c ing:.Ambiguous.class.resolution,
a3340 20 22 27 2e 24 63 6c 61 73 73 2e 27 22 27 2e 0a 27 20 77 61 73 20 66 6f 75 6e 64 20 69 6e 20 62 ."'.$class.'"'..'.was.found.in.b
a3360 6f 74 68 20 22 27 2e 24 6d 61 70 5b 24 63 6c 61 73 73 5d 2e 27 22 20 61 6e 64 20 22 27 2e 24 66 oth."'.$map[$class].'".and."'.$f
a3380 69 6c 65 50 61 74 68 2e 27 22 2c 20 74 68 65 20 66 69 72 73 74 20 77 69 6c 6c 20 62 65 20 75 73 ilePath.'",.the.first.will.be.us
a33a0 65 64 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ed.</warning>'.);.}.}.}..return.
a33c0 24 6d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 $map;.}.........private.static.f
a33e0 75 6e 63 74 69 6f 6e 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 65 78 unction.findClasses($path).{.$ex
a3400 74 72 61 54 79 70 65 73 20 3d 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 traTypes.=.version_compare(PHP_V
a3420 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 2c 20 27 3c 27 29 20 3f 20 27 27 20 3a 20 27 7c 74 72 61 ERSION,.'5.4',.'<').?.''.:.'|tra
a3440 69 74 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 it';.if.(defined('HHVM_VERSION')
a3460 20 26 26 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 48 48 56 4d 5f 56 45 52 53 49 4f 4e .&&.version_compare(HHVM_VERSION
a3480 2c 20 27 33 2e 33 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 65 78 74 72 61 54 79 70 65 73 20 2e 3d ,.'3.3',.'>=')).{.$extraTypes..=
a34a0 20 27 7c 65 6e 75 6d 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 40 .'|enum';.}..try.{.$contents.=.@
a34c0 70 68 70 5f 73 74 72 69 70 5f 77 68 69 74 65 73 70 61 63 65 28 24 70 61 74 68 29 3b 0a 69 66 20 php_strip_whitespace($path);.if.
a34e0 28 21 24 63 6f 6e 74 65 6e 74 73 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 (!$contents).{.if.(!file_exists(
a3500 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 $path)).{.throw.new.\Exception('
a3520 46 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 File.does.not.exist');.}.if.(!is
a3540 5f 72 65 61 64 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 _readable($path)).{.throw.new.\E
a3560 78 63 65 70 74 69 6f 6e 28 27 46 69 6c 65 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 27 29 xception('File.is.not.readable')
a3580 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ;.}.}.}.catch.(\Exception.$e).{.
a35a0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 throw.new.\RuntimeException('Cou
a35c0 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 65 20 27 ld.not.scan.for.classes.inside.'
a35e0 2e 24 70 61 74 68 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 .$path.":.\n".$e->getMessage(),.
a3600 30 2c 20 24 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5c 0,.$e);.}....if.(!preg_match('{\
a3620 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 65 78 74 72 61 54 79 70 65 73 b(?:class|interface'.$extraTypes
a3640 2e 27 29 5c 73 7d 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 .')\s}i',.$contents)).{.return.a
a3660 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 rray();.}....$contents.=.preg_re
a3680 70 6c 61 63 65 28 27 7b 3c 3c 3c 5c 73 2a 28 5c 27 3f 29 28 5c 77 2b 29 5c 5c 31 28 3f 3a 5c 72 place('{<<<\s*(\'?)(\w+)\\1(?:\r
a36a0 5c 6e 7c 5c 6e 7c 5c 72 29 28 3f 3a 2e 2a 3f 29 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 5c 5c \n|\n|\r)(?:.*?)(?:\r\n|\n|\r)\\
a36c0 32 28 3f 3d 5c 72 5c 6e 7c 5c 6e 7c 5c 72 7c 3b 29 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 2(?=\r\n|\n|\r|;)}s',.'null',.$c
a36e0 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 ontents);...$contents.=.preg_rep
a3700 6c 61 63 65 28 27 7b 22 5b 5e 22 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a lace('{"[^"\\\\]*(\\\\.[^"\\\\]*
a3720 29 2a 22 7c 5c 27 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a )*"|\'[^\'\\\\]*(\\\\.[^\'\\\\]*
a3740 29 2a 5c 27 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 69 )*\'}s',.'null',.$contents);...i
a3760 66 20 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 32 29 20 21 3d 3d 20 27 f.(substr($contents,.0,.2).!==.'
a3780 3c 3f 27 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 <?').{.$contents.=.preg_replace(
a37a0 27 7b 5e 2e 2b 3f 3c 5c 3f 7d 73 27 2c 20 27 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 2c 20 31 '{^.+?<\?}s',.'<?',.$contents,.1
a37c0 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 29 3b 0a 69 66 20 28 24 72 65 70 6c 61 63 65 6d 65 ,.$replacements);.if.($replaceme
a37e0 6e 74 73 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d nts.===.0).{.return.array();.}.}
a3800 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 3f ...$contents.=.preg_replace('{\?
a3820 3e 2e 2b 3c 5c 3f 7d 73 27 2c 20 27 3f 3e 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a >.+<\?}s',.'?><?',.$contents);..
a3840 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 27 3f 3e 27 29 .$pos.=.strrpos($contents,.'?>')
a3860 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 26 26 20 66 61 6c 73 65 20 3d 3d ;.if.(false.!==.$pos.&&.false.==
a3880 3d 20 73 74 72 70 6f 73 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 70 6f 73 29 =.strpos(substr($contents,.$pos)
a38a0 2c 20 27 3c 3f 27 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 73 75 62 73 74 72 28 24 63 ,.'<?')).{.$contents.=.substr($c
a38c0 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 ontents,.0,.$pos);.}..preg_match
a38e0 5f 61 6c 6c 28 27 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3a 0a 20 20 20 20 20 20 20 20 _all('{.............(?:.........
a3900 20 20 20 20 20 20 20 20 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 74 79 70 65 3e 63 .........\b(?<![\$:>])(?P<type>c
a3920 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 65 78 74 72 61 54 79 70 65 73 2e 27 29 20 5c lass|interface'.$extraTypes.').\
a3940 73 2b 20 28 3f 50 3c 6e 61 6d 65 3e 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 3a 5d 5b s+.(?P<name>[a-zA-Z_\x7f-\xff:][
a3960 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 3a 5c 2d 5d 2a 29 0a 20 20 20 20 20 20 a-zA-Z0-9_\x7f-\xff:\-]*).......
a3980 20 20 20 20 20 20 20 20 20 7c 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 6e 73 3e 6e .........|.\b(?<![\$:>])(?P<ns>n
a39a0 61 6d 65 73 70 61 63 65 29 20 28 3f 50 3c 6e 73 6e 61 6d 65 3e 5c 73 2b 5b 61 2d 7a 41 2d 5a 5f amespace).(?P<nsname>\s+[a-zA-Z_
a39c0 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a \x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
a39e0 28 3f 3a 5c 73 2a 5c 5c 5c 5c 5c 73 2a 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b (?:\s*\\\\\s*[a-zA-Z_\x7f-\xff][
a3a00 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 2a 29 3f 20 5c 73 2a 5b 5c 7b a-zA-Z0-9_\x7f-\xff]*)*)?.\s*[\{
a3a20 3b 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 7d 69 78 27 2c 20 24 ;].............).........}ix',.$
a3a40 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d contents,.$matches);..$classes.=
a3a60 20 61 72 72 61 79 28 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 66 6f 72 20 .array();.$namespace.=.'';..for.
a3a80 28 24 69 20 3d 20 30 2c 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 5b 27 ($i.=.0,.$len.=.count($matches['
a3aa0 74 79 70 65 27 5d 29 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 type']);.$i.<.$len;.$i++).{.if.(
a3ac0 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 27 6e 73 27 5d 5b 24 69 5d 29 29 20 7b 0a 24 6e !empty($matches['ns'][$i])).{.$n
a3ae0 61 6d 65 73 70 61 63 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 20 27 amespace.=.str_replace(array('.'
a3b00 2c 20 22 5c 74 22 2c 20 22 5c 72 22 2c 20 22 5c 6e 22 29 2c 20 27 27 2c 20 24 6d 61 74 63 68 65 ,."\t",."\r",."\n"),.'',.$matche
a3b20 73 5b 27 6e 73 6e 61 6d 65 27 5d 5b 24 69 5d 29 20 2e 20 27 5c 5c 27 3b 0a 7d 20 65 6c 73 65 20 s['nsname'][$i])...'\\';.}.else.
a3b40 7b 0a 24 6e 61 6d 65 20 3d 20 24 6d 61 74 63 68 65 73 5b 27 6e 61 6d 65 27 5d 5b 24 69 5d 3b 0a {.$name.=.$matches['name'][$i];.
a3b60 69 66 20 28 24 6e 61 6d 65 5b 30 5d 20 3d 3d 3d 20 27 3a 27 29 20 7b 0a 0a 20 24 6e 61 6d 65 20 if.($name[0].===.':').{...$name.
a3b80 3d 20 27 78 68 70 27 2e 73 75 62 73 74 72 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 =.'xhp'.substr(str_replace(array
a3ba0 28 27 2d 27 2c 20 27 3a 27 29 2c 20 61 72 72 61 79 28 27 5f 27 2c 20 27 5f 5f 27 29 2c 20 24 6e ('-',.':'),.array('_',.'__'),.$n
a3bc0 61 6d 65 29 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 27 74 ame),.1);.}.else.if.($matches['t
a3be0 79 70 65 27 5d 5b 24 69 5d 20 3d 3d 3d 20 27 65 6e 75 6d 27 29 20 7b 0a 0a 20 0a 20 0a 20 0a 20 ype'][$i].===.'enum').{.........
a3c00 24 6e 61 6d 65 20 3d 20 72 74 72 69 6d 28 24 6e 61 6d 65 2c 20 27 3a 27 29 3b 0a 7d 0a 24 63 6c $name.=.rtrim($name,.':');.}.$cl
a3c20 61 73 73 65 73 5b 5d 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 6e 61 asses[].=.ltrim($namespace...$na
a3c40 6d 65 2c 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6c 61 73 73 65 73 3b me,.'\\');.}.}..return.$classes;
a3c60 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 .}.}.<?php............namespace.
a3c80 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 Composer;..use.Composer\Autoload
a3ca0 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 \AutoloadGenerator;.use.Composer
a3cc0 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 \DependencyResolver\DefaultPolic
a3ce0 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 y;.use.Composer\DependencyResolv
a3d00 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 er\Operation\UpdateOperation;.us
a3d20 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 e.Composer\DependencyResolver\Op
a3d40 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f eration\InstallOperation;.use.Co
a3d60 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 mposer\DependencyResolver\Operat
a3d80 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 ion\UninstallOperation;.use.Comp
a3da0 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f oser\DependencyResolver\Operatio
a3dc0 6e 5c 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 n\OperationInterface;.use.Compos
a3de0 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 er\DependencyResolver\Pool;.use.
a3e00 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 65 71 75 Composer\DependencyResolver\Requ
a3e20 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f est;.use.Composer\DependencyReso
a3e40 6c 76 65 72 5c 52 75 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e lver\Rule;.use.Composer\Dependen
a3e60 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c cyResolver\Solver;.use.Composer\
a3e80 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d DependencyResolver\SolverProblem
a3ea0 73 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 sException;.use.Composer\Downloa
a3ec0 64 65 72 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 der\DownloadManager;.use.Compose
a3ee0 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 r\EventDispatcher\EventDispatche
a3f00 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c r;.use.Composer\Installer\Instal
a3f20 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 lationManager;.use.Composer\Inst
a3f40 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f aller\InstallerEvents;.use.Compo
a3f60 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 ser\Installer\NoopInstaller;.use
a3f80 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f .Composer\IO\IOInterface;.use.Co
a3fa0 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 mposer\Json\JsonFile;.use.Compos
a3fc0 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d er\Package\AliasPackage;.use.Com
a3fe0 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 poser\Package\CompletePackage;.u
a4000 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f se.Composer\Package\Link;.use.Co
a4020 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 mposer\Package\LinkConstraint\Ve
a4040 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 rsionConstraint;.use.Composer\Pa
a4060 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ckage\Locker;.use.Composer\Packa
a4080 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ge\PackageInterface;.use.Compose
a40a0 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a r\Package\RootPackageInterface;.
a40c0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 use.Composer\Repository\Composit
a40e0 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 eRepository;.use.Composer\Reposi
a4100 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 tory\InstalledArrayRepository;.u
a4120 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 se.Composer\Repository\Installed
a4140 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 FilesystemRepository;.use.Compos
a4160 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 er\Repository\PlatformRepository
a4180 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 ;.use.Composer\Repository\Reposi
a41a0 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f toryInterface;.use.Composer\Repo
a41c0 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f sitory\RepositoryManager;.use.Co
a41e0 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a mposer\Script\ScriptEvents;.....
a4200 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ...class.Installer.{....protecte
a4220 64 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a d.$io;.....protected.$config;...
a4240 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ..protected.$package;.....protec
a4260 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ted.$downloadManager;.....protec
a4280 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 ted.$repositoryManager;.....prot
a42a0 65 63 74 65 64 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e ected.$locker;.....protected.$in
a42c0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 stallationManager;.....protected
a42e0 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 .$eventDispatcher;.....protected
a4300 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 .$autoloadGenerator;..protected.
a4320 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 $preferSource.=.false;.protected
a4340 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 .$preferDist.=.false;.protected.
a4360 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f $optimizeAutoloader.=.false;.pro
a4380 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 tected.$devMode.=.false;.protect
a43a0 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 ed.$dryRun.=.false;.protected.$v
a43c0 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 erbose.=.false;.protected.$updat
a43e0 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 75 6d 70 41 75 74 6f 6c 6f e.=.false;.protected.$dumpAutolo
a4400 61 64 65 72 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6e 53 63 72 69 70 ader.=.true;.protected.$runScrip
a4420 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 67 6e 6f 72 65 50 6c 61 74 ts.=.true;.protected.$ignorePlat
a4440 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 formReqs.=.false;.protected.$pre
a4460 66 65 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 ferStable.=.false;.protected.$pr
a4480 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 eferLowest.=.false;......protect
a44a0 65 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 6f 74 ed.$updateWhitelist.=.null;.prot
a44c0 65 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 66 ected.$whitelistDependencies.=.f
a44e0 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 64 50 61 alse;.....protected.$suggestedPa
a4500 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e 61 ckages;.....protected.$additiona
a4520 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lInstalledRepository;...........
a4540 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
a4560 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c IOInterface.$io,.Config.$config,
a4580 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 .RootPackageInterface.$package,.
a45a0 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 DownloadManager.$downloadManager
a45c0 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d ,.RepositoryManager.$repositoryM
a45e0 61 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c 61 anager,.Locker.$locker,.Installa
a4600 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 tionManager.$installationManager
a4620 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 ,.EventDispatcher.$eventDispatch
a4640 65 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 er,.AutoloadGenerator.$autoloadG
a4660 65 6e 65 72 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 enerator).{.$this->io.=.$io;.$th
a4680 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 61 63 is->config.=.$config;.$this->pac
a46a0 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 kage.=.$package;.$this->download
a46c0 4d 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 Manager.=.$downloadManager;.$thi
a46e0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f s->repositoryManager.=.$reposito
a4700 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b ryManager;.$this->locker.=.$lock
a4720 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d er;.$this->installationManager.=
a4740 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 76 .$installationManager;.$this->ev
a4760 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 entDispatcher.=.$eventDispatcher
a4780 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 ;.$this->autoloadGenerator.=.$au
a47a0 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 toloadGenerator;.}.........publi
a47c0 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 67 63 5f 63 6f 6c 6c 65 63 74 5f 63 79 c.function.run().{.gc_collect_cy
a47e0 63 6c 65 73 28 29 3b 0a 67 63 5f 64 69 73 61 62 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 cles();.gc_disable();..if.($this
a4800 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 74 72 75 ->dryRun).{.$this->verbose.=.tru
a4820 65 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 e;.$this->runScripts.=.false;.$t
a4840 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 61 64 64 49 6e 73 his->installationManager->addIns
a4860 74 61 6c 6c 65 72 28 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 taller(new.NoopInstaller);.$this
a4880 2d 3e 6d 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 ->mockLocalRepositories($this->r
a48a0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 65 epositoryManager);.}......$devRe
a48c0 70 6f 20 3d 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f po.=.new.InstalledFilesystemRepo
a48e0 73 69 74 6f 72 79 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 sitory(new.JsonFile($this->confi
a4900 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f g->get('vendor-dir').'/composer/
a4920 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 52 installed_dev.json'));.if.($devR
a4940 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d epo->getPackages()).{.$this->io-
a4960 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e 67 3e 42 43 20 4e 6f 74 69 63 65 3a >writeError('<warning>BC.Notice:
a4980 20 52 65 6d 6f 76 69 6e 67 20 6f 6c 64 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 74 6f 20 6d 69 .Removing.old.dev.packages.to.mi
a49a0 67 72 61 74 65 20 74 6f 20 74 68 65 20 6e 65 77 20 72 65 71 75 69 72 65 2d 64 65 76 20 68 61 6e grate.to.the.new.require-dev.han
a49c0 64 6c 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 dling.</warning>');.foreach.($de
a49e0 76 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 vRepo->getPackages().as.$package
a4a00 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 ).{.if.($this->installationManag
a4a20 65 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 64 65 76 52 65 70 6f 2c er->isPackageInstalled($devRepo,
a4a40 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f .$package)).{.$this->installatio
a4a60 6e 4d 61 6e 61 67 65 72 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 64 65 76 52 65 70 6f 2c 20 6e 65 nManager->uninstall($devRepo,.ne
a4a80 77 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 3b w.UninstallOperation($package));
a4aa0 0a 7d 0a 7d 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 .}.}.unlink($this->config->get('
a4ac0 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 vendor-dir').'/composer/installe
a4ae0 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 3b 0a 7d 0a 75 6e 73 65 74 28 24 64 65 76 52 65 70 6f 2c 20 d_dev.json');.}.unset($devRepo,.
a4b00 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 $package);...if.($this->runScrip
a4b20 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 ts).{...$eventName.=.$this->upda
a4b40 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d te.?.ScriptEvents::PRE_UPDATE_CM
a4b60 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d D.:.ScriptEvents::PRE_INSTALL_CM
a4b80 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 D;.$this->eventDispatcher->dispa
a4ba0 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 tchScript($eventName,.$this->dev
a4bc0 4d 6f 64 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 Mode);.}..$this->downloadManager
a4be0 2d 3e 73 65 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 ->setPreferSource($this->preferS
a4c00 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e ource);.$this->downloadManager->
a4c20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 setPreferDist($this->preferDist)
a4c40 3b 0a 0a 0a 20 0a 20 0a 20 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 20 3d ;........$installedRootPackage.=
a4c60 20 63 6c 6f 6e 65 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 61 6c 6c 65 .clone.$this->package;.$installe
a4c80 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 dRootPackage->setRequires(array(
a4ca0 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 ));.$installedRootPackage->setDe
a4cc0 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 24 6c 6f 63 61 6c 52 65 70 vRequires(array());....$localRep
a4ce0 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 o.=.$this->repositoryManager->ge
a4d00 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 tLocalRepository();.$platformRep
a4d20 6f 20 3d 20 6e 65 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 o.=.new.PlatformRepository();.$r
a4d40 65 70 6f 73 20 3d 20 61 72 72 61 79 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 6e 65 77 20 49 6e epos.=.array(.$localRepo,.new.In
a4d60 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 28 24 69 6e stalledArrayRepository(array($in
a4d80 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 29 29 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 stalledRootPackage)),.$platformR
a4da0 65 70 6f 2c 0a 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d epo,.);.$installedRepo.=.new.Com
a4dc0 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 69 66 20 28 24 74 positeRepository($repos);.if.($t
a4de0 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f his->additionalInstalledReposito
a4e00 72 79 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 61 64 64 52 65 70 6f 73 69 74 ry).{.$installedRepo->addReposit
a4e20 6f 72 79 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 ory($this->additionalInstalledRe
a4e40 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e pository);.}..$aliases.=.$this->
a4e60 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 50 6c getRootAliases();.$this->aliasPl
a4e80 61 74 66 6f 72 6d 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 atformPackages($platformRepo,.$a
a4ea0 6c 69 61 73 65 73 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 liases);..try.{.$this->suggested
a4ec0 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 20 3d 20 24 74 68 69 73 Packages.=.array();.$res.=.$this
a4ee0 2d 3e 64 6f 49 6e 73 74 61 6c 6c 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c ->doInstall($localRepo,.$install
a4f00 65 64 52 65 70 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c edRepo,.$platformRepo,.$aliases,
a4f20 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 69 66 20 28 24 72 65 73 20 21 3d 3d 20 30 .$this->devMode);.if.($res.!==.0
a4f40 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 ).{.return.$res;.}.}.catch.(\Exc
a4f60 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e eption.$e).{.$this->installation
a4f80 4d 61 6e 61 67 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 74 68 72 6f Manager->notifyInstalls();..thro
a4fa0 77 20 24 65 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 w.$e;.}.$this->installationManag
a4fc0 65 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 74 68 er->notifyInstalls();....if.($th
a4fe0 69 73 2d 3e 64 65 76 4d 6f 64 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 is->devMode).{.foreach.($this->s
a5000 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 73 75 67 67 65 73 74 69 6f 6e 29 uggestedPackages.as.$suggestion)
a5020 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 .{.$target.=.$suggestion['target
a5040 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 '];.foreach.($installedRepo->get
a5060 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 6e Packages().as.$package).{.if.(in
a5080 5f 61 72 72 61 79 28 24 74 61 72 67 65 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d _array($target,.$package->getNam
a50a0 65 73 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d es())).{.continue.2;.}.}..$this-
a50c0 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f 75 >io->writeError($suggestion['sou
a50e0 72 63 65 27 5d 2e 27 20 73 75 67 67 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 73 rce'].'.suggests.installing.'.$s
a5100 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 65 73 uggestion['target'].'.('.$sugges
a5120 74 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 tion['reason'].')');.}.}....fore
a5140 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 ach.($localRepo->getPackages().a
a5160 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 20 69 6e 73 74 s.$package).{.if.(!$package.inst
a5180 61 6e 63 65 6f 66 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 20 7c 7c 20 21 24 70 61 63 6b anceof.CompletePackage.||.!$pack
a51a0 61 67 65 2d 3e 69 73 41 62 61 6e 64 6f 6e 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a age->isAbandoned()).{.continue;.
a51c0 7d 0a 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 20 3d 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 }..$replacement.=.(is_string($pa
a51e0 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 29 29 ckage->getReplacementPackage()))
a5200 0a 3f 20 27 55 73 65 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 .?.'Use.'...$package->getReplace
a5220 6d 65 6e 74 50 61 63 6b 61 67 65 28 29 20 2e 20 27 20 69 6e 73 74 65 61 64 27 0a 3a 20 27 4e 6f mentPackage()...'.instead'.:.'No
a5240 20 72 65 70 6c 61 63 65 6d 65 6e 74 20 77 61 73 20 73 75 67 67 65 73 74 65 64 27 3b 0a 0a 24 74 .replacement.was.suggested';..$t
a5260 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 0a 73 70 72 69 6e 74 66 28 0a 22 3c his->io->writeError(.sprintf(."<
a5280 65 72 72 6f 72 3e 50 61 63 6b 61 67 65 20 25 73 20 69 73 20 61 62 61 6e 64 6f 6e 65 64 2c 20 79 error>Package.%s.is.abandoned,.y
a52a0 6f 75 20 73 68 6f 75 6c 64 20 61 76 6f 69 64 20 75 73 69 6e 67 20 69 74 2e 20 25 73 2e 3c 2f 65 ou.should.avoid.using.it..%s.</e
a52c0 72 72 6f 72 3e 22 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 rror>",.$package->getPrettyName(
a52e0 29 2c 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 0a 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 ),.$replacement.).);.}..if.(!$th
a5300 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 is->dryRun).{...if.($this->updat
a5320 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 e.||.!$this->locker->isLocked())
a5340 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 72 65 6c 6f 61 64 28 29 3b 0a 0a 0a 20 0a 20 24 64 .{.$localRepo->reload();......$d
a5360 65 76 50 61 63 6b 61 67 65 73 20 3d 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 7c 7c 20 evPackages.=.($this->devMode.||.
a5380 21 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 !$this->package->getDevRequires(
a53a0 29 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 )).?.array().:.null;....if.($thi
a53c0 73 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 s->devMode.&&.$this->package->ge
a53e0 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 tDevRequires()).{.$policy.=.$thi
a5400 73 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 s->createPolicy();.$pool.=.$this
a5420 2d 3e 63 72 65 61 74 65 50 6f 6f 6c 28 74 72 75 65 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 ->createPool(true);.$pool->addRe
a5440 70 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 pository($installedRepo,.$aliase
a5460 73 29 3b 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 s);....$request.=.$this->createR
a5480 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 equest($pool,.$this->package,.$p
a54a0 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c latformRepo);.$request->updateAl
a54c0 6c 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 l();.foreach.($this->package->ge
a54e0 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 tRequires().as.$link).{.$request
a5500 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c ->install($link->getTarget(),.$l
a5520 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d ink->getConstraint());.}..$this-
a5540 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c >eventDispatcher->dispatchInstal
a5560 6c 65 72 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 52 45 5f 44 45 lerEvent(InstallerEvents::PRE_DE
a5580 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 66 61 6c 73 65 2c 20 24 70 6f 6c 69 PENDENCIES_SOLVING,.false,.$poli
a55a0 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 cy,.$pool,.$installedRepo,.$requ
a55c0 65 73 74 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 est);.$solver.=.new.Solver($poli
a55e0 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 24 6f 70 73 cy,.$pool,.$installedRepo);.$ops
a5600 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 65 71 75 65 73 74 2c 20 24 74 68 69 .=.$solver->solve($request,.$thi
a5620 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 65 s->ignorePlatformReqs);.$this->e
a5640 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 ventDispatcher->dispatchInstalle
a5660 72 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 44 45 50 rEvent(InstallerEvents::POST_DEP
a5680 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 66 61 6c 73 65 2c 20 24 70 6f 6c 69 63 ENDENCIES_SOLVING,.false,.$polic
a56a0 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 y,.$pool,.$installedRepo,.$reque
a56c0 73 74 2c 20 24 6f 70 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 73 20 61 73 20 24 6f 70 29 st,.$ops);.foreach.($ops.as.$op)
a56e0 20 7b 0a 69 66 20 28 24 6f 70 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 3d 3d 3d 20 27 75 6e .{.if.($op->getJobType().===.'un
a5700 69 6e 73 74 61 6c 6c 27 29 20 7b 0a 24 64 65 76 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 6f 70 install').{.$devPackages[].=.$op
a5720 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 70 6c 61 74 66 6f 72 6d ->getPackage();.}.}.}..$platform
a5740 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 Reqs.=.$this->extractPlatformReq
a5760 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 uirements($this->package->getReq
a5780 75 69 72 65 73 28 29 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 20 3d 20 24 74 68 uires());.$platformDevReqs.=.$th
a57a0 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 74 is->devMode.?.$this->extractPlat
a57c0 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d formRequirements($this->package-
a57e0 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 0a 24 >getDevRequires()).:.array();..$
a5800 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 73 65 74 updatedLock.=.$this->locker->set
a5820 4c 6f 63 6b 44 61 74 61 28 0a 61 72 72 61 79 5f 64 69 66 66 28 24 6c 6f 63 61 6c 52 65 70 6f 2d LockData(.array_diff($localRepo-
a5840 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 2c 20 28 61 72 72 61 79 29 >getCanonicalPackages(),.(array)
a5860 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 2c 0a 24 64 65 76 50 61 63 6b 61 67 65 73 2c 0a 24 70 .$devPackages),.$devPackages,.$p
a5880 6c 61 74 66 6f 72 6d 52 65 71 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 0a 24 latformReqs,.$platformDevReqs,.$
a58a0 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 aliases,.$this->package->getMini
a58c0 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e mumStability(),.$this->package->
a58e0 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 getStabilityFlags(),.$this->pref
a5900 65 72 53 74 61 62 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 erStable.||.$this->package->getP
a5920 72 65 66 65 72 53 74 61 62 6c 65 28 29 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 referStable(),.$this->preferLowe
a5940 73 74 0a 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d st.);.if.($updatedLock).{.$this-
a5960 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c >io->writeError('<info>Writing.l
a5980 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 ock.file</info>');.}.}..if.($thi
a59a0 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 s->dumpAutoloader).{...if.($this
a59c0 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 69 ->optimizeAutoloader).{.$this->i
a59e0 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 o->writeError('<info>Generating.
a5a00 6f 70 74 69 6d 69 7a 65 64 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e 66 6f 3e 27 optimized.autoload.files</info>'
a5a20 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f );.}.else.{.$this->io->writeErro
a5a40 72 28 27 3c 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c r('<info>Generating.autoload.fil
a5a60 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 es</info>');.}..$this->autoloadG
a5a80 65 6e 65 72 61 74 6f 72 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 74 68 69 73 2d 3e 64 65 76 4d enerator->setDevMode($this->devM
a5aa0 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d 3e ode);.$this->autoloadGenerator->
a5ac0 64 75 6d 70 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 dump($this->config,.$localRepo,.
a5ae0 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 $this->package,.$this->installat
a5b00 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 74 68 69 73 2d 3e 6f ionManager,.'composer',.$this->o
a5b20 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 ptimizeAutoloader);.}..if.($this
a5b40 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 20 24 ->runScripts).{...$eventName.=.$
a5b60 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 this->update.?.ScriptEvents::POS
a5b80 54 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 T_UPDATE_CMD.:.ScriptEvents::POS
a5ba0 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 T_INSTALL_CMD;.$this->eventDispa
a5bc0 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 24 65 76 65 6e 74 4e 61 6d 65 tcher->dispatchScript($eventName
a5be0 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 0a 24 76 65 6e 64 6f 72 44 69 72 ,.$this->devMode);.}..$vendorDir
a5c00 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 .=.$this->config->get('vendor-di
a5c20 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b 0a 74 r');.if.(is_dir($vendorDir)).{.t
a5c40 6f 75 63 68 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b ouch($vendorDir);.}.}..return.0;
a5c60 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 49 6e 73 74 61 6c 6c .}..protected.function.doInstall
a5c80 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 70 6c ($localRepo,.$installedRepo,.$pl
a5ca0 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 77 69 74 68 44 65 76 52 65 atformRepo,.$aliases,.$withDevRe
a5cc0 71 73 29 0a 7b 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c qs).{...$lockedRepository.=.null
a5ce0 3b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 24 69 6e 73 74 ;.$repositories.=.null;....$inst
a5d00 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 24 74 68 69 73 2d allFromLock.=.false;.if.(!$this-
a5d20 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b >update.&&.$this->locker->isLock
a5d40 65 64 28 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 74 72 75 65 3b ed()).{.$installFromLock.=.true;
a5d60 0a 74 72 79 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 73 .try.{.$lockedRepository.=.$this
a5d80 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 ->locker->getLockedRepository($w
a5da0 69 74 68 44 65 76 52 65 71 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 ithDevReqs);.}.catch.(\RuntimeEx
a5dc0 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 ception.$e).{...if.($this->packa
a5de0 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 ge->getDevRequires()).{.throw.$e
a5e00 3b 0a 7d 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 73 2d ;.}...$lockedRepository.=.$this-
a5e20 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a >locker->getLockedRepository();.
a5e40 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e }.}..$this->whitelistUpdateDepen
a5e60 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 77 69 74 68 44 65 76 52 65 71 dencies(.$localRepo,.$withDevReq
a5e80 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 s,.$this->package->getRequires()
a5ea0 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 ,.$this->package->getDevRequires
a5ec0 28 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 ().);..$this->io->writeError('<i
a5ee0 6e 66 6f 3e 4c 6f 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 nfo>Loading.composer.repositorie
a5f00 73 20 77 69 74 68 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 69 6e 66 6f s.with.package.information</info
a5f20 3e 27 29 3b 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 >');....$policy.=.$this->createP
a5f40 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 6f olicy();.$pool.=.$this->createPo
a5f60 6f 6c 28 24 77 69 74 68 44 65 76 52 65 71 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f ol($withDevReqs,.$lockedReposito
a5f80 72 79 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 ry);.$pool->addRepository($insta
a5fa0 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 69 66 20 28 24 69 6e 73 74 61 6c lledRepo,.$aliases);.if.($instal
a5fc0 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 lFromLock).{.$pool->addRepositor
a5fe0 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a y($lockedRepository,.$aliases);.
a6000 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 72 65 70 }..if.(!$installFromLock).{.$rep
a6020 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e ositories.=.$this->repositoryMan
a6040 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 ager->getRepositories();.foreach
a6060 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 .($repositories.as.$repository).
a6080 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f {.$pool->addRepository($reposito
a60a0 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d ry,.$aliases);.}.}....$request.=
a60c0 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 .$this->createRequest($pool,.$th
a60e0 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 0a 69 66 is->package,.$platformRepo);..if
a6100 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 0a 20 24 72 65 6d 6f 76 65 .(!$installFromLock).{...$remove
a6120 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 dUnstablePackages.=.array();.for
a6140 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 each.($localRepo->getPackages().
a6160 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 0a 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 as.$package).{.if.(.!$pool->isPa
a6180 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ckageAcceptable($package->getNam
a61a0 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 0a es(),.$package->getStability()).
a61c0 26 26 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 &&.$this->installationManager->i
a61e0 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 sPackageInstalled($localRepo,.$p
a6200 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b ackage).).{.$removedUnstablePack
a6220 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 ages[$package->getName()].=.true
a6240 3b 0a 24 72 65 71 75 65 73 74 2d 3e 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ;.$request->remove($package->get
a6260 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d Name(),.new.VersionConstraint('=
a6280 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 7d ',.$package->getVersion()));.}.}
a62a0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e .}..if.($this->update).{.$this->
a62c0 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 55 70 64 61 74 69 6e 67 20 64 io->writeError('<info>Updating.d
a62e0 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 20 3f 20 27 20 28 ependencies'.($withDevReqs.?.'.(
a6300 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 20 3a 20 27 27 29 2e 27 3c including.require-dev)'.:.'').'<
a6320 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c 28 29 /info>');..$request->updateAll()
a6340 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 ;..if.($withDevReqs).{.$links.=.
a6360 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 array_merge($this->package->getR
a6380 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 equires(),.$this->package->getDe
a63a0 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 vRequires());.}.else.{.$links.=.
a63c0 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 7d $this->package->getRequires();.}
a63e0 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 ..foreach.($links.as.$link).{.$r
a6400 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 equest->install($link->getTarget
a6420 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 0a (),.$link->getConstraint());.}..
a6440 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 ....if.($this->updateWhitelist).
a6460 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 {.if.($this->locker->isLocked())
a6480 20 7b 0a 74 72 79 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 .{.try.{.$currentPackages.=.$thi
a64a0 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 s->locker->getLockedRepository($
a64c0 77 69 74 68 44 65 76 52 65 71 73 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 20 63 withDevReqs)->getPackages();.}.c
a64e0 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 atch.(\RuntimeException.$e).{...
a6500 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 $currentPackages.=.$this->locker
a6520 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 50 61 63 6b ->getLockedRepository()->getPack
a6540 61 67 65 73 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 ages();.}.}.else.{.$currentPacka
a6560 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 ges.=.$installedRepo->getPackage
a6580 73 28 29 3b 0a 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b s();.}....$candidates.=.array();
a65a0 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 63 61 .foreach.($links.as.$link).{.$ca
a65c0 6e 64 69 64 61 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 ndidates[$link->getTarget()].=.t
a65e0 72 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 50 rue;.}.foreach.($localRepo->getP
a6600 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 61 6e 64 69 64 ackages().as.$package).{.$candid
a6620 61 74 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 ates[$package->getName()].=.true
a6640 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 20 61 73 20 24 ;.}....foreach.($candidates.as.$
a6660 63 61 6e 64 69 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 candidate.=>.$dummy).{.foreach.(
a6680 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 50 61 63 6b 61 67 65 29 $currentPackages.as.$curPackage)
a66a0 20 7b 0a 69 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d .{.if.($curPackage->getName().==
a66c0 3d 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 55 70 =.$candidate).{.if.(!$this->isUp
a66e0 64 61 74 65 61 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 20 26 26 20 21 69 73 73 65 74 28 dateable($curPackage).&&.!isset(
a6700 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 63 75 72 50 61 63 $removedUnstablePackages[$curPac
a6720 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 kage->getName()])).{.$constraint
a6740 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 63 .=.new.VersionConstraint('=',.$c
a6760 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 urPackage->getVersion());.$reque
a6780 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 st->install($curPackage->getName
a67a0 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d (),.$constraint);.}.break;.}.}.}
a67c0 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b .}.}.elseif.($installFromLock).{
a67e0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 6f 3e 49 6e .$this->io->writeError('<info>In
a6800 73 74 61 6c 6c 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 stalling.dependencies'.($withDev
a6820 52 65 71 73 20 3f 20 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 Reqs.?.'.(including.require-dev)
a6840 27 20 3a 20 27 27 29 2e 27 20 66 72 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 '.:.'').'.from.lock.file</info>'
a6860 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 );..if.(!$this->locker->isFresh(
a6880 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 )).{.$this->io->writeError('<war
a68a0 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 6e ning>Warning:.The.lock.file.is.n
a68c0 6f 74 20 75 70 20 74 6f 20 64 61 74 65 20 77 69 74 68 20 74 68 65 20 6c 61 74 65 73 74 20 63 68 ot.up.to.date.with.the.latest.ch
a68e0 61 6e 67 65 73 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 20 59 6f 75 20 6d 61 79 20 anges.in.composer.json..You.may.
a6900 62 65 20 67 65 74 74 69 6e 67 20 6f 75 74 64 61 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 be.getting.outdated.dependencies
a6920 2e 20 52 75 6e 20 75 70 64 61 74 65 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 6d 2e 3c 2f 77 61 ..Run.update.to.update.them.</wa
a6940 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 rning>');.}..foreach.($lockedRep
a6960 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 ository->getPackages().as.$packa
a6980 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 ge).{.$version.=.$package->getVe
a69a0 72 73 69 6f 6e 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 5b 24 70 61 63 rsion();.if.(isset($aliases[$pac
a69c0 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 kage->getName()][$version])).{.$
a69e0 76 65 72 73 69 6f 6e 20 3d 20 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 version.=.$aliases[$package->get
a6a00 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 Name()][$version]['alias_normali
a6a20 7a 65 64 27 5d 3b 0a 7d 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 zed'];.}.$constraint.=.new.Versi
a6a40 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 63 6f onConstraint('=',.$version);.$co
a6a60 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b 61 nstraint->setPrettyString($packa
a6a80 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 65 73 ge->getPrettyVersion());.$reques
a6aa0 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 t->install($package->getName(),.
a6ac0 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d $constraint);.}..foreach.($this-
a6ae0 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 >locker->getPlatformRequirements
a6b00 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 ($withDevReqs).as.$link).{.$requ
a6b20 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c est->install($link->getTarget(),
a6b40 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c .$link->getConstraint());.}.}.el
a6b60 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 69 6e 66 se.{.$this->io->writeError('<inf
a6b80 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 o>Installing.dependencies'.($wit
a6ba0 68 44 65 76 52 65 71 73 20 3f 20 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d hDevReqs.?.'.(including.require-
a6bc0 64 65 76 29 27 20 3a 20 27 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 77 69 dev)'.:.'').'</info>');..if.($wi
a6be0 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 thDevReqs).{.$links.=.array_merg
a6c00 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c e($this->package->getRequires(),
a6c20 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 .$this->package->getDevRequires(
a6c40 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 ));.}.else.{.$links.=.$this->pac
a6c60 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 kage->getRequires();.}..foreach.
a6c80 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e ($links.as.$link).{.$request->in
a6ca0 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 6e 6b 2d stall($link->getTarget(),.$link-
a6cc0 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d >getConstraint());.}.}....$this-
a6ce0 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 >processDevPackages($localRepo,.
a6d00 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 $pool,.$policy,.$repositories,.$
a6d20 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f lockedRepository,.$installFromLo
a6d40 63 6b 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 65 76 ck,.'force-links');....$this->ev
a6d60 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 72 entDispatcher->dispatchInstaller
a6d80 45 76 65 6e 74 28 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 73 3a 3a 50 52 45 5f 44 45 50 45 4e Event(InstallerEvents::PRE_DEPEN
a6da0 44 45 4e 43 49 45 53 5f 53 4f 4c 56 49 4e 47 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c DENCIES_SOLVING,.$this->devMode,
a6dc0 20 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c .$policy,.$pool,.$installedRepo,
a6de0 20 24 72 65 71 75 65 73 74 29 3b 0a 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 .$request);.$solver.=.new.Solver
a6e00 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 ($policy,.$pool,.$installedRepo)
a6e20 3b 0a 74 72 79 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 ;.try.{.$operations.=.$solver->s
a6e40 6f 6c 76 65 28 24 72 65 71 75 65 73 74 2c 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 74 olve($request,.$this->ignorePlat
a6e60 66 6f 72 6d 52 65 71 73 29 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 formReqs);.$this->eventDispatche
a6e80 72 2d 3e 64 69 73 70 61 74 63 68 49 6e 73 74 61 6c 6c 65 72 45 76 65 6e 74 28 49 6e 73 74 61 6c r->dispatchInstallerEvent(Instal
a6ea0 6c 65 72 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 44 45 50 45 4e 44 45 4e 43 49 45 53 5f 53 4f 4c lerEvents::POST_DEPENDENCIES_SOL
a6ec0 56 49 4e 47 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c 20 24 VING,.$this->devMode,.$policy,.$
a6ee0 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 74 2c 20 pool,.$installedRepo,.$request,.
a6f00 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f $operations);.}.catch.(SolverPro
a6f20 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e blemsException.$e).{.$this->io->
a6f40 77 72 69 74 65 45 72 72 6f 72 28 27 3c 65 72 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d writeError('<error>Your.requirem
a6f60 65 6e 74 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e ents.could.not.be.resolved.to.an
a6f80 20 69 6e 73 74 61 6c 6c 61 62 6c 65 20 73 65 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 .installable.set.of.packages.</e
a6fa0 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 24 rror>');.$this->io->writeError($
a6fc0 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 6d 61 78 28 31 2c e->getMessage());..return.max(1,
a6fe0 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 3b 0a 7d 0a 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e .$e->getCode());.}....$operation
a7000 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c s.=.$this->processDevPackages($l
a7020 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 ocalRepo,.$pool,.$policy,.$repos
a7040 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 itories,.$lockedRepository,.$ins
a7060 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 2c 20 24 tallFromLock,.'force-updates',.$
a7080 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6f 70 65 72 61 74 69 6f 6e 73 operations);....if.(!$operations
a70a0 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 4e 6f 74 68 69 ).{.$this->io->writeError('Nothi
a70c0 6e 67 20 74 6f 20 69 6e 73 74 61 6c 6c 20 6f 72 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 0a 24 6f ng.to.install.or.update');.}..$o
a70e0 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 50 6c 75 67 69 6e 73 54 6f perations.=.$this->movePluginsTo
a7100 46 72 6f 6e 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 Front($operations);.$operations.
a7120 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 55 6e 69 6e 73 74 61 6c 6c 73 54 6f 46 72 6f 6e 74 28 24 =.$this->moveUninstallsToFront($
a7140 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f operations);..foreach.($operatio
a7160 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 61 ns.as.$operation).{...if.('insta
a7180 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 ll'.===.$operation->getJobType()
a71a0 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b ).{.foreach.($operation->getPack
a71c0 61 67 65 28 29 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 20 61 73 20 24 74 61 72 67 65 74 20 age()->getSuggests().as.$target.
a71e0 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 =>.$reason).{.$this->suggestedPa
a7200 63 6b 61 67 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 6f ckages[].=.array(.'source'.=>.$o
a7220 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 74 74 peration->getPackage()->getPrett
a7240 79 4e 61 6d 65 28 29 2c 0a 27 74 61 72 67 65 74 27 20 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 72 yName(),.'target'.=>.$target,.'r
a7260 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 eason'.=>.$reason,.);.}.}....if.
a7280 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d (!$installFromLock).{.$package.=
a72a0 20 6e 75 6c 6c 3b 0a 69 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 .null;.if.('update'.===.$operati
a72c0 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 on->getJobType()).{.$package.=.$
a72e0 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d operation->getTargetPackage();.}
a7300 20 65 6c 73 65 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f .elseif.('install'.===.$operatio
a7320 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f n->getJobType()).{.$package.=.$o
a7340 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 69 66 20 28 24 70 peration->getPackage();.}.if.($p
a7360 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 ackage.&&.$package->isDev()).{.$
a7380 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 references.=.$this->package->get
a73a0 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e References();.if.(isset($referen
a73c0 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 70 61 ces[$package->getName()])).{.$pa
a73e0 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 ckage->setSourceReference($refer
a7400 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 24 70 61 ences[$package->getName()]);.$pa
a7420 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e ckage->setDistReference($referen
a7440 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a 69 ces[$package->getName()]);.}.}.i
a7460 66 20 28 27 75 70 64 61 74 65 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a f.('update'.===.$operation->getJ
a7480 6f 62 54 79 70 65 28 29 0a 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 obType().&&.$operation->getTarge
a74a0 74 50 61 63 6b 61 67 65 28 29 2d 3e 69 73 44 65 76 28 29 0a 26 26 20 24 6f 70 65 72 61 74 69 6f tPackage()->isDev().&&.$operatio
a74c0 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 56 65 72 73 69 6f n->getTargetPackage()->getVersio
a74e0 6e 28 29 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 n().===.$operation->getInitialPa
a7500 63 6b 61 67 65 28 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 0a 26 26 20 24 6f 70 65 72 61 74 ckage()->getVersion().&&.$operat
a7520 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 6f 75 72 ion->getTargetPackage()->getSour
a7540 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 ceReference().===.$operation->ge
a7560 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 tInitialPackage()->getSourceRefe
a7580 72 65 6e 63 65 28 29 0a 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 rence().).{.if.($this->io->isDeb
a75a0 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 20 ug()).{.$this->io->writeError('.
a75c0 20 2d 20 53 6b 69 70 70 69 6e 67 20 75 70 64 61 74 65 20 6f 66 20 27 2e 20 24 6f 70 65 72 61 74 .-.Skipping.update.of.'..$operat
a75e0 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 74 ion->getTargetPackage()->getPret
a7600 74 79 4e 61 6d 65 28 29 2e 27 20 74 6f 20 74 68 65 20 73 61 6d 65 20 72 65 66 65 72 65 6e 63 65 tyName().'.to.the.same.reference
a7620 2d 6c 6f 63 6b 65 64 20 76 65 72 73 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 -locked.version');.$this->io->wr
a7640 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a iteError('');.}..continue;.}.}..
a7660 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 61 63 $event.=.'Composer\Installer\Pac
a7680 6b 61 67 65 45 76 65 6e 74 73 3a 3a 50 52 45 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 kageEvents::PRE_PACKAGE_'.strtou
a76a0 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a pper($operation->getJobType());.
a76c0 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 if.(defined($event).&&.$this->ru
a76e0 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 nScripts).{.$this->eventDispatch
a7700 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e er->dispatchPackageEvent(constan
a7720 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 t($event),.$this->devMode,.$poli
a7740 63 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 cy,.$pool,.$installedRepo,.$requ
a7760 65 73 74 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d est,.$operations,.$operation);.}
a7780 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 26 26 20 66 61 6c 73 65 20 3d ....if.($this->dryRun.&&.false.=
a77a0 3d 3d 20 73 74 72 70 6f 73 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 ==.strpos($operation->getJobType
a77c0 28 29 2c 20 27 41 6c 69 61 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 (),.'Alias')).{.$this->io->write
a77e0 45 72 72 6f 72 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 Error('..-.'...$operation);.$thi
a7800 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 s->io->writeError('');.}.elseif.
a7820 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 20 26 26 20 66 61 6c 73 65 20 21 ($this->io->isDebug().&&.false.!
a7840 3d 3d 20 73 74 72 70 6f 73 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 ==.strpos($operation->getJobType
a7860 28 29 2c 20 27 41 6c 69 61 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 (),.'Alias')).{.$this->io->write
a7880 45 72 72 6f 72 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 Error('..-.'...$operation);.$thi
a78a0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d s->io->writeError('');.}..$this-
a78c0 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 65 78 65 63 75 74 65 28 24 6c >installationManager->execute($l
a78e0 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 0a 20 69 66 20 28 24 74 ocalRepo,.$operation);....if.($t
a7900 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 56 65 72 his->verbose.&&.$this->io->isVer
a7920 79 56 65 72 62 6f 73 65 28 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 6f 70 65 72 61 74 69 6f yVerbose().&&.in_array($operatio
a7940 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 69 6e 73 74 61 6c 6c 27 n->getJobType(),.array('install'
a7960 2c 20 27 75 70 64 61 74 65 27 29 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 24 6f 70 65 72 61 ,.'update'))).{.$reason.=.$opera
a7980 74 69 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 69 66 20 28 24 72 65 61 73 6f 6e 20 69 tion->getReason();.if.($reason.i
a79a0 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 72 65 61 73 6f nstanceof.Rule).{.switch.($reaso
a79c0 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 73 65 20 52 75 6c 65 3a 3a 52 55 4c n->getReason()).{.case.Rule::RUL
a79e0 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 E_JOB_INSTALL:.$this->io->writeE
a7a00 72 72 6f 72 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 52 65 71 75 69 72 65 64 20 62 79 20 72 6f rror('....REASON:.Required.by.ro
a7a20 6f 74 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 ot:.'.$reason->getPrettyString($
a7a40 70 6f 6f 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 27 pool));.$this->io->writeError(''
a7a60 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 );.break;.case.Rule::RULE_PACKAG
a7a80 45 5f 52 45 51 55 49 52 45 53 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f E_REQUIRES:.$this->io->writeErro
a7aa0 72 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 65 r('....REASON:.'.$reason->getPre
a7ac0 74 74 79 53 74 72 69 6e 67 28 24 70 6f 6f 6c 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 ttyString($pool));.$this->io->wr
a7ae0 69 74 65 45 72 72 6f 72 28 27 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 65 76 65 iteError('');.break;.}.}.}..$eve
a7b00 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 5c 50 61 63 6b 61 67 65 nt.=.'Composer\Installer\Package
a7b20 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 Events::POST_PACKAGE_'.strtouppe
a7b40 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 3b 0a 69 66 20 r($operation->getJobType());.if.
a7b60 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 (defined($event).&&.$this->runSc
a7b80 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d ripts).{.$this->eventDispatcher-
a7ba0 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 >dispatchPackageEvent(constant($
a7bc0 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 70 6f 6c 69 63 79 2c event),.$this->devMode,.$policy,
a7be0 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 71 75 65 73 74 .$pool,.$installedRepo,.$request
a7c00 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 ,.$operations,.$operation);.}..i
a7c20 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d f.(!$this->dryRun).{.$localRepo-
a7c40 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a >write();.}.}..return.0;.}......
a7c60 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 50 6c .........private.function.movePl
a7c80 75 67 69 6e 73 54 6f 46 72 6f 6e 74 28 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 0a uginsToFront(array.$operations).
a7ca0 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 {.$installerOps.=.array();.forea
a7cc0 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 69 64 78 20 3d 3e 20 24 6f 70 29 20 ch.($operations.as.$idx.=>.$op).
a7ce0 7b 0a 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 4f 70 65 72 {.if.($op.instanceof.InstallOper
a7d00 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b ation).{.$package.=.$op->getPack
a7d20 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 age();.}.elseif.($op.instanceof.
a7d40 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f UpdateOperation).{.$package.=.$o
a7d60 70 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a p->getTargetPackage();.}.else.{.
a7d80 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 continue;.}..if.($package->getTy
a7da0 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c 20 24 70 pe().===.'composer-plugin'.||.$p
a7dc0 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d ackage->getType().===.'composer-
a7de0 69 6e 73 74 61 6c 6c 65 72 27 29 20 7b 0a 0a 20 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 installer').{...$requires.=.arra
a7e00 79 5f 6b 65 79 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b y_keys($package->getRequires());
a7e20 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e .foreach.($requires.as.$index.=>
a7e40 20 24 72 65 71 29 20 7b 0a 69 66 20 28 24 72 65 71 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d .$req).{.if.($req.===.'composer-
a7e60 70 6c 75 67 69 6e 2d 61 70 69 27 20 7c 7c 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f plugin-api'.||.preg_match(Platfo
a7e80 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 rmRepository::PLATFORM_PACKAGE_R
a7ea0 45 47 45 58 2c 20 24 72 65 71 29 29 20 7b 0a 75 6e 73 65 74 28 24 72 65 71 75 69 72 65 73 5b 24 EGEX,.$req)).{.unset($requires[$
a7ec0 69 6e 64 65 78 5d 29 3b 0a 7d 0a 7d 0a 0a 20 69 66 20 28 21 63 6f 75 6e 74 28 24 72 65 71 75 69 index]);.}.}...if.(!count($requi
a7ee0 72 65 73 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 5b 5d 20 3d 20 24 6f 70 3b 0a 75 res)).{.$installerOps[].=.$op;.u
a7f00 6e 73 65 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 5b 24 69 64 78 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a nset($operations[$idx]);.}.}.}..
a7f20 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 return.array_merge($installerOps
a7f40 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ,.$operations);.}.........privat
a7f60 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 55 6e 69 6e 73 74 61 6c 6c 73 54 6f 46 72 6f 6e 74 e.function.moveUninstallsToFront
a7f80 28 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 0a 7b 0a 24 75 6e 69 6e 73 74 4f 70 73 (array.$operations).{.$uninstOps
a7fa0 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 .=.array();.foreach.($operations
a7fc0 20 61 73 20 24 69 64 78 20 3d 3e 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 20 69 6e 73 74 61 .as.$idx.=>.$op).{.if.($op.insta
a7fe0 6e 63 65 6f 66 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 75 6e 69 nceof.UninstallOperation).{.$uni
a8000 6e 73 74 4f 70 73 5b 5d 20 3d 20 24 6f 70 3b 0a 75 6e 73 65 74 28 24 6f 70 65 72 61 74 69 6f 6e nstOps[].=.$op;.unset($operation
a8020 73 5b 24 69 64 78 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 s[$idx]);.}.}..return.array_merg
a8040 65 28 24 75 6e 69 6e 73 74 4f 70 73 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 e($uninstOps,.$operations);.}..p
a8060 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 50 6f 6f 6c 28 24 77 69 74 68 rivate.function.createPool($with
a8080 44 65 76 52 65 71 73 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 6c 6f DevReqs,.RepositoryInterface.$lo
a80a0 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 74 ckedRepository.=.null).{.if.(!$t
a80c0 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 his->update.&&.$this->locker->is
a80e0 4c 6f 63 6b 65 64 28 29 29 20 7b 20 0a 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 Locked()).{...$minimumStability.
a8100 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 =.$this->locker->getMinimumStabi
a8120 6c 69 74 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d lity();.$stabilityFlags.=.$this-
a8140 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 24 >locker->getStabilityFlags();..$
a8160 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f requires.=.array();.foreach.($lo
a8180 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 ckedRepository->getPackages().as
a81a0 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 .$package).{.$constraint.=.new.V
a81c0 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e ersionConstraint('=',.$package->
a81e0 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 getVersion());.$constraint->setP
a8200 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 rettyString($package->getPrettyV
a8220 65 72 73 69 6f 6e 28 29 29 3b 0a 24 72 65 71 75 69 72 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 ersion());.$requires[$package->g
a8240 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 7d 20 65 6c 73 etName()].=.$constraint;.}.}.els
a8260 65 20 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 70 e.{.$minimumStability.=.$this->p
a8280 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 24 ackage->getMinimumStability();.$
a82a0 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d stabilityFlags.=.$this->package-
a82c0 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 >getStabilityFlags();..$requires
a82e0 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 .=.$this->package->getRequires()
a8300 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 ;.if.($withDevReqs).{.$requires.
a8320 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 74 68 69 73 2d 3e =.array_merge($requires,.$this->
a8340 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 7d 0a package->getDevRequires());.}.}.
a8360 0a 24 72 6f 6f 74 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 .$rootConstraints.=.array();.for
a8380 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 20 3d 3e 20 24 63 6f 6e 73 each.($requires.as.$req.=>.$cons
a83a0 74 72 61 69 6e 74 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 traint).{...if.($this->ignorePla
a83c0 74 66 6f 72 6d 52 65 71 73 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d tformReqs.&&.preg_match(Platform
a83e0 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 Repository::PLATFORM_PACKAGE_REG
a8400 45 58 2c 20 24 72 65 71 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 63 6f EX,.$req)).{.continue;.}.if.($co
a8420 6e 73 74 72 61 69 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 4c 69 6e 6b 29 20 7b 0a 24 72 6f 6f nstraint.instanceof.Link).{.$roo
a8440 74 43 6f 6e 73 74 72 61 69 6e 74 73 5b 24 72 65 71 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 tConstraints[$req].=.$constraint
a8460 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 6f 6f ->getConstraint();.}.else.{.$roo
a8480 74 43 6f 6e 73 74 72 61 69 6e 74 73 5b 24 72 65 71 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 tConstraints[$req].=.$constraint
a84a0 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d 53 ;.}.}..return.new.Pool($minimumS
a84c0 74 61 62 69 6c 69 74 79 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 72 6f 6f 74 tability,.$stabilityFlags,.$root
a84e0 43 6f 6e 73 74 72 61 69 6e 74 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f Constraints);.}..private.functio
a8500 6e 20 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 0a 7b 0a 24 70 72 65 66 65 72 53 74 61 62 6c 65 n.createPolicy().{.$preferStable
a8520 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 6e 75 6c 6c 3b 0a 69 .=.null;.$preferLowest.=.null;.i
a8540 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b f.(!$this->update.&&.$this->lock
a8560 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 er->isLocked()).{.$preferStable.
a8580 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 =.$this->locker->getPreferStable
a85a0 28 29 3b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 ();.$preferLowest.=.$this->locke
a85c0 72 2d 3e 67 65 74 50 72 65 66 65 72 4c 6f 77 65 73 74 28 29 3b 0a 7d 0a 0a 20 0a 20 69 66 20 28 r->getPreferLowest();.}.....if.(
a85e0 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 29 20 7b 0a 24 70 72 65 66 65 null.===.$preferStable).{.$prefe
a8600 72 53 74 61 62 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 7c 7c rStable.=.$this->preferStable.||
a8620 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 .$this->package->getPreferStable
a8640 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 65 66 65 72 4c 6f 77 65 73 74 ();.}.if.(null.===.$preferLowest
a8660 29 20 7b 0a 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 65 66 65 ).{.$preferLowest.=.$this->prefe
a8680 72 4c 6f 77 65 73 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f rLowest;.}..return.new.DefaultPo
a86a0 6c 69 63 79 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 2c 20 24 70 72 65 66 65 72 4c 6f 77 65 73 licy($preferStable,.$preferLowes
a86c0 74 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 52 65 t);.}..private.function.createRe
a86e0 71 75 65 73 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 quest(Pool.$pool,.RootPackageInt
a8700 65 72 66 61 63 65 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2c 20 50 6c 61 74 66 6f 72 6d 52 65 70 erface.$rootPackage,.PlatformRep
a8720 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 29 0a 7b 0a 24 72 65 71 75 65 73 ository.$platformRepo).{.$reques
a8740 74 20 3d 20 6e 65 77 20 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 29 3b 0a 0a 24 63 6f 6e 73 74 72 t.=.new.Request($pool);..$constr
a8760 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 aint.=.new.VersionConstraint('='
a8780 2c 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 ,.$rootPackage->getVersion());.$
a87a0 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 72 6f 6f constraint->setPrettyString($roo
a87c0 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 tPackage->getPrettyVersion());.$
a87e0 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 request->install($rootPackage->g
a8800 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 0a 24 66 69 78 65 64 50 etName(),.$constraint);..$fixedP
a8820 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 67 65 74 50 61 63 6b ackages.=.$platformRepo->getPack
a8840 61 67 65 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 ages();.if.($this->additionalIns
a8860 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 61 64 64 69 74 69 6f 6e 61 6c 46 talledRepository).{.$additionalF
a8880 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c ixedPackages.=.$this->additional
a88a0 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 InstalledRepository->getPackages
a88c0 28 29 3b 0a 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 ();.$fixedPackages.=.array_merge
a88e0 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 46 69 78 65 ($fixedPackages,.$additionalFixe
a8900 64 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 70 72 6f 76 69 64 65 64 20 3d 20 24 dPackages);.}......$provided.=.$
a8920 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 66 6f 72 65 rootPackage->getProvides();.fore
a8940 61 63 68 20 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 ach.($fixedPackages.as.$package)
a8960 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 .{.$constraint.=.new.VersionCons
a8980 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e traint('=',.$package->getVersion
a89a0 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e ());.$constraint->setPrettyStrin
a89c0 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b g($package->getPrettyVersion());
a89e0 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 ....if.($package->getRepository(
a8a00 29 20 21 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 0a 7c 7c 20 21 69 73 73 65 74 28 24 70 ).!==.$platformRepo.||.!isset($p
a8a20 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c rovided[$package->getName()]).||
a8a40 20 21 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d .!$provided[$package->getName()]
a8a60 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 6d 61 74 63 68 65 73 28 24 63 6f 6e 73 ->getConstraint()->matches($cons
a8a80 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 66 69 78 28 24 70 61 63 6b 61 traint).).{.$request->fix($packa
a8aa0 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 7d ge->getName(),.$constraint);.}.}
a8ac0 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 ..return.$request;.}..private.fu
a8ae0 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c nction.processDevPackages($local
a8b00 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 Repo,.$pool,.$policy,.$repositor
a8b20 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 74 61 6c 6c ies,.$lockedRepository,.$install
a8b40 46 72 6f 6d 4c 6f 63 6b 2c 20 24 74 61 73 6b 2c 20 61 72 72 61 79 20 24 6f 70 65 72 61 74 69 6f FromLock,.$task,.array.$operatio
a8b60 6e 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 ns.=.null).{.if.($task.===.'forc
a8b80 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f e-updates'.&&.null.===.$operatio
a8ba0 6e 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 ns).{.throw.new.\InvalidArgument
a8bc0 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 6f 70 65 72 61 74 69 6f 6e 73 20 61 72 Exception('Missing.operations.ar
a8be0 67 75 6d 65 6e 74 27 29 3b 0a 7d 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 gument');.}.if.($task.===.'force
a8c00 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 -links').{.$operations.=.array()
a8c20 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e ;.}..foreach.($localRepo->getCan
a8c40 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a onicalPackages().as.$package).{.
a8c60 0a 20 69 66 20 28 21 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 63 6f 6e 74 ..if.(!$package->isDev()).{.cont
a8c80 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 inue;.}....foreach.($operations.
a8ca0 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 28 27 75 70 64 61 74 65 27 20 3d as.$operation).{.if.(('update'.=
a8cc0 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 26 26 20 24 ==.$operation->getJobType().&&.$
a8ce0 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 2d 3e operation->getInitialPackage()->
a8d00 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 28 27 75 6e 69 6e 73 74 61 6c 6c equals($package)).||.('uninstall
a8d20 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 26 '.===.$operation->getJobType().&
a8d40 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2d 3e 65 71 75 61 &.$operation->getPackage()->equa
a8d60 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a ls($package)).).{.continue.2;.}.
a8d80 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 66 6f 72 }....if.($installFromLock).{.for
a8da0 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 each.($lockedRepository->findPac
a8dc0 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 61 73 20 24 6c kages($package->getName()).as.$l
a8de0 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 ockedPackage).{.if.($lockedPacka
a8e00 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 ge->isDev().&&.$lockedPackage->g
a8e20 65 74 56 65 72 73 69 6f 6e 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 etVersion().===.$package->getVer
a8e40 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c sion()).{.if.($task.===.'force-l
a8e60 69 6e 6b 73 27 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 inks').{.$package->setRequires($
a8e80 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 lockedPackage->getRequires());.$
a8ea0 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 6c 6f 63 6b 65 64 50 61 63 package->setConflicts($lockedPac
a8ec0 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d kage->getConflicts());.$package-
a8ee0 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 >setProvides($lockedPackage->get
a8f00 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 Provides());.$package->setReplac
a8f20 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 es($lockedPackage->getReplaces()
a8f40 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 );.}.elseif.($task.===.'force-up
a8f60 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 dates').{.if.(($lockedPackage->g
a8f80 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 etSourceReference().&&.$lockedPa
a8fa0 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 ckage->getSourceReference().!==.
a8fc0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 0a $package->getSourceReference()).
a8fe0 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 ||.($lockedPackage->getDistRefer
a9000 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 ence().&&.$lockedPackage->getDis
a9020 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 tReference().!==.$package->getDi
a9040 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d stReference()).).{.$operations[]
a9060 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c .=.new.UpdateOperation($package,
a9080 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a .$lockedPackage);.}.}..break;.}.
a90a0 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 29 20 }.}.else.{...if.($this->update).
a90c0 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 26 {...if.($this->updateWhitelist.&
a90e0 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 70 61 63 6b 61 67 65 29 &.!$this->isUpdateable($package)
a9100 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 65 73 20 3d 20 24 70 ).{.continue;.}....$matches.=.$p
a9120 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e ool->whatProvides($package->getN
a9140 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 ame(),.new.VersionConstraint('='
a9160 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 29 3b 0a 66 6f 72 65 ,.$package->getVersion()));.fore
a9180 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 6d 61 74 63 ach.($matches.as.$index.=>.$matc
a91a0 68 29 20 7b 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 61 74 63 68 2d 3e 67 65 74 h).{...if.(!in_array($match->get
a91c0 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 Repository(),.$repositories,.tru
a91e0 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a 63 e)).{.unset($matches[$index]);.c
a9200 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 2d 3e 67 65 74 4e 61 6d ontinue;.}....if.($match->getNam
a9220 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 75 e().!==.$package->getName()).{.u
a9240 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 nset($matches[$index]);.continue
a9260 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 24 6d 61 74 63 68 2d 3e ;.}..$matches[$index].=.$match->
a9280 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 65 73 20 26 26 20 24 6d getId();.}....if.($matches.&&.$m
a92a0 61 74 63 68 65 73 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 65 66 65 72 65 64 atches.=.$policy->selectPrefered
a92c0 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 24 6d 61 74 63 68 65 Packages($pool,.array(),.$matche
a92e0 73 29 29 20 7b 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 s)).{.$newPackage.=.$pool->liter
a9300 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 3b 0a 0a 69 66 20 28 24 alToPackage($matches[0]);..if.($
a9320 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 20 26 26 20 24 6e 65 77 50 61 task.===.'force-links'.&&.$newPa
a9340 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 24 ckage).{.$package->setRequires($
a9360 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 61 63 newPackage->getRequires());.$pac
a9380 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e kage->setConflicts($newPackage->
a93a0 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 getConflicts());.$package->setPr
a93c0 6f 76 69 64 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 ovides($newPackage->getProvides(
a93e0 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 6e 65 77 50 61 ));.$package->setReplaces($newPa
a9400 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 ckage->getReplaces());.}..if.($t
a9420 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 24 6e 65 77 50 ask.===.'force-updates'.&&.$newP
a9440 61 63 6b 61 67 65 20 26 26 20 28 0a 28 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f ackage.&&.(.(($newPackage->getSo
a9460 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e urceReference().&&.$newPackage->
a9480 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 getSourceReference().!==.$packag
a94a0 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 6e 65 e->getSourceReference()).||.($ne
a94c0 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 wPackage->getDistReference().&&.
a94e0 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 $newPackage->getDistReference().
a9500 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 !==.$package->getDistReference()
a9520 29 0a 29 0a 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 ).).)).{.$operations[].=.new.Upd
a9540 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 6e 65 77 50 61 63 6b 61 ateOperation($package,.$newPacka
a9560 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 ge);.}.}.}..if.($task.===.'force
a9580 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 0a 20 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 -updates').{...$references.=.$th
a95a0 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 69 is->package->getReferences();..i
a95c0 66 20 28 69 73 73 65 74 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 f.(isset($references[$package->g
a95e0 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 61 63 6b 61 etName()]).&&.$references[$packa
a9600 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ge->getName()].!==.$package->get
a9620 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 0a 20 24 6f 70 65 72 61 74 69 6f SourceReference()).{...$operatio
a9640 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b ns[].=.new.UpdateOperation($pack
a9660 61 67 65 2c 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 age,.clone.$package);.}.}.}.}..r
a9680 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 eturn.$operations;.}..private.fu
a96a0 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 69 66 20 28 21 24 nction.getRootAliases().{.if.(!$
a96c0 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 this->update.&&.$this->locker->i
a96e0 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c sLocked()).{.$aliases.=.$this->l
a9700 6f 63 6b 65 72 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 ocker->getAliases();.}.else.{.$a
a9720 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 liases.=.$this->package->getAlia
a9740 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 20 3d 20 61 ses();.}..$normalizedAliases.=.a
a9760 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 rray();..foreach.($aliases.as.$a
a9780 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 5b 24 61 6c 69 61 lias).{.$normalizedAliases[$alia
a97a0 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d 5b 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 5d s['package']][$alias['version']]
a97c0 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 .=.array(.'alias'.=>.$alias['ali
a97e0 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 61 6c 69 as'],.'alias_normalized'.=>.$ali
a9800 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 0a 29 3b 0a 7d 0a 0a 72 65 74 as['alias_normalized'].);.}..ret
a9820 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 urn.$normalizedAliases;.}..priva
a9840 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d 50 61 63 6b 61 67 65 te.function.aliasPlatformPackage
a9860 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 s(PlatformRepository.$platformRe
a9880 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 po,.$aliases).{.foreach.($aliase
a98a0 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f s.as.$package.=>.$versions).{.fo
a98c0 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 reach.($versions.as.$version.=>.
a98e0 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 $alias).{.$packages.=.$platformR
a9900 65 70 6f 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 epo->findPackages($package,.$ver
a9920 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 sion);.foreach.($packages.as.$pa
a9940 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 41 6c 69 ckage).{.$aliasPackage.=.new.Ali
a9960 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 asPackage($package,.$alias['alia
a9980 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 s_normalized'],.$alias['alias'])
a99a0 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b 61 67 65 41 ;.$aliasPackage->setRootPackageA
a99c0 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 61 64 64 50 61 lias(true);.$platformRepo->addPa
a99e0 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 ckage($aliasPackage);.}.}.}.}..p
a9a00 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 61 74 65 61 62 6c 65 28 50 61 63 rivate.function.isUpdateable(Pac
a9a20 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 kageInterface.$package).{.if.(!$
a9a40 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b 0a 74 68 72 6f 77 20 6e this->updateWhitelist).{.throw.n
a9a60 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 69 73 55 70 64 61 74 65 61 62 6c 65 ew.\LogicException('isUpdateable
a9a80 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 68 65 6e 20 61 20 77 68 .should.only.be.called.when.a.wh
a9aa0 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 itelist.is.present');.}..foreach
a9ac0 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 20 24 77 68 69 .($this->updateWhitelist.as.$whi
a9ae0 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 74 teListedPattern.=>.$void).{.$pat
a9b00 74 65 72 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 54 ternRegexp.=.$this->packageNameT
a9b20 6f 52 65 67 65 78 70 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 3b 0a 69 66 oRegexp($whiteListedPattern);.if
a9b40 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 52 65 67 65 78 70 2c 20 24 70 61 .(preg_match($patternRegexp,.$pa
a9b60 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 ckage->getName())).{.return.true
a9b80 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ;.}.}..return.false;.}........pr
a9ba0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 65 67 65 ivate.function.packageNameToRege
a9bc0 78 70 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 0a 7b 0a 24 63 6c 65 61 6e xp($whiteListedPattern).{.$clean
a9be0 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 edWhiteListedPattern.=.str_repla
a9c00 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 77 68 69 74 ce('\\*',.'.*',.preg_quote($whit
a9c20 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a 0a 72 65 74 75 72 6e 20 22 7b 5e 22 20 2e eListedPattern));..return."{^"..
a9c40 20 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 2e 20 22 24 .$cleanedWhiteListedPattern..."$
a9c60 7d 69 22 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 }i";.}..private.function.extract
a9c80 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6c 69 6e 6b 73 29 0a 7b 0a 24 PlatformRequirements($links).{.$
a9ca0 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 platformReqs.=.array();.foreach.
a9cc0 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 ($links.as.$link).{.if.(preg_mat
a9ce0 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f ch(PlatformRepository::PLATFORM_
a9d00 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 PACKAGE_REGEX,.$link->getTarget(
a9d20 29 29 29 20 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 ))).{.$platformReqs[$link->getTa
a9d40 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 rget()].=.$link->getPrettyConstr
a9d60 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 aint();.}.}..return.$platformReq
a9d80 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 s;.}..............private.functi
a9da0 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 on.whitelistUpdateDependencies($
a9dc0 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 localRepo,.$devMode,.array.$root
a9de0 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 Requires,.array.$rootDevRequires
a9e00 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 ).{.if.(!$this->updateWhitelist)
a9e20 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 .{.return;.}..$requiredPackageNa
a9e40 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6d 65 mes.=.array();.foreach.(array_me
a9e60 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 rge($rootRequires,.$rootDevRequi
a9e80 72 65 73 29 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 50 61 63 res).as.$require).{.$requiredPac
a9ea0 6b 61 67 65 4e 61 6d 65 73 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 kageNames[].=.$require->getTarge
a9ec0 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 6f 6f 74 52 65 71 t();.}..if.($devMode).{.$rootReq
a9ee0 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 65 71 75 69 72 65 uires.=.array_merge($rootRequire
a9f00 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 73 6b 69 70 50 61 s,.$rootDevRequires);.}..$skipPa
a9f20 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f 6f 74 ckages.=.array();.foreach.($root
a9f40 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 6b 69 70 50 61 63 Requires.as.$require).{.$skipPac
a9f60 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 kages[$require->getTarget()].=.t
a9f80 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a 24 70 6f 6f 6c 2d rue;.}..$pool.=.new.Pool;.$pool-
a9fa0 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 0a 24 73 65 >addRepository($localRepo);..$se
a9fc0 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 72 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b en.=.array();..$rootRequiredPack
a9fe0 61 67 65 4e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 6f 6f 74 52 65 71 75 69 ageNames.=.array_keys($rootRequi
aa000 72 65 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 res);..foreach.($this->updateWhi
aa020 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 telist.as.$packageName.=>.$void)
aa040 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 .{.$packageQueue.=.new.\SplQueue
aa060 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f ;..$depPackages.=.$pool->whatPro
aa080 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 4d 61 74 63 68 vides($packageName);..$nameMatch
aa0a0 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 70 61 esRequiredPackage.=.in_array($pa
aa0c0 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 ckageName,.$requiredPackageNames
aa0e0 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 20 28 21 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 ,.true);....if.(!$nameMatchesReq
aa100 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 77 68 69 74 65 6c 69 73 74 50 61 74 74 65 72 uiredPackage).{.$whitelistPatter
aa120 6e 52 65 67 65 78 70 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 54 6f 52 65 nRegexp.=.$this->packageNameToRe
aa140 67 65 78 70 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6f gexp($packageName);.foreach.($ro
aa160 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 20 61 73 20 24 72 6f 6f 74 52 otRequiredPackageNames.as.$rootR
aa180 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d equiredPackageName).{.if.(preg_m
aa1a0 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 50 61 74 74 65 72 6e 52 65 67 65 78 70 2c 20 24 72 atch($whitelistPatternRegexp,.$r
aa1c0 6f 6f 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 29 29 20 7b 0a 24 6e 61 6d 65 ootRequiredPackageName)).{.$name
aa1e0 4d 61 74 63 68 65 73 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 MatchesRequiredPackage.=.true;.b
aa200 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b 61 reak;.}.}.}..if.(count($depPacka
aa220 67 65 73 29 20 3d 3d 20 30 20 26 26 20 21 24 6e 61 6d 65 4d 61 74 63 68 65 73 52 65 71 75 69 72 ges).==.0.&&.!$nameMatchesRequir
aa240 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e edPackage.&&.!in_array($packageN
aa260 61 6d 65 2c 20 61 72 72 61 79 28 27 6e 6f 74 68 69 6e 67 27 2c 20 27 6c 6f 63 6b 27 29 29 29 20 ame,.array('nothing',.'lock'))).
aa280 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 45 72 72 6f 72 28 27 3c 77 61 72 6e 69 6e {.$this->io->writeError('<warnin
aa2a0 67 3e 50 61 63 6b 61 67 65 20 22 27 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 22 g>Package."'...$packageName...'"
aa2c0 20 6c 69 73 74 65 64 20 66 6f 72 20 75 70 64 61 74 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c .listed.for.update.is.not.instal
aa2e0 6c 65 64 2e 20 49 67 6e 6f 72 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 66 led..Ignoring.</warning>');.}..f
aa300 6f 72 65 61 63 68 20 28 24 64 65 70 50 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 70 50 61 63 6b oreach.($depPackages.as.$depPack
aa320 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 24 64 age).{.$packageQueue->enqueue($d
aa340 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 67 65 51 epPackage);.}..while.(!$packageQ
aa360 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 ueue->isEmpty()).{.$package.=.$p
aa380 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 73 73 65 ackageQueue->dequeue();.if.(isse
aa3a0 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 63 t($seen[$package->getId()])).{.c
aa3c0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 ontinue;.}..$seen[$package->getI
aa3e0 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c d()].=.true;.$this->updateWhitel
aa400 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b ist[$package->getName()].=.true;
aa420 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 ..if.(!$this->whitelistDependenc
aa440 69 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 ies).{.continue;.}..$requires.=.
aa460 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 66 6f 72 65 61 63 $package->getRequires();..foreac
aa480 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 h.($requires.as.$require).{.$req
aa4a0 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 uirePackages.=.$pool->whatProvid
aa4c0 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 6f 72 65 es($require->getTarget());..fore
aa4e0 61 63 68 20 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 75 69 72 ach.($requirePackages.as.$requir
aa500 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 63 6b 61 ePackage).{.if.(isset($skipPacka
aa520 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 ges[$requirePackage->getName()])
aa540 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 ).{.continue;.}.$packageQueue->e
aa560 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 7d nqueue($requirePackage);.}.}.}.}
aa580 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 63 6b .}.........private.function.mock
aa5a0 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 LocalRepositories(RepositoryMana
aa5c0 67 65 72 20 24 72 6d 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ger.$rm).{.$packages.=.array();.
aa5e0 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 foreach.($rm->getLocalRepository
aa600 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b ()->getPackages().as.$package).{
aa620 0a 24 70 61 63 6b 61 67 65 73 5b 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 5d 20 3d 20 .$packages[(string).$package].=.
aa640 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b clone.$package;.}.foreach.($pack
aa660 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 ages.as.$key.=>.$package).{.if.(
aa680 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 $package.instanceof.AliasPackage
aa6a0 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e ).{.$alias.=.(string).$package->
aa6c0 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d 20 3d 20 getAliasOf();.$packages[$key].=.
aa6e0 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 73 5b 24 61 6c 69 61 new.AliasPackage($packages[$alia
aa700 73 5d 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 s],.$package->getVersion(),.$pac
aa720 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 24 kage->getPrettyVersion());.}.}.$
aa740 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 20 49 6e 73 74 rm->setLocalRepository(.new.Inst
aa760 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 67 65 73 29 0a alledArrayRepository($packages).
aa780 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 );.}.........public.static.funct
aa7a0 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6d 70 ion.create(IOInterface.$io,.Comp
aa7c0 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 oser.$composer).{.return.new.sta
aa7e0 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 tic(.$io,.$composer->getConfig()
aa800 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 0a 24 63 6f 6d 70 ,.$composer->getPackage(),.$comp
aa820 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d oser->getDownloadManager(),.$com
aa840 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2c 0a 24 poser->getRepositoryManager(),.$
aa860 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 composer->getLocker(),.$composer
aa880 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2c 0a 24 63 6f 6d ->getInstallationManager(),.$com
aa8a0 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2c 0a 24 63 6f poser->getEventDispatcher(),.$co
aa8c0 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a 29 mposer->getAutoloadGenerator().)
aa8e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 64 69 74 69 6f 6e ;.}..public.function.setAddition
aa900 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 alInstalledRepository(Repository
aa920 49 6e 74 65 72 66 61 63 65 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 Interface.$additionalInstalledRe
aa940 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 6e 73 pository).{.$this->additionalIns
aa960 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 61 64 64 69 74 69 6f 6e 61 6c 49 6e talledRepository.=.$additionalIn
aa980 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 stalledRepository;..return.$this
aa9a0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 72 ;.}........public.function.setDr
aa9c0 79 52 75 6e 28 24 64 72 79 52 75 6e 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 yRun($dryRun.=.true).{.$this->dr
aa9e0 79 52 75 6e 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 72 79 52 75 6e 3b 0a 0a 72 65 74 75 72 yRun.=.(boolean).$dryRun;..retur
aaa00 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e n.$this;.}.......public.function
aaa20 20 69 73 44 72 79 52 75 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 72 79 52 .isDryRun().{.return.$this->dryR
aaa40 75 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 un;.}........public.function.set
aaa60 50 72 65 66 65 72 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 PreferSource($preferSource.=.tru
aaa80 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 28 62 6f 6f 6c e).{.$this->preferSource.=.(bool
aaaa0 65 61 6e 29 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ean).$preferSource;..return.$thi
aaac0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 s;.}........public.function.setP
aaae0 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a referDist($preferDist.=.true).{.
aab00 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 $this->preferDist.=.(boolean).$p
aab20 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a referDist;..return.$this;.}.....
aab40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 ...public.function.setOptimizeAu
aab60 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 66 toloader($optimizeAutoloader.=.f
aab80 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 alse).{.$this->optimizeAutoloade
aaba0 72 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 r.=.(boolean).$optimizeAutoloade
aabc0 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 r;..return.$this;.}........publi
aabe0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 28 24 75 70 64 61 74 65 20 3d 20 74 c.function.setUpdate($update.=.t
aac00 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 rue).{.$this->update.=.(boolean)
aac20 20 24 75 70 64 61 74 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .$update;..return.$this;.}......
aac40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 4d 6f 64 65 28 24 64 65 ..public.function.setDevMode($de
aac60 76 4d 6f 64 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3d vMode.=.true).{.$this->devMode.=
aac80 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 .(boolean).$devMode;..return.$th
aaca0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 is;.}........public.function.set
aacc0 44 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 28 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 3d DumpAutoloader($dumpAutoloader.=
aace0 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 20 3d .true).{.$this->dumpAutoloader.=
aad00 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 75 6d 70 41 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 .(boolean).$dumpAutoloader;..ret
aad20 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urn.$this;.}........public.funct
aad40 69 6f 6e 20 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 ion.setRunScripts($runScripts.=.
aad60 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f 6f true).{.$this->runScripts.=.(boo
aad80 6c 65 61 6e 29 20 24 72 75 6e 53 63 72 69 70 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 lean).$runScripts;..return.$this
aada0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f ;.}........public.function.setCo
aadc0 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f nfig(Config.$config).{.$this->co
aade0 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d nfig.=.$config;..return.$this;.}
aae00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f ........public.function.setVerbo
aae20 73 65 28 24 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 se($verbose.=.true).{.$this->ver
aae40 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 65 74 75 bose.=.(boolean).$verbose;..retu
aae60 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rn.$this;.}.......public.functio
aae80 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 n.isVerbose().{.return.$this->ve
aaea0 72 62 6f 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rbose;.}........public.function.
aaec0 73 65 74 49 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 69 setIgnorePlatformRequirements($i
aaee0 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 gnorePlatformReqs.=.false).{.$th
aaf00 69 73 2d 3e 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 28 62 6f 6f 6c 65 61 is->ignorePlatformReqs.=.(boolea
aaf20 6e 29 20 24 69 67 6e 6f 72 65 50 6c 61 74 66 6f 72 6d 52 65 71 73 3b 0a 0a 72 65 74 75 72 6e 20 n).$ignorePlatformReqs;..return.
aaf40 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $this;.}.........public.function
aaf60 20 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 24 70 61 63 6b 61 .setUpdateWhitelist(array.$packa
aaf80 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 ges).{.$this->updateWhitelist.=.
aafa0 61 72 72 61 79 5f 66 6c 69 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 6f 6c 6f 77 65 72 array_flip(array_map('strtolower
aafc0 27 2c 20 24 70 61 63 6b 61 67 65 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ',.$packages));..return.$this;.}
aafe0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 68 69 74 65 ........public.function.setWhite
ab000 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 75 70 64 61 74 65 44 65 70 65 6e 64 65 6e listDependencies($updateDependen
ab020 63 69 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 44 cies.=.true).{.$this->whitelistD
ab040 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 44 ependencies.=.(boolean).$updateD
ab060 65 70 65 6e 64 65 6e 63 69 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a ependencies;..return.$this;.}...
ab080 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 53 74 .....public.function.setPreferSt
ab0a0 61 62 6c 65 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 able($preferStable.=.true).{.$th
ab0c0 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 is->preferStable.=.(boolean).$pr
ab0e0 65 66 65 72 53 74 61 62 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a eferStable;..return.$this;.}....
ab100 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 4c 6f 77 ....public.function.setPreferLow
ab120 65 73 74 28 24 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 est($preferLowest.=.true).{.$thi
ab140 73 2d 3e 70 72 65 66 65 72 4c 6f 77 65 73 74 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 70 72 65 s->preferLowest.=.(boolean).$pre
ab160 66 65 72 4c 6f 77 65 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ferLowest;..return.$this;.}.....
ab180 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 6c 75 ......public.function.disablePlu
ab1a0 67 69 6e 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 gins().{.$this->installationMana
ab1c0 67 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 ger->disablePlugins();..return.$
ab1e0 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 2f 2a 0a 20 2a 20 54 68 69 73 20 66 69 6c 65 this;.}.}.<?php../*..*.This.file
ab200 20 69 73 20 70 61 72 74 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e 0a 20 2a 0a 20 2a 20 28 63 29 20 .is.part.of.Composer...*..*.(c).
ab220 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 20 3c 6e 61 64 65 72 6d 61 6e 40 6e 61 64 65 72 6d 61 6e Nils.Adermann.<naderman@naderman
ab240 2e 64 65 3e 0a 20 2a 20 20 20 20 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f .de>..*.....Jordi.Boggiano.<j.bo
ab260 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 3e 0a 20 2a 0a 20 2a 20 46 6f 72 20 74 68 65 20 66 75 ggiano@seld.be>..*..*.For.the.fu
ab280 6c 6c 20 63 6f 70 79 72 69 67 68 74 20 61 6e 64 20 6c 69 63 65 6e 73 65 20 69 6e 66 6f 72 6d 61 ll.copyright.and.license.informa
ab2a0 74 69 6f 6e 2c 20 70 6c 65 61 73 65 20 76 69 65 77 20 74 68 65 20 4c 49 43 45 4e 53 45 0a 20 2a tion,.please.view.the.LICENSE..*
ab2c0 20 66 69 6c 65 20 74 68 61 74 20 77 61 73 20 64 69 73 74 72 69 62 75 74 65 64 20 77 69 74 68 20 .file.that.was.distributed.with.
ab2e0 74 68 69 73 20 73 6f 75 72 63 65 20 63 6f 64 65 2e 0a 20 2a 2f 0a 0a 6e 61 6d 65 73 70 61 63 65 this.source.code...*/..namespace
ab300 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 .Composer\Autoload;../**..*.Clas
ab320 73 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 61 20 50 53 52 2d 30 20 63 6c 61 73 73 sLoader.implements.a.PSR-0.class
ab340 20 6c 6f 61 64 65 72 0a 20 2a 0a 20 2a 20 53 65 65 20 68 74 74 70 73 3a 2f 2f 67 69 74 68 75 62 .loader..*..*.See.https://github
ab360 2e 63 6f 6d 2f 70 68 70 2d 66 69 67 2f 66 69 67 2d 73 74 61 6e 64 61 72 64 73 2f 62 6c 6f 62 2f .com/php-fig/fig-standards/blob/
ab380 6d 61 73 74 65 72 2f 61 63 63 65 70 74 65 64 2f 50 53 52 2d 30 2e 6d 64 0a 20 2a 0a 20 2a 20 20 master/accepted/PSR-0.md..*..*..
ab3a0 20 20 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c ...$loader.=.new.\Composer\Autol
ab3c0 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 oad\ClassLoader();..*..*.....//.
ab3e0 72 65 67 69 73 74 65 72 20 63 6c 61 73 73 65 73 20 77 69 74 68 20 6e 61 6d 65 73 70 61 63 65 73 register.classes.with.namespaces
ab400 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 5c 43 6f ..*.....$loader->add('Symfony\Co
ab420 6d 70 6f 6e 65 6e 74 27 2c 20 5f 5f 44 49 52 5f 5f 2e 27 2f 63 6f 6d 70 6f 6e 65 6e 74 27 29 3b mponent',.__DIR__.'/component');
ab440 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 28 27 53 79 6d 66 6f 6e 79 27 2c 20 ..*.....$loader->add('Symfony',.
ab460 20 20 20 20 20 20 20 20 20 20 5f 5f 44 49 52 5f 5f 2e 27 2f 66 72 61 6d 65 77 6f 72 6b 27 29 3b ..........__DIR__.'/framework');
ab480 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 61 63 74 69 76 61 74 65 20 74 68 65 20 61 75 74 6f 6c ..*..*.....//.activate.the.autol
ab4a0 6f 61 64 65 72 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 oader..*.....$loader->register()
ab4c0 3b 0a 20 2a 0a 20 2a 20 20 20 20 20 2f 2f 20 74 6f 20 65 6e 61 62 6c 65 20 73 65 61 72 63 68 69 ;..*..*.....//.to.enable.searchi
ab4e0 6e 67 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 28 65 67 2e 20 66 6f 72 20 50 45 41 ng.the.include.path.(eg..for.PEA
ab500 52 20 70 61 63 6b 61 67 65 73 29 0a 20 2a 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 55 R.packages)..*.....$loader->setU
ab520 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 74 72 75 65 29 3b 0a 20 2a 0a 20 2a 20 49 6e 20 74 68 seIncludePath(true);..*..*.In.th
ab540 69 73 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 74 72 79 20 74 6f 20 75 73 65 20 61 20 is.example,.if.you.try.to.use.a.
ab560 63 6c 61 73 73 20 69 6e 20 74 68 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 0a 20 class.in.the.Symfony\Component..
ab580 2a 20 6e 61 6d 65 73 70 61 63 65 20 6f 72 20 6f 6e 65 20 6f 66 20 69 74 73 20 63 68 69 6c 64 72 *.namespace.or.one.of.its.childr
ab5a0 65 6e 20 28 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 20 66 6f en.(Symfony\Component\Console.fo
ab5c0 72 20 69 6e 73 74 61 6e 63 65 29 2c 0a 20 2a 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 r.instance),..*.the.autoloader.w
ab5e0 69 6c 6c 20 66 69 72 73 74 20 6c 6f 6f 6b 20 66 6f 72 20 74 68 65 20 63 6c 61 73 73 20 75 6e 64 ill.first.look.for.the.class.und
ab600 65 72 20 74 68 65 20 63 6f 6d 70 6f 6e 65 6e 74 2f 0a 20 2a 20 64 69 72 65 63 74 6f 72 79 2c 20 er.the.component/..*.directory,.
ab620 61 6e 64 20 69 74 20 77 69 6c 6c 20 74 68 65 6e 20 66 61 6c 6c 62 61 63 6b 20 74 6f 20 74 68 65 and.it.will.then.fallback.to.the
ab640 20 66 72 61 6d 65 77 6f 72 6b 2f 20 64 69 72 65 63 74 6f 72 79 20 69 66 20 6e 6f 74 0a 20 2a 20 .framework/.directory.if.not..*.
ab660 66 6f 75 6e 64 20 62 65 66 6f 72 65 20 67 69 76 69 6e 67 20 75 70 2e 0a 20 2a 0a 20 2a 20 54 68 found.before.giving.up...*..*.Th
ab680 69 73 20 63 6c 61 73 73 20 69 73 20 6c 6f 6f 73 65 6c 79 20 62 61 73 65 64 20 6f 6e 20 74 68 65 is.class.is.loosely.based.on.the
ab6a0 20 53 79 6d 66 6f 6e 79 20 55 6e 69 76 65 72 73 61 6c 43 6c 61 73 73 4c 6f 61 64 65 72 2e 0a 20 .Symfony.UniversalClassLoader...
ab6c0 2a 0a 20 2a 20 40 61 75 74 68 6f 72 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 20 3c 66 *..*.@author.Fabien.Potencier.<f
ab6e0 61 62 69 65 6e 40 73 79 6d 66 6f 6e 79 2e 63 6f 6d 3e 0a 20 2a 20 40 61 75 74 68 6f 72 20 4a 6f abien@symfony.com>..*.@author.Jo
ab700 72 64 69 20 42 6f 67 67 69 61 6e 6f 20 3c 6a 2e 62 6f 67 67 69 61 6e 6f 40 73 65 6c 64 2e 62 65 rdi.Boggiano.<j.boggiano@seld.be
ab720 3e 0a 20 2a 2f 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 20 20 20 20 2f 2f >..*/.class.ClassLoader.{.....//
ab740 20 50 53 52 2d 34 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 4c 65 6e 67 74 68 .PSR-4.....private.$prefixLength
ab760 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 sPsr4.=.array();.....private.$pr
ab780 65 66 69 78 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 efixDirsPsr4.=.array();.....priv
ab7a0 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b ate.$fallbackDirsPsr4.=.array();
ab7c0 0a 0a 20 20 20 20 2f 2f 20 50 53 52 2d 30 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 ......//.PSR-0.....private.$pref
ab7e0 69 78 65 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 ixesPsr0.=.array();.....private.
ab800 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 $fallbackDirsPsr0.=.array();....
ab820 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 ..private.$useIncludePath.=.fals
ab840 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 e;.....private.$classMap.=.array
ab860 28 29 3b 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 ();......private.$classMapAuthor
ab880 69 74 61 74 69 76 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e itative.=.false;......public.fun
ab8a0 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 ction.getPrefixes().....{.......
ab8c0 20 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 ..if.(!empty($this->prefixesPsr0
ab8e0 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 )).{.............return.call_use
ab900 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 74 68 69 r_func_array('array_merge',.$thi
ab920 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 s->prefixesPsr0);.........}.....
ab940 20 20 20 20 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 .....return.array();.....}......
ab960 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 50 73 72 34 28 public.function.getPrefixesPsr4(
ab980 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 ).....{.........return.$this->pr
ab9a0 65 66 69 78 44 69 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 efixDirsPsr4;.....}......public.
ab9c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 20 20 20 20 7b function.getFallbackDirs().....{
ab9e0 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 .........return.$this->fallbackD
aba00 69 72 73 50 73 72 30 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 irsPsr0;.....}......public.funct
aba20 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 28 29 0a 20 20 20 20 7b 0a ion.getFallbackDirsPsr4().....{.
aba40 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 ........return.$this->fallbackDi
aba60 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rsPsr4;.....}......public.functi
aba80 6f 6e 20 67 65 74 43 6c 61 73 73 4d 61 70 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 on.getClassMap().....{.........r
abaa0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 20 eturn.$this->classMap;.....}....
abac0 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 63 6c 61 73 73 ../**......*.@param.array.$class
abae0 4d 61 70 20 43 6c 61 73 73 20 74 6f 20 66 69 6c 65 6e 61 6d 65 20 6d 61 70 0a 20 20 20 20 20 2a Map.Class.to.filename.map......*
abb00 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 61 73 73 4d 61 /.....public.function.addClassMa
abb20 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 p(array.$classMap).....{........
abb40 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 20 20 20 20 20 20 20 20 .if.($this->classMap).{.........
abb60 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 ....$this->classMap.=.array_merg
abb80 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 e($this->classMap,.$classMap);..
abba0 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 .......}.else.{.............$thi
abbc0 73 2d 3e 63 6c 61 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 20 20 20 s->classMap.=.$classMap;........
abbe0 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 .}.....}....../**......*.Registe
abc00 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 30 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f rs.a.set.of.PSR-0.directories.fo
abc20 72 20 61 20 67 69 76 65 6e 20 70 72 65 66 69 78 2c 20 65 69 74 68 65 72 0a 20 20 20 20 20 2a 20 r.a.given.prefix,.either......*.
abc40 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 65 70 65 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 6f appending.or.prepending.to.the.o
abc60 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 69 73 20 70 72 65 66 nes.previously.set.for.this.pref
abc80 69 78 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 ix.......*......*.@param.string.
abca0 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a ......$prefix..The.prefix......*
abcc0 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 .@param.array|string.$paths...Th
abce0 65 20 50 53 52 2d 30 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 20 e.PSR-0.root.directories......*.
abd00 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 20 20 20 20 20 20 24 70 72 65 70 65 6e 64 20 57 68 65 @param.bool.........$prepend.Whe
abd20 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a ther.to.prepend.the.directories.
abd40 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 .....*/.....public.function.add(
abd60 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 $prefix,.$paths,.$prepend.=.fals
abd80 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b e).....{.........if.(!$prefix).{
abda0 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 .............if.($prepend).{....
abdc0 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 .............$this->fallbackDirs
abde0 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 Psr0.=.array_merge(.............
abe00 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 ........(array).$paths,.........
abe20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 ............$this->fallbackDirsP
abe40 73 72 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 sr0.................);..........
abe60 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 ...}.else.{.................$thi
abe80 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 s->fallbackDirsPsr0.=.array_merg
abea0 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 e(.....................$this->fa
abec0 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 llbackDirsPsr0,.................
abee0 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(array).$paths..............
abf00 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 20 20 20 ...);.............}.............
abf20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 66 69 72 .return;.........}..........$fir
abf40 73 74 20 3d 20 24 70 72 65 66 69 78 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 69 73 st.=.$prefix[0];.........if.(!is
abf60 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b set($this->prefixesPsr0[$first][
abf80 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e $prefix])).{.............$this->
abfa0 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 prefixesPsr0[$first][$prefix].=.
abfc0 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 (array).$paths;..............ret
abfe0 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 urn;.........}.........if.($prep
ac000 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 end).{.............$this->prefix
ac020 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f esPsr0[$first][$prefix].=.array_
ac040 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 merge(.................(array).$
ac060 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 paths,.................$this->pr
ac080 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 0a 20 20 20 20 efixesPsr0[$first][$prefix].....
ac0a0 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 ........);.........}.else.{.....
ac0c0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 ........$this->prefixesPsr0[$fir
ac0e0 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 st][$prefix].=.array_merge(.....
ac100 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b ............$this->prefixesPsr0[
ac120 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $first][$prefix],...............
ac140 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a ..(array).$paths.............);.
ac160 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 ........}.....}....../**......*.
ac180 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 34 20 64 69 72 65 63 74 6f Registers.a.set.of.PSR-4.directo
ac1a0 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 6e 61 6d 65 73 70 61 63 65 2c 20 65 69 74 68 ries.for.a.given.namespace,.eith
ac1c0 65 72 0a 20 20 20 20 20 2a 20 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 65 70 65 6e 64 69 6e er......*.appending.or.prependin
ac1e0 67 20 74 6f 20 74 68 65 20 6f 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 g.to.the.ones.previously.set.for
ac200 20 74 68 69 73 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 .this.namespace.......*......*.@
ac220 70 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 param.string.......$prefix..The.
ac240 70 72 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 6c 69 6e 67 20 prefix/namespace,.with.trailing.
ac260 27 5c 5c 27 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 '\\'......*.@param.array|string.
ac280 24 70 61 74 68 73 20 20 20 54 68 65 20 50 53 52 2d 30 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 $paths...The.PSR-0.base.director
ac2a0 69 65 73 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 20 20 20 20 20 20 24 ies......*.@param.bool.........$
ac2c0 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 64 prepend.Whether.to.prepend.the.d
ac2e0 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 74 68 72 6f 77 73 irectories......*......*.@throws
ac300 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 0a 20 20 20 20 20 .\InvalidArgumentException......
ac320 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 73 72 34 28 24 */.....public.function.addPsr4($
ac340 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 prefix,.$paths,.$prepend.=.false
ac360 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a ).....{.........if.(!$prefix).{.
ac380 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 74 65 72 20 64 69 72 65 63 74 6f 72 ............//.Register.director
ac3a0 69 65 73 20 66 6f 72 20 74 68 65 20 72 6f 6f 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 ies.for.the.root.namespace......
ac3c0 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 ........if.($prepend).{.........
ac3e0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 ........$this->fallbackDirsPsr4.
ac400 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.array_merge(..................
ac420 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(array).$paths,..............
ac440 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 0a 20 .......$this->fallbackDirsPsr4..
ac460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 ...............);.............}.
ac480 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 else.{.................$this->fa
ac4a0 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 llbackDirsPsr4.=.array_merge(...
ac4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 ..................$this->fallbac
ac4e0 6b 44 69 72 73 50 73 72 34 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 kDirsPsr4,.....................(
ac500 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b array).$paths.................);
ac520 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 .............}.........}.elseif.
ac540 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 (!isset($this->prefixDirsPsr4[$p
ac560 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 74 refix])).{.............//.Regist
ac580 65 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 6e 65 77 20 6e 61 6d 65 73 70 61 er.directories.for.a.new.namespa
ac5a0 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e ce..............$length.=.strlen
ac5c0 28 24 70 72 65 66 69 78 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 20 ($prefix);.............if.('\\'.
ac5e0 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 20 7b 0a 20 20 20 20 !==.$prefix[$length.-.1]).{.....
ac600 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 ............throw.new.\InvalidAr
ac620 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 gumentException("A.non-empty.PSR
ac640 2d 34 20 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 -4.prefix.must.end.with.a.namesp
ac660 61 63 65 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a ace.separator.");.............}.
ac680 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 ............$this->prefixLengths
ac6a0 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 24 6c 65 6e Psr4[$prefix[0]][$prefix].=.$len
ac6c0 67 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 gth;.............$this->prefixDi
ac6e0 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 rsPsr4[$prefix].=.(array).$paths
ac700 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a ;.........}.elseif.($prepend).{.
ac720 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 72 65 70 65 6e 64 20 64 69 72 65 63 74 6f 72 69 ............//.Prepend.directori
ac740 65 73 20 66 6f 72 20 61 6e 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 6e 61 6d es.for.an.already.registered.nam
ac760 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 espace..............$this->prefi
ac780 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 xDirsPsr4[$prefix].=.array_merge
ac7a0 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 (.................(array).$paths
ac7c0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 ,.................$this->prefixD
ac7e0 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a irsPsr4[$prefix].............);.
ac800 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 ........}.else.{.............//.
ac820 41 70 70 65 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 6e 20 61 6c 72 65 61 64 Append.directories.for.an.alread
ac840 79 20 72 65 67 69 73 74 65 72 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 y.registered.namespace..........
ac860 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 ....$this->prefixDirsPsr4[$prefi
ac880 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x].=.array_merge(...............
ac8a0 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d ..$this->prefixDirsPsr4[$prefix]
ac8c0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 ,.................(array).$paths
ac8e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a .............);.........}.....}.
ac900 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 ...../**......*.Registers.a.set.
ac920 6f 66 20 50 53 52 2d 30 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e of.PSR-0.directories.for.a.given
ac940 20 70 72 65 66 69 78 2c 0a 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 6e 67 20 61 6e 79 20 6f 74 .prefix,......*.replacing.any.ot
ac960 68 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 69 73 20 70 72 65 hers.previously.set.for.this.pre
ac980 66 69 78 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 fix.......*......*.@param.string
ac9a0 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a .......$prefix.The.prefix......*
ac9c0 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 54 68 65 .@param.array|string.$paths..The
ac9e0 20 50 53 52 2d 30 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 2f 0a .PSR-0.base.directories......*/.
aca00 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 65 66 69 78 2c ....public.function.set($prefix,
aca20 20 24 70 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 .$paths).....{.........if.(!$pre
aca40 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 fix).{.............$this->fallba
aca60 63 6b 44 69 72 73 50 73 72 30 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 ckDirsPsr0.=.(array).$paths;....
aca80 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d .....}.else.{.............$this-
acaa0 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 >prefixesPsr0[$prefix[0]][$prefi
acac0 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 x].=.(array).$paths;.........}..
acae0 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 ...}....../**......*.Registers.a
acb00 20 73 65 74 20 6f 66 20 50 53 52 2d 34 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 .set.of.PSR-4.directories.for.a.
acb20 67 69 76 65 6e 20 6e 61 6d 65 73 70 61 63 65 2c 0a 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 6e given.namespace,......*.replacin
acb40 67 20 61 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 g.any.others.previously.set.for.
acb60 74 68 69 73 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 this.namespace.......*......*.@p
acb80 61 72 61 6d 20 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 54 68 65 20 70 72 aram.string.......$prefix.The.pr
acba0 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 6c 69 6e 67 20 27 5c efix/namespace,.with.trailing.'\
acbc0 5c 27 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 \'......*.@param.array|string.$p
acbe0 61 74 68 73 20 20 54 68 65 20 50 53 52 2d 34 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 aths..The.PSR-4.base.directories
acc00 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 74 68 72 6f 77 73 20 5c 49 6e 76 61 6c 69 64 41 ......*......*.@throws.\InvalidA
acc20 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 rgumentException......*/.....pub
acc40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 70 lic.function.setPsr4($prefix,.$p
acc60 61 74 68 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 aths).....{.........if.(!$prefix
acc80 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 ).{.............$this->fallbackD
acca0 69 72 73 50 73 72 34 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 irsPsr4.=.(array).$paths;.......
accc0 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 6e 67 74 68 20 3d ..}.else.{.............$length.=
acce0 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 .strlen($prefix);.............if
acd00 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 .('\\'.!==.$prefix[$length.-.1])
acd20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e .{.................throw.new.\In
acd40 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d validArgumentException("A.non-em
acd60 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 pty.PSR-4.prefix.must.end.with.a
acd80 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 20 20 20 20 20 20 20 .namespace.separator.");........
acda0 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 .....}.............$this->prefix
acdc0 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d LengthsPsr4[$prefix[0]][$prefix]
acde0 20 3d 20 24 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 .=.$length;.............$this->p
ace00 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 refixDirsPsr4[$prefix].=.(array)
ace20 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a .$paths;.........}.....}....../*
ace40 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 *......*.Turns.on.searching.the.
ace60 69 6e 63 6c 75 64 65 20 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 66 69 6c 65 73 2e 0a 20 20 include.path.for.class.files....
ace80 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 75 73 65 49 6e 63 6c ...*......*.@param.bool.$useIncl
acea0 75 64 65 50 61 74 68 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 udePath......*/.....public.funct
acec0 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 6e 63 6c 75 64 ion.setUseIncludePath($useInclud
acee0 65 50 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 75 73 65 49 ePath).....{.........$this->useI
acf00 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 20 20 ncludePath.=.$useIncludePath;...
acf20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 6e 20 62 65 20 75 73 65 64 20 ..}....../**......*.Can.be.used.
acf40 74 6f 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 75 73 65 73 20 to.check.if.the.autoloader.uses.
acf60 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 74 6f 20 63 68 65 63 6b 0a 20 20 20 20 20 2a the.include.path.to.check......*
acf80 20 66 6f 72 20 63 6c 61 73 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 72 65 74 .for.classes.......*......*.@ret
acfa0 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 urn.bool......*/.....public.func
acfc0 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 20 20 20 20 7b 0a 20 tion.getUseIncludePath().....{..
acfe0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 .......return.$this->useIncludeP
ad000 61 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 ath;.....}....../**......*.Turns
ad020 20 6f 66 66 20 73 65 61 72 63 68 69 6e 67 20 74 68 65 20 70 72 65 66 69 78 20 61 6e 64 20 66 61 .off.searching.the.prefix.and.fa
ad040 6c 6c 62 61 63 6b 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 63 6c 61 73 73 65 73 0a 20 llback.directories.for.classes..
ad060 20 20 20 20 2a 20 74 68 61 74 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 72 65 67 69 73 74 65 ....*.that.have.not.been.registe
ad080 72 65 64 20 77 69 74 68 20 74 68 65 20 63 6c 61 73 73 20 6d 61 70 2e 0a 20 20 20 20 20 2a 0a 20 red.with.the.class.map.......*..
ad0a0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f ....*.@param.bool.$classMapAutho
ad0c0 72 69 74 61 74 69 76 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 ritative......*/.....public.func
ad0e0 74 69 6f 6e 20 73 65 74 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 24 63 tion.setClassMapAuthoritative($c
ad100 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 lassMapAuthoritative).....{.....
ad120 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 ....$this->classMapAuthoritative
ad140 20 3d 20 24 63 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 20 20 20 20 7d .=.$classMapAuthoritative;.....}
ad160 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 53 68 6f 75 6c 64 20 63 6c 61 73 73 20 6c 6f ....../**......*.Should.class.lo
ad180 6f 6b 75 70 20 66 61 69 6c 20 69 66 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 okup.fail.if.not.found.in.the.cu
ad1a0 72 72 65 6e 74 20 63 6c 61 73 73 20 6d 61 70 3f 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 rrent.class.map?......*......*.@
ad1c0 72 65 74 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 return.bool......*/.....public.f
ad1e0 75 6e 63 74 69 6f 6e 20 69 73 43 6c 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 28 unction.isClassMapAuthoritative(
ad200 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c ).....{.........return.$this->cl
ad220 61 73 73 4d 61 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 assMapAuthoritative;.....}......
ad240 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e /**......*.Registers.this.instan
ad260 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 ce.as.an.autoloader.......*.....
ad280 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 .*.@param.bool.$prepend.Whether.
ad2a0 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 6f 72 20 6e 6f 74 to.prepend.the.autoloader.or.not
ad2c0 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 ......*/.....public.function.reg
ad2e0 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 ister($prepend.=.false).....{...
ad300 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 ......spl_autoload_register(arra
ad320 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 y($this,.'loadClass'),.true,.$pr
ad340 65 70 65 6e 64 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 55 6e epend);.....}....../**......*.Un
ad360 72 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 registers.this.instance.as.an.au
ad380 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e toloader.......*/.....public.fun
ad3a0 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 ction.unregister().....{........
ad3c0 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 .spl_autoload_unregister(array($
ad3e0 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 this,.'loadClass'));.....}......
ad400 2f 2a 2a 0a 20 20 20 20 20 2a 20 4c 6f 61 64 73 20 74 68 65 20 67 69 76 65 6e 20 63 6c 61 73 73 /**......*.Loads.the.given.class
ad420 20 6f 72 20 69 6e 74 65 72 66 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 .or.interface.......*......*.@pa
ad440 72 61 6d 20 20 73 74 72 69 6e 67 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 6f ram..string....$class.The.name.o
ad460 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 7c f.the.class......*.@return.bool|
ad480 6e 75 6c 6c 20 54 72 75 65 20 69 66 20 6c 6f 61 64 65 64 2c 20 6e 75 6c 6c 20 6f 74 68 65 72 77 null.True.if.loaded,.null.otherw
ad4a0 69 73 65 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ise......*/.....public.function.
ad4c0 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 loadClass($class).....{.........
ad4e0 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 if.($file.=.$this->findFile($cla
ad500 73 73 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 63 6c 75 64 65 46 69 6c 65 28 24 ss)).{.............includeFile($
ad520 66 69 6c 65 29 3b 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b file);..............return.true;
ad540 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a .........}.....}....../**......*
ad560 20 46 69 6e 64 73 20 74 68 65 20 70 61 74 68 20 74 6f 20 74 68 65 20 66 69 6c 65 20 77 68 65 72 .Finds.the.path.to.the.file.wher
ad580 65 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 64 65 66 69 6e 65 64 2e 0a 20 20 20 20 20 2a 0a 20 e.the.class.is.defined.......*..
ad5a0 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 54 68 65 20 6e ....*.@param.string.$class.The.n
ad5c0 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 ame.of.the.class......*......*.@
ad5e0 72 65 74 75 72 6e 20 73 74 72 69 6e 67 7c 66 61 6c 73 65 20 54 68 65 20 70 61 74 68 20 69 66 20 return.string|false.The.path.if.
ad600 66 6f 75 6e 64 2c 20 66 61 6c 73 65 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f 0a 20 found,.false.otherwise......*/..
ad620 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 ...public.function.findFile($cla
ad640 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 ss).....{.........//.work.around
ad660 20 66 6f 72 20 50 48 50 20 35 2e 33 2e 30 20 2d 20 35 2e 33 2e 32 20 68 74 74 70 73 3a 2f 2f 62 .for.PHP.5.3.0.-.5.3.2.https://b
ad680 75 67 73 2e 70 68 70 2e 6e 65 74 2f 35 30 37 33 31 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 5c ugs.php.net/50731.........if.('\
ad6a0 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 \'.==.$class[0]).{.............$
ad6c0 63 6c 61 73 73 20 3d 20 73 75 62 73 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 20 20 20 20 20 class.=.substr($class,.1);......
ad6e0 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 6c 61 73 73 20 6d 61 70 20 6c 6f 6f 6b 75 ...}..........//.class.map.looku
ad700 70 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 p.........if.(isset($this->class
ad720 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 Map[$class])).{.............retu
ad740 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 20 rn.$this->classMap[$class];.....
ad760 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 ....}.........if.($this->classMa
ad780 70 41 75 74 68 6f 72 69 74 61 74 69 76 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 pAuthoritative).{.............re
ad7a0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 24 turn.false;.........}..........$
ad7c0 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e 73 file.=.$this->findFileWithExtens
ad7e0 69 6f 6e 28 24 63 6c 61 73 73 2c 20 27 2e 70 68 70 27 29 3b 0a 0a 20 20 20 20 20 20 20 20 2f 2f ion($class,.'.php');..........//
ad800 20 53 65 61 72 63 68 20 66 6f 72 20 48 61 63 6b 20 66 69 6c 65 73 20 69 66 20 77 65 20 61 72 65 .Search.for.Hack.files.if.we.are
ad820 20 72 75 6e 6e 69 6e 67 20 6f 6e 20 48 48 56 4d 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 66 69 .running.on.HHVM.........if.($fi
ad840 6c 65 20 3d 3d 3d 20 6e 75 6c 6c 20 26 26 20 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 le.===.null.&&.defined('HHVM_VER
ad860 53 49 4f 4e 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 66 69 6c 65 20 3d 20 24 74 SION')).{.............$file.=.$t
ad880 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e 73 69 6f 6e 28 24 63 6c 61 73 his->findFileWithExtension($clas
ad8a0 73 2c 20 27 2e 68 68 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 s,.'.hh');.........}..........if
ad8c0 20 28 24 66 69 6c 65 20 3d 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 .($file.===.null).{.............
ad8e0 2f 2f 20 52 65 6d 65 6d 62 65 72 20 74 68 61 74 20 74 68 69 73 20 63 6c 61 73 73 20 64 6f 65 73 //.Remember.that.this.class.does
ad900 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 .not.exist..............return.$
ad920 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a this->classMap[$class].=.false;.
ad940 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b ........}..........return.$file;
ad960 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e .....}......private.function.fin
ad980 64 46 69 6c 65 57 69 74 68 45 78 74 65 6e 73 69 6f 6e 28 24 63 6c 61 73 73 2c 20 24 65 78 74 29 dFileWithExtension($class,.$ext)
ad9a0 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 34 20 6c 6f 6f 6b 75 70 0a 20 .....{.........//.PSR-4.lookup..
ad9c0 20 20 20 20 20 20 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 20 3d 20 73 74 72 74 72 28 .......$logicalPathPsr4.=.strtr(
ad9e0 24 63 6c 61 73 73 2c 20 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f $class,.'\\',.DIRECTORY_SEPARATO
ada00 52 29 20 2e 20 24 65 78 74 3b 0a 0a 20 20 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 24 63 6c R)...$ext;..........$first.=.$cl
ada20 61 73 73 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d ass[0];.........if.(isset($this-
ada40 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 20 >prefixLengthsPsr4[$first])).{..
ada60 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 ...........foreach.($this->prefi
ada80 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 xLengthsPsr4[$first].as.$prefix.
adaa0 3d 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 =>.$length).{.................if
adac0 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 .(0.===.strpos($class,.$prefix))
adae0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 .{.....................foreach.(
adb00 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 61 $this->prefixDirsPsr4[$prefix].a
adb20 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s.$dir).{.......................
adb40 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e ..if.(file_exists($file.=.$dir..
adb60 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 73 75 62 73 74 72 28 24 6c .DIRECTORY_SEPARATOR...substr($l
adb80 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 7b 0a 20 20 20 ogicalPathPsr4,.$length))).{....
adba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 .........................return.
adbc0 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d $file;.........................}
adbe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 .....................}..........
adc00 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d .......}.............}.........}
adc20 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 34 20 66 61 6c 6c 62 61 63 6b 20 64 69 72 73 ..........//.PSR-4.fallback.dirs
adc40 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 .........foreach.($this->fallbac
adc60 6b 44 69 72 73 50 73 72 34 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 kDirsPsr4.as.$dir).{............
adc80 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 .if.(file_exists($file.=.$dir...
adca0 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 DIRECTORY_SEPARATOR...$logicalPa
adcc0 74 68 50 73 72 34 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 thPsr4)).{.................retur
adce0 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d n.$file;.............}.........}
add00 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 ..........//.PSR-0.lookup.......
add20 20 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 ..if.(false.!==.$pos.=.strrpos($
add40 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e class,.'\\')).{.............//.n
add60 61 6d 65 73 70 61 63 65 64 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 amespaced.class.name............
add80 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 75 62 73 74 72 28 24 6c 6f 67 69 .$logicalPathPsr0.=.substr($logi
adda0 63 61 6c 50 61 74 68 50 73 72 34 2c 20 30 2c 20 24 70 6f 73 20 2b 20 31 29 0a 20 20 20 20 20 20 calPathPsr4,.0,.$pos.+.1).......
addc0 20 20 20 20 20 20 20 20 20 20 2e 20 73 74 72 74 72 28 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 ............strtr(substr($logica
adde0 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f 73 20 2b 20 31 29 2c 20 27 5f 27 2c 20 44 49 52 45 43 lPathPsr4,.$pos.+.1),.'_',.DIREC
ade00 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 TORY_SEPARATOR);.........}.else.
ade20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 63 6c 61 73 73 {.............//.PEAR-like.class
ade40 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 .name.............$logicalPathPs
ade60 72 30 20 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 r0.=.strtr($class,.'_',.DIRECTOR
ade80 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 24 65 78 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a Y_SEPARATOR)...$ext;.........}..
adea0 20 20 20 20 20 20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 ........if.(isset($this->prefixe
adec0 73 50 73 72 30 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f sPsr0[$first])).{.............fo
adee0 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 reach.($this->prefixesPsr0[$firs
adf00 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 20 20 20 20 20 20 t].as.$prefix.=>.$dirs).{.......
adf20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 ..........if.(0.===.strpos($clas
adf40 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s,.$prefix)).{..................
adf60 20 20 20 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 ...foreach.($dirs.as.$dir).{....
adf80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 .....................if.(file_ex
adfa0 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 ists($file.=.$dir...DIRECTORY_SE
adfc0 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 20 PARATOR...$logicalPathPsr0)).{..
adfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 ...........................retur
ae000 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.$file;........................
ae020 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .}.....................}........
ae040 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 .........}.............}........
ae060 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 66 61 6c 6c 62 61 63 6b 20 64 69 .}..........//.PSR-0.fallback.di
ae080 72 73 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 rs.........foreach.($this->fallb
ae0a0 61 63 6b 44 69 72 73 50 73 72 30 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 ackDirsPsr0.as.$dir).{..........
ae0c0 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 ...if.(file_exists($file.=.$dir.
ae0e0 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c ..DIRECTORY_SEPARATOR...$logical
ae100 50 61 74 68 50 73 72 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 PathPsr0)).{.................ret
ae120 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 urn.$file;.............}........
ae140 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 53 52 2d 30 20 69 6e 63 6c 75 64 65 20 70 61 74 .}..........//.PSR-0.include.pat
ae160 68 73 2e 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 hs..........if.($this->useInclud
ae180 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f ePath.&&.$file.=.stream_resolve_
ae1a0 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 include_path($logicalPathPsr0)).
ae1c0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 {.............return.$file;.....
ae1e0 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 0a 2f 2a 2a 0a 20 2a 20 53 63 6f 70 65 20 69 73 6f 6c ....}.....}.}../**..*.Scope.isol
ae200 61 74 65 64 20 69 6e 63 6c 75 64 65 2e 0a 20 2a 0a 20 2a 20 50 72 65 76 65 6e 74 73 20 61 63 63 ated.include...*..*.Prevents.acc
ae220 65 73 73 20 74 6f 20 24 74 68 69 73 2f 73 65 6c 66 20 66 72 6f 6d 20 69 6e 63 6c 75 64 65 64 20 ess.to.$this/self.from.included.
ae240 66 69 6c 65 73 2e 0a 20 2a 2f 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 46 69 6c 65 28 files...*/.function.includeFile(
ae260 24 66 69 6c 65 29 0a 7b 0a 20 20 20 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 7d 0a 5b 0a $file).{.....include.$file;.}.[.
ae280 20 20 20 20 22 47 6c 69 64 65 22 2c 20 22 41 62 73 74 79 6c 65 73 22 2c 20 22 41 46 4c 2d 31 2e ...."Glide",."Abstyles",."AFL-1.
ae2a0 31 22 2c 20 22 41 46 4c 2d 31 2e 32 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d 32 1",."AFL-1.2",."AFL-2.0",."AFL-2
ae2c0 2e 31 22 2c 20 22 41 46 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 41 4d 50 41 53 22 2c 20 22 41 50 .1",."AFL-3.0",....."AMPAS",."AP
ae2e0 4c 2d 31 2e 30 22 2c 20 22 41 64 6f 62 65 2d 47 6c 79 70 68 22 2c 20 22 41 50 41 46 4d 4c 22 2c L-1.0",."Adobe-Glyph",."APAFML",
ae300 20 22 41 64 6f 62 65 2d 32 30 30 36 22 2c 20 22 41 47 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 ."Adobe-2006",."AGPL-1.0",....."
ae320 41 66 6d 70 61 72 73 65 22 2c 20 22 41 6c 61 64 64 69 6e 22 2c 20 22 41 44 53 4c 22 2c 20 22 41 Afmparse",."Aladdin",."ADSL",."A
ae340 4d 44 50 4c 50 41 22 2c 20 22 41 4e 54 4c 52 2d 50 44 22 2c 20 22 41 70 61 63 68 65 2d 31 2e 30 MDPLPA",."ANTLR-PD",."Apache-1.0
ae360 22 2c 0a 20 20 20 20 22 41 70 61 63 68 65 2d 31 2e 31 22 2c 20 22 41 70 61 63 68 65 2d 32 2e 30 ",....."Apache-1.1",."Apache-2.0
ae380 22 2c 20 22 41 4d 4c 22 2c 20 22 41 50 53 4c 2d 31 2e 30 22 2c 20 22 41 50 53 4c 2d 31 2e 31 22 ",."AML",."APSL-1.0",."APSL-1.1"
ae3a0 2c 20 22 41 50 53 4c 2d 31 2e 32 22 2c 0a 20 20 20 20 22 41 50 53 4c 2d 32 2e 30 22 2c 20 22 41 ,."APSL-1.2",....."APSL-2.0",."A
ae3c0 72 74 69 73 74 69 63 2d 31 2e 30 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 2d 50 65 72 6c rtistic-1.0",."Artistic-1.0-Perl
ae3e0 22 2c 20 22 41 72 74 69 73 74 69 63 2d 31 2e 30 2d 63 6c 38 22 2c 0a 20 20 20 20 22 41 72 74 69 ",."Artistic-1.0-cl8",....."Arti
ae400 73 74 69 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 20 22 42 61 68 79 70 68 22 2c 20 22 42 61 72 stic-2.0",."AAL",."Bahyph",."Bar
ae420 72 22 2c 20 22 42 65 65 72 77 61 72 65 22 2c 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 30 22 r",."Beerware",."BitTorrent-1.0"
ae440 2c 0a 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 31 22 2c 20 22 42 53 4c 2d 31 2e 30 ,....."BitTorrent-1.1",."BSL-1.0
ae460 22 2c 20 22 42 6f 72 63 65 75 78 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 22 2c 0a 20 20 ",."Borceux",."BSD-2-Clause",...
ae480 20 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 46 72 65 65 42 53 44 22 2c 20 22 42 53 44 2d 32 .."BSD-2-Clause-FreeBSD",."BSD-2
ae4a0 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 22 2c -Clause-NetBSD",."BSD-3-Clause",
ae4c0 0a 20 20 20 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 61 72 22 2c 20 22 42 53 44 2d ....."BSD-3-Clause-Clear",."BSD-
ae4e0 34 2d 43 6c 61 75 73 65 22 2c 20 22 42 53 44 2d 50 72 6f 74 65 63 74 69 6f 6e 22 2c 0a 20 20 20 4-Clause",."BSD-Protection",....
ae500 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 41 74 74 72 69 62 75 74 69 6f 6e 22 2c 20 22 42 53 ."BSD-3-Clause-Attribution",."BS
ae520 44 2d 34 2d 43 6c 61 75 73 65 2d 55 43 22 2c 20 22 62 7a 69 70 32 2d 31 2e 30 2e 35 22 2c 20 22 D-4-Clause-UC",."bzip2-1.0.5",."
ae540 62 7a 69 70 32 2d 31 2e 30 2e 36 22 2c 0a 20 20 20 20 22 43 61 6c 64 65 72 61 22 2c 20 22 43 45 bzip2-1.0.6",....."Caldera",."CE
ae560 43 49 4c 4c 2d 31 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 31 2e 31 22 2c 20 22 43 45 43 49 4c 4c CILL-1.0",."CECILL-1.1",."CECILL
ae580 2d 32 2e 30 22 2c 20 22 43 45 43 49 4c 4c 2d 42 22 2c 20 22 43 45 43 49 4c 4c 2d 43 22 2c 0a 20 -2.0",."CECILL-B",."CECILL-C",..
ae5a0 20 20 20 22 43 6c 41 72 74 69 73 74 69 63 22 2c 20 22 4d 49 54 2d 43 4d 55 22 2c 20 22 43 4e 52 ..."ClArtistic",."MIT-CMU",."CNR
ae5c0 49 2d 50 79 74 68 6f 6e 22 2c 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 2d 47 50 4c 2d 43 6f 6d 70 I-Python",."CNRI-Python-GPL-Comp
ae5e0 61 74 69 62 6c 65 22 2c 0a 20 20 20 20 22 43 50 4f 4c 2d 31 2e 30 32 22 2c 20 22 43 44 44 4c 2d atible",....."CPOL-1.02",."CDDL-
ae600 31 2e 30 22 2c 20 22 43 44 44 4c 2d 31 2e 31 22 2c 20 22 43 50 41 4c 2d 31 2e 30 22 2c 20 22 43 1.0",."CDDL-1.1",."CPAL-1.0",."C
ae620 50 4c 2d 31 2e 30 22 2c 20 22 43 41 54 4f 53 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 43 6f 6e 64 PL-1.0",."CATOSL-1.1",....."Cond
ae640 6f 72 2d 31 2e 31 22 2c 20 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 or-1.1",."CC-BY-1.0",."CC-BY-2.0
ae660 22 2c 20 22 43 43 2d 42 59 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 0a 20 20 20 ",."CC-BY-2.5",."CC-BY-3.0",....
ae680 20 22 43 43 2d 42 59 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 ."CC-BY-4.0",."CC-BY-ND-1.0",."C
ae6a0 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 C-BY-ND-2.0",."CC-BY-ND-2.5",."C
ae6c0 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 34 2e 30 22 C-BY-ND-3.0",....."CC-BY-ND-4.0"
ae6e0 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 ,."CC-BY-NC-1.0",."CC-BY-NC-2.0"
ae700 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d ,."CC-BY-NC-2.5",....."CC-BY-NC-
ae720 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 3.0",."CC-BY-NC-4.0",."CC-BY-NC-
ae740 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 30 22 2c 0a 20 20 20 20 ND-1.0",."CC-BY-NC-ND-2.0",.....
ae760 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d "CC-BY-NC-ND-2.5",."CC-BY-NC-ND-
ae780 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 34 2e 30 22 2c 20 22 43 43 2d 42 59 2d 3.0",."CC-BY-NC-ND-4.0",."CC-BY-
ae7a0 4e 43 2d 53 41 2d 31 2e 30 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 NC-SA-1.0",....."CC-BY-NC-SA-2.0
ae7c0 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d ",."CC-BY-NC-SA-2.5",."CC-BY-NC-
ae7e0 53 41 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 34 2e 30 22 2c 0a 20 20 20 20 SA-3.0",."CC-BY-NC-SA-4.0",.....
ae800 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 30 22 2c 20 "CC-BY-SA-1.0",."CC-BY-SA-2.0",.
ae820 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 33 2e 30 22 2c 0a "CC-BY-SA-2.5",."CC-BY-SA-3.0",.
ae840 20 20 20 20 22 43 43 2d 42 59 2d 53 41 2d 34 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 20 22 ...."CC-BY-SA-4.0",."CC0-1.0",."
ae860 43 72 6f 73 73 77 6f 72 64 22 2c 20 22 43 55 41 2d 4f 50 4c 2d 31 2e 30 22 2c 20 22 43 75 62 65 Crossword",."CUA-OPL-1.0",."Cube
ae880 22 2c 20 22 44 2d 46 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 64 69 66 66 6d 61 72 6b 22 2c 20 ",."D-FSL-1.0",....."diffmark",.
ae8a0 22 57 54 46 50 4c 22 2c 20 22 44 4f 43 22 2c 20 22 44 6f 74 73 65 71 6e 22 2c 20 22 44 53 44 50 "WTFPL",."DOC",."Dotseqn",."DSDP
ae8c0 22 2c 20 22 64 76 69 70 64 66 6d 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 65 43 ",."dvipdfm",."EPL-1.0",....."eC
ae8e0 6f 73 2d 32 2e 30 22 2c 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 22 os-2.0",."ECL-1.0",."ECL-2.0",."
ae900 65 47 65 6e 69 78 22 2c 20 22 45 46 4c 2d 31 2e 30 22 2c 20 22 45 46 4c 2d 32 2e 30 22 2c 0a 20 eGenix",."EFL-1.0",."EFL-2.0",..
ae920 20 20 20 22 4d 49 54 2d 61 64 76 65 72 74 69 73 69 6e 67 22 2c 20 22 4d 49 54 2d 65 6e 6e 61 22 ..."MIT-advertising",."MIT-enna"
ae940 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 45 72 6c 50 4c 2d 31 2e 31 22 2c 20 22 45 55 44 61 74 ,."Entessa",."ErlPL-1.1",."EUDat
ae960 61 67 72 69 64 22 2c 0a 20 20 20 20 22 45 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e agrid",....."EUPL-1.0",."EUPL-1.
ae980 31 22 2c 20 22 45 75 72 6f 73 79 6d 22 2c 20 22 46 61 69 72 22 2c 20 22 4d 49 54 2d 66 65 68 22 1",."Eurosym",."Fair",."MIT-feh"
ae9a0 2c 20 22 46 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 0a 20 20 20 20 22 46 54 4c 22 2c 20 22 46 ,."Frameworx-1.0",....."FTL",."F
ae9c0 53 46 55 4c 22 2c 20 22 46 53 46 55 4c 4c 52 22 2c 20 22 47 69 66 74 77 61 72 65 22 2c 20 22 47 SFUL",."FSFULLR",."Giftware",."G
ae9e0 4c 32 50 53 22 2c 20 22 47 6c 75 6c 78 65 22 2c 20 22 41 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 20 L2PS",."Glulxe",."AGPL-3.0",....
aea00 20 22 47 46 44 4c 2d 31 2e 31 22 2c 20 22 47 46 44 4c 2d 31 2e 32 22 2c 20 22 47 46 44 4c 2d 31 ."GFDL-1.1",."GFDL-1.2",."GFDL-1
aea20 2e 33 22 2c 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 2c 20 22 47 50 4c .3",."GPL-1.0",."GPL-1.0+",."GPL
aea40 2d 32 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 47 50 4c 2d 32 2e 30 2d -2.0",....."GPL-2.0+",."GPL-2.0-
aea60 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 20 20 20 22 47 with-autoconf-exception",....."G
aea80 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 62 69 73 6f 6e 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 47 PL-2.0-with-bison-exception",."G
aeaa0 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 63 6c 61 73 73 70 61 74 68 2d 65 78 63 65 70 74 69 6f 6e 22 PL-2.0-with-classpath-exception"
aeac0 2c 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 66 6f 6e 74 2d 65 78 63 65 70 74 69 ,....."GPL-2.0-with-font-excepti
aeae0 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e on",."GPL-2.0-with-GCC-exception
aeb00 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2b 22 2c 20 22 47 ",."GPL-3.0",....."GPL-3.0+",."G
aeb20 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 61 75 74 6f 63 6f 6e 66 2d 65 78 63 65 70 74 69 6f 6e 22 2c PL-3.0-with-autoconf-exception",
aeb40 20 22 47 50 4c 2d 33 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 70 74 69 6f 6e 22 2c 0a 20 ."GPL-3.0-with-GCC-exception",..
aeb60 20 20 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 2c 20 22 4c 47 50 ..."LGPL-2.1",."LGPL-2.1+",."LGP
aeb80 4c 2d 33 2e 30 22 2c 20 22 4c 47 50 4c 2d 33 2e 30 2b 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 22 2c L-3.0",."LGPL-3.0+",."LGPL-2.0",
aeba0 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 67 6e 75 70 6c 6f 74 22 2c 20 22 67 53 ."LGPL-2.0+",....."gnuplot",."gS
aebc0 4f 41 50 2d 31 2e 33 62 22 2c 20 22 48 61 73 6b 65 6c 6c 52 65 70 6f 72 74 22 2c 20 22 48 50 4e OAP-1.3b",."HaskellReport",."HPN
aebe0 44 22 2c 20 22 49 42 4d 2d 70 69 62 73 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 D",."IBM-pibs",."IPL-1.0",....."
aec00 49 6d 61 67 65 4d 61 67 69 63 6b 22 2c 20 22 69 4d 61 74 69 78 22 2c 20 22 49 6d 6c 69 62 32 22 ImageMagick",."iMatix",."Imlib2"
aec20 2c 20 22 49 4a 47 22 2c 20 22 49 6e 74 65 6c 2d 41 43 50 49 22 2c 20 22 49 6e 74 65 6c 22 2c 20 ,."IJG",."Intel-ACPI",."Intel",.
aec40 22 49 50 41 22 2c 0a 20 20 20 20 22 49 53 43 22 2c 20 22 4a 61 73 50 65 72 2d 32 2e 30 22 2c 20 "IPA",....."ISC",."JasPer-2.0",.
aec60 22 4a 53 4f 4e 22 2c 20 22 4c 50 50 4c 2d 31 2e 33 61 22 2c 20 22 4c 50 50 4c 2d 31 2e 30 22 2c "JSON",."LPPL-1.3a",."LPPL-1.0",
aec80 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 20 22 4c 50 ."LPPL-1.1",....."LPPL-1.2",."LP
aeca0 50 4c 2d 31 2e 33 63 22 2c 20 22 4c 61 74 65 78 32 65 22 2c 20 22 42 53 44 2d 33 2d 43 6c 61 75 PL-1.3c",."Latex2e",."BSD-3-Clau
aecc0 73 65 2d 4c 42 4e 4c 22 2c 20 22 4c 65 70 74 6f 6e 69 63 61 22 2c 0a 20 20 20 20 22 4c 69 62 70 se-LBNL",."Leptonica",....."Libp
aece0 6e 67 22 2c 20 22 6c 69 62 74 69 66 66 22 2c 20 22 4c 50 4c 2d 31 2e 30 32 22 2c 20 22 4c 50 4c ng",."libtiff",."LPL-1.02",."LPL
aed00 2d 31 2e 30 22 2c 20 22 4d 61 6b 65 49 6e 64 65 78 22 2c 20 22 4d 54 4c 4c 22 2c 20 22 4d 53 2d -1.0",."MakeIndex",."MTLL",."MS-
aed20 50 4c 22 2c 0a 20 20 20 20 22 4d 53 2d 52 4c 22 2c 20 22 4d 69 72 4f 53 22 2c 20 22 4d 49 54 4e PL",....."MS-RL",."MirOS",."MITN
aed40 46 41 22 2c 20 22 4d 49 54 22 2c 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c 20 22 4d 50 4c 2d 31 2e 30 FA",."MIT",."Motosoto",."MPL-1.0
aed60 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 4d 50 4c 2d 32 2e 30 22 2c 20 22 4d 50 ",."MPL-1.1",....."MPL-2.0",."MP
aed80 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d 65 78 63 65 70 74 69 6f 6e 22 2c 20 22 6d L-2.0-no-copyleft-exception",."m
aeda0 70 69 63 68 32 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4d 75 70 22 2c 0a 20 20 20 20 22 4e pich2",."Multics",."Mup",....."N
aedc0 41 53 41 2d 31 2e 33 22 2c 20 22 4e 61 75 6d 65 6e 22 2c 20 22 4e 42 50 4c 2d 31 2e 30 22 2c 20 ASA-1.3",."Naumen",."NBPL-1.0",.
aede0 22 4e 65 74 43 44 46 22 2c 20 22 4e 47 50 4c 22 2c 20 22 4e 4f 53 4c 22 2c 20 22 4e 50 4c 2d 31 "NetCDF",."NGPL",."NOSL",."NPL-1
aee00 2e 30 22 2c 0a 20 20 20 20 22 4e 50 4c 2d 31 2e 31 22 2c 20 22 4e 65 77 73 6c 65 74 72 22 2c 20 .0",....."NPL-1.1",."Newsletr",.
aee20 22 4e 4c 50 4c 22 2c 20 22 4e 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 20 22 4e "NLPL",."Nokia",."NPOSL-3.0",."N
aee40 6f 77 65 62 22 2c 20 22 4e 52 4c 22 2c 20 22 4e 54 50 22 2c 0a 20 20 20 20 22 4e 75 6e 69 74 22 oweb",."NRL",."NTP",....."Nunit"
aee60 2c 20 22 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 20 22 50 44 44 4c 2d ,."OCLC-2.0",."ODbL-1.0",."PDDL-
aee80 31 2e 30 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 32 22 2c 0a 20 20 1.0",."OGTSL",."OLDAP-2.2.2",...
aeea0 20 20 22 4f 4c 44 41 50 2d 31 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 32 22 2c 20 22 4f 4c 44 .."OLDAP-1.1",."OLDAP-1.2",."OLD
aeec0 41 50 2d 31 2e 33 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 34 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 30 AP-1.3",."OLDAP-1.4",."OLDAP-2.0
aeee0 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 30 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 31 ",....."OLDAP-2.0.1",."OLDAP-2.1
aef00 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 31 22 2c 20 22 ",."OLDAP-2.2",."OLDAP-2.2.1",."
aef20 4f 4c 44 41 50 2d 32 2e 33 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 34 22 2c 20 22 4f 4c OLDAP-2.3",....."OLDAP-2.4",."OL
aef40 44 41 50 2d 32 2e 35 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 36 22 2c 20 22 4f 4c 44 41 50 2d 32 2e DAP-2.5",."OLDAP-2.6",."OLDAP-2.
aef60 37 22 2c 20 22 4f 4d 4c 22 2c 20 22 4f 50 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 4f 53 4c 2d 31 7",."OML",."OPL-1.0",....."OSL-1
aef80 2e 30 22 2c 20 22 4f 53 4c 2d 31 2e 31 22 2c 20 22 4f 53 4c 2d 32 2e 30 22 2c 20 22 4f 53 4c 2d .0",."OSL-1.1",."OSL-2.0",."OSL-
aefa0 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 38 22 2c 0a 20 20 2.1",."OSL-3.0",."OLDAP-2.8",...
aefc0 20 20 22 4f 70 65 6e 53 53 4c 22 2c 20 22 50 48 50 2d 33 2e 30 22 2c 20 22 50 48 50 2d 33 2e 30 .."OpenSSL",."PHP-3.0",."PHP-3.0
aefe0 31 22 2c 20 22 50 6c 65 78 75 73 22 2c 20 22 50 6f 73 74 67 72 65 53 51 4c 22 2c 20 22 70 73 66 1",."Plexus",."PostgreSQL",."psf
af000 72 61 67 22 2c 0a 20 20 20 20 22 70 73 75 74 69 6c 73 22 2c 20 22 50 79 74 68 6f 6e 2d 32 2e 30 rag",....."psutils",."Python-2.0
af020 22 2c 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 51 68 75 6c 6c 22 2c 20 22 52 64 69 73 63 22 2c 20 ",."QPL-1.0",."Qhull",."Rdisc",.
af040 22 52 50 53 4c 2d 31 2e 30 22 2c 20 22 52 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 52 50 4c 2d "RPSL-1.0",."RPL-1.1",....."RPL-
af060 31 2e 35 22 2c 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 2c 20 22 52 53 43 50 4c 22 2c 20 22 52 75 1.5",."RHeCos-1.1",."RSCPL",."Ru
af080 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 20 22 53 61 78 70 61 74 68 22 2c 20 22 53 43 45 41 22 by",."SAX-PD",."Saxpath",."SCEA"
af0a0 2c 0a 20 20 20 20 22 53 57 4c 22 2c 20 22 53 47 49 2d 42 2d 31 2e 30 22 2c 20 22 53 47 49 2d 42 ,....."SWL",."SGI-B-1.0",."SGI-B
af0c0 2d 31 2e 31 22 2c 20 22 53 47 49 2d 42 2d 32 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 -1.1",."SGI-B-2.0",."OFL-1.0",."
af0e0 4f 46 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 53 69 6d 50 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 65 OFL-1.1",....."SimPL-2.0",."Slee
af100 70 79 63 61 74 22 2c 20 22 53 4e 49 41 22 2c 20 22 53 4d 4c 4e 4a 22 2c 20 22 53 74 61 6e 64 61 pycat",."SNIA",."SMLNJ",."Standa
af120 72 64 4d 4c 2d 4e 4a 22 2c 0a 20 20 20 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c 20 rdML-NJ",....."SugarCRM-1.1.3",.
af140 22 53 49 53 53 4c 22 2c 20 22 53 49 53 53 4c 2d 31 2e 32 22 2c 20 22 53 50 4c 2d 31 2e 30 22 2c "SISSL",."SISSL-1.2",."SPL-1.0",
af160 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 54 43 4c 22 2c 0a 20 20 20 20 22 55 6e 6c 69 63 ."Watcom-1.0",."TCL",....."Unlic
af180 65 6e 73 65 22 2c 20 22 54 4d 61 74 65 22 2c 20 22 54 4f 52 51 55 45 2d 31 2e 31 22 2c 20 22 54 ense",."TMate",."TORQUE-1.1",."T
af1a0 4f 53 4c 22 2c 20 22 55 6e 69 63 6f 64 65 2d 54 4f 55 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 69 OSL",."Unicode-TOU",."NCSA",."Vi
af1c0 6d 22 2c 0a 20 20 20 20 22 56 4f 53 54 52 4f 4d 22 2c 20 22 56 53 4c 2d 31 2e 30 22 2c 20 22 57 m",....."VOSTROM",."VSL-1.0",."W
af1e0 33 43 22 2c 20 22 57 73 75 69 70 61 22 2c 20 22 57 58 77 69 6e 64 6f 77 73 22 2c 20 22 58 6e 65 3C",."Wsuipa",."WXwindows",."Xne
af200 74 22 2c 20 22 58 31 31 22 2c 20 22 58 65 72 6f 78 22 2c 0a 20 20 20 20 22 58 46 72 65 65 38 36 t",."X11",."Xerox",....."XFree86
af220 2d 31 2e 31 22 2c 20 22 78 69 6e 65 74 64 22 2c 20 22 78 70 70 22 2c 20 22 58 53 6b 61 74 22 2c -1.1",."xinetd",."xpp",."XSkat",
af240 20 22 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 20 22 5a 65 64 22 2c 0a 20 20 ."YPL-1.0",."YPL-1.1",."Zed",...
af260 20 20 22 5a 65 6e 64 2d 32 2e 30 22 2c 20 22 5a 69 6d 62 72 61 2d 31 2e 33 22 2c 20 22 5a 6c 69 .."Zend-2.0",."Zimbra-1.3",."Zli
af280 62 22 2c 20 22 7a 6c 69 62 2d 61 63 6b 6e 6f 77 6c 65 64 67 65 6d 65 6e 74 22 2c 20 22 5a 50 4c b",."zlib-acknowledgement",."ZPL
af2a0 2d 31 2e 31 22 2c 0a 20 20 20 20 22 5a 50 4c 2d 32 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a -1.1",....."ZPL-2.0",."ZPL-2.1".
af2c0 5d 0a 7b 0a 20 20 20 20 22 24 73 63 68 65 6d 61 22 3a 20 22 68 74 74 70 3a 2f 2f 6a 73 6f 6e 2d ].{....."$schema":."http://json-
af2e0 73 63 68 65 6d 61 2e 6f 72 67 2f 64 72 61 66 74 2d 30 34 2f 73 63 68 65 6d 61 23 22 2c 0a 20 20 schema.org/draft-04/schema#",...
af300 20 20 22 6e 61 6d 65 22 3a 20 22 50 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a .."name":."Package",....."type":
af320 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 ."object",....."additionalProper
af340 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 5b 20 ties":.false,....."required":.[.
af360 22 6e 61 6d 65 22 2c 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 20 5d 2c 0a 20 20 20 20 22 70 72 "name",."description".],....."pr
af380 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 operties":.{........."name":.{..
af3a0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 ..........."type":."string",....
af3c0 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 ........."description":."Package
af3e0 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f 72 2d 6e 61 6d 65 2f 27 20 .name,.including.'vendor-name/'.
af400 70 72 65 66 69 78 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 79 70 prefix.".........},........."typ
af420 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a e":.{............."description":
af440 20 22 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 27 6c 69 62 72 61 72 79 27 ."Package.type,.either.'library'
af460 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 27 63 6f 6d 70 6f 73 65 72 2d .for.common.packages,.'composer-
af480 70 6c 75 67 69 6e 27 20 66 6f 72 20 70 6c 75 67 69 6e 73 2c 20 27 6d 65 74 61 70 61 63 6b 61 67 plugin'.for.plugins,.'metapackag
af4a0 65 27 20 66 6f 72 20 65 6d 70 74 79 20 70 61 63 6b 61 67 65 73 2c 20 6f 72 20 61 20 63 75 73 74 e'.for.empty.packages,.or.a.cust
af4c0 6f 6d 20 74 79 70 65 20 28 5b 61 2d 7a 30 2d 39 2d 5d 2b 29 20 64 65 66 69 6e 65 64 20 62 79 20 om.type.([a-z0-9-]+).defined.by.
af4e0 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 61 70 whatever.project.this.package.ap
af500 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 plies.to.",............."type":.
af520 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 61 72 "string".........},........."tar
af540 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 get-dir":.{............."descrip
af560 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 46 6f 72 63 65 73 20 74 68 65 20 70 tion":."DEPRECATED:.Forces.the.p
af580 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e 74 6f 20 74 68 65 20 ackage.to.be.installed.into.the.
af5a0 67 69 76 65 6e 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 given.subdirectory.path..This.is
af5c0 20 75 73 65 64 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 2d 30 20 70 61 63 6b .used.for.autoloading.PSR-0.pack
af5e0 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 68 65 69 72 20 66 ages.that.do.not.contain.their.f
af600 75 6c 6c 20 70 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 73 68 65 73 20 66 6f ull.path..Use.forward.slashes.fo
af620 72 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 2e 22 r.cross-platform.compatibility."
af640 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 ,............."type":."string"..
af660 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a .......},........."description":
af680 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c .{............."type":."string",
af6a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 68 6f ............."description":."Sho
af6c0 72 74 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 0a 20 20 20 20 20 20 20 rt.package.description."........
af6e0 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 20 20 20 20 20 .},........."keywords":.{.......
af700 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 ......"type":."array",..........
af720 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 ..."items":.{................."t
af740 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."string",.................
af760 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f 72 64 20 74 68 "description":."A.tag/keyword.th
af780 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e 22 0a 20 20 20 at.this.package.relates.to."....
af7a0 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 68 .........}.........},........."h
af7c0 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 omepage":.{............."type":.
af7e0 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 "string",............."descripti
af800 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 70 72 6f 6a 65 on":."Homepage.URL.for.the.proje
af820 63 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 ct.",............."format":."uri
af840 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 6f 6e 22 3a 20 ".........},........."version":.
af860 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a {............."type":."string",.
af880 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b ............"description":."Pack
af8a0 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f age.version,.see.http://getcompo
af8c0 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 72 73 69 6f 6e ser.org/doc/04-schema.md#version
af8e0 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 65 6d 65 73 2e .for.more.info.on.valid.schemes.
af900 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 3a 20 7b 0a 20 ".........},........."time":.{..
af920 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 ..........."type":."string",....
af940 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 ........."description":."Package
af960 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d 44 44 27 2c 20 .release.date,.in.'YYYY-MM-DD',.
af980 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 6f 72 20 27 59 59 59 59 2d 4d 'YYYY-MM-DD.HH:MM:SS'.or.'YYYY-M
af9a0 4d 2d 44 44 54 48 48 3a 4d 4d 3a 53 53 5a 27 20 66 6f 72 6d 61 74 2e 22 0a 20 20 20 20 20 20 20 M-DDTHH:MM:SSZ'.format."........
af9c0 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 .},........."license":.{........
af9e0 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 61 72 72 61 79 22 5d ....."type":.["string",."array"]
afa00 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 ,............."description":."Li
afa20 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 72 72 61 79 20 6f 66 20 6c 69 63 65 6e cense.name..Or.an.array.of.licen
afa40 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 se.names.".........},........."a
afa60 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 uthors":.{............."type":."
afa80 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e array",............."description
afaa0 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 20 74 68 61 74 20 63 6f 6e 74 72 69 62 ":."List.of.authors.that.contrib
afac0 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 2e 20 54 68 69 73 20 69 73 20 74 79 70 uted.to.the.package..This.is.typ
afae0 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 6e 74 61 69 6e 65 72 73 2c 20 6e 6f 74 ically.the.main.maintainers,.not
afb00 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 .the.full.list.",............."i
afb20 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a tems":.{................."type":
afb40 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 ."object",................."addi
afb60 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 tionalProperties":.false,.......
afb80 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 5b 20 22 6e 61 6d 65 22 5d 2c .........."required":.[."name"],
afba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b ................."properties":.{
afbc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 22 3a 20 7b 0a 20 ....................."name":.{..
afbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 ......................."type":."
afc00 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 string",........................
afc20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 20 6f 66 20 74 68 ."description":."Full.name.of.th
afc40 65 20 61 75 74 68 6f 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d e.author.".....................}
afc60 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b ,....................."email":.{
afc80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a ........................."type":
afca0 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."string",......................
afcc0 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 ..."description":."Email.address
afce0 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .of.the.author.",...............
afd00 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 .........."format":."email".....
afd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ................},..............
afd40 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ......."homepage":.{............
afd60 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 ............."type":."string",..
afd80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ......................."descript
afda0 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 74 68 ion":."Homepage.URL.for.the.auth
afdc0 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 or.",........................."f
afde0 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ormat":."uri"...................
afe00 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 3a ..},....................."role":
afe20 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 .{........................."type
afe40 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ":."string",....................
afe60 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 6f ....."description":."Author's.ro
afe80 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 le.in.the.project.".............
afea0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ........}.................}.....
afec0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 ........}.........},........."re
afee0 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f quire":.{............."type":."o
aff00 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e bject",............."description
aff20 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 ":."This.is.a.hash.of.package.na
aff40 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 me.(keys).and.version.constraint
aff60 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 s.(values).that.are.required.to.
aff80 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 run.this.package.",.............
affa0 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 "additionalProperties":.true....
affc0 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 20 .....},........."replace":.{....
affe0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 ........."type":."object",......
b0000 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 ......."description":."This.is.a
b0020 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 .hash.of.package.name.(keys).and
b0040 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 .version.constraints.(values).th
b0060 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 20 74 68 69 73 20 70 61 63 6b 61 at.can.be.replaced.by.this.packa
b0080 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f ge.",............."additionalPro
b00a0 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 perties":.true.........},.......
b00c0 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 .."conflict":.{............."typ
b00e0 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 e":."object",............."descr
b0100 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b iption":."This.is.a.hash.of.pack
b0120 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 age.name.(keys).and.version.cons
b0140 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 77 traints.(values).that.conflict.w
b0160 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ith.this.package.",.............
b0180 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 "additionalProperties":.true....
b01a0 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 20 .....},........."provide":.{....
b01c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 ........."type":."object",......
b01e0 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 ......."description":."This.is.a
b0200 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 .hash.of.package.name.(keys).and
b0220 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 .version.constraints.(values).th
b0240 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 69 at.this.package.provides.in.addi
b0260 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a 20 tion.to.this.package's.name.",..
b0280 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 ..........."additionalProperties
b02a0 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 ":.true.........},........."requ
b02c0 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 ire-dev":.{............."type":.
b02e0 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 "object",............."descripti
b0300 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 on":."This.is.a.hash.of.package.
b0320 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 name.(keys).and.version.constrai
b0340 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 nts.(values).that.this.package.r
b0360 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 69 equires.for.developing.it.(testi
b0380 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ng.tools.and.such).",...........
b03a0 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 .."additionalProperties":.true..
b03c0 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a 20 .......},........."suggest":.{..
b03e0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 ..........."type":."object",....
b0400 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 ........."description":."This.is
b0420 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 .a.hash.of.package.name.(keys).a
b0440 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 nd.descriptions.(values).that.th
b0460 69 73 20 70 61 63 6b 61 67 65 20 73 75 67 67 65 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 69 is.package.suggests.work.well.wi
b0480 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 6f th.it.(this.will.be.suggested.to
b04a0 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e 22 .the.user.during.installation)."
b04c0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 ,............."additionalPropert
b04e0 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 63 ies":.true.........},........."c
b0500 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f onfig":.{............."type":."o
b0520 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e bject",............."description
b0540 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 69 6f 6e 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 ":."Composer.options.",.........
b0560 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...."properties":.{.............
b0580 20 20 20 20 22 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 ...."process-timeout":.{........
b05a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a ............."type":."integer",.
b05c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e ...................."description
b05e0 22 3a 20 22 54 68 65 20 74 69 6d 65 6f 75 74 20 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 70 ":."The.timeout.in.seconds.for.p
b0600 72 6f 63 65 73 73 20 65 78 65 63 75 74 69 6f 6e 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 33 rocess.executions,.defaults.to.3
b0620 30 30 20 28 35 6d 69 6e 73 29 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 00.(5mins).".................},.
b0640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 ................"use-include-pat
b0660 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 h":.{....................."type"
b0680 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :."boolean",....................
b06a0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 43 6f ."description":."If.true,.the.Co
b06c0 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 61 6c 73 6f 20 6c 6f 6f 6b mposer.autoloader.will.also.look
b06e0 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 20 74 68 65 20 50 48 50 20 69 6e 63 6c 75 64 65 20 .for.classes.in.the.PHP.include.
b0700 70 61 74 68 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 path.".................},.......
b0720 20 20 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b .........."preferred-install":.{
b0740 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ....................."type":."st
b0760 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 ring",....................."desc
b0780 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 69 6e 73 74 61 6c 6c 20 6d 65 74 68 6f 64 20 43 6f ription":."The.install.method.Co
b07a0 6d 70 6f 73 65 72 20 77 69 6c 6c 20 70 72 65 66 65 72 20 74 6f 20 75 73 65 2c 20 64 65 66 61 75 mposer.will.prefer.to.use,.defau
b07c0 6c 74 73 20 74 6f 20 61 75 74 6f 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 73 6f lts.to.auto.and.can.be.any.of.so
b07e0 75 72 63 65 2c 20 64 69 73 74 20 6f 72 20 61 75 74 6f 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 urce,.dist.or.auto."............
b0800 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 6f 74 69 66 79 2d .....},................."notify-
b0820 6f 6e 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on-install":.{..................
b0840 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ..."type":."boolean",...........
b0860 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 .........."description":."Compos
b0880 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 6e 65 er.allows.repositories.to.define
b08a0 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 68 65 .a.notification.URL,.so.that.the
b08c0 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b 61 67 y.get.notified.whenever.a.packag
b08e0 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 61 6c e.from.that.repository.is.instal
b0900 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 64 led..This.option.allows.you.to.d
b0920 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 73 20 isable.that.behaviour,.defaults.
b0940 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 to.true.".................},....
b0960 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 3a ............."github-protocols":
b0980 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 .{....................."type":."
b09a0 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 array",....................."des
b09c0 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 20 cription":."A.list.of.protocols.
b09e0 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 69 6e to.use.for.github.com.clones,.in
b0a00 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b 5c 22 .priority.order,.defaults.to.[\"
b0a20 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c 0a 20 git\",.\"https\",.\"http\"].",..
b0a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 ..................."items":.{...
b0a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 ......................"type":."s
b0a80 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 tring".....................}....
b0aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............},.................
b0ac0 22 67 69 74 68 75 62 2d 6f 61 75 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "github-oauth":.{...............
b0ae0 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 ......"type":."object",.........
b0b00 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 61 ............"description":."A.ha
b0b20 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 3d 3e 20 67 69 74 68 75 62 20 41 50 49 20 sh.of.domain.name.=>.github.API.
b0b40 6f 61 75 74 68 20 74 6f 6b 65 6e 73 2c 20 74 79 70 69 63 61 6c 6c 79 20 7b 5c 22 67 69 74 68 75 oauth.tokens,.typically.{\"githu
b0b60 62 2e 63 6f 6d 5c 22 3a 5c 22 3c 74 6f 6b 65 6e 3e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 20 b.com\":\"<token>\"}.",.........
b0b80 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 ............"additionalPropertie
b0ba0 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 s":.true.................},.....
b0bc0 20 20 20 20 20 20 20 20 20 20 20 20 22 68 74 74 70 2d 62 61 73 69 63 22 3a 20 7b 0a 20 20 20 20 ............"http-basic":.{.....
b0be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 ................"type":."object"
b0c00 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
b0c20 6f 6e 22 3a 20 22 41 20 68 61 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d 65 20 3d 3e 20 7b on":."A.hash.of.domain.name.=>.{
b0c40 5c 22 75 73 65 72 6e 61 6d 65 5c 22 3a 20 5c 22 2e 2e 2e 5c 22 2c 20 5c 22 70 61 73 73 77 6f 72 \"username\":.\"...\",.\"passwor
b0c60 64 5c 22 3a 20 5c 22 2e 2e 2e 5c 22 7d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d\":.\"...\"}.",................
b0c80 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 ....."additionalProperties":.tru
b0ca0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 e.................},............
b0cc0 20 20 20 20 20 22 73 74 6f 72 65 2d 61 75 74 68 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ....."store-auths":.{...........
b0ce0 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 62 6f .........."type":.["string",."bo
b0d00 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 olean"],....................."de
b0d20 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 57 68 61 74 20 74 6f 20 64 6f 20 61 66 74 65 72 20 70 72 scription":."What.to.do.after.pr
b0d40 6f 6d 70 74 69 6e 67 20 66 6f 72 20 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 2c 20 6f 6e 65 20 ompting.for.authentication,.one.
b0d60 6f 66 3a 20 74 72 75 65 20 28 73 74 6f 72 65 29 2c 20 66 61 6c 73 65 20 28 64 6f 20 6e 6f 74 20 of:.true.(store),.false.(do.not.
b0d80 73 74 6f 72 65 29 20 6f 72 20 5c 22 70 72 6f 6d 70 74 5c 22 20 28 61 73 6b 20 65 76 65 72 79 20 store).or.\"prompt\".(ask.every.
b0da0 74 69 6d 65 29 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 70 72 6f 6d 70 74 2e 22 0a 20 20 20 20 time),.defaults.to.prompt.".....
b0dc0 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
b0de0 76 65 6e 64 6f 72 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vendor-dir":.{..................
b0e00 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..."type":."string",............
b0e20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c 6f 63 ........."description":."The.loc
b0e40 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 20 69 6e 73 ation.where.all.packages.are.ins
b0e60 74 61 6c 6c 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 5c 22 2e 22 talled,.defaults.to.\"vendor\"."
b0e80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
b0ea0 20 20 20 20 22 62 69 6e 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."bin-dir":.{................
b0ec0 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 ....."type":."string",..........
b0ee0 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6c ..........."description":."The.l
b0f00 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 62 69 6e 61 72 69 65 73 20 61 72 65 20 6c ocation.where.all.binaries.are.l
b0f20 69 6e 6b 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 76 65 6e 64 6f 72 2f 62 69 6e 5c inked,.defaults.to.\"vendor/bin\
b0f40 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 ".".................},..........
b0f60 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ......."cache-dir":.{...........
b0f80 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 .........."type":."string",.....
b0fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
b0fc0 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 63 61 63 68 65 73 20 61 72 The.location.where.all.caches.ar
b0fe0 65 20 6c 6f 63 61 74 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7e 2f 2e 63 6f 6d 70 e.located,.defaults.to.\"~/.comp
b1000 6f 73 65 72 2f 63 61 63 68 65 5c 22 20 6f 6e 20 2a 6e 69 78 20 61 6e 64 20 5c 22 25 4c 4f 43 41 oser/cache\".on.*nix.and.\"%LOCA
b1020 4c 41 50 50 44 41 54 41 25 5c 5c 43 6f 6d 70 6f 73 65 72 5c 22 20 6f 6e 20 77 69 6e 64 6f 77 73 LAPPDATA%\\Composer\".on.windows
b1040 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 .".................},...........
b1060 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 ......"cache-files-dir":.{......
b1080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c ..............."type":."string",
b10a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f ....................."descriptio
b10c0 6e 22 3a 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 66 69 6c 65 73 20 28 7a n":."The.location.where.files.(z
b10e0 69 70 20 64 6f 77 6e 6c 6f 61 64 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c ip.downloads).are.cached,.defaul
b1100 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 5c 22 2e 22 0a 20 ts.to.\"{$cache-dir}/files\"."..
b1120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...............},...............
b1140 20 20 22 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 .."cache-repo-dir":.{...........
b1160 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 .........."type":."string",.....
b1180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
b11a0 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 72 65 70 6f 20 28 67 69 74 2f 68 67 20 The.location.where.repo.(git/hg.
b11c0 72 65 70 6f 20 63 6c 6f 6e 65 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 repo.clones).are.cached,.default
b11e0 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 6f 5c 22 2e 22 0a 20 20 20 s.to.\"{$cache-dir}/repo\"."....
b1200 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............},.................
b1220 22 63 61 63 68 65 2d 76 63 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 "cache-vcs-dir":.{..............
b1240 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 ......."type":."string",........
b1260 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 ............."description":."The
b1280 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 76 63 73 20 69 6e 66 6f 73 20 28 67 69 74 20 63 .location.where.vcs.infos.(git.c
b12a0 6c 6f 6e 65 73 2c 20 67 69 74 68 75 62 20 61 70 69 20 63 61 6c 6c 73 2c 20 65 74 63 2e 20 77 68 lones,.github.api.calls,.etc..wh
b12c0 65 6e 20 72 65 61 64 69 6e 67 20 76 63 73 20 72 65 70 6f 73 29 20 61 72 65 20 63 61 63 68 65 64 en.reading.vcs.repos).are.cached
b12e0 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 ,.defaults.to.\"{$cache-dir}/vcs
b1300 5c 22 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 \".".................},.........
b1320 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ........"cache-ttl":.{..........
b1340 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 ..........."type":."integer",...
b1360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a .................."description":
b1380 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 ."The.default.cache.time-to-live
b13a0 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 31 35 35 35 32 30 30 30 20 28 36 20 6d 6f 6e 74 68 73 ,.defaults.to.15552000.(6.months
b13c0 29 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 ).".................},..........
b13e0 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 ......."cache-files-ttl":.{.....
b1400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 ................"type":."integer
b1420 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
b1440 69 6f 6e 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 20 66 6f ion":."The.cache.time-to-live.fo
b1460 72 20 66 69 6c 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f r.files,.defaults.to.the.value.o
b1480 66 20 63 61 63 68 65 2d 74 74 6c 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c f.cache-ttl.".................},
b14a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 ................."cache-files-ma
b14c0 78 73 69 7a 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 xsize":.{....................."t
b14e0 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 69 6e 74 65 67 65 72 22 5d 2c 0a 20 20 20 ype":.["string",."integer"],....
b1500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
b1520 22 54 68 65 20 63 61 63 68 65 20 6d 61 78 20 73 69 7a 65 20 66 6f 72 20 74 68 65 20 66 69 6c 65 "The.cache.max.size.for.the.file
b1540 73 20 63 61 63 68 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 33 30 30 4d 69 42 5c 22 2e s.cache,.defaults.to.\"300MiB\".
b1560 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
b1580 20 20 20 20 20 22 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 ....."discard-changes":.{.......
b15a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c .............."type":.["string",
b15c0 20 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."boolean"],....................
b15e0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 73 74 79 ."description":."The.default.sty
b1600 6c 65 20 6f 66 20 68 61 6e 64 6c 69 6e 67 20 64 69 72 74 79 20 75 70 64 61 74 65 73 2c 20 64 65 le.of.handling.dirty.updates,.de
b1620 66 61 75 6c 74 73 20 74 6f 20 66 61 6c 73 65 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f faults.to.false.and.can.be.any.o
b1640 66 20 74 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 5c 22 73 74 61 73 68 5c 22 2e 22 0a 20 20 20 f.true,.false.or.\"stash\"."....
b1660 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............},.................
b1680 22 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 "autoloader-suffix":.{..........
b16a0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 ..........."type":."string",....
b16c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
b16e0 22 4f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 "Optional.string.to.be.used.as.a
b1700 20 73 75 66 66 69 78 20 66 6f 72 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 43 6f 6d 70 6f 73 .suffix.for.the.generated.Compos
b1720 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 2e 20 57 68 65 6e 20 6e 75 6c 6c 20 61 20 72 61 6e 64 6f er.autoloader..When.null.a.rando
b1740 6d 20 6f 6e 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 2e 22 0a 20 20 20 20 20 20 m.one.will.be.generated.".......
b1760 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6f 70 ..........},................."op
b1780 74 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 timize-autoloader":.{...........
b17a0 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 .........."type":."boolean",....
b17c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ................."description":.
b17e0 22 41 6c 77 61 79 73 20 6f 70 74 69 6d 69 7a 65 20 77 68 65 6e 20 64 75 6d 70 69 6e 67 20 74 68 "Always.optimize.when.dumping.th
b1800 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d e.autoloader.".................}
b1820 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c ,................."prepend-autol
b1840 6f 61 64 65 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 oader":.{....................."t
b1860 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ype":."boolean",................
b1880 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 66 61 6c 73 65 2c 20 74 ....."description":."If.false,.t
b18a0 68 65 20 63 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 he.composer.autoloader.will.not.
b18c0 62 65 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 65 78 69 73 74 69 6e 67 20 61 75 74 6f 6c 6f 61 be.prepended.to.existing.autoloa
b18e0 64 65 72 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 20 ders,.defaults.to.true."........
b1900 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 .........},................."cla
b1920 73 73 6d 61 70 2d 61 75 74 68 6f 72 69 74 61 74 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ssmap-authoritative":.{.........
b1940 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 ............"type":."boolean",..
b1960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ..................."description"
b1980 3a 20 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 :."If.true,.the.composer.autoloa
b19a0 64 65 72 20 77 69 6c 6c 20 6e 6f 74 20 73 63 61 6e 20 74 68 65 20 66 69 6c 65 73 79 73 74 65 6d der.will.not.scan.the.filesystem
b19c0 20 66 6f 72 20 63 6c 61 73 73 65 73 20 74 68 61 74 20 61 72 65 20 6e 6f 74 20 66 6f 75 6e 64 20 .for.classes.that.are.not.found.
b19e0 69 6e 20 74 68 65 20 63 6c 61 73 73 20 6d 61 70 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 66 61 in.the.class.map,.defaults.to.fa
b1a00 6c 73 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 lse.".................},........
b1a20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 22 3a 20 7b 0a 20 20 20 ........."github-domains":.{....
b1a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 ................."type":."array"
b1a60 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
b1a80 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 64 6f 6d 61 69 6e 73 20 74 6f 20 75 73 65 20 69 on":."A.list.of.domains.to.use.i
b1aa0 6e 20 67 69 74 68 75 62 20 6d 6f 64 65 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 n.github.mode..This.is.used.for.
b1ac0 47 69 74 48 75 62 20 45 6e 74 65 72 70 72 69 73 65 20 73 65 74 75 70 73 2c 20 64 65 66 61 75 6c GitHub.Enterprise.setups,.defaul
b1ae0 74 73 20 74 6f 20 5b 5c 22 67 69 74 68 75 62 2e 63 6f 6d 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 ts.to.[\"github.com\"].",.......
b1b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 .............."items":.{........
b1b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
b1b40 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 ".....................}.........
b1b60 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 ........},................."gith
b1b80 75 62 2d 65 78 70 6f 73 65 2d 68 6f 73 74 6e 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ub-expose-hostname":.{..........
b1ba0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 ..........."type":."boolean",...
b1bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a .................."description":
b1be0 20 22 44 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 20 49 66 20 73 65 74 20 74 6f 20 66 61 ."Defaults.to.true..If.set.to.fa
b1c00 6c 73 65 2c 20 74 68 65 20 4f 41 75 74 68 20 74 6f 6b 65 6e 73 20 63 72 65 61 74 65 64 20 74 6f lse,.the.OAuth.tokens.created.to
b1c20 20 61 63 63 65 73 73 20 74 68 65 20 67 69 74 68 75 62 20 41 50 49 20 77 69 6c 6c 20 68 61 76 65 .access.the.github.API.will.have
b1c40 20 61 20 64 61 74 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 6d 61 63 68 69 6e 65 20 68 .a.date.instead.of.the.machine.h
b1c60 6f 73 74 6e 61 6d 65 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 ostname.".................}.....
b1c80 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 65 78 ........}.........},........."ex
b1ca0 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 tra":.{............."type":.["ob
b1cc0 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 ject",."array"],............."de
b1ce0 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 65 78 74 72 61 20 64 61 74 scription":."Arbitrary.extra.dat
b1d00 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 70 6c 75 67 69 6e 73 2c 20 66 a.that.can.be.used.by.plugins,.f
b1d20 6f 72 20 65 78 61 6d 70 6c 65 2c 20 70 61 63 6b 61 67 65 20 6f 66 20 74 79 70 65 20 63 6f 6d 70 or.example,.package.of.type.comp
b1d40 6f 73 65 72 2d 70 6c 75 67 69 6e 20 6d 61 79 20 68 61 76 65 20 61 20 27 63 6c 61 73 73 27 20 6b oser-plugin.may.have.a.'class'.k
b1d60 65 79 20 64 65 66 69 6e 69 6e 67 20 61 6e 20 69 6e 73 74 61 6c 6c 65 72 20 63 6c 61 73 73 20 6e ey.defining.an.installer.class.n
b1d80 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 ame.",............."additionalPr
b1da0 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 operties":.true.........},......
b1dc0 20 20 20 22 61 75 74 6f 6c 6f 61 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ..."autoload":.{............."ty
b1de0 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 pe":."object",............."desc
b1e00 72 69 70 74 69 6f 6e 22 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 68 6f 77 20 74 68 ription":."Description.of.how.th
b1e20 65 20 70 61 63 6b 61 67 65 20 63 61 6e 20 62 65 20 61 75 74 6f 6c 6f 61 64 65 64 2e 22 2c 0a 20 e.package.can.be.autoloaded.",..
b1e40 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 ..........."properties":.{......
b1e60 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ..........."psr-0":.{...........
b1e80 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 .........."type":."object",.....
b1ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
b1ec0 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 This.is.a.hash.of.namespaces.(ke
b1ee0 79 73 29 20 61 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e ys).and.the.directories.they.can
b1f00 20 62 65 20 66 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 .be.found.into.(values,.can.be.a
b1f20 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 rrays.of.paths).by.the.autoloade
b1f40 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 r.",....................."additi
b1f60 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 onalProperties":.true...........
b1f80 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 34 22 ......},................."psr-4"
b1fa0 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 :.{....................."type":.
b1fc0 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 "object",....................."d
b1fe0 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 escription":."This.is.a.hash.of.
b2000 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 50 53 52 2d 34 20 namespaces.(keys).and.the.PSR-4.
b2020 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 6d 61 70 20 74 6f 20 28 76 61 6c directories.they.can.map.to.(val
b2040 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 ues,.can.be.arrays.of.paths).by.
b2060 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 the.autoloader.",...............
b2080 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 ......"additionalProperties":.tr
b20a0 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 ue.................},...........
b20c0 20 20 20 20 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ......"classmap":.{.............
b20e0 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 ........"type":."array",........
b2100 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 ............."description":."Thi
b2120 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 s.is.an.array.of.directories.tha
b2140 74 20 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 t.contain.classes.to.be.included
b2160 20 69 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f .in.the.class-map.generation.pro
b2180 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 cess.".................},.......
b21a0 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .........."files":.{............
b21c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 ........."type":."array",.......
b21e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 .............."description":."Th
b2200 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 is.is.an.array.of.files.that.are
b2220 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 .always.required.on.every.reques
b2240 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 t.".................}...........
b2260 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 6f 6c 6f 61 64 ..}.........},........."autoload
b2280 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 -dev":.{............."type":."ob
b22a0 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ject",............."description"
b22c0 3a 20 22 44 65 73 63 72 69 70 74 69 6f 6e 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 75 74 :."Description.of.additional.aut
b22e0 6f 6c 6f 61 64 20 72 75 6c 65 73 20 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 70 75 72 70 oload.rules.for.development.purp
b2300 6f 73 65 20 28 65 67 2e 20 61 20 74 65 73 74 20 73 75 69 74 65 29 2e 22 2c 0a 20 20 20 20 20 20 ose.(eg..a.test.suite).",.......
b2320 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ......"properties":.{...........
b2340 20 20 20 20 20 20 22 70 73 72 2d 30 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"psr-0":.{................
b2360 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 ....."type":."object",..........
b2380 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 ..........."description":."This.
b23a0 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 is.a.hash.of.namespaces.(keys).a
b23c0 6e 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 62 65 20 66 nd.the.directories.they.can.be.f
b23e0 6f 75 6e 64 20 69 6e 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 ound.into.(values,.can.be.arrays
b2400 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a .of.paths).by.the.autoloader.",.
b2420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 ...................."additionalP
b2440 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperties":.true................
b2460 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 73 72 2d 34 22 3a 20 7b 0a 20 .},................."psr-4":.{..
b2480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 ..................."type":."obje
b24a0 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ct",....................."descri
b24c0 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 ption":."This.is.a.hash.of.names
b24e0 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 68 65 20 50 53 52 2d 34 20 64 69 72 65 63 paces.(keys).and.the.PSR-4.direc
b2500 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 6d 61 70 20 74 6f 20 28 76 61 6c 75 65 73 2c 20 tories.they.can.map.to.(values,.
b2520 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 61 74 68 73 29 20 62 79 20 74 68 65 20 61 can.be.arrays.of.paths).by.the.a
b2540 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 utoloader.",....................
b2560 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 ."additionalProperties":.true...
b2580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
b25a0 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."classmap":.{..................
b25c0 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..."type":."array",.............
b25e0 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 ........"description":."This.is.
b2600 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 61 74 20 63 6f 6e an.array.of.directories.that.con
b2620 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 tain.classes.to.be.included.in.t
b2640 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e he.class-map.generation.process.
b2660 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
b2680 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."files":.{.................
b26a0 20 20 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ...."type":."array",............
b26c0 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 ........."description":."This.is
b26e0 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 61 72 65 20 61 6c 77 61 .an.array.of.files.that.are.alwa
b2700 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 72 79 20 72 65 71 75 65 73 74 2e 22 0a 20 ys.required.on.every.request."..
b2720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ...............}.............}..
b2740 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 72 63 68 69 76 65 22 3a 20 7b 0a 20 .......},........."archive":.{..
b2760 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 ..........."type":.["object"],..
b2780 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 70 74 69 6f ..........."description":."Optio
b27a0 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 70 61 63 6b 61 67 65 20 61 72 63 68 69 76 65 73 ns.for.creating.package.archives
b27c0 20 66 6f 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .for.distribution.",............
b27e0 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."properties":.{................
b2800 20 22 65 78 63 6c 75 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."exclude":.{...................
b2820 20 20 22 74 79 70 65 22 3a 20 22 61 72 72 61 79 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."array",..............
b2840 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 ......."description":."A.list.of
b2860 20 70 61 74 74 65 72 6e 73 20 66 6f 72 20 70 61 74 68 73 20 74 6f 20 65 78 63 6c 75 64 65 20 6f .patterns.for.paths.to.exclude.o
b2880 72 20 69 6e 63 6c 75 64 65 20 69 66 20 70 72 65 66 69 78 65 64 20 77 69 74 68 20 61 6e 20 65 78 r.include.if.prefixed.with.an.ex
b28a0 63 6c 61 6d 61 74 69 6f 6e 20 6d 61 72 6b 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 clamation.mark."................
b28c0 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 .}.............}.........},.....
b28e0 20 20 20 20 22 72 65 70 6f 73 69 74 6f 72 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ...."repositories":.{...........
b2900 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 .."type":.["object",."array"],..
b2920 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 ..........."description":."A.set
b2940 20 6f 66 20 61 64 64 69 74 69 6f 6e 61 6c 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 77 68 65 72 .of.additional.repositories.wher
b2960 65 20 70 61 63 6b 61 67 65 73 20 63 61 6e 20 62 65 20 66 6f 75 6e 64 2e 22 2c 0a 20 20 20 20 20 e.packages.can.be.found.",......
b2980 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 ......."additionalProperties":.t
b29a0 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6d 69 6e 69 6d 75 6d 2d rue.........},........."minimum-
b29c0 73 74 61 62 69 6c 69 74 79 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 stability":.{............."type"
b29e0 3a 20 5b 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 :.["string"],............."descr
b2a00 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 iption":."The.minimum.stability.
b2a20 74 68 65 20 70 61 63 6b 61 67 65 73 20 6d 75 73 74 20 68 61 76 65 20 74 6f 20 62 65 20 69 6e 73 the.packages.must.have.to.be.ins
b2a40 74 61 6c 6c 2d 61 62 6c 65 2e 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 3a 20 tall-able..Possible.values.are:.
b2a60 64 65 76 2c 20 61 6c 70 68 61 2c 20 62 65 74 61 2c 20 52 43 2c 20 73 74 61 62 6c 65 2e 22 2c 0a dev,.alpha,.beta,.RC,.stable.",.
b2a80 20 20 20 20 20 20 20 20 20 20 20 20 22 70 61 74 74 65 72 6e 22 3a 20 22 5e 64 65 76 7c 61 6c 70 ............"pattern":."^dev|alp
b2aa0 68 61 7c 62 65 74 61 7c 72 63 7c 52 43 7c 73 74 61 62 6c 65 24 22 0a 20 20 20 20 20 20 20 20 7d ha|beta|rc|RC|stable$".........}
b2ac0 2c 0a 20 20 20 20 20 20 20 20 22 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 7b 0a 20 20 20 ,........."prefer-stable":.{....
b2ae0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 ........."type":.["boolean"],...
b2b00 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 73 65 74 .........."description":."If.set
b2b20 20 74 6f 20 74 72 75 65 2c 20 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 69 6c 6c 20 62 .to.true,.stable.packages.will.b
b2b40 65 20 70 72 65 66 65 72 65 64 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e 20 e.prefered.to.dev.packages.when.
b2b60 70 6f 73 73 69 62 6c 65 2c 20 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d 75 6d 2d 73 74 possible,.even.if.the.minimum-st
b2b80 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 ability.allows.unstable.packages
b2ba0 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a 20 .".........},........."bin":.{..
b2bc0 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 ..........."type":.["array"],...
b2be0 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 .........."description":."A.set.
b2c00 6f 66 20 66 69 6c 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 20 of.files.that.should.be.treated.
b2c20 61 73 20 62 69 6e 61 72 69 65 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 62 as.binaries.and.symlinked.into.b
b2c40 69 6e 2d 64 69 72 20 28 66 72 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 in-dir.(from.config).",.........
b2c60 20 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ...."items":.{................."
b2c80 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 type":."string".............}...
b2ca0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a ......},........."include-path":
b2cc0 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d .{............."type":.["array"]
b2ce0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 ,............."description":."DE
b2d00 50 52 45 43 41 54 45 44 3a 20 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 PRECATED:.A.list.of.directories.
b2d20 77 68 69 63 68 20 73 68 6f 75 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 20 which.should.get.added.to.PHP's.
b2d40 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 65 include.path..This.is.only.prese
b2d60 6e 74 20 74 6f 20 73 75 70 70 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 61 nt.to.support.legacy.projects,.a
b2d80 6e 64 20 61 6c 6c 20 6e 65 77 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 6c nd.all.new.code.should.preferabl
b2da0 79 20 75 73 65 20 61 75 74 6f 6c 6f 61 64 69 6e 67 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 y.use.autoloading.",............
b2dc0 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 ."items":.{................."typ
b2de0 65 22 3a 20 22 73 74 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 e":."string".............}......
b2e00 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 20 ...},........."scripts":.{......
b2e20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 ......."type":.["object"],......
b2e40 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 6c ......."description":."Scripts.l
b2e60 69 73 74 65 6e 65 72 73 20 74 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 62 isteners.that.will.be.executed.b
b2e80 65 66 6f 72 65 2f 61 66 74 65 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 20 efore/after.some.events.",......
b2ea0 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ......."properties":.{..........
b2ec0 20 20 20 20 20 20 20 22 70 72 65 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 ......."pre-install-cmd":.{.....
b2ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 ................"type":.["array"
b2f00 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,."string"],....................
b2f20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 ."description":."Occurs.before.t
b2f40 68 65 20 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 he.install.command.is.executed,.
b2f60 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 contains.one.or.more.Class::meth
b2f80 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 od.callables.or.shell.commands."
b2fa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .................},.............
b2fc0 20 20 20 20 22 70 6f 73 74 2d 69 6e 73 74 61 6c 6c 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 ...."post-install-cmd":.{.......
b2fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 .............."type":.["array",.
b3000 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "string"],....................."
b3020 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 description":."Occurs.after.the.
b3040 69 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e install.command.is.executed,.con
b3060 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 tains.one.or.more.Class::method.
b3080 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 callables.or.shell.commands."...
b30a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
b30c0 20 22 70 72 65 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ."pre-update-cmd":.{............
b30e0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 ........."type":.["array",."stri
b3100 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ng"],....................."descr
b3120 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 75 70 64 61 iption":."Occurs.before.the.upda
b3140 74 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 te.command.is.executed,.contains
b3160 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 .one.or.more.Class::method.calla
b3180 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 bles.or.shell.commands."........
b31a0 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 .........},................."pos
b31c0 74 2d 75 70 64 61 74 65 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-update-cmd":.{................
b31e0 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d ....."type":.["array",."string"]
b3200 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
b3220 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 20 63 6f on":."Occurs.after.the.update.co
b3240 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 mmand.is.executed,.contains.one.
b3260 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 or.more.Class::method.callables.
b3280 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 or.shell.commands.".............
b32a0 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 73 74 61 74 ....},................."pre-stat
b32c0 75 73 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 us-cmd":.{....................."
b32e0 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 type":.["array",."string"],.....
b3300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
b3320 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 Occurs.before.the.status.command
b3340 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f .is.executed,.contains.one.or.mo
b3360 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 re.Class::method.callables.or.sh
b3380 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d ell.commands.".................}
b33a0 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 73 74 61 74 75 73 2d 63 ,................."post-status-c
b33c0 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 md":.{....................."type
b33e0 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 ":.["array",."string"],.........
b3400 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 ............"description":."Occu
b3420 72 73 20 61 66 74 65 72 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 rs.after.the.status.command.is.e
b3440 78 65 63 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c xecuted,.contains.one.or.more.Cl
b3460 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 ass::method.callables.or.shell.c
b3480 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 ommands.".................},....
b34a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c ............."pre-package-instal
b34c0 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 l":.{....................."type"
b34e0 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 :.["array",."string"],..........
b3500 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 ..........."description":."Occur
b3520 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c s.before.a.package.is.installed,
b3540 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 .contains.one.or.more.Class::met
b3560 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e hod.callables.or.shell.commands.
b3580 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
b35a0 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 ....."post-package-install":.{..
b35c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 ..................."type":.["arr
b35e0 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ay",."string"],.................
b3600 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 ...."description":."Occurs.after
b3620 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e .a.package.is.installed,.contain
b3640 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c s.one.or.more.Class::method.call
b3660 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 ables.or.shell.commands.".......
b3680 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 ..........},................."pr
b36a0 65 2d 70 61 63 6b 61 67 65 2d 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 e-package-update":.{............
b36c0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 ........."type":.["array",."stri
b36e0 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 ng"],....................."descr
b3700 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 iption":."Occurs.before.a.packag
b3720 65 20 69 73 20 75 70 64 61 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f e.is.updated,.contains.one.or.mo
b3740 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 re.Class::method.callables.or.sh
b3760 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d ell.commands.".................}
b3780 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d ,................."post-package-
b37a0 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 update":.{....................."
b37c0 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 type":.["array",."string"],.....
b37e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 ................"description":."
b3800 4f 63 63 75 72 73 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 65 Occurs.after.a.package.is.update
b3820 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d d,.contains.one.or.more.Class::m
b3840 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 ethod.callables.or.shell.command
b3860 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 s.".................},..........
b3880 20 20 20 20 20 20 20 22 70 72 65 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c 22 3a 20 ......."pre-package-uninstall":.
b38a0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 {....................."type":.["
b38c0 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 array",."string"],..............
b38e0 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 ......."description":."Occurs.be
b3900 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 61 6c fore.a.package.has.been.uninstal
b3920 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a led,.contains.one.or.more.Class:
b3940 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 :method.callables.or.shell.comma
b3960 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 nds.".................},........
b3980 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 70 61 63 6b 61 67 65 2d 75 6e 69 6e 73 74 61 6c 6c ........."post-package-uninstall
b39a0 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a ":.{....................."type":
b39c0 20 5b 22 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 .["array",."string"],...........
b39e0 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 .........."description":."Occurs
b3a00 20 61 66 74 65 72 20 61 20 70 61 63 6b 61 67 65 20 68 61 73 20 62 65 65 6e 20 75 6e 69 6e 73 74 .after.a.package.has.been.uninst
b3a20 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 alled,.contains.one.or.more.Clas
b3a40 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d s::method.callables.or.shell.com
b3a60 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 mands.".................},......
b3a80 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 ..........."pre-autoload-dump":.
b3aa0 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 {....................."type":.["
b3ac0 61 72 72 61 79 22 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 array",."string"],..............
b3ae0 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 ......."description":."Occurs.be
b3b00 66 6f 72 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 fore.the.autoloader.is.dumped,.c
b3b20 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f ontains.one.or.more.Class::metho
b3b40 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a d.callables.or.shell.commands.".
b3b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ................},..............
b3b80 20 20 20 22 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 ..."post-autoload-dump":.{......
b3ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c ..............."type":.["array",
b3bc0 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."string"],.....................
b3be0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 "description":."Occurs.after.the
b3c00 20 61 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 .autoloader.is.dumped,.contains.
b3c20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 one.or.more.Class::method.callab
b3c40 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 les.or.shell.commands.".........
b3c60 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 ........},................."post
b3c80 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 -root-package-install":.{.......
b3ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 2c 20 .............."type":.["array",.
b3cc0 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "string"],....................."
b3ce0 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 description":."Occurs.after.the.
b3d00 72 6f 6f 74 2d 70 61 63 6b 61 67 65 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 63 6f 6e 74 61 root-package.is.installed,.conta
b3d20 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 ins.one.or.more.Class::method.ca
b3d40 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 llables.or.shell.commands.".....
b3d60 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ............},................."
b3d80 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 post-create-project-cmd":.{.....
b3da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 ................"type":.["array"
b3dc0 2c 20 22 73 74 72 69 6e 67 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,."string"],....................
b3de0 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 ."description":."Occurs.after.th
b3e00 65 20 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 e.create-project.command.is.exec
b3e20 75 74 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 65 20 43 6c 61 73 73 uted,.contains.one.or.more.Class
b3e40 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d ::method.callables.or.shell.comm
b3e60 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 ands.".................}........
b3e80 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 6f .....}.........},........."suppo
b3ea0 72 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 rt":.{............."type":."obje
b3ec0 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b ct",............."properties":.{
b3ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 ................."email":.{.....
b3f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 ................"type":."string"
b3f20 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 ,....................."descripti
b3f40 6f 6e 22 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 2e on":."Email.address.for.support.
b3f60 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a ",....................."format":
b3f80 20 22 65 6d 61 69 6c 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 ."email".................},.....
b3fa0 20 20 20 20 20 20 20 20 20 20 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ............"issues":.{.........
b3fc0 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 ............"type":."string",...
b3fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a .................."description":
b4000 20 22 55 52 4c 20 74 6f 20 74 68 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 2c 0a 20 20 ."URL.to.the.Issue.Tracker.",...
b4020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 .................."format":."uri
b4040 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ".................},............
b4060 20 20 20 20 20 22 66 6f 72 75 6d 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....."forum":.{.................
b4080 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 ...."type":."string",...........
b40a0 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f .........."description":."URL.to
b40c0 20 74 68 65 20 46 6f 72 75 6d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .the.Forum.",...................
b40e0 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."format":."uri"...............
b4100 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a 20 ..},................."wiki":.{..
b4120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 ..................."type":."stri
b4140 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ng",....................."descri
b4160 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a 20 20 20 20 ption":."URL.to.the.Wiki.",.....
b4180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a ................"format":."uri".
b41a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ................},..............
b41c0 20 20 20 22 69 72 63 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."irc":.{.....................
b41e0 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "type":."string",...............
b4200 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e 65 ......"description":."IRC.channe
b4220 6c 20 66 6f 72 20 73 75 70 70 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f 63 l.for.support,.as.irc://server/c
b4240 68 61 6e 6e 65 6c 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 hannel.",....................."f
b4260 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c ormat":."uri".................},
b4280 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 20 ................."source":.{....
b42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 ................."type":."string
b42c0 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
b42e0 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 ion":."URL.to.browse.or.download
b4300 20 74 68 65 20 73 6f 75 72 63 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .the.sources.",.................
b4320 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 ...."format":."uri".............
b4340 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 ....}.............}.........},..
b4360 20 20 20 20 20 20 20 22 6e 6f 6e 2d 66 65 61 74 75 72 65 2d 62 72 61 6e 63 68 65 73 22 3a 20 7b ......."non-feature-branches":.{
b4380 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a ............."type":.["array"],.
b43a0 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 ............"description":."A.se
b43c0 74 20 6f 66 20 73 74 72 69 6e 67 20 6f 72 20 72 65 67 65 78 20 70 61 74 74 65 72 6e 73 20 66 6f t.of.string.or.regex.patterns.fo
b43e0 72 20 6e 6f 6e 2d 6e 75 6d 65 72 69 63 20 62 72 61 6e 63 68 20 6e 61 6d 65 73 20 74 68 61 74 20 r.non-numeric.branch.names.that.
b4400 77 69 6c 6c 20 6e 6f 74 20 62 65 20 68 61 6e 64 6c 65 73 20 61 73 20 66 65 61 74 75 72 65 20 62 will.not.be.handles.as.feature.b
b4420 72 61 6e 63 68 65 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 22 3a 20 ranches.",............."items":.
b4440 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e {................."type":."strin
b4460 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d g".............}.........}.....}
b4480 0a 7d 0a 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 .}.MZ......................@....
b44a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e8 ................................
b44c0 00 00 00 0e 1f ba 0e 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 ...........!..L.!This.program.ca
b44e0 6e 6e 6f 74 20 62 65 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 nnot.be.run.in.DOS.mode....$....
b4500 00 00 00 7f c6 2c cd 3b a7 42 9e 3b a7 42 9e 3b a7 42 9e 32 df d7 9e 3a a7 42 9e 32 df c1 9e 2d .....,.;.B.;.B.;.B.2...:.B.2...-
b4520 a7 42 9e 32 df c6 9e 39 a7 42 9e 32 df d1 9e 3f a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b a7 43 9e 08 .B.2...9.B.2...?.B..a9.8.B.;.C..
b4540 a7 42 9e 32 df c8 9e 3a a7 42 9e 32 df d6 9e 3a a7 42 9e 32 df d3 9e 3a a7 42 9e 52 69 63 68 3b .B.2...:.B.2...:.B.2...:.B.Rich;
b4560 a7 42 9e 00 00 00 00 00 00 00 00 50 45 00 00 4c 01 05 00 ac 4d 6f 4f 00 00 00 00 00 00 00 00 e0 .B.........PE..L....MoO.........
b4580 00 02 01 0b 01 09 00 00 0a 00 00 00 16 00 00 00 00 00 00 38 13 00 00 00 10 00 00 00 20 00 00 00 ...................8............
b45a0 00 40 00 00 10 00 00 00 02 00 00 05 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 60 00 00 00 .@..........................`...
b45c0 04 00 00 3f 9c 00 00 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 10 ...?.....@......................
b45e0 00 00 00 00 00 00 00 00 00 00 00 90 22 00 00 50 00 00 00 00 40 00 00 20 06 00 00 00 00 00 00 00 ............"..P....@...........
b4600 00 00 00 00 00 00 00 00 00 00 00 00 50 00 00 70 01 00 00 00 21 00 00 1c 00 00 00 00 00 00 00 00 ............P..p....!...........
b4620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00 40 00 00 00 00 00 00 00 00 ...................8!..@........
b4640 00 00 00 00 20 00 00 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4660 00 00 00 2e 74 65 78 74 00 00 00 0b 09 00 00 00 10 00 00 00 0a 00 00 00 04 00 00 00 00 00 00 00 ....text........................
b4680 00 00 00 00 00 00 00 20 00 00 60 2e 72 64 61 74 61 00 00 ce 09 00 00 00 20 00 00 00 0a 00 00 00 ..........`.rdata...............
b46a0 0e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 64 61 74 61 00 00 00 90 03 00 00 00 ...............@..@.data........
b46c0 30 00 00 00 02 00 00 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 c0 2e 72 73 72 63 0......................@....rsrc
b46e0 00 00 00 20 06 00 00 00 40 00 00 00 08 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 ........@......................@
b4700 00 00 40 2e 72 65 6c 6f 63 00 00 cc 01 00 00 00 50 00 00 00 02 00 00 00 22 00 00 00 00 00 00 00 ..@.reloc.......P.......".......
b4720 00 00 00 00 00 00 00 40 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .......@..B.....................
b4740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b47a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b47c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b47e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b4880 00 00 00 6a 24 b8 e6 18 40 00 e8 78 08 00 00 6a f6 ff 15 08 20 40 00 83 65 d0 00 8b f0 8d 45 d0 ...j$...@..x...j.....@..e.....E.
b48a0 50 56 ff 15 00 20 40 00 8b 45 d0 83 e0 fb 50 56 ff 15 04 20 40 00 8d 4d d4 ff 15 58 20 40 00 83 PV....@..E....PV....@..M...X.@..
b48c0 65 fc 00 8d 45 d4 50 ff 35 48 20 40 00 ff 15 4c 20 40 00 59 59 ff 35 5c 20 40 00 8d 45 d4 50 ff e...E.P.5H.@...L.@.YY.5\.@..E.P.
b48e0 35 60 20 40 00 ff 15 44 20 40 00 59 59 8b c8 ff 15 50 20 40 00 83 4d fc ff 8d 4d d4 ff 15 54 20 5`.@...D.@.YY....P.@..M...M...T.
b4900 40 00 33 c0 e8 48 08 00 00 c3 3b 0d 00 30 40 00 75 02 f3 c3 e9 ac 02 00 00 68 80 15 40 00 e8 a3 @.3..H....;..0@.u........h..@...
b4920 04 00 00 a1 6c 33 40 00 c7 04 24 34 30 40 00 ff 35 68 33 40 00 a3 34 30 40 00 68 24 30 40 00 68 ....l3@...$40@..5h3@..40@.h$0@.h
b4940 28 30 40 00 68 20 30 40 00 ff 15 a0 20 40 00 83 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 08 e8 b9 03 (0@.h.0@.....@.....00@...}.j....
b4960 00 00 59 c3 6a 10 68 08 22 40 00 e8 1f 06 00 00 33 db 89 5d fc 64 a1 18 00 00 00 8b 70 04 89 5d ..Y.j.h."@......3..].d......p..]
b4980 e4 bf 80 33 40 00 53 56 57 ff 15 30 20 40 00 3b c3 74 19 3b c6 75 08 33 f6 46 89 75 e4 eb 10 68 ...3@.SVW..0.@.;.t.;.u.3.F.u...h
b49a0 e8 03 00 00 ff 15 34 20 40 00 eb da 33 f6 46 a1 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c 03 00 00 59 ......4.@...3.F.|3@.;.u.j..\...Y
b49c0 eb 3b a1 7c 33 40 00 85 c0 75 2c 89 35 7c 33 40 00 68 f0 20 40 00 68 e4 20 40 00 e8 a7 05 00 00 .;.|3@...u,.5|3@.h..@.h..@......
b49e0 59 59 85 c0 74 17 c7 45 fc fe ff ff ff b8 ff 00 00 00 e9 dd 00 00 00 89 35 3c 30 40 00 a1 7c 33 YY..t..E................5<0@..|3
b4a00 40 00 3b c6 75 1b 68 e0 20 40 00 68 d8 20 40 00 e8 6c 05 00 00 59 59 c7 05 7c 33 40 00 02 00 00 @.;.u.h..@.h..@..l...YY..|3@....
b4a20 00 39 5d e4 75 08 53 57 ff 15 38 20 40 00 39 1d 8c 33 40 00 74 19 68 8c 33 40 00 e8 83 04 00 00 .9].u.SW..8.@.9..3@.t.h.3@......
b4a40 59 85 c0 74 0a 53 6a 02 53 ff 15 8c 33 40 00 a1 24 30 40 00 8b 0d bc 20 40 00 89 01 ff 35 24 30 Y..t.Sj.S...3@..$0@.....@....5$0
b4a60 40 00 ff 35 28 30 40 00 ff 35 20 30 40 00 e8 10 fe ff ff 83 c4 0c a3 38 30 40 00 39 1d 2c 30 40 @..5(0@..5.0@..........80@.9.,0@
b4a80 00 75 37 50 ff 15 c0 20 40 00 8b 45 ec 8b 08 8b 09 89 4d e0 50 51 e8 8e 03 00 00 59 59 c3 8b 65 .u7P....@..E......M.PQ.....YY..e
b4aa0 e8 8b 45 e0 a3 38 30 40 00 33 db 39 1d 2c 30 40 00 75 07 50 ff 15 68 20 40 00 39 1d 3c 30 40 00 ..E..80@.3.9.,0@.u.P..h.@.9.<0@.
b4ac0 75 06 ff 15 9c 20 40 00 c7 45 fc fe ff ff ff a1 38 30 40 00 e8 fb 04 00 00 c3 b8 4d 5a 00 00 66 u.....@..E......80@........MZ..f
b4ae0 39 05 00 00 40 00 74 04 33 c0 eb 4d a1 3c 00 40 00 8d 80 00 00 40 00 81 38 50 45 00 00 75 e9 0f 9...@.t.3..M.<.@.....@..8PE..u..
b4b00 b7 48 18 81 f9 0b 01 00 00 74 1b 81 f9 0b 02 00 00 75 d5 83 b8 84 00 00 00 0e 76 cc 33 c9 39 88 .H.......t.......u........v.3.9.
b4b20 f8 00 00 00 eb 0e 83 78 74 0e 76 bc 33 c9 39 88 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 2c 30 40 00 .......xt.v.3.9..........j..,0@.
b4b40 ff 15 70 20 40 00 6a ff ff 15 6c 20 40 00 59 59 a3 84 33 40 00 a3 88 33 40 00 ff 15 cc 20 40 00 ..p.@.j...l.@.YY..3@...3@.....@.
b4b60 8b 0d 74 33 40 00 89 08 ff 15 88 20 40 00 8b 0d 70 33 40 00 89 08 a1 a8 20 40 00 8b 00 a3 78 33 ..t3@.......@...p3@......@....x3
b4b80 40 00 e8 56 02 00 00 e8 ac 04 00 00 83 3d 14 30 40 00 00 75 0c 68 b5 17 40 00 ff 15 ac 20 40 00 @..V.........=.0@..u.h..@.....@.
b4ba0 59 e8 67 04 00 00 83 3d 10 30 40 00 ff 75 09 6a ff ff 15 b0 20 40 00 59 33 c0 c3 e8 7b 04 00 00 Y.g....=.0@..u.j.....@.Y3...{...
b4bc0 e9 9f fd ff ff 8b ff 55 8b ec 81 ec 28 03 00 00 a3 48 31 40 00 89 0d 44 31 40 00 89 15 40 31 40 .......U....(....H1@...D1@...@1@
b4be0 00 89 1d 3c 31 40 00 89 35 38 31 40 00 89 3d 34 31 40 00 66 8c 15 60 31 40 00 66 8c 0d 54 31 40 ...<1@..581@..=41@.f..`1@.f..T1@
b4c00 00 66 8c 1d 30 31 40 00 66 8c 05 2c 31 40 00 66 8c 25 28 31 40 00 66 8c 2d 24 31 40 00 9c 8f 05 .f..01@.f..,1@.f.%(1@.f.-$1@....
b4c20 58 31 40 00 8b 45 00 a3 4c 31 40 00 8b 45 04 a3 50 31 40 00 8d 45 08 a3 5c 31 40 00 8b 85 e0 fc X1@..E..L1@..E..P1@..E..\1@.....
b4c40 ff ff c7 05 98 30 40 00 01 00 01 00 a1 50 31 40 00 a3 4c 30 40 00 c7 05 40 30 40 00 09 04 00 c0 .....0@......P1@..L0@...@0@.....
b4c60 c7 05 44 30 40 00 01 00 00 00 a1 00 30 40 00 89 85 d8 fc ff ff a1 04 30 40 00 89 85 dc fc ff ff ..D0@.......0@.........0@.......
b4c80 ff 15 1c 20 40 00 a3 90 30 40 00 6a 01 e8 3f 04 00 00 59 6a 00 ff 15 20 20 40 00 68 1c 21 40 00 ....@...0@.j..?...Yj.....@.h.!@.
b4ca0 ff 15 24 20 40 00 83 3d 90 30 40 00 00 75 08 6a 01 e8 1b 04 00 00 59 68 09 04 00 c0 ff 15 28 20 ..$.@..=.0@..u.j......Yh......(.
b4cc0 40 00 50 ff 15 2c 20 40 00 c9 c3 8b ff 55 8b ec 8b 45 08 8b 00 81 38 63 73 6d e0 75 2a 83 78 10 @.P..,.@.....U...E....8csm.u*.x.
b4ce0 03 75 24 8b 40 14 3d 20 05 93 19 74 15 3d 21 05 93 19 74 0e 3d 22 05 93 19 74 07 3d 00 40 99 01 .u$.@.=....t.=!...t.="...t.=.@..
b4d00 75 05 e8 d0 03 00 00 33 c0 5d c2 04 00 68 48 14 40 00 ff 15 20 20 40 00 33 c0 c3 ff 25 a4 20 40 u......3.]...hH.@.....@.3...%..@
b4d20 00 6a 14 68 28 22 40 00 e8 62 02 00 00 ff 35 88 33 40 00 8b 35 8c 20 40 00 ff d6 59 89 45 e4 83 .j.h("@..b....5.3@..5..@...Y.E..
b4d40 f8 ff 75 0c ff 75 08 ff 15 c4 20 40 00 59 eb 67 6a 08 e8 92 03 00 00 59 83 65 fc 00 ff 35 88 33 ..u..u.....@.Y.gj......Y.e...5.3
b4d60 40 00 ff d6 89 45 e4 ff 35 84 33 40 00 ff d6 59 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 ff 75 08 8b @....E..5.3@...YY.E..E.P.E.P.u..
b4d80 35 6c 20 40 00 ff d6 59 50 e8 55 03 00 00 89 45 dc ff 75 e4 ff d6 a3 88 33 40 00 ff 75 e0 ff d6 5l.@...YP.U....E..u.....3@..u...
b4da0 83 c4 14 a3 84 33 40 00 c7 45 fc fe ff ff ff e8 09 00 00 00 8b 45 dc e8 18 02 00 00 c3 6a 08 e8 .....3@..E...........E.......j..
b4dc0 19 03 00 00 59 c3 8b ff 55 8b ec ff 75 08 e8 4e ff ff ff f7 d8 1b c0 f7 d8 59 48 5d c3 8b ff 56 ....Y...U...u..N.........YH]...V
b4de0 b8 fc 21 40 00 be fc 21 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 ..!@...!@.W..;.s.....t......;.r.
b4e00 5f 5e c3 8b ff 56 b8 04 22 40 00 be 04 22 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 _^...V.."@..."@.W..;.s.....t....
b4e20 c7 04 3b fe 72 f1 5f 5e c3 ff 25 c8 20 40 00 cc cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 4d 5a 00 00 ..;.r._^..%..@.......U...M..MZ..
b4e40 66 39 01 74 04 33 c0 5d c3 8b 41 3c 03 c1 81 38 50 45 00 00 75 ef 33 d2 b9 0b 01 00 00 66 39 48 f9.t.3.]..A<...8PE..u.3......f9H
b4e60 18 0f 94 c2 8b c2 5d c3 cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 8b 45 08 8b 48 3c 03 c8 ......]..............U...E..H<..
b4e80 0f b7 41 14 53 56 0f b7 71 06 33 d2 57 8d 44 08 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b f9 72 09 8b ..A.SV..q.3.W.D....v..}..H.;.r..
b4ea0 58 08 03 d9 3b fb 72 0a 42 83 c0 28 3b d6 72 e8 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc cc cc cc cc X...;.r.B..(;.r.3._^[]..........
b4ec0 cc cc cc 8b ff 55 8b ec 6a fe 68 48 22 40 00 68 65 17 40 00 64 a1 00 00 00 00 50 83 ec 08 53 56 .....U..j.hH"@.he.@.d.....P...SV
b4ee0 57 a1 00 30 40 00 31 45 f8 33 c5 50 8d 45 f0 64 a3 00 00 00 00 89 65 e8 c7 45 fc 00 00 00 00 68 W..0@.1E.3.P.E.d......e..E.....h
b4f00 00 00 40 00 e8 2a ff ff ff 83 c4 04 85 c0 74 55 8b 45 08 2d 00 00 40 00 50 68 00 00 40 00 e8 50 ..@..*........tU.E.-..@.Ph..@..P
b4f20 ff ff ff 83 c4 08 85 c0 74 3b 8b 40 24 c1 e8 1f f7 d0 83 e0 01 c7 45 fc fe ff ff ff 8b 4d f0 64 ........t;.@$.........E......M.d
b4f40 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 8b 45 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 0f 94 c2 8b ......Y_^[..]..E.....3.=........
b4f60 c2 c3 8b 65 e8 c7 45 fc fe ff ff ff 33 c0 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 ...e..E.....3..M.d......Y_^[..].
b4f80 cc ff 25 b8 20 40 00 ff 25 b4 20 40 00 cc cc 68 65 17 40 00 64 ff 35 00 00 00 00 8b 44 24 10 89 ..%..@..%..@...he.@.d.5.....D$..
b4fa0 6c 24 10 8d 6c 24 10 2b e0 53 56 57 a1 00 30 40 00 31 45 fc 33 c5 50 89 65 e8 ff 75 f8 8b 45 fc l$..l$.+.SVW..0@.1E.3.P.e..u..E.
b4fc0 c7 45 fc fe ff ff ff 89 45 f8 8d 45 f0 64 a3 00 00 00 00 c3 8b 4d f0 64 89 0d 00 00 00 00 59 5f .E......E..E.d.......M.d......Y_
b4fe0 5f 5e 5b 8b e5 5d 51 c3 8b ff 55 8b ec ff 75 14 ff 75 10 ff 75 0c ff 75 08 68 87 10 40 00 68 00 _^[..]Q...U...u..u..u..u.h..@.h.
b5000 30 40 00 e8 e7 00 00 00 83 c4 18 5d c3 8b ff 56 68 00 00 03 00 68 00 00 01 00 33 f6 56 e8 d9 00 0@.........]...Vh....h....3.V...
b5020 00 00 83 c4 0c 85 c0 74 0d 56 56 56 56 56 e8 c2 00 00 00 83 c4 14 5e c3 33 c0 c3 8b ff 55 8b ec .......t.VVVVV........^.3....U..
b5040 83 ec 10 a1 00 30 40 00 83 65 f8 00 83 65 fc 00 53 57 bf 4e e6 40 bb bb 00 00 ff ff 3b c7 74 0d .....0@..e...e..SW.N.@......;.t.
b5060 85 c3 74 09 f7 d0 a3 04 30 40 00 eb 60 56 8d 45 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 75 f8 ff 15 ..t.....0@..`V.E.P..<.@..u.3u...
b5080 0c 20 40 00 33 f0 ff 15 10 20 40 00 33 f0 ff 15 14 20 40 00 33 f0 8d 45 f0 50 ff 15 18 20 40 00 ..@.3.....@.3.....@.3..E.P....@.
b50a0 8b 45 f4 33 45 f0 33 f0 3b f7 75 07 be 4f e6 40 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 0b f0 89 35 .E.3E.3.;.u..O.@.....u.........5
b50c0 00 30 40 00 f7 d6 89 35 04 30 40 00 5e 5f 5b c9 c3 ff 25 74 20 40 00 ff 25 78 20 40 00 ff 25 7c .0@....5.0@.^_[...%t.@..%x.@..%|
b50e0 20 40 00 ff 25 80 20 40 00 ff 25 84 20 40 00 ff 25 90 20 40 00 ff 25 94 20 40 00 ff 25 98 20 40 .@..%..@..%..@..%..@..%..@..%..@
b5100 00 ff 25 d0 20 40 00 50 64 ff 35 00 00 00 00 8d 44 24 0c 2b 64 24 0c 53 56 57 89 28 8b e8 a1 00 ..%..@.Pd.5.....D$.+d$.SVW.(....
b5120 30 40 00 33 c5 50 89 45 f0 ff 75 fc c7 45 fc ff ff ff ff 8d 45 f4 64 a3 00 00 00 00 c3 8b 4d f4 0@.3.P.E..u..E......E.d.......M.
b5140 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 dd ff ff ff d......Y__^[..]Q..M.3...........
b5160 8d 4d d4 ff 25 54 20 40 00 8b 54 24 08 8d 42 0c 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a fc 33 c8 e8 .M..%T.@..T$..B..J.3.......J.3..
b5180 86 f7 ff ff b8 6c 22 40 00 e9 73 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .....l"@..s.....................
b51a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b51c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b51e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5280 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 ....#...#...#...)..r)..b)..H)..4
b52a0 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e )...)...(...(...(...(...(...(...
b52c0 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae ).......#...$...%...%...&..d&...
b52e0 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e &...$......('...'...'...'...'...
b5300 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e (..((..6(...'..H(..Z(..t(...(...
b5320 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 '...'...'...'...'..l'..^'..R'..F
b5340 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 00 00 00 00 96 '..>'..>(..0'...'...)...........
b5360 10 40 00 00 00 00 00 00 00 00 00 57 12 40 00 8a 14 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .@.........W.@...@..............
b5380 00 00 00 00 00 00 00 ac 4d 6f 4f 00 00 00 00 02 00 00 00 6c 00 00 00 80 21 00 00 80 0f 00 00 40 ........MoO........l....!......@
b53a0 30 40 00 98 30 40 00 62 61 64 20 61 6c 6c 6f 63 61 74 69 6f 6e 00 00 00 00 00 00 48 00 00 00 00 0@..0@.bad.allocation......H....
b53c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b53e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 40 00 f0 21 40 00 02 ........................0@..!@..
b5400 00 00 00 52 53 44 53 d1 8c b3 10 b4 8f 01 4a a8 21 f6 cc eb 4c 5a 00 01 00 00 00 63 3a 5c 75 73 ...RSDS.......J.!...LZ.....c:\us
b5420 65 72 73 5c 73 65 6c 64 5c 64 6f 63 75 6d 65 6e 74 73 5c 76 69 73 75 61 6c 20 73 74 75 64 69 6f ers\seld\documents\visual.studio
b5440 20 32 30 31 30 5c 50 72 6f 6a 65 63 74 73 5c 68 69 64 64 65 6e 69 6e 70 5c 52 65 6c 65 61 73 65 .2010\Projects\hiddeninp\Release
b5460 5c 68 69 64 64 65 6e 69 6e 70 2e 70 64 62 00 00 00 00 00 65 17 00 00 e6 18 00 00 00 00 00 00 00 \hiddeninp.pdb.....e............
b5480 00 00 00 00 00 00 00 00 00 00 00 fe ff ff ff 00 00 00 00 d0 ff ff ff 00 00 00 00 fe ff ff ff 07 ................................
b54a0 12 40 00 1b 12 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 cc ff ff ff 00 00 00 00 fe ff ff ff 00 .@...@..........................
b54c0 00 00 00 3a 15 40 00 00 00 00 00 fe ff ff ff 00 00 00 00 d8 ff ff ff 00 00 00 00 fe ff ff ff cb ...:.@..........................
b54e0 16 40 00 df 16 40 00 ff ff ff ff dd 18 40 00 22 05 93 19 01 00 00 00 64 22 40 00 00 00 00 00 00 .@...@.......@.".......d"@......
b5500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 e0 22 00 00 00 00 00 00 00 00 00 00 ec ...................."...........
b5520 23 00 00 00 20 00 00 24 23 00 00 00 00 00 00 00 00 00 00 f4 26 00 00 44 20 00 00 48 23 00 00 00 #......$#...........&..D...H#...
b5540 00 00 00 00 00 00 00 12 28 00 00 68 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ........(..h....................
b5560 00 00 00 b8 23 00 00 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 ....#...#...#...)..r)..b)..H)..4
b5580 29 00 00 16 29 00 00 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e )...)...(...(...(...(...(...(...
b55a0 29 00 00 00 00 00 00 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae ).......#...$...%...%...&..d&...
b55c0 26 00 00 a4 24 00 00 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e &...$......('...'...'...'...'...
b55e0 28 00 00 28 28 00 00 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e (..((..6(...'..H(..Z(..t(...(...
b5600 27 00 00 0e 27 00 00 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 '...'...'...'...'..l'..^'..R'..F
b5620 27 00 00 3e 27 00 00 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 95 01 47 65 74 '..>'..>(..0'...'...)........Get
b5640 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 b7 03 53 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 3b ConsoleMode....SetConsoleMode..;
b5660 02 47 65 74 53 74 64 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 00 16 00 3f .GetStdHandle..KERNEL32.dll....?
b5680 3f 24 3f 36 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c ?$?6DU?$char_traits@D@std@@V?$al
b56a0 6c 6f 63 61 74 6f 72 40 44 40 31 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 6f locator@D@1@@std@@YAAAV?$basic_o
b56c0 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 stream@DU?$char_traits@D@std@@@0
b56e0 40 41 41 56 31 30 40 41 42 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 @AAV10@ABV?$basic_string@DU?$cha
b5700 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 r_traits@D@std@@V?$allocator@D@2
b5720 40 40 30 40 40 5a 00 91 06 3f 63 6f 75 74 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 6f 73 @@0@@Z...?cout@std@@3V?$basic_os
b5740 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 tream@DU?$char_traits@D@std@@@1@
b5760 41 00 00 4a 06 3f 63 69 6e 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d A..J.?cin@std@@3V?$basic_istream
b5780 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 00 c2 00 3f @DU?$char_traits@D@std@@@1@A...?
b57a0 3f 24 67 65 74 6c 69 6e 65 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 ?$getline@DU?$char_traits@D@std@
b57c0 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 @V?$allocator@D@2@@std@@YAAAV?$b
b57e0 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 asic_istream@DU?$char_traits@D@s
b5800 74 64 40 40 40 30 40 41 41 56 31 30 40 41 41 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 td@@@0@AAV10@AAV?$basic_string@D
b5820 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 U?$char_traits@D@std@@V?$allocat
b5840 6f 72 40 44 40 32 40 40 30 40 40 5a 00 1d 03 3f 3f 36 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 or@D@2@@0@@Z...??6?$basic_ostrea
b5860 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 73 74 64 40 40 51 m@DU?$char_traits@D@std@@@std@@Q
b5880 41 45 41 41 56 30 31 40 50 36 41 41 41 56 30 31 40 41 41 56 30 31 40 40 5a 40 5a 00 00 5f 02 3f AEAAV01@P6AAAV01@AAV01@@Z@Z.._.?
b58a0 3f 31 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 ?1?$basic_string@DU?$char_traits
b58c0 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 @D@std@@V?$allocator@D@2@@std@@Q
b58e0 41 45 40 58 5a 00 00 7b 01 3f 3f 30 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 AE@XZ..{.??0?$basic_string@DU?$c
b5900 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 har_traits@D@std@@V?$allocator@D
b5920 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 b3 07 3f 65 6e 64 6c 40 73 74 64 40 40 59 41 @2@@std@@QAE@XZ....?endl@std@@YA
b5940 41 41 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 AAV?$basic_ostream@DU?$char_trai
b5960 74 73 40 44 40 73 74 64 40 40 40 31 40 41 41 56 32 31 40 40 5a 00 00 4d 53 56 43 50 39 30 2e 64 ts@D@std@@@1@AAV21@@Z..MSVCP90.d
b5980 6c 6c 00 15 01 5f 61 6d 73 67 5f 65 78 69 74 00 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 61 72 67 73 ll..._amsg_exit....__getmainargs
b59a0 00 2c 01 5f 63 65 78 69 74 00 00 7c 01 5f 65 78 69 74 00 66 00 5f 58 63 70 74 46 69 6c 74 65 72 .,._cexit..|._exit.f._XcptFilter
b59c0 00 cc 04 65 78 69 74 00 00 a0 00 5f 5f 69 6e 69 74 65 6e 76 00 04 02 5f 69 6e 69 74 74 65 72 6d ...exit....__initenv..._initterm
b59e0 00 05 02 5f 69 6e 69 74 74 65 72 6d 5f 65 00 3c 01 5f 63 6f 6e 66 69 67 74 68 72 65 61 64 6c 6f ..._initterm_e.<._configthreadlo
b5a00 63 61 6c 65 00 e3 00 5f 5f 73 65 74 75 73 65 72 6d 61 74 68 65 72 72 00 00 0b 01 5f 61 64 6a 75 cale...__setusermatherr...._adju
b5a20 73 74 5f 66 64 69 76 00 00 cb 00 5f 5f 70 5f 5f 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f 5f 70 5f 5f st_fdiv....__p__commode....__p__
b5a40 66 6d 6f 64 65 00 00 6a 01 5f 65 6e 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 e0 00 5f 5f 73 65 74 fmode..j._encode_pointer...__set
b5a60 5f 61 70 70 5f 74 79 70 65 00 00 4b 01 5f 63 72 74 5f 64 65 62 75 67 67 65 72 5f 68 6f 6f 6b 00 _app_type..K._crt_debugger_hook.
b5a80 00 43 00 3f 74 65 72 6d 69 6e 61 74 65 40 40 59 41 58 58 5a 00 4d 53 56 43 52 39 30 2e 64 6c 6c .C.?terminate@@YAXXZ.MSVCR90.dll
b5aa0 00 e6 03 5f 75 6e 6c 6f 63 6b 00 96 00 5f 5f 64 6c 6c 6f 6e 65 78 69 74 00 76 02 5f 6c 6f 63 6b ..._unlock...__dllonexit.v._lock
b5ac0 00 1c 03 5f 6f 6e 65 78 69 74 00 60 01 5f 64 65 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 73 01 5f ..._onexit.`._decode_pointer.s._
b5ae0 65 78 63 65 70 74 5f 68 61 6e 64 6c 65 72 34 5f 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e 76 6f 6b 65 except_handler4_common..._invoke
b5b00 5f 77 61 74 73 6f 6e 00 00 3f 01 5f 63 6f 6e 74 72 6f 6c 66 70 5f 73 00 00 bd 02 49 6e 74 65 72 _watson..?._controlfp_s....Inter
b5b20 6c 6f 63 6b 65 64 45 78 63 68 61 6e 67 65 00 21 04 53 6c 65 65 70 00 ba 02 49 6e 74 65 72 6c 6f lockedExchange.!.Sleep...Interlo
b5b40 63 6b 65 64 43 6f 6d 70 61 72 65 45 78 63 68 61 6e 67 65 00 00 2d 04 54 65 72 6d 69 6e 61 74 65 ckedCompareExchange..-.Terminate
b5b60 50 72 6f 63 65 73 73 00 00 a9 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 00 3e 04 55 Process....GetCurrentProcess.>.U
b5b80 6e 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 00 15 04 53 65 74 55 6e nhandledExceptionFilter....SetUn
b5ba0 68 61 6e 64 6c 65 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 d1 02 49 73 44 65 62 75 67 handledExceptionFilter...IsDebug
b5bc0 67 65 72 50 72 65 73 65 6e 74 00 54 03 51 75 65 72 79 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f 75 gerPresent.T.QueryPerformanceCou
b5be0 6e 74 65 72 00 66 02 47 65 74 54 69 63 6b 43 6f 75 6e 74 00 00 ad 01 47 65 74 43 75 72 72 65 6e nter.f.GetTickCount....GetCurren
b5c00 74 54 68 72 65 61 64 49 64 00 00 aa 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 64 tThreadId....GetCurrentProcessId
b5c20 00 4f 02 47 65 74 53 79 73 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d 65 00 73 00 5f 5f 43 .O.GetSystemTimeAsFileTime.s.__C
b5c40 78 78 46 72 61 6d 65 48 61 6e 64 6c 65 72 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 xxFrameHandler3.................
b5c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5c80 00 00 00 4e e6 40 bb b1 19 bf 44 ff ff ff ff ff ff ff ff fe ff ff ff 01 00 00 00 24 21 40 00 00 ...N.@....D................$!@..
b5ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b5e80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 02 00 10 00 00 00 20 00 00 80 18 00 00 00 38 ...............................8
b5ea0 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 50 00 00 80 00 00 00 00 00 .......................P........
b5ec0 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 68 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 ...............h................
b5ee0 00 01 00 09 04 00 00 80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 90 ................................
b5f00 00 00 00 a0 40 00 00 28 03 00 00 e4 04 00 00 00 00 00 00 c8 43 00 00 56 02 00 00 e4 04 00 00 00 ....@..(............C..V........
b5f20 00 00 00 28 03 34 00 00 00 56 00 53 00 5f 00 56 00 45 00 52 00 53 00 49 00 4f 00 4e 00 5f 00 49 ...(.4...V.S._.V.E.R.S.I.O.N._.I
b5f40 00 4e 00 46 00 4f 00 00 00 00 00 bd 04 ef fe 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 .N.F.O..........................
b5f60 00 00 00 17 00 00 00 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 ................................
b5f80 02 00 00 01 00 53 00 74 00 72 00 69 00 6e 00 67 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f .....S.t.r.i.n.g.F.i.l.e.I.n.f.o
b5fa0 00 00 00 62 02 00 00 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 00 00 00 ca 00 51 00 01 ...b.....0.4.0.9.0.4.b.0.....Q..
b5fc0 00 46 00 69 00 6c 00 65 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 69 00 6f 00 6e 00 00 .F.i.l.e.D.e.s.c.r.i.p.t.i.o.n..
b5fe0 00 00 00 52 00 65 00 61 00 64 00 73 00 20 00 66 00 72 00 6f 00 6d 00 20 00 73 00 74 00 64 00 69 ...R.e.a.d.s...f.r.o.m...s.t.d.i
b6000 00 6e 00 20 00 77 00 69 00 74 00 68 00 6f 00 75 00 74 00 20 00 6c 00 65 00 61 00 6b 00 69 00 6e .n...w.i.t.h.o.u.t...l.e.a.k.i.n
b6020 00 67 00 20 00 69 00 6e 00 66 00 6f 00 20 00 74 00 6f 00 20 00 74 00 68 00 65 00 20 00 74 00 65 .g...i.n.f.o...t.o...t.h.e...t.e
b6040 00 72 00 6d 00 69 00 6e 00 61 00 6c 00 20 00 61 00 6e 00 64 00 20 00 6f 00 75 00 74 00 70 00 75 .r.m.i.n.a.l...a.n.d...o.u.t.p.u
b6060 00 74 00 73 00 20 00 62 00 61 00 63 00 6b 00 20 00 74 00 6f 00 20 00 73 00 74 00 64 00 6f 00 75 .t.s...b.a.c.k...t.o...s.t.d.o.u
b6080 00 74 00 00 00 00 00 36 00 0b 00 01 00 46 00 69 00 6c 00 65 00 56 00 65 00 72 00 73 00 69 00 6f .t.....6.....F.i.l.e.V.e.r.s.i.o
b60a0 00 6e 00 00 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 38 .n.....1.,...0.,...0.,...0.....8
b60c0 00 0c 00 01 00 49 00 6e 00 74 00 65 00 72 00 6e 00 61 00 6c 00 4e 00 61 00 6d 00 65 00 00 00 68 .....I.n.t.e.r.n.a.l.N.a.m.e...h
b60e0 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 00 00 50 00 16 00 01 00 4c 00 65 .i.d.d.e.n.i.n.p.u.t...P.....L.e
b6100 00 67 00 61 00 6c 00 43 00 6f 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 4a 00 6f 00 72 .g.a.l.C.o.p.y.r.i.g.h.t...J.o.r
b6120 00 64 00 69 00 20 00 42 00 6f 00 67 00 67 00 69 00 61 00 6e 00 6f 00 20 00 2d 00 20 00 32 00 30 .d.i...B.o.g.g.i.a.n.o...-...2.0
b6140 00 31 00 32 00 00 00 48 00 10 00 01 00 4f 00 72 00 69 00 67 00 69 00 6e 00 61 00 6c 00 46 00 69 .1.2...H.....O.r.i.g.i.n.a.l.F.i
b6160 00 6c 00 65 00 6e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 65 00 6e 00 69 00 6e 00 70 .l.e.n.a.m.e...h.i.d.d.e.n.i.n.p
b6180 00 75 00 74 00 2e 00 65 00 78 00 65 00 00 00 3a 00 0d 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 .u.t...e.x.e...:.....P.r.o.d.u.c
b61a0 00 74 00 4e 00 61 00 6d 00 65 00 00 00 00 00 48 00 69 00 64 00 64 00 65 00 6e 00 20 00 49 00 6e .t.N.a.m.e.....H.i.d.d.e.n...I.n
b61c0 00 70 00 75 00 74 00 00 00 00 00 3a 00 0b 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 56 .p.u.t.....:.....P.r.o.d.u.c.t.V
b61e0 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 .e.r.s.i.o.n...1.,...0.,...0.,..
b6200 00 30 00 00 00 00 00 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 .0.....D.....V.a.r.F.i.l.e.I.n.f
b6220 00 6f 00 00 00 00 00 24 00 04 00 00 00 54 00 72 00 61 00 6e 00 73 00 6c 00 61 00 74 00 69 00 6f .o.....$.....T.r.a.n.s.l.a.t.i.o
b6240 00 6e 00 00 00 00 00 09 04 b0 04 3c 61 73 73 65 6d 62 6c 79 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a .n.........<assembly.xmlns="urn:
b6260 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 31 22 20 6d 61 schemas-microsoft-com:asm.v1".ma
b6280 6e 69 66 65 73 74 56 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 73 74 49 6e nifestVersion="1.0">....<trustIn
b62a0 66 6f 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 2d 6d 69 63 72 6f 73 6f 66 74 2d fo.xmlns="urn:schemas-microsoft-
b62c0 63 6f 6d 3a 61 73 6d 2e 76 33 22 3e 0d 0a 20 20 20 20 3c 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 com:asm.v3">......<security>....
b62e0 20 20 20 20 3c 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 20 ....<requestedPrivileges>.......
b6300 20 20 20 3c 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 20 6c 65 76 65 ...<requestedExecutionLevel.leve
b6320 6c 3d 22 61 73 49 6e 76 6f 6b 65 72 22 20 75 69 41 63 63 65 73 73 3d 22 66 61 6c 73 65 22 3e 3c l="asInvoker".uiAccess="false"><
b6340 2f 72 65 71 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 20 20 20 20 /requestedExecutionLevel>.......
b6360 20 3c 2f 72 65 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 3c 2f 73 .</requestedPrivileges>......</s
b6380 65 63 75 72 69 74 79 3e 0d 0a 20 20 3c 2f 74 72 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 3c 64 65 70 ecurity>....</trustInfo>....<dep
b63a0 65 6e 64 65 6e 63 79 3e 0d 0a 20 20 20 20 3c 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 endency>......<dependentAssembly
b63c0 3e 0d 0a 20 20 20 20 20 20 3c 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 20 74 79 70 65 3d >........<assemblyIdentity.type=
b63e0 22 77 69 6e 33 32 22 20 6e 61 6d 65 3d 22 4d 69 63 72 6f 73 6f 66 74 2e 56 43 39 30 2e 43 52 54 "win32".name="Microsoft.VC90.CRT
b6400 22 20 76 65 72 73 69 6f 6e 3d 22 39 2e 30 2e 32 31 30 32 32 2e 38 22 20 70 72 6f 63 65 73 73 6f ".version="9.0.21022.8".processo
b6420 72 41 72 63 68 69 74 65 63 74 75 72 65 3d 22 78 38 36 22 20 70 75 62 6c 69 63 4b 65 79 54 6f 6b rArchitecture="x86".publicKeyTok
b6440 65 6e 3d 22 31 66 63 38 62 33 62 39 61 31 65 31 38 65 33 62 22 3e 3c 2f 61 73 73 65 6d 62 6c 79 en="1fc8b3b9a1e18e3b"></assembly
b6460 49 64 65 6e 74 69 74 79 3e 0d 0a 20 20 20 20 3c 2f 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 Identity>......</dependentAssemb
b6480 6c 79 3e 0d 0a 20 20 3c 2f 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 6d 62 6c 79 ly>....</dependency>..</assembly
b64a0 3e 50 41 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 >PAPADDINGXXPADDINGPADDINGXXPADD
b64c0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b64e0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6500 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6520 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6540 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6560 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6580 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b65a0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b65c0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b65e0 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6600 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6620 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6640 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6660 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 49 4e 47 50 41 44 44 49 4e 47 58 58 50 41 44 44 INGPADDINGXXPADDINGPADDINGXXPADD
b6680 49 4e 47 00 10 00 00 40 01 00 00 03 30 10 30 21 30 2f 30 38 30 46 30 4c 30 54 30 5e 30 64 30 6e ING....@....0.0!0/080F0L0T0^0d0n
b66a0 30 7b 30 89 30 97 30 a1 30 a8 30 ae 30 b3 30 b8 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 30 08 31 23 0{0.0.0.0.0.0.0.0.0.0.0.0.0.0.1#
b66c0 31 2d 31 40 31 4a 31 4f 31 54 31 76 31 7b 31 84 31 89 31 96 31 a7 31 ad 31 b4 31 c8 31 cd 31 d3 1-1@1J1O1T1v1{1.1.1.1.1.1.1.1.1.
b66e0 31 db 31 e1 31 e7 31 f4 31 fa 31 03 32 22 32 2a 32 33 32 39 32 41 32 4d 32 5f 32 6a 32 70 32 b9 1.1.1.1.1.1.2"2*23292A2M2_2j2p2.
b6700 32 bf 32 c7 32 ce 32 d3 32 d9 32 df 32 e7 32 ed 32 f4 32 fb 32 0b 33 13 33 19 33 25 33 30 33 4e 2.2.2.2.2.2.2.2.2.2.2.3.3.3%303N
b6720 33 54 33 5a 33 60 33 66 33 6c 33 73 33 7a 33 81 33 88 33 8f 33 96 33 9d 33 a5 33 ad 33 b5 33 c1 3T3Z3`3f3l3s3z3.3.3.3.3.3.3.3.3.
b6740 33 ca 33 cf 33 d5 33 df 33 e8 33 f3 33 ff 33 04 34 14 34 19 34 1f 34 25 34 3b 34 42 34 8b 34 91 3.3.3.3.3.3.3.3.4.4.4.4%4;4B4.4.
b6760 34 9a 34 a1 34 ac 34 b2 34 c6 34 db 34 e6 34 fe 34 14 35 21 35 5e 35 63 35 84 35 89 35 a8 35 48 4.4.4.4.4.4.4.4.4.5!5^5c5.5.5.5H
b6780 36 4d 36 5f 36 7d 36 91 36 97 36 00 37 06 37 0d 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 37 fd 37 05 6M6_6}6.6.6.7.7.7*7w7|7.7.7.7.7.
b67a0 38 0d 38 19 38 3d 38 45 38 50 38 56 38 5c 38 62 38 68 38 6e 38 74 38 7a 38 80 38 9c 38 e2 38 02 8.8.8=8E8P8V8\8b8h8n8t8z8.8.8.8.
b67c0 39 00 00 00 20 00 00 24 00 00 00 dc 30 e8 30 ec 30 1c 31 20 31 74 31 78 31 1c 32 20 32 40 32 5c 9......$....0.0.0.1.1t1x1.2.2@2\
b67e0 32 60 32 68 32 74 32 00 30 00 00 0c 00 00 00 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2`2h2t2.0.......0...............
b6800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b6880 00 00 00 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d ...<?php...........namespace.Sym
b68a0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d fony\Component\Process;..use.Sym
b68c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e fony\Component\Process\Exception
b68e0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 \RuntimeException;.............c
b6900 6c 61 73 73 20 50 68 70 50 72 6f 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 72 6f 63 65 73 73 0a lass.PhpProcess.extends.Process.
b6920 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 {............public.function.__c
b6940 6f 6e 73 74 72 75 63 74 28 24 73 63 72 69 70 74 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 onstruct($script,.$cwd.=.null,.a
b6960 72 72 61 79 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 rray.$env.=.array(),.$timeout.=.
b6980 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 60,.array.$options.=.array()).{.
b69a0 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 $executableFinder.=.new.PhpExecu
b69c0 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 68 tableFinder();.if.(false.===.$ph
b69e0 70 20 3d 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 29 29 20 7b p.=.$executableFinder->find()).{
b6a00 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 .$php.=.null;.}..parent::__const
b6a20 72 75 63 74 28 24 70 68 70 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 70 74 2c 20 ruct($php,.$cwd,.$env,.$script,.
b6a40 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 $timeout,.$options);.}.......pub
b6a60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 70 68 70 29 0a lic.function.setPhpBinary($php).
b6a80 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d {.$this->setCommandLine($php);.}
b6aa0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c .....public.function.start($call
b6ac0 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 back.=.null).{.if.(null.===.$thi
b6ae0 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 s->getCommandLine()).{.throw.new
b6b00 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 66 69 6e .RuntimeException('Unable.to.fin
b6b20 64 20 74 68 65 20 50 48 50 20 65 78 65 63 75 74 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 d.the.PHP.executable.');.}..pare
b6b40 6e 74 3a 3a 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a nt::start($callback);.}.}.<?php.
b6b60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
b6b80 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 65 63 onent\Process;........class.Exec
b6ba0 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 75 66 66 69 78 65 73 utableFinder.{.private.$suffixes
b6bc0 20 3d 20 61 72 72 61 79 28 27 2e 65 78 65 27 2c 20 27 2e 62 61 74 27 2c 20 27 2e 63 6d 64 27 2c .=.array('.exe',.'.bat',.'.cmd',
b6be0 20 27 2e 63 6f 6d 27 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .'.com');.......public.function.
b6c00 73 65 74 53 75 66 66 69 78 65 73 28 61 72 72 61 79 20 24 73 75 66 66 69 78 65 73 29 0a 7b 0a 24 setSuffixes(array.$suffixes).{.$
b6c20 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 20 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a 0a this->suffixes.=.$suffixes;.}...
b6c40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 73 ....public.function.addSuffix($s
b6c60 75 66 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 75 uffix).{.$this->suffixes[].=.$su
b6c80 66 66 69 78 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ffix;.}...........public.functio
b6ca0 6e 20 66 69 6e 64 28 24 6e 61 6d 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 n.find($name,.$default.=.null,.a
b6cc0 72 72 61 79 20 24 65 78 74 72 61 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 rray.$extraDirs.=.array()).{.if.
b6ce0 28 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 61 (ini_get('open_basedir')).{.$sea
b6d00 72 63 68 50 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 rchPath.=.explode(PATH_SEPARATOR
b6d20 2c 20 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 ,.ini_get('open_basedir'));.$dir
b6d40 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 s.=.array();.foreach.($searchPat
b6d60 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 h.as.$path).{.if.(is_dir($path))
b6d80 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 .{.$dirs[].=.$path;.}.else.{.if.
b6da0 28 62 61 73 65 6e 61 6d 65 28 24 70 61 74 68 29 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 5f (basename($path).==.$name.&&.is_
b6dc0 65 78 65 63 75 74 61 62 6c 65 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 executable($path)).{.return.$pat
b6de0 68 3b 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 5f h;.}.}.}.}.else.{.$dirs.=.array_
b6e00 6d 65 72 67 65 28 0a 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 merge(.explode(PATH_SEPARATOR,.g
b6e20 65 74 65 6e 76 28 27 50 41 54 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 29 etenv('PATH').?:.getenv('Path'))
b6e40 2c 0a 24 65 78 74 72 61 44 69 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 61 ,.$extraDirs.);.}..$suffixes.=.a
b6e60 72 72 61 79 28 27 27 29 3b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 rray('');.if.('\\'.===.DIRECTORY
b6e80 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 70 61 74 68 45 78 74 20 3d 20 67 65 74 65 6e 76 28 _SEPARATOR).{.$pathExt.=.getenv(
b6ea0 27 50 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 78 65 73 20 3d 20 24 70 61 74 68 45 78 74 'PATHEXT');.$suffixes.=.$pathExt
b6ec0 20 3f 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 70 61 74 68 .?.explode(PATH_SEPARATOR,.$path
b6ee0 45 78 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 3b 0a 7d 0a 66 6f 72 65 61 63 Ext).:.$this->suffixes;.}.foreac
b6f00 68 20 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 61 h.($suffixes.as.$suffix).{.forea
b6f20 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 ch.($dirs.as.$dir).{.if.(is_file
b6f40 28 24 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ($file.=.$dir.DIRECTORY_SEPARATO
b6f60 52 2e 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 26 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 R.$name.$suffix).&&.('\\'.===.DI
b6f80 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 7c 7c 20 69 73 5f 65 78 65 63 75 74 61 62 RECTORY_SEPARATOR.||.is_executab
b6fa0 6c 65 28 24 66 69 6c 65 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a le($file))).{.return.$file;.}.}.
b6fc0 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a }..return.$default;.}.}.<?php...
b6fe0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
b7000 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ent\Process;..use.Symfony\Compon
b7020 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 ent\Process\Exception\InvalidArg
b7040 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 umentException;.use.Symfony\Comp
b7060 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 onent\Process\Exception\LogicExc
b7080 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 eption;.use.Symfony\Component\Pr
b70a0 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 ocess\Exception\ProcessFailedExc
b70c0 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 eption;.use.Symfony\Component\Pr
b70e0 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 ocess\Exception\ProcessTimedOutE
b7100 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c xception;.use.Symfony\Component\
b7120 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 Process\Exception\RuntimeExcepti
b7140 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 on;.use.Symfony\Component\Proces
b7160 73 5c 50 69 70 65 73 5c 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 s\Pipes\PipesInterface;.use.Symf
b7180 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 5c 55 6e 69 78 ony\Component\Process\Pipes\Unix
b71a0 50 69 70 65 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f Pipes;.use.Symfony\Component\Pro
b71c0 63 65 73 73 5c 50 69 70 65 73 5c 57 69 6e 64 6f 77 73 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a cess\Pipes\WindowsPipes;........
b71e0 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 ...class.Process.{.const.ERR.=.'
b7200 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 err';.const.OUT.=.'out';..const.
b7220 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 STATUS_READY.=.'ready';.const.ST
b7240 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 ATUS_STARTED.=.'started';.const.
b7260 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 STATUS_TERMINATED.=.'terminated'
b7280 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 ;..const.STDIN.=.0;.const.STDOUT
b72a0 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 52 52 20 3d 20 32 3b 0a 0a 0a 20 63 6f 6e 73 74 .=.1;.const.STDERR.=.2;....const
b72c0 20 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 3d 20 30 2e 32 3b 0a 0a 70 72 69 76 61 .TIMEOUT_PRECISION.=.0.2;..priva
b72e0 74 65 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 te.$callback;.private.$commandli
b7300 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 3b 0a ne;.private.$cwd;.private.$env;.
b7320 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 74 69 private.$input;.private.$startti
b7340 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 3b 0a 70 72 69 me;.private.$lastOutputTime;.pri
b7360 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 69 64 6c 65 54 69 6d 65 vate.$timeout;.private.$idleTime
b7380 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 out;.private.$options;.private.$
b73a0 65 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 exitcode;.private.$fallbackExitc
b73c0 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e ode;.private.$processInformation
b73e0 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 ;.private.$outputDisabled.=.fals
b7400 65 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 e;.private.$stdout;.private.$std
b7420 65 72 72 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 err;.private.$enhanceWindowsComp
b7440 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 68 61 6e atibility.=.true;.private.$enhan
b7460 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 ceSigchildCompatibility;.private
b7480 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 20 3d 20 73 65 6c .$process;.private.$status.=.sel
b74a0 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 63 72 65 6d f::STATUS_READY;.private.$increm
b74c0 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 entalOutputOffset.=.0;.private.$
b74e0 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 incrementalErrorOutputOffset.=.0
b7500 3b 0a 70 72 69 76 61 74 65 20 24 74 74 79 3b 0a 70 72 69 76 61 74 65 20 24 70 74 79 3b 0a 0a 70 ;.private.$tty;.private.$pty;..p
b7520 72 69 76 61 74 65 20 24 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 3b 0a rivate.$useFileHandles.=.false;.
b7540 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 50 69 70 65 73 3b 0a 0a 70 72 69 76 61 74 65 .private.$processPipes;..private
b7560 20 24 6c 61 74 65 73 74 53 69 67 6e 61 6c 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 .$latestSignal;..private.static.
b7580 24 73 69 67 63 68 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 $sigchild;.........public.static
b75a0 20 24 65 78 69 74 43 6f 64 65 73 20 3d 20 61 72 72 61 79 28 0a 30 20 3d 3e 20 27 4f 4b 27 2c 0a .$exitCodes.=.array(.0.=>.'OK',.
b75c0 31 20 3d 3e 20 27 47 65 6e 65 72 61 6c 20 65 72 72 6f 72 27 2c 0a 32 20 3d 3e 20 27 4d 69 73 75 1.=>.'General.error',.2.=>.'Misu
b75e0 73 65 20 6f 66 20 73 68 65 6c 6c 20 62 75 69 6c 74 69 6e 73 27 2c 0a 0a 31 32 36 20 3d 3e 20 27 se.of.shell.builtins',..126.=>.'
b7600 49 6e 76 6f 6b 65 64 20 63 6f 6d 6d 61 6e 64 20 63 61 6e 6e 6f 74 20 65 78 65 63 75 74 65 27 2c Invoked.command.cannot.execute',
b7620 0a 31 32 37 20 3d 3e 20 27 43 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 27 2c 0a 31 32 38 .127.=>.'Command.not.found',.128
b7640 20 3d 3e 20 27 49 6e 76 61 6c 69 64 20 65 78 69 74 20 61 72 67 75 6d 65 6e 74 27 2c 0a 0a 0a 20 .=>.'Invalid.exit.argument',....
b7660 31 32 39 20 3d 3e 20 27 48 61 6e 67 75 70 27 2c 0a 31 33 30 20 3d 3e 20 27 49 6e 74 65 72 72 75 129.=>.'Hangup',.130.=>.'Interru
b7680 70 74 27 2c 0a 31 33 31 20 3d 3e 20 27 51 75 69 74 20 61 6e 64 20 64 75 6d 70 20 63 6f 72 65 27 pt',.131.=>.'Quit.and.dump.core'
b76a0 2c 0a 31 33 32 20 3d 3e 20 27 49 6c 6c 65 67 61 6c 20 69 6e 73 74 72 75 63 74 69 6f 6e 27 2c 0a ,.132.=>.'Illegal.instruction',.
b76c0 31 33 33 20 3d 3e 20 27 54 72 61 63 65 2f 62 72 65 61 6b 70 6f 69 6e 74 20 74 72 61 70 27 2c 0a 133.=>.'Trace/breakpoint.trap',.
b76e0 31 33 34 20 3d 3e 20 27 50 72 6f 63 65 73 73 20 61 62 6f 72 74 65 64 27 2c 0a 31 33 35 20 3d 3e 134.=>.'Process.aborted',.135.=>
b7700 20 27 42 75 73 20 65 72 72 6f 72 3a 20 22 61 63 63 65 73 73 20 74 6f 20 75 6e 64 65 66 69 6e 65 .'Bus.error:."access.to.undefine
b7720 64 20 70 6f 72 74 69 6f 6e 20 6f 66 20 6d 65 6d 6f 72 79 20 6f 62 6a 65 63 74 22 27 2c 0a 31 33 d.portion.of.memory.object"',.13
b7740 36 20 3d 3e 20 27 46 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20 65 78 63 65 70 74 69 6f 6e 3a 20 6.=>.'Floating.point.exception:.
b7760 22 65 72 72 6f 6e 65 6f 75 73 20 61 72 69 74 68 6d 65 74 69 63 20 6f 70 65 72 61 74 69 6f 6e 22 "erroneous.arithmetic.operation"
b7780 27 2c 0a 31 33 37 20 3d 3e 20 27 4b 69 6c 6c 20 28 74 65 72 6d 69 6e 61 74 65 20 69 6d 6d 65 64 ',.137.=>.'Kill.(terminate.immed
b77a0 69 61 74 65 6c 79 29 27 2c 0a 31 33 38 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 31 iately)',.138.=>.'User-defined.1
b77c0 27 2c 0a 31 33 39 20 3d 3e 20 27 53 65 67 6d 65 6e 74 61 74 69 6f 6e 20 76 69 6f 6c 61 74 69 6f ',.139.=>.'Segmentation.violatio
b77e0 6e 27 2c 0a 31 34 30 20 3d 3e 20 27 55 73 65 72 2d 64 65 66 69 6e 65 64 20 32 27 2c 0a 31 34 31 n',.140.=>.'User-defined.2',.141
b7800 20 3d 3e 20 27 57 72 69 74 65 20 74 6f 20 70 69 70 65 20 77 69 74 68 20 6e 6f 20 6f 6e 65 20 72 .=>.'Write.to.pipe.with.no.one.r
b7820 65 61 64 69 6e 67 27 2c 0a 31 34 32 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 eading',.142.=>.'Signal.raised.b
b7840 79 20 61 6c 61 72 6d 27 2c 0a 31 34 33 20 3d 3e 20 27 54 65 72 6d 69 6e 61 74 69 6f 6e 20 28 72 y.alarm',.143.=>.'Termination.(r
b7860 65 71 75 65 73 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 29 27 2c 0a 0a 20 31 34 35 20 3d 3e 20 equest.to.terminate)',...145.=>.
b7880 27 43 68 69 6c 64 20 70 72 6f 63 65 73 73 20 74 65 72 6d 69 6e 61 74 65 64 2c 20 73 74 6f 70 70 'Child.process.terminated,.stopp
b78a0 65 64 20 28 6f 72 20 63 6f 6e 74 69 6e 75 65 64 2a 29 27 2c 0a 31 34 36 20 3d 3e 20 27 43 6f 6e ed.(or.continued*)',.146.=>.'Con
b78c0 74 69 6e 75 65 20 69 66 20 73 74 6f 70 70 65 64 27 2c 0a 31 34 37 20 3d 3e 20 27 53 74 6f 70 20 tinue.if.stopped',.147.=>.'Stop.
b78e0 65 78 65 63 75 74 69 6e 67 20 74 65 6d 70 6f 72 61 72 69 6c 79 27 2c 0a 31 34 38 20 3d 3e 20 27 executing.temporarily',.148.=>.'
b7900 54 65 72 6d 69 6e 61 6c 20 73 74 6f 70 20 73 69 67 6e 61 6c 27 2c 0a 31 34 39 20 3d 3e 20 27 42 Terminal.stop.signal',.149.=>.'B
b7920 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 ackground.process.attempting.to.
b7940 72 65 61 64 20 66 72 6f 6d 20 74 74 79 20 28 22 69 6e 22 29 27 2c 0a 31 35 30 20 3d 3e 20 27 42 read.from.tty.("in")',.150.=>.'B
b7960 61 63 6b 67 72 6f 75 6e 64 20 70 72 6f 63 65 73 73 20 61 74 74 65 6d 70 74 69 6e 67 20 74 6f 20 ackground.process.attempting.to.
b7980 77 72 69 74 65 20 74 6f 20 74 74 79 20 28 22 6f 75 74 22 29 27 2c 0a 31 35 31 20 3d 3e 20 27 55 write.to.tty.("out")',.151.=>.'U
b79a0 72 67 65 6e 74 20 64 61 74 61 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 73 6f 63 6b 65 74 27 2c rgent.data.available.on.socket',
b79c0 0a 31 35 32 20 3d 3e 20 27 43 50 55 20 74 69 6d 65 20 6c 69 6d 69 74 20 65 78 63 65 65 64 65 64 .152.=>.'CPU.time.limit.exceeded
b79e0 27 2c 0a 31 35 33 20 3d 3e 20 27 46 69 6c 65 20 73 69 7a 65 20 6c 69 6d 69 74 20 65 78 63 65 65 ',.153.=>.'File.size.limit.excee
b7a00 64 65 64 27 2c 0a 31 35 34 20 3d 3e 20 27 53 69 67 6e 61 6c 20 72 61 69 73 65 64 20 62 79 20 74 ded',.154.=>.'Signal.raised.by.t
b7a20 69 6d 65 72 20 63 6f 75 6e 74 69 6e 67 20 76 69 72 74 75 61 6c 20 74 69 6d 65 3a 20 22 76 69 72 imer.counting.virtual.time:."vir
b7a40 74 75 61 6c 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 22 27 2c 0a 31 35 35 20 3d 3e 20 27 50 72 tual.timer.expired"',.155.=>.'Pr
b7a60 6f 66 69 6c 69 6e 67 20 74 69 6d 65 72 20 65 78 70 69 72 65 64 27 2c 0a 0a 20 31 35 37 20 3d 3e ofiling.timer.expired',...157.=>
b7a80 20 27 50 6f 6c 6c 61 62 6c 65 20 65 76 65 6e 74 27 2c 0a 0a 20 31 35 39 20 3d 3e 20 27 42 61 64 .'Pollable.event',...159.=>.'Bad
b7aa0 20 73 79 73 63 61 6c 6c 27 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 .syscall',.);................pub
b7ac0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e lic.function.__construct($comman
b7ae0 64 6c 69 6e 65 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 6e 76 20 3d dline,.$cwd.=.null,.array.$env.=
b7b00 20 6e 75 6c 6c 2c 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 74 69 6d 65 6f 75 74 20 3d .null,.$input.=.null,.$timeout.=
b7b20 20 36 30 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b .60,.array.$options.=.array()).{
b7b40 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e .if.(!function_exists('proc_open
b7b60 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ')).{.throw.new.RuntimeException
b7b80 28 27 54 68 65 20 50 72 6f 63 65 73 73 20 63 6c 61 73 73 20 72 65 6c 69 65 73 20 6f 6e 20 70 72 ('The.Process.class.relies.on.pr
b7ba0 6f 63 5f 6f 70 65 6e 2c 20 77 68 69 63 68 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 oc_open,.which.is.not.available.
b7bc0 6f 6e 20 79 6f 75 72 20 50 48 50 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e 27 29 3b 0a 7d 0a 0a on.your.PHP.installation.');.}..
b7be0 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e $this->commandline.=.$commandlin
b7c00 65 3b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 69 e;.$this->cwd.=.$cwd;..........i
b7c20 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 20 26 26 20 28 64 65 66 69 6e f.(null.===.$this->cwd.&&.(defin
b7c40 65 64 28 27 5a 45 4e 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 29 20 7c 7c 20 27 5c 5c 27 20 3d ed('ZEND_THREAD_SAFE').||.'\\'.=
b7c60 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 29 20 7b 0a 24 74 68 69 73 ==.DIRECTORY_SEPARATOR)).{.$this
b7c80 2d 3e 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d ->cwd.=.getcwd();.}.if.(null.!==
b7ca0 20 24 65 6e 76 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 45 6e 76 28 24 65 6e 76 29 3b 0a 7d 0a .$env).{.$this->setEnv($env);.}.
b7cc0 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 73 .$this->input.=.$input;.$this->s
b7ce0 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 74 68 69 73 2d 3e 75 73 65 46 etTimeout($timeout);.$this->useF
b7d00 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f ileHandles.=.'\\'.===.DIRECTORY_
b7d20 53 45 50 41 52 41 54 4f 52 3b 0a 24 74 68 69 73 2d 3e 70 74 79 20 3d 20 66 61 6c 73 65 3b 0a 24 SEPARATOR;.$this->pty.=.false;.$
b7d40 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 this->enhanceWindowsCompatibilit
b7d60 79 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 y.=.true;.$this->enhanceSigchild
b7d80 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 27 5c 5c 27 20 21 3d 3d 20 44 49 52 45 43 54 4f Compatibility.=.'\\'.!==.DIRECTO
b7da0 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c RY_SEPARATOR.&&.$this->isSigchil
b7dc0 64 45 6e 61 62 6c 65 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 dEnabled();.$this->options.=.arr
b7de0 61 79 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 ay_replace(array('suppress_error
b7e00 73 27 20 3d 3e 20 74 72 75 65 2c 20 27 62 69 6e 61 72 79 5f 70 69 70 65 73 27 20 3d 3e 20 74 72 s'.=>.true,.'binary_pipes'.=>.tr
b7e20 75 65 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ue),.$options);.}..public.functi
b7e40 6f 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 6f 70 28 on.__destruct().{...$this->stop(
b7e60 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a );.}..public.function.__clone().
b7e80 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b 0a 7d 0a 0a {.$this->resetProcessData();.}..
b7ea0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .....................public.func
b7ec0 74 69 6f 6e 20 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 tion.run($callback.=.null).{.$th
b7ee0 69 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 is->start($callback);..return.$t
b7f00 68 69 73 2d 3e 77 61 69 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 his->wait();.}...............pub
b7f20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 75 73 74 52 75 6e 28 24 63 61 6c 6c 62 61 63 6b 20 3d lic.function.mustRun($callback.=
b7f40 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e .null).{.if.($this->isSigchildEn
b7f60 61 62 6c 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 abled().&&.!$this->enhanceSigchi
b7f80 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e ldCompatibility).{.throw.new.Run
b7fa0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e timeException('This.PHP.has.been
b7fc0 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 .compiled.with.--enable-sigchild
b7fe0 2e 20 59 6f 75 20 6d 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c ..You.must.use.setEnhanceSigchil
b8000 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 dCompatibility().to.use.this.met
b8020 68 6f 64 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 75 6e 28 hod.');.}..if.(0.!==.$this->run(
b8040 24 63 61 6c 6c 62 61 63 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 46 $callback)).{.throw.new.ProcessF
b8060 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e ailedException($this);.}..return
b8080 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$this;.}.......................
b80a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 ...public.function.start($callba
b80c0 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e ck.=.null).{.if.($this->isRunnin
b80e0 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f g()).{.throw.new.RuntimeExceptio
b8100 6e 28 27 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b n('Process.is.already.running');
b8120 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 26 26 20 .}.if.($this->outputDisabled.&&.
b8140 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 null.!==.$callback).{.throw.new.
b8160 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e 20 LogicException('Output.has.been.
b8180 64 69 73 61 62 6c 65 64 2c 20 65 6e 61 62 6c 65 20 69 74 20 74 6f 20 61 6c 6c 6f 77 20 74 68 65 disabled,.enable.it.to.allow.the
b81a0 20 75 73 65 20 6f 66 20 61 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d .use.of.a.callback.');.}..$this-
b81c0 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 >resetProcessData();.$this->star
b81e0 74 74 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 ttime.=.$this->lastOutputTime.=.
b8200 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b microtime(true);.$this->callback
b8220 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 .=.$this->buildCallback($callbac
b8240 6b 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 73 k);.$descriptors.=.$this->getDes
b8260 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 74 68 69 criptors();..$commandline.=.$thi
b8280 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 s->commandline;..if.('\\'.===.DI
b82a0 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 RECTORY_SEPARATOR.&&.$this->enha
b82c0 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d nceWindowsCompatibility).{.$comm
b82e0 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 28 andline.=.'cmd./V:ON./E:ON./C."(
b8300 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 '.$commandline.')';.foreach.($th
b8320 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 67 65 74 46 69 6c 65 73 28 29 20 61 73 20 is->processPipes->getFiles().as.
b8340 24 6f 66 66 73 65 74 20 3d 3e 20 24 66 69 6c 65 6e 61 6d 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 $offset.=>.$filename).{.$command
b8360 6c 69 6e 65 20 2e 3d 20 27 20 27 2e 24 6f 66 66 73 65 74 2e 27 3e 27 2e 50 72 6f 63 65 73 73 55 line..=.'.'.$offset.'>'.ProcessU
b8380 74 69 6c 73 3a 3a 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 66 69 6c 65 6e 61 6d 65 29 3b tils::escapeArgument($filename);
b83a0 0a 7d 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 2e 3d 20 27 22 27 3b 0a 0a 69 66 20 28 21 69 73 .}.$commandline..=.'"';..if.(!is
b83c0 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 65 6c 6c set($this->options['bypass_shell
b83e0 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 73 73 5f 73 68 '])).{.$this->options['bypass_sh
b8400 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 ell'].=.true;.}.}..$this->proces
b8420 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2c 20 24 64 65 73 s.=.proc_open($commandline,.$des
b8440 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 70 criptors,.$this->processPipes->p
b8460 69 70 65 73 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 74 68 69 73 2d 3e 65 6e 76 2c 20 24 74 ipes,.$this->cwd,.$this->env,.$t
b8480 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 his->options);..if.(!is_resource
b84a0 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 ($this->process)).{.throw.new.Ru
b84c0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 6c 61 75 6e 63 68 ntimeException('Unable.to.launch
b84e0 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 74 .a.new.process.');.}.$this->stat
b8500 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 3b 0a 0a 69 66 20 28 us.=.self::STATUS_STARTED;..if.(
b8520 24 74 68 69 73 2d 3e 74 74 79 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e $this->tty).{.return;.}..$this->
b8540 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 updateStatus(false);.$this->chec
b8560 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 kTimeout();.}.................pu
b8580 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 blic.function.restart($callback.
b85a0 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 =.null).{.if.($this->isRunning()
b85c0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 ).{.throw.new.RuntimeException('
b85e0 50 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a Process.is.already.running');.}.
b8600 0a 24 70 72 6f 63 65 73 73 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 3b 0a 24 70 72 6f 63 65 73 .$process.=.clone.$this;.$proces
b8620 73 2d 3e 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 s->start($callback);..return.$pr
b8640 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ocess;.}.................public.
b8660 66 75 6e 63 74 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a function.wait($callback.=.null).
b8680 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 {.$this->requireProcessIsStarted
b86a0 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 (__FUNCTION__);..$this->updateSt
b86c0 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 atus(false);.if.(null.!==.$callb
b86e0 61 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e ack).{.$this->callback.=.$this->
b8700 62 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 64 6f 20 buildCallback($callback);.}..do.
b8720 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 3b 0a 24 72 75 6e 6e 69 6e {.$this->checkTimeout();.$runnin
b8740 67 20 3d 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 g.=.'\\'.===.DIRECTORY_SEPARATOR
b8760 20 3f 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 .?.$this->isRunning().:.$this->p
b8780 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 61 72 65 4f 70 65 6e 28 29 3b 0a 24 63 6c 6f 73 65 20 3d rocessPipes->areOpen();.$close.=
b87a0 20 27 5c 5c 27 20 21 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 7c 7c .'\\'.!==.DIRECTORY_SEPARATOR.||
b87c0 20 21 24 72 75 6e 6e 69 6e 67 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 74 72 75 .!$running;.$this->readPipes(tru
b87e0 65 2c 20 24 63 6c 6f 73 65 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 75 6e 6e 69 6e 67 29 3b 0a e,.$close);.}.while.($running);.
b8800 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 75 73 .while.($this->isRunning()).{.us
b8820 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 leep(1000);.}..if.($this->proces
b8840 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 20 26 26 20 24 74 68 69 sInformation['signaled'].&&.$thi
b8860 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d s->processInformation['termsig']
b8880 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 74 65 73 74 53 69 67 6e 61 6c 29 20 7b 0a 74 68 72 6f .!==.$this->latestSignal).{.thro
b88a0 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 w.new.RuntimeException(sprintf('
b88c0 54 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 20 77 69 The.process.has.been.signaled.wi
b88e0 74 68 20 73 69 67 6e 61 6c 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 th.signal."%s".',.$this->process
b8900 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 29 29 3b 0a 7d 0a 0a 72 65 74 Information['termsig']));.}..ret
b8920 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 urn.$this->exitcode;.}.........p
b8940 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 69 64 28 29 0a 7b 0a 69 66 20 28 24 74 ublic.function.getPid().{.if.($t
b8960 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f his->isSigchildEnabled()).{.thro
b8980 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 w.new.RuntimeException('This.PHP
b89a0 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 .has.been.compiled.with.--enable
b89c0 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 69 64 65 6e 74 69 66 69 65 -sigchild..The.process.identifie
b89e0 72 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 r.can.not.be.retrieved.');.}..$t
b8a00 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 his->updateStatus(false);..retur
b8a20 6e 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3f 20 24 74 68 69 73 2d 3e 70 72 n.$this->isRunning().?.$this->pr
b8a40 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 70 69 64 27 5d 20 3a 20 6e 75 6c 6c 3b 0a ocessInformation['pid'].:.null;.
b8a60 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 }.............public.function.si
b8a80 67 6e 61 6c 28 24 73 69 67 6e 61 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 gnal($signal).{.$this->doSignal(
b8aa0 24 73 69 67 6e 61 6c 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d $signal,.true);..return.$this;.}
b8ac0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c ..........public.function.disabl
b8ae0 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 eOutput().{.if.($this->isRunning
b8b00 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e ()).{.throw.new.RuntimeException
b8b20 28 27 44 69 73 61 62 6c 69 6e 67 20 6f 75 74 70 75 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f ('Disabling.output.while.the.pro
b8b40 63 65 73 73 20 69 73 20 72 75 6e 6e 69 6e 67 20 69 73 20 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e cess.is.running.is.not.possible.
b8b60 27 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 ');.}.if.(null.!==.$this->idleTi
b8b80 6d 65 6f 75 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f meout).{.throw.new.LogicExceptio
b8ba0 6e 28 27 4f 75 74 70 75 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 64 69 73 61 62 6c 65 64 20 77 68 n('Output.can.not.be.disabled.wh
b8bc0 69 6c 65 20 61 6e 20 69 64 6c 65 20 74 69 6d 65 6f 75 74 20 69 73 20 73 65 74 2e 27 29 3b 0a 7d ile.an.idle.timeout.is.set.');.}
b8be0 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a ..$this->outputDisabled.=.true;.
b8c00 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
b8c20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 function.enableOutput().{.if.($t
b8c40 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 his->isRunning()).{.throw.new.Ru
b8c60 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 6e 61 62 6c 69 6e 67 20 6f 75 74 70 75 74 20 ntimeException('Enabling.output.
b8c80 77 68 69 6c 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 20 72 75 6e 6e 69 6e 67 20 69 73 20 while.the.process.is.running.is.
b8ca0 6e 6f 74 20 70 6f 73 73 69 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 not.possible.');.}..$this->outpu
b8cc0 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tDisabled.=.false;..return.$this
b8ce0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4f 75 74 70 ;.}.......public.function.isOutp
b8d00 75 74 44 69 73 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 utDisabled().{.return.$this->out
b8d20 70 75 74 44 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 putDisabled;.}............public
b8d40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 .function.getOutput().{.if.($thi
b8d60 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c s->outputDisabled).{.throw.new.L
b8d80 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 20 62 65 65 6e 20 64 ogicException('Output.has.been.d
b8da0 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f isabled.');.}..$this->requirePro
b8dc0 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 74 cessIsStarted(__FUNCTION__);..$t
b8de0 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 2c 20 27 5c 5c 27 20 3d 3d 3d 20 44 his->readPipes(false,.'\\'.===.D
b8e00 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 69 73 2d 3e 70 72 6f IRECTORY_SEPARATOR.?.!$this->pro
b8e20 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 cessInformation['running'].:.tru
b8e40 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b 0a 7d 0a 0a 0a 0a e);..return.$this->stdout;.}....
b8e60 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 72 .........public.function.getIncr
b8e80 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 ementalOutput().{.$this->require
b8ea0 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a ProcessIsStarted(__FUNCTION__);.
b8ec0 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c .$data.=.$this->getOutput();..$l
b8ee0 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 atest.=.substr($data,.$this->inc
b8f00 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 rementalOutputOffset);..if.(fals
b8f20 65 20 3d 3d 3d 20 24 6c 61 74 65 73 74 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 24 e.===.$latest).{.return.'';.}..$
b8f40 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 this->incrementalOutputOffset.=.
b8f60 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a strlen($data);..return.$latest;.
b8f80 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 4f 75 74 }.......public.function.clearOut
b8fa0 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 3d 20 27 27 3b 0a 24 74 68 69 put().{.$this->stdout.=.'';.$thi
b8fc0 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a s->incrementalOutputOffset.=.0;.
b8fe0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .return.$this;.}............publ
b9000 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 69 ic.function.getErrorOutput().{.i
b9020 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 6f f.($this->outputDisabled).{.thro
b9040 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4f 75 74 70 75 74 20 68 61 73 w.new.LogicException('Output.has
b9060 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 71 .been.disabled.');.}..$this->req
b9080 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f uireProcessIsStarted(__FUNCTION_
b90a0 5f 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 2c 20 27 5c 5c _);..$this->readPipes(false,.'\\
b90c0 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 '.===.DIRECTORY_SEPARATOR.?.!$th
b90e0 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 is->processInformation['running'
b9100 5d 20 3a 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 ].:.true);..return.$this->stderr
b9120 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ;.}..............public.function
b9140 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 .getIncrementalErrorOutput().{.$
b9160 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 5f 5f this->requireProcessIsStarted(__
b9180 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 FUNCTION__);..$data.=.$this->get
b91a0 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 ErrorOutput();..$latest.=.substr
b91c0 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f ($data,.$this->incrementalErrorO
b91e0 75 74 70 75 74 4f 66 66 73 65 74 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6c 61 utputOffset);..if.(false.===.$la
b9200 74 65 73 74 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 63 test).{.return.'';.}..$this->inc
b9220 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c rementalErrorOutputOffset.=.strl
b9240 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a en($data);..return.$latest;.}...
b9260 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 45 72 72 6f 72 4f 75 ....public.function.clearErrorOu
b9280 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 74 68 tput().{.$this->stderr.=.'';.$th
b92a0 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 is->incrementalErrorOutputOffset
b92c0 20 3d 20 30 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .=.0;..return.$this;.}..........
b92e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b .public.function.getExitCode().{
b9300 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 20 .if.($this->isSigchildEnabled().
b9320 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 &&.!$this->enhanceSigchildCompat
b9340 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 ibility).{.throw.new.RuntimeExce
b9360 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 ption('This.PHP.has.been.compile
b9380 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 59 6f 75 20 6d 75 d.with.--enable-sigchild..You.mu
b93a0 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 st.use.setEnhanceSigchildCompati
b93c0 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 20 74 68 69 73 20 6d 65 74 68 6f 64 2e 27 29 3b 0a bility().to.use.this.method.');.
b93e0 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a }..$this->updateStatus(false);..
b9400 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a return.$this->exitcode;.}.......
b9420 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 ........public.function.getExitC
b9440 6f 64 65 54 65 78 74 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 65 78 69 74 63 6f odeText().{.if.(null.===.$exitco
b9460 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 29 20 7b 0a 72 65 74 de.=.$this->getExitCode()).{.ret
b9480 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 urn;.}..return.isset(self::$exit
b94a0 43 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 Codes[$exitcode]).?.self::$exitC
b94c0 6f 64 65 73 5b 24 65 78 69 74 63 6f 64 65 5d 20 3a 20 27 55 6e 6b 6e 6f 77 6e 20 65 72 72 6f 72 odes[$exitcode].:.'Unknown.error
b94e0 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 ';.}.........public.function.isS
b9500 75 63 63 65 73 73 66 75 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 74 68 69 73 uccessful().{.return.0.===.$this
b9520 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ->getExitCode();.}..............
b9540 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 public.function.hasBeenSignaled(
b9560 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 ).{.$this->requireProcessIsTermi
b9580 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d nated(__FUNCTION__);..if.($this-
b95a0 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 >isSigchildEnabled()).{.throw.ne
b95c0 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 w.RuntimeException('This.PHP.has
b95e0 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 .been.compiled.with.--enable-sig
b9600 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 child..Term.signal.can.not.be.re
b9620 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 trieved.');.}..$this->updateStat
b9640 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 us(false);..return.$this->proces
b9660 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a sInformation['signaled'];.}.....
b9680 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d .........public.function.getTerm
b96a0 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 Signal().{.$this->requireProcess
b96c0 49 73 54 65 72 6d 69 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 69 66 20 IsTerminated(__FUNCTION__);..if.
b96e0 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 ($this->isSigchildEnabled()).{.t
b9700 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 hrow.new.RuntimeException('This.
b9720 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 PHP.has.been.compiled.with.--ena
b9740 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f ble-sigchild..Term.signal.can.no
b9760 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 t.be.retrieved.');.}..$this->upd
b9780 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ateStatus(false);..return.$this-
b97a0 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a >processInformation['termsig'];.
b97c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 }.............public.function.ha
b97e0 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 50 sBeenStopped().{.$this->requireP
b9800 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 5f 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 rocessIsTerminated(__FUNCTION__)
b9820 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a ;..$this->updateStatus(false);..
b9840 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e return.$this->processInformation
b9860 5b 27 73 74 6f 70 70 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ['stopped'];.}.............publi
b9880 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 c.function.getStopSignal().{.$th
b98a0 69 73 2d 3e 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 5f is->requireProcessIsTerminated(_
b98c0 5f 46 55 4e 43 54 49 4f 4e 5f 5f 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 _FUNCTION__);..$this->updateStat
b98e0 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 us(false);..return.$this->proces
b9900 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a sInformation['stopsig'];.}......
b9920 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 29 0a 7b 0a 69 .public.function.isRunning().{.i
b9940 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 f.(self::STATUS_STARTED.!==.$thi
b9960 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 s->status).{.return.false;.}..$t
b9980 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 his->updateStatus(false);..retur
b99a0 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e n.$this->processInformation['run
b99c0 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ning'];.}.......public.function.
b99e0 69 73 53 74 61 72 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 isStarted().{.return.$this->stat
b9a00 75 73 20 21 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 7d 0a 0a 0a 0a 0a us.!=.self::STATUS_READY;.}.....
b9a20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 54 65 72 6d 69 6e 61 74 65 64 28 29 ..public.function.isTerminated()
b9a40 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a .{.$this->updateStatus(false);..
b9a60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 3d 20 73 65 6c 66 3a 3a 53 54 return.$this->status.==.self::ST
b9a80 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ATUS_TERMINATED;.}.........publi
b9aa0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 74 75 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e c.function.getStatus().{.$this->
b9ac0 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 updateStatus(false);..return.$th
b9ae0 69 73 2d 3e 73 74 61 74 75 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 is->status;.}............public.
b9b00 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 74 69 6d 65 6f 75 74 20 3d 20 31 30 2c 20 24 73 69 function.stop($timeout.=.10,.$si
b9b20 67 6e 61 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 20 3d 20 6d gnal.=.null).{.$timeoutMicro.=.m
b9b40 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2b 20 24 74 69 6d 65 6f 75 74 3b 0a 69 66 20 28 24 icrotime(true).+.$timeout;.if.($
b9b60 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d this->isRunning()).{.if.('\\'.==
b9b80 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 26 26 20 21 24 74 68 69 73 2d =.DIRECTORY_SEPARATOR.&&.!$this-
b9ba0 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 65 78 65 63 28 73 70 72 >isSigchildEnabled()).{.exec(spr
b9bc0 69 6e 74 66 28 22 74 61 73 6b 6b 69 6c 6c 20 2f 46 20 2f 54 20 2f 50 49 44 20 25 64 20 32 3e 26 intf("taskkill./F./T./PID.%d.2>&
b9be0 31 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 69 64 28 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 1",.$this->getPid()),.$output,.$
b9c00 65 78 69 74 43 6f 64 65 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 30 29 20 7b 0a exitCode);.if.($exitCode.>.0).{.
b9c20 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 throw.new.RuntimeException('Unab
b9c40 6c 65 20 74 6f 20 6b 69 6c 6c 20 74 68 65 20 70 72 6f 63 65 73 73 27 29 3b 0a 7d 0a 7d 0a 0a 20 le.to.kill.the.process');.}.}...
b9c60 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 31 35 2c 20 66 61 6c 73 65 29 3b 0a 64 6f 20 7b $this->doSignal(15,.false);.do.{
b9c80 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 .usleep(1000);.}.while.($this->i
b9ca0 73 52 75 6e 6e 69 6e 67 28 29 20 26 26 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 3c 20 sRunning().&&.microtime(true).<.
b9cc0 24 74 69 6d 65 6f 75 74 4d 69 63 72 6f 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 $timeoutMicro);..if.($this->isRu
b9ce0 6e 6e 69 6e 67 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 nning().&&.!$this->isSigchildEna
b9d00 62 6c 65 64 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 69 67 6e 61 6c 20 7c bled()).{.if.(null.!==.$signal.|
b9d20 7c 20 64 65 66 69 6e 65 64 28 27 53 49 47 4b 49 4c 4c 27 29 29 20 7b 0a 0a 20 0a 20 0a 20 0a 20 |.defined('SIGKILL')).{.........
b9d40 24 74 68 69 73 2d 3e 64 6f 53 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 20 3f 3a 20 53 49 47 4b 49 $this->doSignal($signal.?:.SIGKI
b9d60 4c 4c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 LL,.false);.}.}.}..$this->update
b9d80 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 Status(false);.if.($this->proces
b9da0 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 sInformation['running']).{.$this
b9dc0 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 ->close();.}..return.$this->exit
b9de0 63 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 code;.}.......public.function.ad
b9e00 64 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 dOutput($line).{.$this->lastOutp
b9e20 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d utTime.=.microtime(true);.$this-
b9e40 3e 73 74 64 6f 75 74 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 >stdout..=.$line;.}.......public
b9e60 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a .function.addErrorOutput($line).
b9e80 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 {.$this->lastOutputTime.=.microt
b9ea0 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e ime(true);.$this->stderr..=.$lin
b9ec0 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f e;.}.......public.function.getCo
b9ee0 6d 6d 61 6e 64 4c 69 6e 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d mmandLine().{.return.$this->comm
b9f00 61 6e 64 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 andline;.}.........public.functi
b9f20 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 29 0a on.setCommandLine($commandline).
b9f40 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c {.$this->commandline.=.$commandl
b9f60 69 6e 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ine;..return.$this;.}.......publ
b9f80 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 ic.function.getTimeout().{.retur
b9fa0 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.$this->timeout;.}.......public
b9fc0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 .function.getIdleTimeout().{.ret
b9fe0 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a urn.$this->idleTimeout;.}.......
ba000 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 ......public.function.setTimeout
ba020 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 ($timeout).{.$this->timeout.=.$t
ba040 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a his->validateTimeout($timeout);.
ba060 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$this;.}..............pu
ba080 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 24 74 69 blic.function.setIdleTimeout($ti
ba0a0 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 6f 75 74 20 26 meout).{.if.(null.!==.$timeout.&
ba0c0 26 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 7b 0a 74 68 72 6f 77 &.$this->outputDisabled).{.throw
ba0e0 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 49 64 6c 65 20 74 69 6d 65 6f 75 .new.LogicException('Idle.timeou
ba100 74 20 63 61 6e 20 6e 6f 74 20 62 65 20 73 65 74 20 77 68 69 6c 65 20 74 68 65 20 6f 75 74 70 75 t.can.not.be.set.while.the.outpu
ba120 74 20 69 73 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 64 6c 65 t.is.disabled.');.}..$this->idle
ba140 54 69 6d 65 6f 75 74 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 Timeout.=.$this->validateTimeout
ba160 28 24 74 69 6d 65 6f 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a ($timeout);..return.$this;.}....
ba180 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 74 79 28 24 74 .......public.function.setTty($t
ba1a0 74 79 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 ty).{.if.('\\'.===.DIRECTORY_SEP
ba1c0 41 52 41 54 4f 52 20 26 26 20 24 74 74 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 ARATOR.&&.$tty).{.throw.new.Runt
ba1e0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 54 59 20 6d 6f 64 65 20 69 73 20 6e 6f 74 20 73 75 imeException('TTY.mode.is.not.su
ba200 70 70 6f 72 74 65 64 20 6f 6e 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 66 6f 72 6d 2e 27 29 3b 0a pported.on.Windows.platform.');.
ba220 7d 0a 69 66 20 28 24 74 74 79 20 26 26 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 64 65 }.if.($tty.&&.(!file_exists('/de
ba240 76 2f 74 74 79 27 29 20 7c 7c 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 27 2f 64 65 76 2f 74 74 v/tty').||.!is_readable('/dev/tt
ba260 79 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 y'))).{.throw.new.RuntimeExcepti
ba280 6f 6e 28 27 54 54 59 20 6d 6f 64 65 20 72 65 71 75 69 72 65 73 20 2f 64 65 76 2f 74 74 79 20 74 on('TTY.mode.requires./dev/tty.t
ba2a0 6f 20 62 65 20 72 65 61 64 61 62 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 74 79 20 o.be.readable.');.}..$this->tty.
ba2c0 3d 20 28 62 6f 6f 6c 29 20 24 74 74 79 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a =.(bool).$tty;..return.$this;.}.
ba2e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 54 74 79 28 29 0a 7b 0a ......public.function.isTty().{.
ba300 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 return.$this->tty;.}.........pub
ba320 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 74 79 28 24 62 6f 6f 6c 29 0a 7b 0a 24 74 68 lic.function.setPty($bool).{.$th
ba340 69 73 2d 3e 70 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c 3b 0a 0a 72 65 74 75 72 6e 20 is->pty.=.(bool).$bool;..return.
ba360 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 $this;.}.......public.function.i
ba380 73 50 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 74 79 3b 0a 7d 0a 0a 0a sPty().{.return.$this->pty;.}...
ba3a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 6f 72 6b 69 6e 67 44 69 ....public.function.getWorkingDi
ba3c0 72 65 63 74 6f 72 79 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e rectory().{.if.(null.===.$this->
ba3e0 63 77 64 29 20 7b 0a 0a 20 0a 20 72 65 74 75 72 6e 20 67 65 74 63 77 64 28 29 20 3f 3a 20 6e 75 cwd).{.....return.getcwd().?:.nu
ba400 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 0a 0a 0a ll;.}..return.$this->cwd;.}.....
ba420 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 ....public.function.setWorkingDi
ba440 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 rectory($cwd).{.$this->cwd.=.$cw
ba460 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 d;..return.$this;.}.......public
ba480 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .function.getEnv().{.return.$thi
ba4a0 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s->env;.}...............public.f
ba4c0 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 0a 20 24 unction.setEnv(array.$env).{...$
ba4e0 65 6e 76 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 65 6e 76 2c 20 66 75 6e 63 74 69 6f env.=.array_filter($env,.functio
ba500 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 21 69 73 5f 61 72 72 61 79 28 24 76 n.($value).{.return.!is_array($v
ba520 61 6c 75 65 29 3b 0a 7d 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 alue);.});..$this->env.=.array()
ba540 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 76 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 ;.foreach.($env.as.$key.=>.$valu
ba560 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 28 62 69 6e 61 72 79 29 20 24 6b 65 79 5d 20 3d e).{.$this->env[(binary).$key].=
ba580 20 28 62 69 6e 61 72 79 29 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .(binary).$value;.}..return.$thi
ba5a0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 s;.}..........public.function.ge
ba5c0 74 53 74 64 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 tStdin().{.return.$this->getInpu
ba5e0 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 t();.}.......public.function.get
ba600 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d Input().{.return.$this->input;.}
ba620 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ...............public.function.s
ba640 65 74 53 74 64 69 6e 28 24 73 74 64 69 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e etStdin($stdin).{.return.$this->
ba660 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a setInput($stdin);.}.............
ba680 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 public.function.setInput($input)
ba6a0 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 74 68 72 .{.if.($this->isRunning()).{.thr
ba6c0 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 70 75 74 20 63 61 6e ow.new.LogicException('Input.can
ba6e0 20 6e 6f 74 20 62 65 20 73 65 74 20 77 68 69 6c 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 69 73 .not.be.set.while.the.process.is
ba700 20 72 75 6e 6e 69 6e 67 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 50 .running.');.}..$this->input.=.P
ba720 72 6f 63 65 73 73 55 74 69 6c 73 3a 3a 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 73 70 72 69 6e rocessUtils::validateInput(sprin
ba740 74 66 28 27 25 73 3a 3a 25 73 27 2c 20 5f 5f 43 4c 41 53 53 5f 5f 2c 20 5f 5f 46 55 4e 43 54 49 tf('%s::%s',.__CLASS__,.__FUNCTI
ba760 4f 4e 5f 5f 29 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ON__),.$input);..return.$this;.}
ba780 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e .......public.function.getOption
ba7a0 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a s().{.return.$this->options;.}..
ba7c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e .......public.function.setOption
ba7e0 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f s(array.$options).{.$this->optio
ba800 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ns.=.$options;..return.$this;.}.
ba820 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e ........public.function.getEnhan
ba840 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 ceWindowsCompatibility().{.retur
ba860 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 n.$this->enhanceWindowsCompatibi
ba880 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 lity;.}.........public.function.
ba8a0 73 65 74 45 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 setEnhanceWindowsCompatibility($
ba8c0 65 6e 68 61 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 enhance).{.$this->enhanceWindows
ba8e0 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 68 61 6e 63 65 3b Compatibility.=.(bool).$enhance;
ba900 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ..return.$this;.}.......public.f
ba920 75 6e 63 74 69 6f 6e 20 67 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 unction.getEnhanceSigchildCompat
ba940 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 ibility().{.return.$this->enhanc
ba960 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a eSigchildCompatibility;.}.......
ba980 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 ......public.function.setEnhance
ba9a0 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 24 65 6e 68 61 6e 63 65 29 0a SigchildCompatibility($enhance).
ba9c0 7b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 {.$this->enhanceSigchildCompatib
ba9e0 69 6c 69 74 79 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 6e ility.=.(bool).$enhance;..return
baa00 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$this;.}..........public.functi
baa20 6f 6e 20 63 68 65 63 6b 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 on.checkTimeout().{.if.($this->s
baa40 74 61 74 75 73 20 21 3d 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 29 20 tatus.!==.self::STATUS_STARTED).
baa60 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d {.return;.}..if.(null.!==.$this-
baa80 3e 74 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3c 20 6d 69 63 >timeout.&&.$this->timeout.<.mic
baaa0 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 29 rotime(true).-.$this->starttime)
baac0 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 .{.$this->stop(0);..throw.new.Pr
baae0 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2c 20 50 72 ocessTimedOutException($this,.Pr
bab00 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3a 3a 54 59 50 45 5f 47 45 4e ocessTimedOutException::TYPE_GEN
bab20 45 52 41 4c 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 64 ERAL);.}..if.(null.!==.$this->id
bab40 6c 65 54 69 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 20 leTimeout.&&.$this->idleTimeout.
bab60 3c 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4f <.microtime(true).-.$this->lastO
bab80 75 74 70 75 74 54 69 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 utputTime).{.$this->stop(0);..th
baba0 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e row.new.ProcessTimedOutException
babc0 28 24 74 68 69 73 2c 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e ($this,.ProcessTimedOutException
babe0 3a 3a 54 59 50 45 5f 49 44 4c 45 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 ::TYPE_IDLE);.}.}.......public.s
bac00 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 74 79 53 75 70 70 6f 72 74 65 64 28 29 0a tatic.function.isPtySupported().
bac20 7b 0a 73 74 61 74 69 63 20 24 72 65 73 75 6c 74 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 {.static.$result;..if.(null.!==.
bac40 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 69 66 $result).{.return.$result;.}..if
bac60 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 .('\\'.===.DIRECTORY_SEPARATOR).
bac80 7b 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 {.return.$result.=.false;.}..$pr
baca0 6f 63 20 3d 20 40 70 72 6f 63 5f 6f 70 65 6e 28 27 65 63 68 6f 20 31 27 2c 20 61 72 72 61 79 28 oc.=.@proc_open('echo.1',.array(
bacc0 61 72 72 61 79 28 27 70 74 79 27 29 2c 20 61 72 72 61 79 28 27 70 74 79 27 29 2c 20 61 72 72 61 array('pty'),.array('pty'),.arra
bace0 79 28 27 70 74 79 27 29 29 2c 20 24 70 69 70 65 73 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 y('pty')),.$pipes);.if.(is_resou
bad00 72 63 65 28 24 70 72 6f 63 29 29 20 7b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 29 3b rce($proc)).{.proc_close($proc);
bad20 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 ..return.$result.=.true;.}..retu
bad40 72 6e 20 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 rn.$result.=.false;.}.......priv
bad60 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a ate.function.getDescriptors().{.
bad80 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 if.('\\'.===.DIRECTORY_SEPARATOR
bada0 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 20 3d 20 57 69 6e 64 6f 77 ).{.$this->processPipes.=.Window
badc0 73 50 69 70 65 73 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2c 20 24 74 68 69 73 2d 3e 69 6e 70 sPipes::create($this,.$this->inp
bade0 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 ut);.}.else.{.$this->processPipe
bae00 73 20 3d 20 55 6e 69 78 50 69 70 65 73 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2c 20 24 74 68 s.=.UnixPipes::create($this,.$th
bae20 69 73 2d 3e 69 6e 70 75 74 29 3b 0a 7d 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 24 74 68 is->input);.}.$descriptors.=.$th
bae40 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 is->processPipes->getDescriptors
bae60 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 3b 0a 0a 69 66 20 28 21 24 ($this->outputDisabled);..if.(!$
bae80 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 20 26 26 20 24 74 68 69 73 2d 3e 65 this->useFileHandles.&&.$this->e
baea0 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 26 26 20 24 nhanceSigchildCompatibility.&&.$
baec0 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 0a 20 24 this->isSigchildEnabled()).{...$
baee0 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 64 65 73 63 72 descriptors.=.array_merge($descr
baf00 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 iptors,.array(array('pipe',.'w')
baf20 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 28 27 2e 24 74 ));..$this->commandline.=.'('.$t
baf40 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 29 20 33 3e 2f 64 65 76 2f 6e 75 6c 6c 3b his->commandline.').3>/dev/null;
baf60 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 63 6f 64 65 20 3e 26 33 3b 20 65 78 69 74 20 24 .code=$?;.echo.$code.>&3;.exit.$
baf80 63 6f 64 65 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 73 3b 0a 7d code';.}..return.$descriptors;.}
bafa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 ............protected.function.b
bafc0 75 69 6c 64 43 61 6c 6c 62 61 63 6b 28 24 63 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 61 74 20 uildCallback($callback).{.$that.
bafe0 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 3b 0a 24 63 61 6c 6c =.$this;.$out.=.self::OUT;.$call
bb000 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 back.=.function.($type,.$data).u
bb020 73 65 20 28 24 74 68 61 74 2c 20 24 63 61 6c 6c 62 61 63 6b 2c 20 24 6f 75 74 29 20 7b 0a 69 66 se.($that,.$callback,.$out).{.if
bb040 20 28 24 6f 75 74 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 4f 75 74 .($out.==.$type).{.$that->addOut
bb060 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 61 74 2d 3e 61 64 64 45 put($data);.}.else.{.$that->addE
bb080 72 72 6f 72 4f 75 74 70 75 74 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 rrorOutput($data);.}..if.(null.!
bb0a0 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 ==.$callback).{.call_user_func($
bb0c0 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 3b 0a 0a 72 callback,.$type,.$data);.}.};..r
bb0e0 65 74 75 72 6e 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 eturn.$callback;.}.......protect
bb100 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 53 74 61 74 75 73 28 24 62 6c 6f 63 6b 69 ed.function.updateStatus($blocki
bb120 6e 67 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 21 ng).{.if.(self::STATUS_STARTED.!
bb140 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 ==.$this->status).{.return;.}..$
bb160 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 70 72 6f 63 5f this->processInformation.=.proc_
bb180 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 74 68 69 get_status($this->process);.$thi
bb1a0 73 2d 3e 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 s->captureExitCode();..$this->re
bb1c0 61 64 50 69 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 adPipes($blocking,.'\\'.===.DIRE
bb1e0 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3f 20 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 CTORY_SEPARATOR.?.!$this->proces
bb200 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 65 29 3b sInformation['running'].:.true);
bb220 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e ..if.(!$this->processInformation
bb240 5b 27 72 75 6e 6e 69 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d ['running']).{.$this->close();.}
bb260 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 69 .}.......protected.function.isSi
bb280 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 gchildEnabled().{.if.(null.!==.s
bb2a0 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 elf::$sigchild).{.return.self::$
bb2c0 73 69 67 63 68 69 6c 64 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 sigchild;.}..if.(!function_exist
bb2e0 73 28 27 70 68 70 69 6e 66 6f 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 s('phpinfo')).{.return.self::$si
bb300 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 gchild.=.false;.}..ob_start();.p
bb320 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 hpinfo(INFO_GENERAL);..return.se
bb340 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 lf::$sigchild.=.false.!==.strpos
bb360 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 (ob_get_clean(),.'--enable-sigch
bb380 69 6c 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 ild');.}...........private.funct
bb3a0 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a ion.validateTimeout($timeout).{.
bb3c0 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 $timeout.=.(float).$timeout;..if
bb3e0 20 28 30 2e 30 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 69 6d 65 6f 75 74 20 3d .(0.0.===.$timeout).{.$timeout.=
bb400 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b .null;.}.elseif.($timeout.<.0).{
bb420 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 .throw.new.InvalidArgumentExcept
bb440 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 ion('The.timeout.value.must.be.a
bb460 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 .valid.positive.integer.or.float
bb480 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 69 6d 65 6f 75 74 3b 0a .number.');.}..return.$timeout;.
bb4a0 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 69 }........private.function.readPi
bb4c0 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 0a 7b 0a 24 72 65 73 75 6c 74 pes($blocking,.$close).{.$result
bb4e0 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 72 65 61 64 41 6e 64 57 .=.$this->processPipes->readAndW
bb500 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 3b 0a 0a 24 63 61 6c 6c 62 rite($blocking,.$close);..$callb
bb520 61 63 6b 20 3d 20 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 3b 0a 66 6f 72 65 61 63 68 20 28 ack.=.$this->callback;.foreach.(
bb540 24 72 65 73 75 6c 74 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 69 66 20 $result.as.$type.=>.$data).{.if.
bb560 28 33 20 3d 3d 20 24 74 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 (3.==.$type).{.$this->fallbackEx
bb580 69 74 63 6f 64 65 20 3d 20 28 69 6e 74 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 itcode.=.(int).$data;.}.else.{.$
bb5a0 63 61 6c 6c 62 61 63 6b 28 24 74 79 70 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 callback($type.===.self::STDOUT.
bb5c0 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b ?.self::OUT.:.self::ERR,.$data);
bb5e0 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 70 74 .}.}.}.....private.function.capt
bb600 75 72 65 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d ureExitCode().{.if.(isset($this-
bb620 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 >processInformation['exitcode'])
bb640 20 26 26 20 2d 31 20 21 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 .&&.-1.!=.$this->processInformat
bb660 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f ion['exitcode']).{.$this->exitco
bb680 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 de.=.$this->processInformation['
bb6a0 65 78 69 74 63 6f 64 65 27 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 exitcode'];.}.}.......private.fu
bb6c0 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 nction.close().{.$this->processP
bb6e0 69 70 65 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 ipes->close();.if.(is_resource($
bb700 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 70 72 this->process)).{.$exitcode.=.pr
bb720 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 20 65 6c 73 65 oc_close($this->process);.}.else
bb740 20 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 78 69 .{.$exitcode.=.-1;.}..$this->exi
bb760 74 63 6f 64 65 20 3d 20 2d 31 20 21 3d 3d 20 24 65 78 69 74 63 6f 64 65 20 3f 20 24 65 78 69 74 tcode.=.-1.!==.$exitcode.?.$exit
bb780 63 6f 64 65 20 3a 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 code.:.(null.!==.$this->exitcode
bb7a0 20 3f 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3a 20 2d 31 29 3b 0a 24 74 68 69 73 2d .?.$this->exitcode.:.-1);.$this-
bb7c0 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 >status.=.self::STATUS_TERMINATE
bb7e0 44 3b 0a 0a 69 66 20 28 2d 31 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 D;..if.(-1.===.$this->exitcode.&
bb800 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f &.null.!==.$this->fallbackExitco
bb820 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 66 de).{.$this->exitcode.=.$this->f
bb840 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 2d 31 20 3d 3d allbackExitcode;.}.elseif.(-1.==
bb860 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 63 =.$this->exitcode.&&.$this->proc
bb880 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 20 26 26 20 30 20 essInformation['signaled'].&&.0.
bb8a0 3c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 65 72 <.$this->processInformation['ter
bb8c0 6d 73 69 67 27 5d 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 31 32 msig']).{...$this->exitcode.=.12
bb8e0 38 20 2b 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 74 8.+.$this->processInformation['t
bb900 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 ermsig'];.}..return.$this->exitc
bb920 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 ode;.}.....private.function.rese
bb940 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d tProcessData().{.$this->starttim
bb960 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c e.=.null;.$this->callback.=.null
bb980 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d ;.$this->exitcode.=.null;.$this-
bb9a0 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d >fallbackExitcode.=.null;.$this-
bb9c0 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 >processInformation.=.null;.$thi
bb9e0 73 2d 3e 73 74 64 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 s->stdout.=.null;.$this->stderr.
bba00 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 =.null;.$this->process.=.null;.$
bba20 74 68 69 73 2d 3e 6c 61 74 65 73 74 53 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 this->latestSignal.=.null;.$this
bba40 2d 3e 73 74 61 74 75 73 20 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 24 ->status.=.self::STATUS_READY;.$
bba60 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 this->incrementalOutputOffset.=.
bba80 30 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 0;.$this->incrementalErrorOutput
bbaa0 4f 66 66 73 65 74 20 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 Offset.=.0;.}..............priva
bbac0 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 53 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 2c 20 24 74 te.function.doSignal($signal,.$t
bbae0 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 52 hrowException).{.if.(!$this->isR
bbb00 75 6e 6e 69 6e 67 28 29 29 20 7b 0a 69 66 20 28 24 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 unning()).{.if.($throwException)
bbb20 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e .{.throw.new.LogicException('Can
bbb40 20 6e 6f 74 20 73 65 6e 64 20 73 69 67 6e 61 6c 20 6f 6e 20 61 20 6e 6f 6e 20 72 75 6e 6e 69 6e .not.send.signal.on.a.non.runnin
bbb60 67 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d g.process.');.}..return.false;.}
bbb80 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 ..if.($this->isSigchildEnabled()
bbba0 29 20 7b 0a 69 66 20 28 24 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 ).{.if.($throwException).{.throw
bbbc0 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 .new.RuntimeException('This.PHP.
bbbe0 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d has.been.compiled.with.--enable-
bbc00 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 63 61 6e 20 6e 6f 74 20 62 65 sigchild..The.process.can.not.be
bbc20 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d .signaled.');.}..return.false;.}
bbc40 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 40 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 ..if.(true.!==.@proc_terminate($
bbc60 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2c 20 24 73 69 67 6e 61 6c 29 29 20 7b 0a 69 66 20 28 24 this->process,.$signal)).{.if.($
bbc80 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 throwException).{.throw.new.Runt
bbca0 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 45 72 72 6f 72 20 77 68 69 6c imeException(sprintf('Error.whil
bbcc0 65 20 73 65 6e 64 69 6e 67 20 73 69 67 6e 61 6c 20 60 25 73 60 2e 27 2c 20 24 73 69 67 6e 61 6c e.sending.signal.`%s`.',.$signal
bbce0 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c ));.}..return.false;.}..$this->l
bbd00 61 74 65 73 74 53 69 67 6e 61 6c 20 3d 20 24 73 69 67 6e 61 6c 3b 0a 0a 72 65 74 75 72 6e 20 74 atestSignal.=.$signal;..return.t
bbd20 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 rue;.}.........private.function.
bbd40 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 53 74 61 72 74 65 64 28 24 66 75 6e 63 74 69 6f requireProcessIsStarted($functio
bbd60 6e 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 53 74 61 72 74 65 64 28 29 nName).{.if.(!$this->isStarted()
bbd80 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 ).{.throw.new.LogicException(spr
bbda0 69 6e 74 66 28 27 50 72 6f 63 65 73 73 20 6d 75 73 74 20 62 65 20 73 74 61 72 74 65 64 20 62 65 intf('Process.must.be.started.be
bbdc0 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 25 73 2e 27 2c 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 fore.calling.%s.',.$functionName
bbde0 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ));.}.}.........private.function
bbe00 20 72 65 71 75 69 72 65 50 72 6f 63 65 73 73 49 73 54 65 72 6d 69 6e 61 74 65 64 28 24 66 75 6e .requireProcessIsTerminated($fun
bbe20 63 74 69 6f 6e 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 54 65 72 6d 69 ctionName).{.if.(!$this->isTermi
bbe40 6e 61 74 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 nated()).{.throw.new.LogicExcept
bbe60 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 50 72 6f 63 65 73 73 20 6d 75 73 74 20 62 65 20 74 65 72 ion(sprintf('Process.must.be.ter
bbe80 6d 69 6e 61 74 65 64 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 25 73 2e 27 2c 20 24 66 75 minated.before.calling.%s.',.$fu
bbea0 6e 63 74 69 6f 6e 4e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a nctionName));.}.}.}.<?php.......
bbec0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
bbee0 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Process;..use.Symfony\Component\
bbf00 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e Process\Exception\InvalidArgumen
bbf20 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tException;.use.Symfony\Componen
bbf40 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 t\Process\Exception\LogicExcepti
bbf60 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 0a 7b on;.......class.ProcessBuilder.{
bbf80 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 63 77 .private.$arguments;.private.$cw
bbfa0 64 3b 0a 70 72 69 76 61 74 65 20 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 d;.private.$env.=.array();.priva
bbfc0 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 te.$input;.private.$timeout.=.60
bbfe0 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 ;.private.$options.=.array();.pr
bc000 69 76 61 74 65 20 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 ivate.$inheritEnv.=.true;.privat
bc020 65 20 24 70 72 65 66 69 78 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 e.$prefix.=.array();.private.$ou
bc040 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c tputDisabled.=.false;.......publ
bc060 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 61 ic.function.__construct(array.$a
bc080 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 rguments.=.array()).{.$this->arg
bc0a0 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 uments.=.$arguments;.}.........p
bc0c0 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 61 72 72 ublic.static.function.create(arr
bc0e0 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 ay.$arguments.=.array()).{.retur
bc100 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a n.new.static($arguments);.}.....
bc120 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 61 72 67 75 6d 65 6e ....public.function.add($argumen
bc140 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 61 72 67 75 6d t).{.$this->arguments[].=.$argum
bc160 65 6e 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ent;..return.$this;.}...........
bc180 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 69 78 28 24 70 72 65 66 69 public.function.setPrefix($prefi
bc1a0 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 3d 20 69 73 5f 61 72 72 61 79 28 24 70 x).{.$this->prefix.=.is_array($p
bc1c0 72 65 66 69 78 29 20 3f 20 24 70 72 65 66 69 78 20 3a 20 61 72 72 61 79 28 24 70 72 65 66 69 78 refix).?.$prefix.:.array($prefix
bc1e0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 );..return.$this;.}............p
bc200 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 61 72 72 61 ublic.function.setArguments(arra
bc220 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 y.$arguments).{.$this->arguments
bc240 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a .=.$arguments;..return.$this;.}.
bc260 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 ........public.function.setWorki
bc280 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d ngDirectory($cwd).{.$this->cwd.=
bc2a0 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a .$cwd;..return.$this;.}.........
bc2c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 public.function.inheritEnvironme
bc2e0 6e 74 56 61 72 69 61 62 6c 65 73 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 29 0a ntVariables($inheritEnv.=.true).
bc300 7b 0a 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 74 45 6e {.$this->inheritEnv.=.$inheritEn
bc320 76 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a v;..return.$this;.}.............
bc340 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 76 28 24 6e 61 6d 65 2c 20 24 76 public.function.setEnv($name,.$v
bc360 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c alue).{.$this->env[$name].=.$val
bc380 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ue;..return.$this;.}............
bc3a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 .public.function.addEnvironmentV
bc3c0 61 72 69 61 62 6c 65 73 28 61 72 72 61 79 20 24 76 61 72 69 61 62 6c 65 73 29 0a 7b 0a 24 74 68 ariables(array.$variables).{.$th
bc3e0 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 74 68 69 73 2d 3e 65 is->env.=.array_replace($this->e
bc400 6e 76 2c 20 24 76 61 72 69 61 62 6c 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a nv,.$variables);..return.$this;.
bc420 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 }...........public.function.setI
bc440 6e 70 75 74 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 50 72 nput($input).{.$this->input.=.Pr
bc460 6f 63 65 73 73 55 74 69 6c 73 3a 3a 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 73 70 72 69 6e 74 ocessUtils::validateInput(sprint
bc480 66 28 27 25 73 3a 3a 25 73 27 2c 20 5f 5f 43 4c 41 53 53 5f 5f 2c 20 5f 5f 46 55 4e 43 54 49 4f f('%s::%s',.__CLASS__,.__FUNCTIO
bc4a0 4e 5f 5f 29 2c 20 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a N__),.$input);..return.$this;.}.
bc4c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 ............public.function.setT
bc4e0 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 imeout($timeout).{.if.(null.===.
bc500 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c $timeout).{.$this->timeout.=.nul
bc520 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 l;..return.$this;.}..$timeout.=.
bc540 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 24 74 69 6d 65 6f 75 74 20 (float).$timeout;..if.($timeout.
bc560 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 <.0).{.throw.new.InvalidArgument
bc580 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 Exception('The.timeout.value.mus
bc5a0 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 20 69 6e 74 65 67 65 72 20 6f 72 t.be.a.valid.positive.integer.or
bc5c0 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 69 6d 65 .float.number.');.}..$this->time
bc5e0 6f 75 74 20 3d 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d out.=.$timeout;..return.$this;.}
bc600 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 ..........public.function.setOpt
bc620 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 ion($name,.$value).{.$this->opti
bc640 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ons[$name].=.$value;..return.$th
bc660 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 is;.}.......public.function.disa
bc680 62 6c 65 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 bleOutput().{.$this->outputDisab
bc6a0 6c 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a led.=.true;..return.$this;.}....
bc6c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 61 62 6c 65 4f 75 74 70 75 74 28 ...public.function.enableOutput(
bc6e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 ).{.$this->outputDisabled.=.fals
bc700 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c e;..return.$this;.}.........publ
bc720 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 69 66 20 28 30 ic.function.getProcess().{.if.(0
bc740 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 29 20 26 26 20 30 20 3d .===.count($this->prefix).&&.0.=
bc760 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 29 20 7b 0a 74 68 ==.count($this->arguments)).{.th
bc780 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 row.new.LogicException('You.must
bc7a0 20 61 64 64 28 29 20 63 6f 6d 6d 61 6e 64 20 61 72 67 75 6d 65 6e 74 73 20 62 65 66 6f 72 65 20 .add().command.arguments.before.
bc7c0 63 61 6c 6c 69 6e 67 20 67 65 74 50 72 6f 63 65 73 73 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6f 70 74 calling.getProcess().');.}..$opt
bc7e0 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 0a 24 61 72 67 75 6d 65 6e ions.=.$this->options;..$argumen
bc800 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 2c 20 ts.=.array_merge($this->prefix,.
bc820 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 73 63 72 69 70 74 20 3d 20 69 6d 70 $this->arguments);.$script.=.imp
bc840 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 61 72 72 61 79 28 5f 5f 4e 41 4d 45 lode('.',.array_map(array(__NAME
bc860 53 50 41 43 45 5f 5f 2e 27 5c 5c 50 72 6f 63 65 73 73 55 74 69 6c 73 27 2c 20 27 65 73 63 61 70 SPACE__.'\\ProcessUtils',.'escap
bc880 65 41 72 67 75 6d 65 6e 74 27 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 29 3b 0a 0a 69 66 20 28 eArgument'),.$arguments));..if.(
bc8a0 24 74 68 69 73 2d 3e 69 6e 68 65 72 69 74 45 6e 76 29 20 7b 0a 0a 20 24 65 6e 76 20 3d 20 61 72 $this->inheritEnv).{...$env.=.ar
bc8c0 72 61 79 5f 72 65 70 6c 61 63 65 28 24 5f 45 4e 56 2c 20 24 5f 53 45 52 56 45 52 2c 20 24 74 68 ray_replace($_ENV,.$_SERVER,.$th
bc8e0 69 73 2d 3e 65 6e 76 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 6e 76 20 3d 20 24 74 68 69 73 2d is->env);.}.else.{.$env.=.$this-
bc900 3e 65 6e 76 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 >env;.}..$process.=.new.Process(
bc920 24 73 63 72 69 70 74 2c 20 24 74 68 69 73 2d 3e 63 77 64 2c 20 24 65 6e 76 2c 20 24 74 68 69 73 $script,.$this->cwd,.$env,.$this
bc940 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e ->input,.$this->timeout,.$option
bc960 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 44 69 73 61 62 6c 65 64 29 20 s);..if.($this->outputDisabled).
bc980 7b 0a 24 70 72 6f 63 65 73 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a {.$process->disableOutput();.}..
bc9a0 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a return.$process;.}.}.<?php......
bc9c0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
bc9e0 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Process;..use.Symfony\Component
bca00 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 \Process\Exception\InvalidArgume
bca20 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 ntException;.........class.Proce
bca40 73 73 55 74 69 6c 73 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ssUtils.{....private.function.__
bca60 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 construct().{.}.........public.s
bca80 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 61 tatic.function.escapeArgument($a
bcaa0 72 67 75 6d 65 6e 74 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 rgument).{.........if.('\\'.===.
bcac0 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d DIRECTORY_SEPARATOR).{.if.(''.==
bcae0 3d 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c =.$argument).{.return.escapeshel
bcb00 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 65 73 63 61 70 65 64 41 72 67 75 larg($argument);.}..$escapedArgu
bcb20 6d 65 6e 74 20 3d 20 27 27 3b 0a 24 71 75 6f 74 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 ment.=.'';.$quote.=.false;.forea
bcb40 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 28 22 29 2f 69 27 2c 20 24 61 72 67 75 6d 65 ch.(preg_split('/(")/i',.$argume
bcb60 6e 74 2c 20 2d 31 2c 20 50 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 20 7c 20 50 52 nt,.-1,.PREG_SPLIT_NO_EMPTY.|.PR
bcb80 45 47 5f 53 50 4c 49 54 5f 44 45 4c 49 4d 5f 43 41 50 54 55 52 45 29 20 61 73 20 24 70 61 72 74 EG_SPLIT_DELIM_CAPTURE).as.$part
bcba0 29 20 7b 0a 69 66 20 28 27 22 27 20 3d 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 65 ).{.if.('"'.===.$part).{.$escape
bcbc0 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5c 5c 22 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 dArgument..=.'\\"';.}.elseif.(se
bcbe0 6c 66 3a 3a 69 73 53 75 72 72 6f 75 6e 64 65 64 42 79 28 24 70 61 72 74 2c 20 27 25 27 29 29 20 lf::isSurroundedBy($part,.'%')).
bcc00 7b 0a 0a 20 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5e 25 22 27 2e 73 75 {...$escapedArgument..=.'^%"'.su
bcc20 62 73 74 72 28 24 70 61 72 74 2c 20 31 2c 20 2d 31 29 2e 27 22 5e 25 27 3b 0a 7d 20 65 6c 73 65 bstr($part,.1,.-1).'"^%';.}.else
bcc40 20 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 72 74 2c 20 .{...if.('\\'.===.substr($part,.
bcc60 2d 31 29 29 20 7b 0a 24 70 61 72 74 20 2e 3d 20 27 5c 5c 27 3b 0a 7d 0a 24 71 75 6f 74 65 20 3d -1)).{.$part..=.'\\';.}.$quote.=
bcc80 20 74 72 75 65 3b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 24 70 61 72 74 .true;.$escapedArgument..=.$part
bcca0 3b 0a 7d 0a 7d 0a 69 66 20 28 24 71 75 6f 74 65 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 ;.}.}.if.($quote).{.$escapedArgu
bccc0 6d 65 6e 74 20 3d 20 27 22 27 2e 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 2e 27 22 27 3b ment.=.'"'.$escapedArgument.'"';
bcce0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a .}..return.$escapedArgument;.}..
bcd00 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 return.escapeshellarg($argument)
bcd20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e ;.}............public.static.fun
bcd40 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 49 6e 70 75 74 28 24 63 61 6c 6c 65 72 2c 20 24 69 6e ction.validateInput($caller,.$in
bcd60 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 69 66 put).{.if.(null.!==.$input).{.if
bcd80 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 .(is_resource($input)).{.return.
bcda0 24 69 6e 70 75 74 3b 0a 7d 0a 69 66 20 28 69 73 5f 73 63 61 6c 61 72 28 24 69 6e 70 75 74 29 29 $input;.}.if.(is_scalar($input))
bcdc0 20 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 20 69 .{.return.(string).$input;.}...i
bcde0 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 69 6e 70 75 74 29 20 26 26 20 6d 65 74 68 6f 64 5f 65 f.(is_object($input).&&.method_e
bce00 78 69 73 74 73 28 24 69 6e 70 75 74 2c 20 27 5f 5f 74 6f 53 74 72 69 6e 67 27 29 29 20 7b 0a 72 xists($input,.'__toString')).{.r
bce20 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 74 68 72 6f 77 20 eturn.(string).$input;.}..throw.
bce40 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 new.InvalidArgumentException(spr
bce60 69 6e 74 66 28 27 25 73 20 6f 6e 6c 79 20 61 63 63 65 70 74 73 20 73 74 72 69 6e 67 73 20 6f 72 intf('%s.only.accepts.strings.or
bce80 20 73 74 72 65 61 6d 20 72 65 73 6f 75 72 63 65 73 2e 27 2c 20 24 63 61 6c 6c 65 72 29 29 3b 0a .stream.resources.',.$caller));.
bcea0 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 61 }..return.$input;.}..private.sta
bcec0 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 72 72 6f 75 6e 64 65 64 42 79 28 24 61 72 67 tic.function.isSurroundedBy($arg
bcee0 2c 20 24 63 68 61 72 29 0a 7b 0a 72 65 74 75 72 6e 20 32 20 3c 20 73 74 72 6c 65 6e 28 24 61 72 ,.$char).{.return.2.<.strlen($ar
bcf00 67 29 20 26 26 20 24 63 68 61 72 20 3d 3d 3d 20 24 61 72 67 5b 30 5d 20 26 26 20 24 63 68 61 72 g).&&.$char.===.$arg[0].&&.$char
bcf20 20 3d 3d 3d 20 24 61 72 67 5b 73 74 72 6c 65 6e 28 24 61 72 67 29 20 2d 20 31 5d 3b 0a 7d 0a 7d .===.$arg[strlen($arg).-.1];.}.}
bcf40 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
bcf60 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a ny\Component\Process\Exception;.
bcf80 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 .use.Symfony\Component\Process\P
bcfa0 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 54 69 6d 65 64 rocess;.......class.ProcessTimed
bcfc0 4f 75 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 OutException.extends.RuntimeExce
bcfe0 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 47 45 4e 45 52 41 4c 20 3d 20 31 3b 0a ption.{.const.TYPE_GENERAL.=.1;.
bd000 63 6f 6e 73 74 20 54 59 50 45 5f 49 44 4c 45 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 const.TYPE_IDLE.=.2;..private.$p
bd020 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 rocess;.private.$timeoutType;..p
bd040 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 ublic.function.__construct(Proce
bd060 73 73 20 24 70 72 6f 63 65 73 73 2c 20 24 74 69 6d 65 6f 75 74 54 79 70 65 29 0a 7b 0a 24 74 68 ss.$process,.$timeoutType).{.$th
bd080 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 74 is->process.=.$process;.$this->t
bd0a0 69 6d 65 6f 75 74 54 79 70 65 20 3d 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 61 72 65 imeoutType.=.$timeoutType;..pare
bd0c0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 70 72 nt::__construct(sprintf(.'The.pr
bd0e0 6f 63 65 73 73 20 22 25 73 22 20 65 78 63 65 65 64 65 64 20 74 68 65 20 74 69 6d 65 6f 75 74 20 ocess."%s".exceeded.the.timeout.
bd100 6f 66 20 25 73 20 73 65 63 6f 6e 64 73 2e 27 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f of.%s.seconds.',.$process->getCo
bd120 6d 6d 61 6e 64 4c 69 6e 65 28 29 2c 0a 24 74 68 69 73 2d 3e 67 65 74 45 78 63 65 65 64 65 64 54 mmandLine(),.$this->getExceededT
bd140 69 6d 65 6f 75 74 28 29 0a 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 imeout().));.}..public.function.
bd160 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f getProcess().{.return.$this->pro
bd180 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 47 65 6e 65 72 cess;.}..public.function.isGener
bd1a0 61 6c 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 alTimeout().{.return.$this->time
bd1c0 6f 75 74 54 79 70 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 45 4e 45 52 41 4c 3b 0a outType.===.self::TYPE_GENERAL;.
bd1e0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 64 6c 65 54 69 6d 65 6f 75 74 }..public.function.isIdleTimeout
bd200 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 20 3d ().{.return.$this->timeoutType.=
bd220 3d 3d 20 73 65 6c 66 3a 3a 54 59 50 45 5f 49 44 4c 45 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ==.self::TYPE_IDLE;.}..public.fu
bd240 6e 63 74 69 6f 6e 20 67 65 74 45 78 63 65 65 64 65 64 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 73 77 nction.getExceededTimeout().{.sw
bd260 69 74 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 20 7b 0a 63 61 73 65 itch.($this->timeoutType).{.case
bd280 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 45 4e 45 52 41 4c 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 .self::TYPE_GENERAL:.return.$thi
bd2a0 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 63 61 73 65 20 s->process->getTimeout();..case.
bd2c0 73 65 6c 66 3a 3a 54 59 50 45 5f 49 44 4c 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 self::TYPE_IDLE:.return.$this->p
bd2e0 72 6f 63 65 73 73 2d 3e 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 64 65 66 61 75 rocess->getIdleTimeout();..defau
bd300 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 lt:.throw.new.\LogicException(sp
bd320 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 74 69 6d 65 6f 75 74 20 74 79 70 65 20 22 25 64 22 rintf('Unknown.timeout.type."%d"
bd340 2e 27 2c 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a .',.$this->timeoutType));.}.}.}.
bd360 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
bd380 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a y\Component\Process\Exception;..
bd3a0 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 .....interface.ExceptionInterfac
bd3c0 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 e.{.}.<?php...........namespace.
bd3e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 Symfony\Component\Process\Except
bd400 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ion;.......class.RuntimeExceptio
bd420 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c n.extends.\RuntimeException.impl
bd440 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f ements.ExceptionInterface.{.}.<?
bd460 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
bd480 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a Component\Process\Exception;....
bd4a0 0a 0a 0a 63 6c 61 73 73 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 ...class.LogicException.extends.
bd4c0 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 \LogicException.implements.Excep
bd4e0 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a tionInterface.{.}.<?php.........
bd500 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 ..namespace.Symfony\Component\Pr
bd520 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ocess\Exception;..use.Symfony\Co
bd540 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 63 mponent\Process\Process;.......c
bd560 6c 61 73 73 20 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 lass.ProcessFailedException.exte
bd580 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 nds.RuntimeException.{.private.$
bd5a0 70 72 6f 63 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 process;..public.function.__cons
bd5c0 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 29 0a 7b 0a 69 66 20 28 24 70 truct(Process.$process).{.if.($p
bd5e0 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 rocess->isSuccessful()).{.throw.
bd600 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 45 78 new.InvalidArgumentException('Ex
bd620 70 65 63 74 65 64 20 61 20 66 61 69 6c 65 64 20 70 72 6f 63 65 73 73 2c 20 62 75 74 20 74 68 65 pected.a.failed.process,.but.the
bd640 20 67 69 76 65 6e 20 70 72 6f 63 65 73 73 20 77 61 73 20 73 75 63 63 65 73 73 66 75 6c 2e 27 29 .given.process.was.successful.')
bd660 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 6f 6d 6d 61 ;.}..$error.=.sprintf('The.comma
bd680 6e 64 20 22 25 73 22 20 66 61 69 6c 65 64 2e 27 2e 22 5c 6e 45 78 69 74 20 43 6f 64 65 3a 20 25 nd."%s".failed.'."\nExit.Code:.%
bd6a0 73 28 25 73 29 22 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 s(%s)",.$process->getCommandLine
bd6c0 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 2c 0a 24 70 72 (),.$process->getExitCode(),.$pr
bd6e0 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 0a 29 3b 0a 0a 69 66 20 ocess->getExitCodeText().);..if.
bd700 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 4f 75 74 70 75 74 44 69 73 61 62 6c 65 64 28 29 29 20 (!$process->isOutputDisabled()).
bd720 7b 0a 24 65 72 72 6f 72 20 2e 3d 20 73 70 72 69 6e 74 66 28 22 5c 6e 5c 6e 4f 75 74 70 75 74 3a {.$error..=.sprintf("\n\nOutput:
bd740 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 5c 6e 5c 6e 45 72 72 6f 72 20 \n================\n%s\n\nError.
bd760 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 22 2c 0a Output:\n================\n%s",.
bd780 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d $process->getOutput(),.$process-
bd7a0 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a >getErrorOutput().);.}..parent::
bd7c0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 72 72 6f 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f __construct($error);..$this->pro
bd7e0 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cess.=.$process;.}..public.funct
bd800 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getProcess().{.return.$this-
bd820 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 >process;.}.}.<?php...........na
bd840 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 mespace.Symfony\Component\Proces
bd860 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 s\Exception;.......class.Invalid
bd880 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 6c ArgumentException.extends.\Inval
bd8a0 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 idArgumentException.implements.E
bd8c0 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 xceptionInterface.{.}.Copyright.
bd8e0 28 63 29 20 32 30 30 34 2d 32 30 31 35 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 0a 0a (c).2004-2015.Fabien.Potencier..
bd900 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 Permission.is.hereby.granted,.fr
bd920 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 ee.of.charge,.to.any.person.obta
bd940 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e ining.a.copy.of.this.software.an
bd960 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 d.associated.documentation.files
bd980 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 .(the."Software"),.to.deal.in.th
bd9a0 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 e.Software.without.restriction,.
bd9c0 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 including.without.limitation.the
bd9e0 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 .rights.to.use,.copy,.modify,.me
bda00 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 rge,.publish,.distribute,.sublic
bda20 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 ense,.and/or.sell.copies.of.the.
bda40 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 Software,.and.to.permit.persons.
bda60 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 to.whom.the.Software.is.furnishe
bda80 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f d.to.do.so,.subject.to.the.follo
bdaa0 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 wing.conditions:..The.above.copy
bdac0 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e right.notice.and.this.permission
bdae0 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c .notice.shall.be.included.in.all
bdb00 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 .copies.or.substantial.portions.
bdb20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 of.the.Software...THE.SOFTWARE.I
bdb40 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 S.PROVIDED."AS.IS",.WITHOUT.WARR
bdb60 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 ANTY.OF.ANY.KIND,.EXPRESS.OR.IMP
bdb80 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 LIED,.INCLUDING.BUT.NOT.LIMITED.
bdba0 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 TO.THE.WARRANTIES.OF.MERCHANTABI
bdbc0 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 LITY,.FITNESS.FOR.A.PARTICULAR.P
bdbe0 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e URPOSE.AND.NONINFRINGEMENT..IN.N
bdc00 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 O.EVENT.SHALL.THE.AUTHORS.OR.COP
bdc20 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 YRIGHT.HOLDERS.BE.LIABLE.FOR.ANY
bdc40 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 .CLAIM,.DAMAGES.OR.OTHER.LIABILI
bdc60 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 TY,.WHETHER.IN.AN.ACTION.OF.CONT
bdc80 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 RACT,.TORT.OR.OTHERWISE,.ARISING
bdca0 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 .FROM,.OUT.OF.OR.IN.CONNECTION.W
bdcc0 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f ITH.THE.SOFTWARE.OR.THE.USE.OR.O
bdce0 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c THER.DEALINGS.IN.THE.SOFTWARE..<
bdd00 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
bdd20 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \Component\Process;........class
bdd40 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 .PhpExecutableFinder.{.private.$
bdd60 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 executableFinder;..public.functi
bdd80 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 on.__construct().{.$this->execut
bdda0 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 ableFinder.=.new.ExecutableFinde
bddc0 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 r();.}.........public.function.f
bdde0 69 6e 64 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 0a 20 69 66 20 ind($includeArgs.=.true).{...if.
bde00 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 72 65 74 75 (defined('HHVM_VERSION')).{.retu
bde20 72 6e 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 68 68 76 6d 20 3d 20 67 65 74 65 6e 76 28 27 50 rn.(false.!==.($hhvm.=.getenv('P
bde40 48 50 5f 42 49 4e 41 52 59 27 29 29 20 3f 20 24 68 68 76 6d 20 3a 20 50 48 50 5f 42 49 4e 41 52 HP_BINARY')).?.$hhvm.:.PHP_BINAR
bde60 59 29 2e 28 24 69 6e 63 6c 75 64 65 41 72 67 73 20 3f 20 27 20 27 2e 69 6d 70 6c 6f 64 65 28 27 Y).($includeArgs.?.'.'.implode('
bde80 20 27 2c 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 72 67 75 6d 65 6e 74 73 28 29 29 20 3a 20 27 27 .',.$this->findArguments()).:.''
bdea0 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 42 49 4e 41 52 59 27 );.}....if.(defined('PHP_BINARY'
bdec0 29 20 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 26 20 69 6e 5f 61 72 72 61 79 28 50 48 50 5f ).&&.PHP_BINARY.&&.in_array(PHP_
bdee0 53 41 50 49 2c 20 61 72 72 61 79 28 27 63 6c 69 27 2c 20 27 63 6c 69 2d 73 65 72 76 65 72 27 29 SAPI,.array('cli',.'cli-server')
bdf00 29 20 26 26 20 69 73 5f 66 69 6c 65 28 50 48 50 5f 42 49 4e 41 52 59 29 29 20 7b 0a 72 65 74 75 ).&&.is_file(PHP_BINARY)).{.retu
bdf20 72 6e 20 50 48 50 5f 42 49 4e 41 52 59 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 rn.PHP_BINARY;.}..if.($php.=.get
bdf40 65 6e 76 28 27 50 48 50 5f 50 41 54 48 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 65 78 65 63 75 env('PHP_PATH')).{.if.(!is_execu
bdf60 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a table($php)).{.return.false;.}..
bdf80 72 65 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e return.$php;.}..if.($php.=.geten
bdfa0 76 28 27 50 48 50 5f 50 45 41 52 5f 50 48 50 5f 42 49 4e 27 29 29 20 7b 0a 69 66 20 28 69 73 5f v('PHP_PEAR_PHP_BIN')).{.if.(is_
bdfc0 65 78 65 63 75 74 61 62 6c 65 28 24 70 68 70 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 68 70 3b executable($php)).{.return.$php;
bdfe0 0a 7d 0a 7d 0a 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 50 48 50 5f 42 49 4e 44 49 52 29 3b .}.}..$dirs.=.array(PHP_BINDIR);
be000 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f .if.('\\'.===.DIRECTORY_SEPARATO
be020 52 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a 5c 78 61 6d 70 70 5c 70 68 70 5c 5c 27 3b R).{.$dirs[].=.'C:\xampp\php\\';
be040 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 .}..return.$this->executableFind
be060 65 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 61 6c 73 65 2c 20 24 64 69 72 73 29 3b 0a 7d er->find('php',.false,.$dirs);.}
be080 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 41 72 67 75 6d .......public.function.findArgum
be0a0 65 6e 74 73 28 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ents().{.$arguments.=.array();..
be0c0 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b ..if.(defined('HHVM_VERSION')).{
be0e0 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 27 2d 2d 70 68 70 27 3b 0a 7d 0a 0a 72 65 74 75 .$arguments[].=.'--php';.}..retu
be100 72 6e 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a rn.$arguments;.}.}.<?php........
be120 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 ...namespace.Symfony\Component\P
be140 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 rocess\Pipes;.........interface.
be160 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 43 48 55 4e 4b 5f 53 49 5a PipesInterface.{.const.CHUNK_SIZ
be180 45 20 3d 20 31 36 33 38 34 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e E.=.16384;.......public.function
be1a0 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .getDescriptors();.......public.
be1c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 function.getFiles();..........pu
be1e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f 63 blic.function.readAndWrite($bloc
be200 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 king,.$close.=.false);.......pub
be220 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c lic.function.areOpen();.....publ
be240 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ic.function.close();.}.<?php....
be260 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
be280 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 nt\Process\Pipes;.......abstract
be2a0 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 50 69 70 65 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 .class.AbstractPipes.implements.
be2c0 50 69 70 65 73 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 70 75 62 6c 69 63 20 24 70 69 70 65 73 20 PipesInterface.{..public.$pipes.
be2e0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 42 75 66 =.array();...protected.$inputBuf
be300 66 65 72 20 3d 20 27 27 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 0a 0a 70 fer.=.'';..protected.$input;...p
be320 72 69 76 61 74 65 20 24 62 6c 6f 63 6b 65 64 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 75 62 6c rivate.$blocked.=.true;.....publ
be340 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 ic.function.close().{.foreach.($
be360 74 68 69 73 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 this->pipes.as.$pipe).{.fclose($
be380 70 69 70 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b pipe);.}.$this->pipes.=.array();
be3a0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 .}.......protected.function.hasS
be3c0 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 0a 7b 0a 24 6c 61 ystemCallBeenInterrupted().{.$la
be3e0 73 74 45 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 0a 0a 20 72 stError.=.error_get_last();....r
be400 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 eturn.isset($lastError['message'
be420 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 6c 61 73 74 45 72 72 ]).&&.false.!==.stripos($lastErr
be440 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 2c 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 73 79 73 74 or['message'],.'interrupted.syst
be460 65 6d 20 63 61 6c 6c 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 em.call');.}.....protected.funct
be480 69 6f 6e 20 75 6e 62 6c 6f 63 6b 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 62 6c 6f 63 ion.unblock().{.if.(!$this->bloc
be4a0 6b 65 64 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ked).{.return;.}..foreach.($this
be4c0 2d 3e 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 ->pipes.as.$pipe).{.stream_set_b
be4e0 6c 6f 63 6b 69 6e 67 28 24 70 69 70 65 2c 20 30 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d locking($pipe,.0);.}.if.(null.!=
be500 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 73 74 72 65 61 6d 5f 73 65 74 5f 62 6c 6f =.$this->input).{.stream_set_blo
be520 63 6b 69 6e 67 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 29 3b 0a 7d 0a 0a 24 74 68 69 73 cking($this->input,.0);.}..$this
be540 2d 3e 62 6c 6f 63 6b 65 64 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ->blocked.=.false;.}.}.<?php....
be560 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
be580 6e 74 5c 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 nt\Process\Pipes;..use.Symfony\C
be5a0 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 omponent\Process\Process;.use.Sy
be5c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f mfony\Component\Process\Exceptio
be5e0 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 n\RuntimeException;............c
be600 6c 61 73 73 20 57 69 6e 64 6f 77 73 50 69 70 65 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 lass.WindowsPipes.extends.Abstra
be620 63 74 50 69 70 65 73 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 20 3d 20 61 72 72 61 ctPipes.{..private.$files.=.arra
be640 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 y();..private.$fileHandles.=.arr
be660 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 ay();..private.$readBytes.=.arra
be680 79 28 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 30 2c 0a 50 72 6f 63 65 73 73 y(.Process::STDOUT.=>.0,.Process
be6a0 3a 3a 53 54 44 45 52 52 20 3d 3e 20 30 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 69 73 61 ::STDERR.=>.0,.);..private.$disa
be6c0 62 6c 65 4f 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f bleOutput;..public.function.__co
be6e0 6e 73 74 72 75 63 74 28 24 64 69 73 61 62 6c 65 4f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 29 0a nstruct($disableOutput,.$input).
be700 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 20 3d 20 28 62 6f 6f 6c 29 20 {.$this->disableOutput.=.(bool).
be720 24 64 69 73 61 62 6c 65 4f 75 74 70 75 74 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 69 73 $disableOutput;..if.(!$this->dis
be740 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 66 69 6c ableOutput).{.........$this->fil
be760 65 73 20 3d 20 61 72 72 61 79 28 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 es.=.array(.Process::STDOUT.=>.t
be780 65 6d 70 6e 61 6d 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2c 20 27 73 66 5f 70 empnam(sys_get_temp_dir(),.'sf_p
be7a0 72 6f 63 5f 73 74 64 6f 75 74 27 29 2c 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 45 52 52 20 3d 3e roc_stdout'),.Process::STDERR.=>
be7c0 20 74 65 6d 70 6e 61 6d 28 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2c 20 27 73 66 .tempnam(sys_get_temp_dir(),.'sf
be7e0 5f 70 72 6f 63 5f 73 74 64 65 72 72 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 _proc_stderr'),.);.foreach.($thi
be800 73 2d 3e 66 69 6c 65 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 66 69 6c 65 29 20 7b 0a s->files.as.$offset.=>.$file).{.
be820 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 6f 66 66 73 65 74 5d 20 3d 20 66 6f $this->fileHandles[$offset].=.fo
be840 70 65 6e 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 5b 24 6f 66 66 73 65 74 5d 2c 20 27 72 62 27 29 pen($this->files[$offset],.'rb')
be860 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c ;.if.(false.===.$this->fileHandl
be880 65 73 5b 24 6f 66 66 73 65 74 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 es[$offset]).{.throw.new.Runtime
be8a0 45 78 63 65 70 74 69 6f 6e 28 27 41 20 74 65 6d 70 6f 72 61 72 79 20 66 69 6c 65 20 63 6f 75 6c Exception('A.temporary.file.coul
be8c0 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 74 6f 20 77 72 69 74 65 20 74 68 65 20 70 72 6f d.not.be.opened.to.write.the.pro
be8e0 63 65 73 73 20 6f 75 74 70 75 74 20 74 6f 2c 20 76 65 72 69 66 79 20 74 68 61 74 20 79 6f 75 72 cess.output.to,.verify.that.your
be900 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 .TEMP.environment.variable.is.wr
be920 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 itable');.}.}.}..if.(is_resource
be940 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 ($input)).{.$this->input.=.$inpu
be960 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d t;.}.else.{.$this->inputBuffer.=
be980 20 24 69 6e 70 75 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f .$input;.}.}..public.function.__
be9a0 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 24 74 68 destruct().{.$this->close();.$th
be9c0 69 73 2d 3e 72 65 6d 6f 76 65 46 69 6c 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 is->removeFiles();.}.....public.
be9e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a 69 66 20 28 function.getDescriptors().{.if.(
bea00 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 24 6e 75 6c 6c 73 74 72 $this->disableOutput).{.$nullstr
bea20 65 61 6d 20 3d 20 66 6f 70 65 6e 28 27 4e 55 4c 27 2c 20 27 63 27 29 3b 0a 0a 72 65 74 75 72 6e eam.=.fopen('NUL',.'c');..return
bea40 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 0a 24 6e 75 6c .array(.array('pipe',.'r'),.$nul
bea60 6c 73 74 72 65 61 6d 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 6d 2c 0a 29 3b 0a 7d 0a 0a 0a 20 0a 20 lstream,.$nullstream,.);.}......
bea80 0a 20 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 ..return.array(.array('pipe',.'r
beaa0 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 4e 55 4c 27 2c 20 27 77 27 29 2c 0a 61 '),.array('file',.'NUL',.'w'),.a
beac0 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 4e 55 4c 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 0a 0a rray('file',.'NUL',.'w'),.);.}..
beae0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 28 29 0a 7b 0a ...public.function.getFiles().{.
beb00 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 return.$this->files;.}.....publi
beb20 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e c.function.readAndWrite($blockin
beb40 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 g,.$close.=.false).{.$this->writ
beb60 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 29 3b 0a 0a 24 72 65 61 64 20 3d 20 61 e($blocking,.$close);..$read.=.a
beb80 72 72 61 79 28 29 3b 0a 24 66 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 rray();.$fh.=.$this->fileHandles
beba0 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c 65 ;.foreach.($fh.as.$type.=>.$file
bebc0 48 61 6e 64 6c 65 29 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 66 73 65 65 6b 28 24 66 69 6c 65 48 Handle).{.if.(0.!==.fseek($fileH
bebe0 61 6e 64 6c 65 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 29 andle,.$this->readBytes[$type]))
bec00 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 24 64 61 74 61 .{.continue;.}.$data.=.'';.$data
bec20 72 65 61 64 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 66 69 6c 65 48 read.=.null;.while.(!feof($fileH
bec40 61 6e 64 6c 65 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 64 61 74 61 72 65 61 andle)).{.if.(false.!==.$datarea
bec60 64 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 48 61 6e 64 6c 65 2c 20 73 65 6c 66 3a 3a 43 48 55 d.=.fread($fileHandle,.self::CHU
bec80 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 61 74 61 72 65 61 64 3b 0a NK_SIZE)).{.$data..=.$dataread;.
beca0 7d 0a 7d 0a 69 66 20 28 30 20 3c 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 }.}.if.(0.<.$length.=.strlen($da
becc0 74 61 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 20 2b ta)).{.$this->readBytes[$type].+
bece0 3d 20 24 6c 65 6e 67 74 68 3b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 24 64 61 74 61 3b =.$length;.$read[$type].=.$data;
bed00 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 72 65 61 64 20 7c 7c 20 28 .}..if.(false.===.$dataread.||.(
bed20 74 72 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f 66 28 24 66 69 6c 65 48 61 6e true.===.$close.&&.feof($fileHan
bed40 64 6c 65 29 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 66 63 6c 6f 73 65 28 dle).&&.''.===.$data)).{.fclose(
bed60 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 75 6e 73 65 $this->fileHandles[$type]);.unse
bed80 74 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a t($this->fileHandles[$type]);.}.
beda0 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 }..return.$read;.}.....public.fu
bedc0 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c 29 nction.areOpen().{.return.(bool)
bede0 20 24 74 68 69 73 2d 3e 70 69 70 65 73 20 26 26 20 28 62 6f 6f 6c 29 20 24 74 68 69 73 2d 3e 66 .$this->pipes.&&.(bool).$this->f
bee00 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ileHandles;.}.....public.functio
bee20 6e 20 63 6c 6f 73 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 63 6c 6f 73 65 28 29 3b 0a 66 6f 72 n.close().{.parent::close();.for
bee40 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 61 73 20 24 68 61 6e each.($this->fileHandles.as.$han
bee60 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d dle).{.fclose($handle);.}.$this-
bee80 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a >fileHandles.=.array();.}.......
beea0 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 ...public.static.function.create
beec0 28 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 2c 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 (Process.$process,.$input).{.ret
beee0 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 4f 75 74 70 75 urn.new.static($process->isOutpu
bef00 74 44 69 73 61 62 6c 65 64 28 29 2c 20 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 tDisabled(),.$input);.}.....priv
bef20 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 46 69 6c 65 73 28 29 0a 7b 0a 66 6f 72 ate.function.removeFiles().{.for
bef40 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 6e 61 6d 65 29 each.($this->files.as.$filename)
bef60 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b .{.if.(file_exists($filename)).{
bef80 0a 40 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e .@unlink($filename);.}.}.$this->
befa0 66 69 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 files.=.array();.}........privat
befc0 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f e.function.write($blocking,.$clo
befe0 73 65 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 7b se).{.if.(empty($this->pipes)).{
bf000 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 6e 62 6c 6f 63 6b 28 29 3b 0a 0a 24 .return;.}..$this->unblock();..$
bf020 72 20 3d 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3f 20 61 72 72 61 r.=.null.!==.$this->input.?.arra
bf040 79 28 27 69 6e 70 75 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 3a 20 6e 75 6c y('input'.=>.$this->input).:.nul
bf060 6c 3b 0a 24 77 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 20 3f l;.$w.=.isset($this->pipes[0]).?
bf080 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 20 3a 20 6e 75 6c 6c 3b 0a .array($this->pipes[0]).:.null;.
bf0a0 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d $e.=.null;....if.(false.===.$n.=
bf0c0 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 24 .@stream_select($r,.$w,.$e,.0,.$
bf0e0 62 6c 6f 63 6b 69 6e 67 20 3f 20 50 72 6f 63 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 43 blocking.?.Process::TIMEOUT_PREC
bf100 49 53 49 4f 4e 20 2a 20 31 45 36 20 3a 20 30 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 21 24 74 68 ISION.*.1E6.:.0)).{.....if.(!$th
bf120 69 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 is->hasSystemCallBeenInterrupted
bf140 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a ()).{.$this->pipes.=.array();.}.
bf160 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 72 65 .return;.}....if.(0.===.$n).{.re
bf180 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c 20 turn;.}..if.(null.!==.$w.&&.0.<.
bf1a0 63 6f 75 6e 74 28 24 72 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 77 68 69 6c 65 20 28 count($r)).{.$data.=.'';.while.(
bf1c0 24 64 61 74 61 72 65 61 64 20 3d 20 66 72 65 61 64 28 24 72 5b 27 69 6e 70 75 74 27 5d 2c 20 73 $dataread.=.fread($r['input'],.s
bf1e0 65 6c 66 3a 3a 43 48 55 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 61 elf::CHUNK_SIZE)).{.$data..=.$da
bf200 74 61 72 65 61 64 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 2e 3d taread;.}..$this->inputBuffer..=
bf220 20 24 64 61 74 61 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 .$data;..if.(false.===.$data.||.
bf240 28 74 72 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f 66 28 24 72 5b 27 69 6e 70 (true.===.$close.&&.feof($r['inp
bf260 75 74 27 5d 29 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 0a 20 0a 20 24 74 ut']).&&.''.===.$data)).{.....$t
bf280 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c his->input.=.null;.}.}..if.(null
bf2a0 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c 20 63 6f 75 6e 74 28 24 77 29 29 20 7b 0a 77 68 69 6c .!==.$w.&&.0.<.count($w)).{.whil
bf2c0 65 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 29 29 20 7b e.(strlen($this->inputBuffer)).{
bf2e0 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 69 74 65 28 24 77 5b 30 5d 2c 20 24 74 68 69 73 2d .$written.=.fwrite($w[0],.$this-
bf300 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 32 20 3c 3c 20 31 38 29 3b 0a 69 66 20 28 24 77 72 69 >inputBuffer,.2.<<.18);.if.($wri
bf320 74 74 65 6e 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d tten.>.0).{.$this->inputBuffer.=
bf340 20 28 73 74 72 69 6e 67 29 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 .(string).substr($this->inputBuf
bf360 66 65 72 2c 20 24 77 72 69 74 74 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 62 72 65 61 6b 3b 0a fer,.$written);.}.else.{.break;.
bf380 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 27 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 }.}.}....if.(''.===.$this->input
bf3a0 42 75 66 66 65 72 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 Buffer.&&.null.===.$this->input.
bf3c0 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 29 20 7b 0a 66 63 6c &&.isset($this->pipes[0])).{.fcl
bf3e0 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 ose($this->pipes[0]);.unset($thi
bf400 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a s->pipes[0]);.}.}.}.<?php.......
bf420 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
bf440 50 72 6f 63 65 73 73 5c 50 69 70 65 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 Process\Pipes;..use.Symfony\Comp
bf460 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 onent\Process\Process;.........c
bf480 6c 61 73 73 20 55 6e 69 78 50 69 70 65 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 50 lass.UnixPipes.extends.AbstractP
bf4a0 69 70 65 73 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 74 74 79 4d 6f 64 65 3b 0a 0a 70 72 69 76 61 ipes.{..private.$ttyMode;..priva
bf4c0 74 65 20 24 70 74 79 4d 6f 64 65 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 69 73 61 62 6c 65 4f 75 te.$ptyMode;..private.$disableOu
bf4e0 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 tput;..public.function.__constru
bf500 63 74 28 24 74 74 79 4d 6f 64 65 2c 20 24 70 74 79 4d 6f 64 65 2c 20 24 69 6e 70 75 74 2c 20 24 ct($ttyMode,.$ptyMode,.$input,.$
bf520 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 74 79 4d 6f 64 65 20 disableOutput).{.$this->ttyMode.
bf540 3d 20 28 62 6f 6f 6c 29 20 24 74 74 79 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 70 74 79 4d 6f 64 =.(bool).$ttyMode;.$this->ptyMod
bf560 65 20 3d 20 28 62 6f 6f 6c 29 20 24 70 74 79 4d 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 64 69 73 61 e.=.(bool).$ptyMode;.$this->disa
bf580 62 6c 65 4f 75 74 70 75 74 20 3d 20 28 62 6f 6f 6c 29 20 24 64 69 73 61 62 6c 65 4f 75 74 70 75 bleOutput.=.(bool).$disableOutpu
bf5a0 74 3b 0a 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 24 t;..if.(is_resource($input)).{.$
bf5c0 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 this->input.=.$input;.}.else.{.$
bf5e0 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d 20 28 73 74 72 69 6e 67 29 20 24 69 6e this->inputBuffer.=.(string).$in
bf600 70 75 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 64 65 73 74 put;.}.}..public.function.__dest
bf620 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 ruct().{.$this->close();.}.....p
bf640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a ublic.function.getDescriptors().
bf660 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 4f 75 74 70 75 74 29 20 7b 0a 24 6e {.if.($this->disableOutput).{.$n
bf680 75 6c 6c 73 74 72 65 61 6d 20 3d 20 66 6f 70 65 6e 28 27 2f 64 65 76 2f 6e 75 6c 6c 27 2c 20 27 ullstream.=.fopen('/dev/null',.'
bf6a0 63 27 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 c');..return.array(.array('pipe'
bf6c0 2c 20 27 72 27 29 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 6d 2c 0a 24 6e 75 6c 6c 73 74 72 65 61 6d ,.'r'),.$nullstream,.$nullstream
bf6e0 2c 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 74 79 4d 6f 64 65 29 20 7b 0a 72 65 ,.);.}..if.($this->ttyMode).{.re
bf700 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 2f turn.array(.array('file',.'/dev/
bf720 74 74 79 27 2c 20 27 72 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 2f tty',.'r'),.array('file',.'/dev/
bf740 74 74 79 27 2c 20 27 77 27 29 2c 0a 61 72 72 61 79 28 27 66 69 6c 65 27 2c 20 27 2f 64 65 76 2f tty',.'w'),.array('file',.'/dev/
bf760 74 74 79 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 74 79 tty',.'w'),.);.}..if.($this->pty
bf780 4d 6f 64 65 20 26 26 20 50 72 6f 63 65 73 73 3a 3a 69 73 50 74 79 53 75 70 70 6f 72 74 65 64 28 Mode.&&.Process::isPtySupported(
bf7a0 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 74 79 27 29 2c )).{.return.array(.array('pty'),
bf7c0 0a 61 72 72 61 79 28 27 70 74 79 27 29 2c 0a 61 72 72 61 79 28 27 70 74 79 27 29 2c 0a 29 3b 0a .array('pty'),.array('pty'),.);.
bf7e0 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 }..return.array(.array('pipe',.'
bf800 72 27 29 2c 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 61 72 72 61 79 r'),.array('pipe',.'w'),...array
bf820 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ('pipe',.'w'),...);.}.....public
bf840 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 .function.getFiles().{.return.ar
bf860 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 ray();.}.....public.function.rea
bf880 64 41 6e 64 57 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 dAndWrite($blocking,.$close.=.fa
bf8a0 6c 73 65 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 lse).{.....if.(1.===.count($this
bf8c0 2d 3e 70 69 70 65 73 29 20 26 26 20 61 72 72 61 79 28 30 29 20 3d 3d 3d 20 61 72 72 61 79 5f 6b ->pipes).&&.array(0).===.array_k
bf8e0 65 79 73 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 eys($this->pipes)).{.fclose($thi
bf900 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 s->pipes[0]);.unset($this->pipes
bf920 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 [0]);.}..if.(empty($this->pipes)
bf940 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 6e ).{.return.array();.}..$this->un
bf960 62 6c 6f 63 6b 28 29 3b 0a 0a 24 72 65 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 block();..$read.=.array();..if.(
bf980 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 0a 20 0a 20 24 72 20 null.!==.$this->input).{.....$r.
bf9a0 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 2c 20 61 72 72 61 =.array_merge($this->pipes,.arra
bf9c0 79 28 27 69 6e 70 75 74 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 29 3b 0a 7d 20 65 y('input'.=>.$this->input));.}.e
bf9e0 6c 73 65 20 7b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 7d 0a 0a 20 75 6e 73 lse.{.$r.=.$this->pipes;.}...uns
bfa00 65 74 28 24 72 5b 30 5d 29 3b 0a 0a 24 77 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 69 et($r[0]);..$w.=.isset($this->pi
bfa20 70 65 73 5b 30 5d 29 20 3f 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 pes[0]).?.array($this->pipes[0])
bfa40 20 3a 20 6e 75 6c 6c 3b 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 .:.null;.$e.=.null;....if.(false
bfa60 20 3d 3d 3d 20 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c .===.$n.=.@stream_select($r,.$w,
bfa80 20 24 65 2c 20 30 2c 20 24 62 6c 6f 63 6b 69 6e 67 20 3f 20 50 72 6f 63 65 73 73 3a 3a 54 49 4d .$e,.0,.$blocking.?.Process::TIM
bfaa0 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 20 3a 20 30 29 29 20 7b 0a 0a 20 0a EOUT_PRECISION.*.1E6.:.0)).{....
bfac0 20 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e .if.(!$this->hasSystemCallBeenIn
bfae0 74 65 72 72 75 70 74 65 64 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 terrupted()).{.$this->pipes.=.ar
bfb00 72 61 79 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 20 69 66 20 ray();.}..return.$read;.}....if.
bfb20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 66 6f (0.===.$n).{.return.$read;.}..fo
bfb40 72 65 61 63 68 20 28 24 72 20 61 73 20 24 70 69 70 65 29 20 7b 0a 0a 20 0a 20 24 74 79 70 65 20 reach.($r.as.$pipe).{.....$type.
bfb60 3d 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 66 6f 75 6e 64 20 3d 20 61 72 72 61 79 5f 73 65 61 72 =.(false.!==.$found.=.array_sear
bfb80 63 68 28 24 70 69 70 65 2c 20 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 3f 20 24 66 6f 75 6e ch($pipe,.$this->pipes)).?.$foun
bfba0 64 20 3a 20 27 69 6e 70 75 74 27 3b 0a 24 64 61 74 61 20 3d 20 27 27 3b 0a 77 68 69 6c 65 20 28 d.:.'input';.$data.=.'';.while.(
bfbc0 27 27 20 21 3d 3d 20 24 64 61 74 61 72 65 61 64 20 3d 20 28 73 74 72 69 6e 67 29 20 66 72 65 61 ''.!==.$dataread.=.(string).frea
bfbe0 64 28 24 70 69 70 65 2c 20 73 65 6c 66 3a 3a 43 48 55 4e 4b 5f 53 49 5a 45 29 29 20 7b 0a 24 64 d($pipe,.self::CHUNK_SIZE)).{.$d
bfc00 61 74 61 20 2e 3d 20 24 64 61 74 61 72 65 61 64 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 3d 20 ata..=.$dataread;.}..if.(''.!==.
bfc20 24 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 69 6e 70 75 74 27 29 20 $data).{.if.($type.===.'input').
bfc40 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 2e 3d 20 24 64 61 74 61 3b 0a 7d {.$this->inputBuffer..=.$data;.}
bfc60 20 65 6c 73 65 20 7b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a .else.{.$read[$type].=.$data;.}.
bfc80 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 28 74 72 75 65 20 }..if.(false.===.$data.||.(true.
bfca0 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f 66 28 24 70 69 70 65 29 20 26 26 20 27 27 20 ===.$close.&&.feof($pipe).&&.''.
bfcc0 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 69 6e 70 ===.$data)).{.if.($type.===.'inp
bfce0 75 74 27 29 20 7b 0a 0a 20 0a 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a ut').{.....$this->input.=.null;.
bfd00 7d 20 65 6c 73 65 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 }.else.{.fclose($this->pipes[$ty
bfd20 70 65 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 24 74 79 70 65 5d 29 pe]);.unset($this->pipes[$type])
bfd40 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 77 20 26 26 20 30 20 3c 20 ;.}.}.}..if.(null.!==.$w.&&.0.<.
bfd60 63 6f 75 6e 74 28 24 77 29 29 20 7b 0a 77 68 69 6c 65 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 count($w)).{.while.(strlen($this
bfd80 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 29 29 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 77 72 ->inputBuffer)).{.$written.=.fwr
bfda0 69 74 65 28 24 77 5b 30 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 32 ite($w[0],.$this->inputBuffer,.2
bfdc0 20 3c 3c 20 31 38 29 3b 20 0a 20 69 66 20 28 24 77 72 69 74 74 65 6e 20 3e 20 30 29 20 7b 0a 24 .<<.18);...if.($written.>.0).{.$
bfde0 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 3d 20 28 73 74 72 69 6e 67 29 20 73 75 62 this->inputBuffer.=.(string).sub
bfe00 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 2c 20 24 77 72 69 74 74 65 6e str($this->inputBuffer,.$written
bfe20 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 );.}.else.{.break;.}.}.}....if.(
bfe40 27 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 42 75 66 66 65 72 20 26 26 20 6e 75 6c ''.===.$this->inputBuffer.&&.nul
bfe60 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 69 73 73 65 74 28 24 74 68 69 l.===.$this->input.&&.isset($thi
bfe80 73 2d 3e 70 69 70 65 73 5b 30 5d 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 69 s->pipes[0])).{.fclose($this->pi
bfea0 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b pes[0]);.unset($this->pipes[0]);
bfec0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .}..return.$read;.}.....public.f
bfee0 75 6e 63 74 69 6f 6e 20 61 72 65 4f 70 65 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 62 6f 6f 6c unction.areOpen().{.return.(bool
bff00 29 20 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ).$this->pipes;.}..........publi
bff20 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 50 72 6f 63 65 73 73 c.static.function.create(Process
bff40 20 24 70 72 6f 63 65 73 73 2c 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 .$process,.$input).{.return.new.
bff60 73 74 61 74 69 63 28 24 70 72 6f 63 65 73 73 2d 3e 69 73 54 74 79 28 29 2c 20 24 70 72 6f 63 65 static($process->isTty(),.$proce
bff80 73 73 2d 3e 69 73 50 74 79 28 29 2c 20 24 69 6e 70 75 74 2c 20 24 70 72 6f 63 65 73 73 2d 3e 69 ss->isPty(),.$input,.$process->i
bffa0 73 4f 75 74 70 75 74 44 69 73 61 62 6c 65 64 28 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a sOutputDisabled());.}.}.<?php...
bffc0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
bffe0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e ent\Console\Command;..use.Symfon
c0000 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 y\Component\Console\Helper\Descr
c0020 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 iptorHelper;.use.Symfony\Compone
c0040 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a nt\Console\Input\InputArgument;.
c0060 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e use.Symfony\Component\Console\In
c0080 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d put\InputOption;.use.Symfony\Com
c00a0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 ponent\Console\Input\InputInterf
c00c0 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
c00e0 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a le\Output\OutputInterface;......
c0100 0a 63 6c 61 73 73 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.HelpCommand.extends.Comma
c0120 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 nd.{.private.$command;.....prote
c0140 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 cted.function.configure().{.$thi
c0160 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 s->ignoreValidationErrors();..$t
c0180 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 68 65 6c 70 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e his.->setName('help').->setDefin
c01a0 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 ition(array(.new.InputArgument('
c01c0 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 command_name',.InputArgument::OP
c01e0 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 6c TIONAL,.'The.command.name',.'hel
c0200 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c p'),.new.InputOption('xml',.null
c0220 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f ,.InputOption::VALUE_NONE,.'To.o
c0240 75 74 70 75 74 20 68 65 6c 70 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 utput.help.as.XML'),.new.InputOp
c0260 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e tion('format',.null,.InputOption
c0280 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 6c ::VALUE_REQUIRED,.'To.output.hel
c02a0 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 2c 20 27 74 78 74 27 29 2c 0a 6e 65 77 p.in.other.formats',.'txt'),.new
c02c0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f .InputOption('raw',.null,.InputO
c02e0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 61 ption::VALUE_NONE,.'To.output.ra
c0300 77 20 63 6f 6d 6d 61 6e 64 20 68 65 6c 70 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 w.command.help'),.)).->setDescri
c0320 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 63 6f 6d 6d 61 ption('Displays.help.for.a.comma
c0340 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e nd').->setHelp(<<<EOF.The.<info>
c0360 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 64 69 %command.name%</info>.command.di
c0380 73 70 6c 61 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d 6d 61 6e 64 3a splays.help.for.a.given.command:
c03a0 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
c03c0 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 %.list</info>..You.can.also.outp
c03e0 75 74 20 74 68 65 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 20 ut.the.help.in.other.formats.by.
c0400 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f 6d using.the.<comment>--format</com
c0420 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d ment>.option:....<info>php.%comm
c0440 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 20 6c 69 73 74 and.full_name%.--format=xml.list
c0460 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 6c 69 73 74 20 6f 66 20 </info>..To.display.the.list.of.
c0480 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2c 20 70 6c 65 61 73 65 20 75 73 65 20 74 available.commands,.please.use.t
c04a0 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 45 4f he.<info>list</info>.command..EO
c04c0 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 F.).;.}.......public.function.se
c04e0 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 tCommand(Command.$command).{.$th
c0500 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 is->command.=.$command;.}.....pr
c0520 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e otected.function.execute(InputIn
c0540 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 terface.$input,.OutputInterface.
c0560 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 $output).{.if.(null.===.$this->c
c0580 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 ommand).{.$this->command.=.$this
c05a0 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 66 69 6e 64 28 24 69 6e 70 75 74 2d ->getApplication()->find($input-
c05c0 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 5f 6e 61 6d 65 27 29 29 3b 0a 7d >getArgument('command_name'));.}
c05e0 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 ..if.($input->getOption('xml')).
c0600 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 78 {.$input->setOption('format',.'x
c0620 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 6f ml');.}..$helper.=.new.Descripto
c0640 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 rHelper();.$helper->describe($ou
c0660 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 0a 27 66 6f tput,.$this->command,.array(.'fo
c0680 72 6d 61 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d rmat'.=>.$input->getOption('form
c06a0 61 74 27 29 2c 0a 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f at'),.'raw_text'.=>.$input->getO
c06c0 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 0a 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ption('raw'),.));..$this->comman
c06e0 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 d.=.null;.}.}.<?php...........na
c0700 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
c0720 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e e\Command;..use.Symfony\Componen
c0740 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 t\Console\Descriptor\TextDescrip
c0760 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f tor;.use.Symfony\Component\Conso
c0780 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 le\Descriptor\XmlDescriptor;.use
c07a0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 .Symfony\Component\Console\Input
c07c0 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f \InputDefinition;.use.Symfony\Co
c07e0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f mponent\Console\Input\InputOptio
c0800 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
c0820 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e \Input\InputArgument;.use.Symfon
c0840 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 y\Component\Console\Input\InputI
c0860 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
c0880 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3b 0a 75 Console\Output\BufferedOutput;.u
c08a0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 se.Symfony\Component\Console\Out
c08c0 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 put\OutputInterface;.use.Symfony
c08e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a \Component\Console\Application;.
c0900 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 use.Symfony\Component\Console\He
c0920 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f lper\HelperSet;.........class.Co
c0940 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 mmand.{.private.$application;.pr
c0960 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 54 69 74 ivate.$name;.private.$processTit
c0980 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a le;.private.$aliases.=.array();.
c09a0 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 private.$definition;.private.$he
c09c0 6c 70 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 lp;.private.$description;.privat
c09e0 65 20 24 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 66 61 6c 73 e.$ignoreValidationErrors.=.fals
c0a00 65 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f e;.private.$applicationDefinitio
c0a20 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 nMerged.=.false;.private.$applic
c0a40 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 ationDefinitionMergedWithArgs.=.
c0a60 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 73 false;.private.$code;.private.$s
c0a80 79 6e 6f 70 73 69 73 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a ynopsis;.private.$helperSet;....
c0aa0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
c0ac0 63 74 28 24 6e 61 6d 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 ct($name.=.null).{.$this->defini
c0ae0 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 69 tion.=.new.InputDefinition();..i
c0b00 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4e f.(null.!==.$name).{.$this->setN
c0b20 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 28 ame($name);.}..$this->configure(
c0b40 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 );..if.(!$this->name).{.throw.ne
c0b60 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 63 w.\LogicException(sprintf('The.c
c0b80 6f 6d 6d 61 6e 64 20 64 65 66 69 6e 65 64 20 69 6e 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 68 61 ommand.defined.in."%s".cannot.ha
c0ba0 76 65 20 61 6e 20 65 6d 70 74 79 20 6e 61 6d 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 74 ve.an.empty.name.',.get_class($t
c0bc0 68 69 73 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f his)));.}.}.......public.functio
c0be0 6e 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 0a 7b 0a 24 74 68 n.ignoreValidationErrors().{.$th
c0c00 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 20 3d 20 74 72 75 is->ignoreValidationErrors.=.tru
c0c20 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 e;.}.........public.function.set
c0c40 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 Application(Application.$applica
c0c60 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f tion.=.null).{.$this->applicatio
c0c80 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 n.=.$application;.if.($applicati
c0ca0 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 61 70 70 6c 69 on).{.$this->setHelperSet($appli
c0cc0 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 cation->getHelperSet());.}.else.
c0ce0 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a {.$this->helperSet.=.null;.}.}..
c0d00 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 .....public.function.setHelperSe
c0d20 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d t(HelperSet.$helperSet).{.$this-
c0d40 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a >helperSet.=.$helperSet;.}......
c0d60 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a .public.function.getHelperSet().
c0d80 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a {.return.$this->helperSet;.}....
c0da0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 .....public.function.getApplicat
c0dc0 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f ion().{.return.$this->applicatio
c0de0 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 n;.}..........public.function.is
c0e00 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 Enabled().{.return.true;.}.....p
c0e20 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a rotected.function.configure().{.
c0e40 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 }...................protected.fu
c0e60 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 nction.execute(InputInterface.$i
c0e80 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b nput,.OutputInterface.$output).{
c0ea0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 .throw.new.\LogicException('You.
c0ec0 6d 75 73 74 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 65 78 65 63 75 74 65 28 29 20 6d 65 74 68 must.override.the.execute().meth
c0ee0 6f 64 20 69 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 65 20 63 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 od.in.the.concrete.command.class
c0f00 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 .');.}............protected.func
c0f20 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e tion.interact(InputInterface.$in
c0f40 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a put,.OutputInterface.$output).{.
c0f60 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 }...........protected.function.i
c0f80 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c nitialize(InputInterface.$input,
c0fa0 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a 0a 0a .OutputInterface.$output).{.}...
c0fc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ..................public.functio
c0fe0 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 n.run(InputInterface.$input,.Out
c1000 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 68 69 73 2d putInterface.$output).{...$this-
c1020 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6d 65 72 67 65 41 >getSynopsis();....$this->mergeA
c1040 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 0a 20 74 72 79 20 7b pplicationDefinition();....try.{
c1060 0a 24 69 6e 70 75 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 29 .$input->bind($this->definition)
c1080 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 ;.}.catch.(\Exception.$e).{.if.(
c10a0 21 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 29 20 !$this->ignoreValidationErrors).
c10c0 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 {.throw.$e;.}.}..$this->initiali
c10e0 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 ze($input,.$output);..if.(null.!
c1100 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 29 20 7b 0a 69 66 20 28 66 75 ==.$this->processTitle).{.if.(fu
c1120 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 63 6c 69 5f 73 65 74 5f 70 72 6f 63 65 73 73 5f 74 nction_exists('cli_set_process_t
c1140 69 74 6c 65 27 29 29 20 7b 0a 63 6c 69 5f 73 65 74 5f 70 72 6f 63 65 73 73 5f 74 69 74 6c 65 28 itle')).{.cli_set_process_title(
c1160 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 $this->processTitle);.}.elseif.(
c1180 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 73 65 74 70 72 6f 63 74 69 74 6c 65 27 29 29 function_exists('setproctitle'))
c11a0 20 7b 0a 73 65 74 70 72 6f 63 74 69 74 6c 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 .{.setproctitle($this->processTi
c11c0 74 6c 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a tle);.}.elseif.(OutputInterface:
c11e0 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3d 3d 3d 20 24 6f 75 74 :VERBOSITY_VERY_VERBOSE.===.$out
c1200 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e put->getVerbosity()).{.$output->
c1220 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 49 6e 73 74 61 6c 6c 20 74 68 65 20 70 72 writeln('<comment>Install.the.pr
c1240 6f 63 74 69 74 6c 65 20 50 45 43 4c 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f 20 63 68 61 6e 67 octitle.PECL.to.be.able.to.chang
c1260 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 74 69 74 6c 65 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 e.the.process.title.</comment>')
c1280 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 ;.}.}..if.($input->isInteractive
c12a0 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f ()).{.$this->interact($input,.$o
c12c0 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a utput);.}..$input->validate();..
c12e0 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 64 65 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d if.($this->code).{.$statusCode.=
c1300 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 63 6f 64 65 2c 20 24 69 6e .call_user_func($this->code,.$in
c1320 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 74 75 73 43 put,.$output);.}.else.{.$statusC
c1340 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 ode.=.$this->execute($input,.$ou
c1360 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 73 74 61 tput);.}..return.is_numeric($sta
c1380 74 75 73 43 6f 64 65 29 20 3f 20 28 69 6e 74 29 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 30 tusCode).?.(int).$statusCode.:.0
c13a0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ;.}..................public.func
c13c0 74 69 6f 6e 20 73 65 74 43 6f 64 65 28 24 63 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 63 61 tion.setCode($code).{.if.(!is_ca
c13e0 6c 6c 61 62 6c 65 28 24 63 6f 64 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 llable($code)).{.throw.new.\Inva
c1400 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 63 61 lidArgumentException('Invalid.ca
c1420 6c 6c 61 62 6c 65 20 70 72 6f 76 69 64 65 64 20 74 6f 20 43 6f 6d 6d 61 6e 64 3a 3a 73 65 74 43 llable.provided.to.Command::setC
c1440 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f 64 65 3b 0a ode.');.}..$this->code.=.$code;.
c1460 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
c1480 66 75 6e 63 74 69 6f 6e 20 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 function.mergeApplicationDefinit
c14a0 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 6e 75 6c ion($mergeArgs.=.true).{.if.(nul
c14c0 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 7c 7c 20 28 74 72 75 l.===.$this->application.||.(tru
c14e0 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 e.===.$this->applicationDefiniti
c1500 6f 6e 4d 65 72 67 65 64 20 26 26 20 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 onMerged.&&.($this->applicationD
c1520 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 7c 7c 20 21 24 6d 65 72 efinitionMergedWithArgs.||.!$mer
c1540 67 65 41 72 67 73 29 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 72 67 geArgs))).{.return;.}..if.($merg
c1560 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 eArgs).{.$currentArguments.=.$th
c1580 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a is->definition->getArguments();.
c15a0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 $this->definition->setArguments(
c15c0 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f $this->application->getDefinitio
c15e0 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 n()->getArguments());.$this->def
c1600 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 41 72 inition->addArguments($currentAr
c1620 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e guments);.}..$this->definition->
c1640 61 64 64 4f 70 74 69 6f 6e 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 addOptions($this->application->g
c1660 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 3b 0a 0a etDefinition()->getOptions());..
c1680 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 $this->applicationDefinitionMerg
c16a0 65 64 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 74 68 ed.=.true;.if.($mergeArgs).{.$th
c16c0 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 is->applicationDefinitionMergedW
c16e0 69 74 68 41 72 67 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ithArgs.=.true;.}.}...........pu
c1700 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 blic.function.setDefinition($def
c1720 69 6e 69 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 69 6e 73 74 61 inition).{.if.($definition.insta
c1740 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e nceof.InputDefinition).{.$this->
c1760 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 20 65 6c 73 65 definition.=.$definition;.}.else
c1780 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 73 65 74 44 65 66 69 6e 69 74 .{.$this->definition->setDefinit
c17a0 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 70 70 6c ion($definition);.}..$this->appl
c17c0 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 20 3d 20 66 61 6c 73 65 3b icationDefinitionMerged.=.false;
c17e0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
c1800 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 .function.getDefinition().{.retu
c1820 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a rn.$this->definition;.}.........
c1840 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 ...public.function.getNativeDefi
c1860 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 69 nition().{.return.$this->getDefi
c1880 6e 69 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 nition();.}..............public.
c18a0 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 function.addArgument($name,.$mod
c18c0 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 e.=.null,.$description.=.'',.$de
c18e0 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f fault.=.null).{.$this->definitio
c1900 6e 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 n->addArgument(new.InputArgument
c1920 28 24 6e 61 6d 65 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 ($name,.$mode,.$description,.$de
c1940 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a fault));..return.$this;.}.......
c1960 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f ........public.function.addOptio
c1980 6e 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 n($name,.$shortcut.=.null,.$mode
c19a0 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 .=.null,.$description.=.'',.$def
c19c0 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e ault.=.null).{.$this->definition
c19e0 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6e 61 6d ->addOption(new.InputOption($nam
c1a00 65 2c 20 24 73 68 6f 72 74 63 75 74 2c 20 24 6d 6f 64 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f e,.$shortcut,.$mode,.$descriptio
c1a20 6e 2c 20 24 64 65 66 61 75 6c 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a n,.$default));..return.$this;.}.
c1a40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .................public.function
c1a60 20 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 .setName($name).{.$this->validat
c1a80 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 eName($name);..$this->name.=.$na
c1aa0 6d 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a me;..return.$this;.}............
c1ac0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 73 73 54 69 74 6c ..public.function.setProcessTitl
c1ae0 65 28 24 74 69 74 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 54 69 74 6c 65 20 e($title).{.$this->processTitle.
c1b00 3d 20 24 74 69 74 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a =.$title;..return.$this;.}......
c1b20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 ...public.function.getName().{.r
c1b40 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eturn.$this->name;.}...........p
c1b60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 24 64 ublic.function.setDescription($d
c1b80 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e escription).{.$this->description
c1ba0 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a .=.$description;..return.$this;.
c1bc0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 }.........public.function.getDes
c1be0 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 cription().{.return.$this->descr
c1c00 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 iption;.}...........public.funct
c1c20 69 6f 6e 20 73 65 74 48 65 6c 70 28 24 68 65 6c 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 ion.setHelp($help).{.$this->help
c1c40 20 3d 20 24 68 65 6c 70 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .=.$help;..return.$this;.}......
c1c60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 ...public.function.getHelp().{.r
c1c80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c eturn.$this->help;.}........publ
c1ca0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 0a 7b ic.function.getProcessedHelp().{
c1cc0 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 0a 24 70 6c 61 63 65 68 6f 6c .$name.=.$this->name;..$placehol
c1ce0 64 65 72 73 20 3d 20 61 72 72 61 79 28 0a 27 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 27 2c 0a ders.=.array(.'%command.name%',.
c1d00 27 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 27 2c 0a 29 3b 0a 24 72 65 70 6c 61 '%command.full_name%',.);.$repla
c1d20 63 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 24 6e 61 6d 65 2c 0a 24 5f 53 45 52 56 45 52 cements.=.array(.$name,.$_SERVER
c1d40 5b 27 50 48 50 5f 53 45 4c 46 27 5d 2e 27 20 27 2e 24 6e 61 6d 65 2c 0a 29 3b 0a 0a 72 65 74 75 ['PHP_SELF'].'.'.$name,.);..retu
c1d60 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 70 6c 61 63 65 68 6f 6c 64 65 72 73 2c 20 24 72 rn.str_replace($placeholders,.$r
c1d80 65 70 6c 61 63 65 6d 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 28 29 29 3b 0a eplacements,.$this->getHelp());.
c1da0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 }.............public.function.se
c1dc0 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 tAliases($aliases).{.if.(!is_arr
c1de0 61 79 28 24 61 6c 69 61 73 65 73 29 20 26 26 20 21 24 61 6c 69 61 73 65 73 20 69 6e 73 74 61 6e ay($aliases).&&.!$aliases.instan
c1e00 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ceof.\Traversable).{.throw.new.\
c1e20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 24 61 6c 69 61 73 InvalidArgumentException('$alias
c1e40 65 73 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 72 20 61 6e 20 69 6e 73 74 61 6e es.must.be.an.array.or.an.instan
c1e60 63 65 20 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 ce.of.\Traversable');.}..foreach
c1e80 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 76 .($aliases.as.$alias).{.$this->v
c1ea0 61 6c 69 64 61 74 65 4e 61 6d 65 28 24 61 6c 69 61 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 alidateName($alias);.}..$this->a
c1ec0 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 liases.=.$aliases;..return.$this
c1ee0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 ;.}.........public.function.getA
c1f00 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 liases().{.return.$this->aliases
c1f20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e ;.}.......public.function.getSyn
c1f40 6f 70 73 69 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 79 opsis().{.if.(null.===.$this->sy
c1f60 6e 6f 70 73 69 73 29 20 7b 0a 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 20 3d 20 74 72 69 6d nopsis).{.$this->synopsis.=.trim
c1f80 28 73 70 72 69 6e 74 66 28 27 25 73 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 2c 20 24 (sprintf('%s.%s',.$this->name,.$
c1fa0 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 29 this->definition->getSynopsis())
c1fc0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 79 6e 6f 70 73 69 73 3b 0a 7d 0a );.}..return.$this->synopsis;.}.
c1fe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 ............public.function.getH
c2000 65 6c 70 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c elper($name).{.return.$this->hel
c2020 70 65 72 53 65 74 2d 3e 67 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 perSet->get($name);.}.........pu
c2040 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 blic.function.asText().{.$descri
c2060 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 24 6f 75 ptor.=.new.TextDescriptor();.$ou
c2080 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 42 75 66 66 65 72 tput.=.new.BufferedOutput(Buffer
c20a0 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 74 72 75 65 edOutput::VERBOSITY_NORMAL,.true
c20c0 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 );.$descriptor->describe($output
c20e0 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 72 61 77 5f 6f 75 74 70 75 74 27 20 3d 3e 20 74 ,.$this,.array('raw_output'.=>.t
c2100 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b rue));..return.$output->fetch();
c2120 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 .}...........public.function.asX
c2140 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 ml($asDom.=.false).{.$descriptor
c2160 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 61 73 .=.new.XmlDescriptor();..if.($as
c2180 44 6f 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 43 6f Dom).{.return.$descriptor->getCo
c21a0 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 mmandDocument($this);.}..$output
c21c0 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 29 3b 0a 24 64 65 73 63 72 69 .=.new.BufferedOutput();.$descri
c21e0 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 29 3b 0a ptor->describe($output,.$this);.
c2200 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a .return.$output->fetch();.}.....
c2220 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4e ......private.function.validateN
c2240 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e ame($name).{.if.(!preg_match('/^
c2260 5b 5e 5c 3a 5d 2b 2b 28 5c 3a 5b 5e 5c 3a 5d 2b 2b 29 2a 24 2f 27 2c 20 24 6e 61 6d 65 29 29 20 [^\:]++(\:[^\:]++)*$/',.$name)).
c2280 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
c22a0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 22 25 73 22 ption(sprintf('Command.name."%s"
c22c0 20 69 73 20 69 6e 76 61 6c 69 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f .is.invalid.',.$name));.}.}.}.<?
c22e0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
c2300 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 Component\Console\Command;..use.
c2320 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 Symfony\Component\Console\Helper
c2340 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \DescriptorHelper;.use.Symfony\C
c2360 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 omponent\Console\Input\InputArgu
c2380 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 ment;.use.Symfony\Component\Cons
c23a0 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f ole\Input\InputOption;.use.Symfo
c23c0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
c23e0 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 Interface;.use.Symfony\Component
c2400 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b \Console\Output\OutputInterface;
c2420 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 .use.Symfony\Component\Console\I
c2440 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 nput\InputDefinition;.......clas
c2460 73 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a s.ListCommand.extends.Command.{.
c2480 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 ...protected.function.configure(
c24a0 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 0a 2d 3e 73 65 ).{.$this.->setName('list').->se
c24c0 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 tDefinition($this->createDefinit
c24e0 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 73 74 73 20 63 ion()).->setDescription('Lists.c
c2500 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c ommands').->setHelp(<<<EOF.The.<
c2520 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 info>%command.name%</info>.comma
c2540 6e 64 20 6c 69 73 74 73 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c 69 6e 66 6f 3e nd.lists.all.commands:....<info>
c2560 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 0a 0a php.%command.full_name%</info>..
c2580 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 6d 61 6e 64 You.can.also.display.the.command
c25a0 73 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 6e 61 6d 65 73 70 61 63 65 3a 0a 0a 20 20 3c s.for.a.specific.namespace:....<
c25c0 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 74 65 73 info>php.%command.full_name%.tes
c25e0 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 75 74 20 74 68 t</info>..You.can.also.output.th
c2600 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 e.information.in.other.formats.b
c2620 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 y.using.the.<comment>--format</c
c2640 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f omment>.option:....<info>php.%co
c2660 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 3c 2f 69 mmand.full_name%.--format=xml</i
c2680 6e 66 6f 3e 0a 0a 49 74 27 73 20 61 6c 73 6f 20 70 6f 73 73 69 62 6c 65 20 74 6f 20 67 65 74 20 nfo>..It's.also.possible.to.get.
c26a0 72 61 77 20 6c 69 73 74 20 6f 66 20 63 6f 6d 6d 61 6e 64 73 20 28 75 73 65 66 75 6c 20 66 6f 72 raw.list.of.commands.(useful.for
c26c0 20 65 6d 62 65 64 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 72 75 6e 6e 65 72 29 3a 0a 0a 20 20 3c .embedding.command.runner):....<
c26e0 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 72 info>php.%command.full_name%.--r
c2700 61 77 3c 2f 69 6e 66 6f 3e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 aw</info>.EOF.).;.}.....public.f
c2720 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a unction.getNativeDefinition().{.
c2740 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 return.$this->createDefinition()
c2760 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 ;.}.....protected.function.execu
c2780 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 te(InputInterface.$input,.Output
c27a0 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d Interface.$output).{.if.($input-
c27c0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 >getOption('xml')).{.$input->set
c27e0 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c Option('format',.'xml');.}..$hel
c2800 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 per.=.new.DescriptorHelper();.$h
c2820 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e elper->describe($output,.$this->
c2840 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 0a 27 66 6f 72 6d 61 74 getApplication(),.array(.'format
c2860 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 '.=>.$input->getOption('format')
c2880 2c 0a 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ,.'raw_text'.=>.$input->getOptio
c28a0 6e 28 27 72 61 77 27 29 2c 0a 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 69 6e 70 75 74 2d n('raw'),.'namespace'.=>.$input-
c28c0 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 2c 0a 29 29 3b 0a 7d >getArgument('namespace'),.));.}
c28e0 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 44 65 66 69 .....private.function.createDefi
c2900 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 69 6e nition().{.return.new.InputDefin
c2920 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 ition(array(.new.InputArgument('
c2940 6e 61 6d 65 73 70 61 63 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f namespace',.InputArgument::OPTIO
c2960 4e 41 4c 2c 20 27 54 68 65 20 6e 61 6d 65 73 70 61 63 65 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 NAL,.'The.namespace.name'),.new.
c2980 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 InputOption('xml',.null,.InputOp
c29a0 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 6c 69 73 tion::VALUE_NONE,.'To.output.lis
c29c0 74 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 61 77 t.as.XML'),.new.InputOption('raw
c29e0 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 ',.null,.InputOption::VALUE_NONE
c2a00 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 27 29 2c ,.'To.output.raw.command.list'),
c2a20 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 6e 75 6c 6c 2c .new.InputOption('format',.null,
c2a40 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 54 .InputOption::VALUE_REQUIRED,.'T
c2a60 6f 20 6f 75 74 70 75 74 20 6c 69 73 74 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 27 2c o.output.list.in.other.formats',
c2a80 20 27 74 78 74 27 29 2c 0a 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .'txt'),.));.}.}.<?php..........
c2aa0 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
c2ac0 73 6f 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e sole\Tester;..use.Symfony\Compon
c2ae0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d ent\Console\Application;.use.Sym
c2b00 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 fony\Component\Console\Input\Arr
c2b20 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ayInput;.use.Symfony\Component\C
c2b40 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 onsole\Input\InputInterface;.use
c2b60 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 .Symfony\Component\Console\Outpu
c2b80 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\OutputInterface;.use.Symfony\C
c2ba0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 omponent\Console\Output\StreamOu
c2bc0 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 tput;............class.Applicati
c2be0 6f 6e 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b onTester.{.private.$application;
c2c00 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 .private.$input;.private.$output
c2c20 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 43 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 ;.private.$statusCode;.......pub
c2c40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 lic.function.__construct(Applica
c2c60 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c tion.$application).{.$this->appl
c2c80 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ication.=.$application;.}.......
c2ca0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 61 72 72 .........public.function.run(arr
c2cc0 61 79 20 24 69 6e 70 75 74 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b ay.$input,.$options.=.array()).{
c2ce0 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 .$this->input.=.new.ArrayInput($
c2d00 69 6e 70 75 74 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 input);.if.(isset($options['inte
c2d20 72 61 63 74 69 76 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 ractive'])).{.$this->input->setI
c2d40 6e 74 65 72 61 63 74 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 nteractive($options['interactive
c2d60 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 ']);.}..$this->output.=.new.Stre
c2d80 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 amOutput(fopen('php://memory',.'
c2da0 77 27 2c 20 66 61 6c 73 65 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b w',.false));.if.(isset($options[
c2dc0 27 64 65 63 6f 72 61 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 'decorated'])).{.$this->output->
c2de0 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 setDecorated($options['decorated
c2e00 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f ']);.}.if.(isset($options['verbo
c2e20 73 69 74 79 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 sity'])).{.$this->output->setVer
c2e40 62 6f 73 69 74 79 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d bosity($options['verbosity']);.}
c2e60 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 ..return.$this->statusCode.=.$th
c2e80 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 is->application->run($this->inpu
c2ea0 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 t,.$this->output);.}.........pub
c2ec0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 lic.function.getDisplay($normali
c2ee0 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 ze.=.false).{.rewind($this->outp
c2f00 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 ut->getStream());..$display.=.st
c2f20 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d ream_get_contents($this->output-
c2f40 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 >getStream());..if.($normalize).
c2f60 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c {.$display.=.str_replace(PHP_EOL
c2f80 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 ,."\n",.$display);.}..return.$di
c2fa0 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 splay;.}.......public.function.g
c2fc0 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b etInput().{.return.$this->input;
c2fe0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 .}.......public.function.getOutp
c3000 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a ut().{.return.$this->output;.}..
c3020 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 74 75 73 43 6f .....public.function.getStatusCo
c3040 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 3b de().{.return.$this->statusCode;
c3060 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
c3080 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 65 72 3b ymfony\Component\Console\Tester;
c30a0 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ..use.Symfony\Component\Console\
c30c0 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Command\Command;.use.Symfony\Com
c30e0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b ponent\Console\Input\ArrayInput;
c3100 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f .use.Symfony\Component\Console\O
c3120 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c utput\StreamOutput;.use.Symfony\
c3140 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 Component\Console\Input\InputInt
c3160 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f erface;.use.Symfony\Component\Co
c3180 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a nsole\Output\OutputInterface;...
c31a0 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 ....class.CommandTester.{.privat
c31c0 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 e.$command;.private.$input;.priv
c31e0 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 43 6f 64 65 ate.$output;.private.$statusCode
c3200 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ;.......public.function.__constr
c3220 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 uct(Command.$command).{.$this->c
c3240 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ommand.=.$command;.}............
c3260 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 61 72 72 61 ....public.function.execute(arra
c3280 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 y.$input,.array.$options.=.array
c32a0 28 29 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 69 6e 70 75 74 5b 27 63 6f 6d ()).{.....if.(!isset($input['com
c32c0 6d 61 6e 64 27 5d 29 0a 26 26 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 70 70 6c 69 63 61 74 69 6f mand']).&&.(null.!==.$applicatio
c32e0 6e 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 n.=.$this->command->getApplicati
c3300 6f 6e 28 29 29 0a 26 26 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 on()).&&.$application->getDefini
c3320 74 69 6f 6e 28 29 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 0a 29 tion()->hasArgument('command').)
c3340 20 7b 0a 24 69 6e 70 75 74 5b 27 63 6f 6d 6d 61 6e 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f .{.$input['command'].=.$this->co
c3360 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 mmand->getName();.}..$this->inpu
c3380 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 t.=.new.ArrayInput($input);.if.(
c33a0 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 29 20 isset($options['interactive'])).
c33c0 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 {.$this->input->setInteractive($
c33e0 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 options['interactive']);.}..$thi
c3400 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 s->output.=.new.StreamOutput(fop
c3420 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c 73 65 29 29 3b en('php://memory',.'w',.false));
c3440 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d .if.(isset($options['decorated']
c3460 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 )).{.$this->output->setDecorated
c3480 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 ($options['decorated']);.}.if.(i
c34a0 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 29 20 7b 0a 24 sset($options['verbosity'])).{.$
c34c0 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6f 70 74 69 this->output->setVerbosity($opti
c34e0 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 ons['verbosity']);.}..return.$th
c3500 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d is->statusCode.=.$this->command-
c3520 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 >run($this->input,.$this->output
c3540 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 );.}.........public.function.get
c3560 44 69 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 Display($normalize.=.false).{.re
c3580 77 69 6e 64 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 wind($this->output->getStream())
c35a0 3b 0a 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 ;..$display.=.stream_get_content
c35c0 73 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a s($this->output->getStream());..
c35e0 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 if.($normalize).{.$display.=.str
c3600 5f 72 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 _replace(PHP_EOL,."\n",.$display
c3620 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 );.}..return.$display;.}.......p
c3640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 ublic.function.getInput().{.retu
c3660 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$this->input;.}.......public.
c3680 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 function.getOutput().{.return.$t
c36a0 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 his->output;.}.......public.func
c36c0 74 69 6f 6e 20 67 65 74 53 74 61 74 75 73 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 tion.getStatusCode().{.return.$t
c36e0 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a his->statusCode;.}.}.<?php......
c3700 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
c3720 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 \Console\Formatter;.....class.Ou
c3740 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 0a 7b 0a 0a 0a 0a 70 72 69 tputFormatterStyleStack.{....pri
c3760 76 61 74 65 20 24 73 74 79 6c 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 vate.$styles;.....private.$empty
c3780 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 Style;.......public.function.__c
c37a0 6f 6e 73 74 72 75 63 74 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 onstruct(OutputFormatterStyleInt
c37c0 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 erface.$emptyStyle.=.null).{.$th
c37e0 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 74 79 53 74 79 6c 65 20 3f 3a 20 is->emptyStyle.=.$emptyStyle.?:.
c3800 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 24 74 68 69 new.OutputFormatterStyle();.$thi
c3820 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f s->reset();.}.....public.functio
c3840 6e 20 72 65 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 61 n.reset().{.$this->styles.=.arra
c3860 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 75 73 y();.}.......public.function.pus
c3880 68 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 h(OutputFormatterStyleInterface.
c38a0 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 5d 20 3d 20 24 73 74 79 $style).{.$this->styles[].=.$sty
c38c0 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 le;.}...........public.function.
c38e0 70 6f 70 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 pop(OutputFormatterStyleInterfac
c3900 65 20 24 73 74 79 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 e.$style.=.null).{.if.(empty($th
c3920 69 73 2d 3e 73 74 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 is->styles)).{.return.$this->emp
c3940 74 79 53 74 79 6c 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 79 6c 65 29 tyStyle;.}..if.(null.===.$style)
c3960 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 70 6f 70 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 .{.return.array_pop($this->style
c3980 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 74 s);.}..foreach.(array_reverse($t
c39a0 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 74 72 75 65 29 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 his->styles,.true).as.$index.=>.
c39c0 24 73 74 61 63 6b 65 64 53 74 79 6c 65 29 20 7b 0a 69 66 20 28 24 73 74 79 6c 65 2d 3e 61 70 70 $stackedStyle).{.if.($style->app
c39e0 6c 79 28 27 27 29 20 3d 3d 3d 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 2d 3e 61 70 70 6c 79 28 ly('').===.$stackedStyle->apply(
c3a00 27 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 5f 73 6c 69 '')).{.$this->styles.=.array_sli
c3a20 63 65 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 2c 20 30 2c 20 24 69 6e 64 65 78 29 3b 0a 0a 72 ce($this->styles,.0,.$index);..r
c3a40 65 74 75 72 6e 20 24 73 74 61 63 6b 65 64 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 eturn.$stackedStyle;.}.}..throw.
c3a60 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 new.\InvalidArgumentException('I
c3a80 6e 63 6f 72 72 65 63 74 6c 79 20 6e 65 73 74 65 64 20 73 74 79 6c 65 20 74 61 67 20 66 6f 75 6e ncorrectly.nested.style.tag.foun
c3aa0 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 d.');.}.......public.function.ge
c3ac0 74 43 75 72 72 65 6e 74 28 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 73 74 tCurrent().{.if.(empty($this->st
c3ae0 79 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c yles)).{.return.$this->emptyStyl
c3b00 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 63 6f 75 6e 74 e;.}..return.$this->styles[count
c3b20 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 29 2d 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ($this->styles)-1];.}.......publ
c3b40 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 53 74 79 6c 65 28 4f 75 74 70 75 74 ic.function.setEmptyStyle(Output
c3b60 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 65 6d 70 74 79 53 74 FormatterStyleInterface.$emptySt
c3b80 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 20 3d 20 24 65 6d 70 74 yle).{.$this->emptyStyle.=.$empt
c3ba0 79 53 74 79 6c 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 yStyle;..return.$this;.}.....pub
c3bc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 6d 70 74 79 53 74 79 6c 65 28 29 0a 7b 0a 72 lic.function.getEmptyStyle().{.r
c3be0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 53 74 79 6c 65 3b 0a 7d 0a 7d 0a 3c 3f 70 eturn.$this->emptyStyle;.}.}.<?p
c3c00 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
c3c20 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a omponent\Console\Formatter;.....
c3c40 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 20 69 ....class.OutputFormatterStyle.i
c3c60 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e mplements.OutputFormatterStyleIn
c3c80 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 terface.{.private.static.$availa
c3ca0 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 27 62 6c bleForegroundColors.=.array(.'bl
c3cc0 61 63 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 30 2c 20 27 75 6e 73 65 ack'.=>.array('set'.=>.30,.'unse
c3ce0 74 27 20 3d 3e 20 33 39 29 2c 0a 27 72 65 64 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 t'.=>.39),.'red'.=>.array('set'.
c3d00 3d 3e 20 33 31 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 67 72 65 65 6e 27 20 3d =>.31,.'unset'.=>.39),.'green'.=
c3d20 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 32 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 >.array('set'.=>.32,.'unset'.=>.
c3d40 33 39 29 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 39),.'yellow'.=>.array('set'.=>.
c3d60 33 33 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 62 6c 75 65 27 20 3d 3e 20 61 72 33,.'unset'.=>.39),.'blue'.=>.ar
c3d80 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c ray('set'.=>.34,.'unset'.=>.39),
c3da0 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 35 2c .'magenta'.=>.array('set'.=>.35,
c3dc0 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 61 72 72 61 79 .'unset'.=>.39),.'cyan'.=>.array
c3de0 28 27 73 65 74 27 20 3d 3e 20 33 36 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 33 39 29 2c 0a 27 77 ('set'.=>.36,.'unset'.=>.39),.'w
c3e00 68 69 74 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 33 37 2c 20 27 75 6e 73 hite'.=>.array('set'.=>.37,.'uns
c3e20 65 74 27 20 3d 3e 20 33 39 29 2c 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 et'.=>.39),.);.private.static.$a
c3e40 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 vailableBackgroundColors.=.array
c3e60 28 0a 27 62 6c 61 63 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 30 2c 20 (.'black'.=>.array('set'.=>.40,.
c3e80 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 72 65 64 27 20 3d 3e 20 61 72 72 61 79 28 27 'unset'.=>.49),.'red'.=>.array('
c3ea0 73 65 74 27 20 3d 3e 20 34 31 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 67 72 65 set'.=>.41,.'unset'.=>.49),.'gre
c3ec0 65 6e 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 32 2c 20 27 75 6e 73 65 74 en'.=>.array('set'.=>.42,.'unset
c3ee0 27 20 3d 3e 20 34 39 29 2c 0a 27 79 65 6c 6c 6f 77 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 '.=>.49),.'yellow'.=>.array('set
c3f00 27 20 3d 3e 20 34 33 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 62 6c 75 65 27 20 '.=>.43,.'unset'.=>.49),.'blue'.
c3f20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e =>.array('set'.=>.44,.'unset'.=>
c3f40 20 34 39 29 2c 0a 27 6d 61 67 65 6e 74 61 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d .49),.'magenta'.=>.array('set'.=
c3f60 3e 20 34 35 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 27 63 79 61 6e 27 20 3d 3e 20 >.45,.'unset'.=>.49),.'cyan'.=>.
c3f80 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 36 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 array('set'.=>.46,.'unset'.=>.49
c3fa0 29 2c 0a 27 77 68 69 74 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 34 37 2c ),.'white'.=>.array('set'.=>.47,
c3fc0 20 27 75 6e 73 65 74 27 20 3d 3e 20 34 39 29 2c 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 .'unset'.=>.49),.);.private.stat
c3fe0 69 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 27 62 ic.$availableOptions.=.array(.'b
c4000 6f 6c 64 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 31 2c 20 27 75 6e 73 65 74 old'.=>.array('set'.=>.1,.'unset
c4020 27 20 3d 3e 20 32 32 29 2c 0a 27 75 6e 64 65 72 73 63 6f 72 65 27 20 3d 3e 20 61 72 72 61 79 28 '.=>.22),.'underscore'.=>.array(
c4040 27 73 65 74 27 20 3d 3e 20 34 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 32 34 29 2c 0a 27 62 6c 69 'set'.=>.4,.'unset'.=>.24),.'bli
c4060 6e 6b 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 35 2c 20 27 75 6e 73 65 74 27 nk'.=>.array('set'.=>.5,.'unset'
c4080 20 3d 3e 20 32 35 29 2c 0a 27 72 65 76 65 72 73 65 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 .=>.25),.'reverse'.=>.array('set
c40a0 27 20 3d 3e 20 37 2c 20 27 75 6e 73 65 74 27 20 3d 3e 20 32 37 29 2c 0a 27 63 6f 6e 63 65 61 6c '.=>.7,.'unset'.=>.27),.'conceal
c40c0 27 20 3d 3e 20 61 72 72 61 79 28 27 73 65 74 27 20 3d 3e 20 38 2c 20 27 75 6e 73 65 74 27 20 3d '.=>.array('set'.=>.8,.'unset'.=
c40e0 3e 20 32 38 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 65 67 72 6f 75 6e 64 3b 0a >.28),.);..private.$foreground;.
c4100 70 72 69 76 61 74 65 20 24 62 61 63 6b 67 72 6f 75 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 private.$background;.private.$op
c4120 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tions.=.array();...........publi
c4140 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 6f 72 65 67 72 6f 75 c.function.__construct($foregrou
c4160 6e 64 20 3d 20 6e 75 6c 6c 2c 20 24 62 61 63 6b 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 2c 20 61 nd.=.null,.$background.=.null,.a
c4180 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e rray.$options.=.array()).{.if.(n
c41a0 75 6c 6c 20 21 3d 3d 20 24 66 6f 72 65 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 ull.!==.$foreground).{.$this->se
c41c0 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 66 6f 72 65 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 28 tForeground($foreground);.}.if.(
c41e0 6e 75 6c 6c 20 21 3d 3d 20 24 62 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 73 null.!==.$background).{.$this->s
c4200 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 62 61 63 6b 67 72 6f 75 6e 64 29 3b 0a 7d 0a 69 66 20 etBackground($background);.}.if.
c4220 28 63 6f 75 6e 74 28 24 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 (count($options)).{.$this->setOp
c4240 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 tions($options);.}.}...........p
c4260 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f ublic.function.setForeground($co
c4280 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f lor.=.null).{.if.(null.===.$colo
c42a0 72 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a r).{.$this->foreground.=.null;..
c42c0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 return;.}..if.(!isset(static::$a
c42e0 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d vailableForegroundColors[$color]
c4300 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
c4320 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 66 6f 72 65 67 xception(sprintf(.'Invalid.foreg
c4340 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 round.color.specified:."%s"..Exp
c4360 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c ected.one.of.(%s)',.$color,.impl
c4380 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 ode(',.',.array_keys(static::$av
c43a0 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a ailableForegroundColors)).));.}.
c43c0 0a 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 .$this->foreground.=.static::$av
c43e0 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b ailableForegroundColors[$color];
c4400 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .}...........public.function.set
c4420 42 61 63 6b 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 Background($color.=.null).{.if.(
c4440 6e 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6c 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 null.===.$color).{.$this->backgr
c4460 6f 75 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 ound.=.null;..return;.}..if.(!is
c4480 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 set(static::$availableBackground
c44a0 43 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e Colors[$color])).{.throw.new.\In
c44c0 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a validArgumentException(sprintf(.
c44e0 27 49 6e 76 61 6c 69 64 20 62 61 63 6b 67 72 6f 75 6e 64 20 63 6f 6c 6f 72 20 73 70 65 63 69 66 'Invalid.background.color.specif
c4500 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 ied:."%s"..Expected.one.of.(%s)'
c4520 2c 0a 24 63 6f 6c 6f 72 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 ,.$color,.implode(',.',.array_ke
c4540 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 ys(static::$availableBackgroundC
c4560 6f 6c 6f 72 73 29 29 0a 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 olors)).));.}..$this->background
c4580 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 .=.static::$availableBackgroundC
c45a0 6f 6c 6f 72 73 5b 24 63 6f 6c 6f 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 olors[$color];.}...........publi
c45c0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a c.function.setOption($option).{.
c45e0 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 if.(!isset(static::$availableOpt
c4600 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 ions[$option])).{.throw.new.\Inv
c4620 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 alidArgumentException(sprintf(.'
c4640 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 69 65 64 3a 20 22 25 73 22 2e 20 Invalid.option.specified:."%s"..
c4660 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 6f 70 74 69 6f 6e 2c 0a Expected.one.of.(%s)',.$option,.
c4680 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 3a implode(',.',.array_keys(static:
c46a0 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a 29 29 3b 0a 7d 0a 0a 69 66 20 28 :$availableOptions)).));.}..if.(
c46c0 21 69 6e 5f 61 72 72 61 79 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 !in_array(static::$availableOpti
c46e0 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b ons[$option],.$this->options)).{
c4700 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 73 74 61 74 69 63 3a 3a 24 61 76 61 .$this->options[].=.static::$ava
c4720 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ilableOptions[$option];.}.}.....
c4740 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 ....public.function.unsetOption(
c4760 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 73 74 61 74 69 63 3a 3a 24 61 $option).{.if.(!isset(static::$a
c4780 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 74 68 72 vailableOptions[$option])).{.thr
c47a0 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
c47c0 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 6f 70 74 69 6f 6e 20 73 70 65 63 69 66 (sprintf(.'Invalid.option.specif
c47e0 69 65 64 3a 20 22 25 73 22 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 ied:."%s"..Expected.one.of.(%s)'
c4800 2c 0a 24 6f 70 74 69 6f 6e 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b ,.$option,.implode(',.',.array_k
c4820 65 79 73 28 73 74 61 74 69 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 29 29 0a eys(static::$availableOptions)).
c4840 29 29 3b 0a 7d 0a 0a 24 70 6f 73 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 73 74 61 74 69 ));.}..$pos.=.array_search(stati
c4860 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 2c 20 24 c::$availableOptions[$option],.$
c4880 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 this->options);.if.(false.!==.$p
c48a0 6f 73 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 70 6f 73 5d os).{.unset($this->options[$pos]
c48c0 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 );.}.}.......public.function.set
c48e0 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d Options(array.$options).{.$this-
c4900 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f >options.=.array();..foreach.($o
c4920 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4f ptions.as.$option).{.$this->setO
c4940 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ption($option);.}.}.........publ
c4960 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 0a 7b 0a 24 73 65 74 43 ic.function.apply($text).{.$setC
c4980 6f 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 20 3d 20 61 72 odes.=.array();.$unsetCodes.=.ar
c49a0 72 61 79 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 6f 72 65 ray();..if.(null.!==.$this->fore
c49c0 67 72 6f 75 6e 64 29 20 7b 0a 24 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 66 ground).{.$setCodes[].=.$this->f
c49e0 6f 72 65 67 72 6f 75 6e 64 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 5b 5d 20 oreground['set'];.$unsetCodes[].
c4a00 3d 20 24 74 68 69 73 2d 3e 66 6f 72 65 67 72 6f 75 6e 64 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d 0a =.$this->foreground['unset'];.}.
c4a20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e 64 29 20 if.(null.!==.$this->background).
c4a40 7b 0a 24 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 62 61 63 6b 67 72 6f 75 6e {.$setCodes[].=.$this->backgroun
c4a60 64 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 43 6f 64 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d d['set'];.$unsetCodes[].=.$this-
c4a80 3e 62 61 63 6b 67 72 6f 75 6e 64 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e >background['unset'];.}.if.(coun
c4aa0 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 t($this->options)).{.foreach.($t
c4ac0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 73 65 74 43 his->options.as.$option).{.$setC
c4ae0 6f 64 65 73 5b 5d 20 3d 20 24 6f 70 74 69 6f 6e 5b 27 73 65 74 27 5d 3b 0a 24 75 6e 73 65 74 43 odes[].=.$option['set'];.$unsetC
c4b00 6f 64 65 73 5b 5d 20 3d 20 24 6f 70 74 69 6f 6e 5b 27 75 6e 73 65 74 27 5d 3b 0a 7d 0a 7d 0a 0a odes[].=.$option['unset'];.}.}..
c4b20 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 73 65 74 43 6f 64 65 73 29 29 20 7b 0a 72 65 if.(0.===.count($setCodes)).{.re
c4b40 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 5c turn.$text;.}..return.sprintf("\
c4b60 30 33 33 5b 25 73 6d 25 73 5c 30 33 33 5b 25 73 6d 22 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c 033[%sm%s\033[%sm",.implode(';',
c4b80 20 24 73 65 74 43 6f 64 65 73 29 2c 20 24 74 65 78 74 2c 20 69 6d 70 6c 6f 64 65 28 27 3b 27 2c .$setCodes),.$text,.implode(';',
c4ba0 20 24 75 6e 73 65 74 43 6f 64 65 73 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a .$unsetCodes));.}.}.<?php.......
c4bc0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
c4be0 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 Console\Formatter;.........inter
c4c00 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 face.OutputFormatterStyleInterfa
c4c20 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 ce.{........public.function.setF
c4c40 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a oreground($color.=.null);.......
c4c60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 ..public.function.setBackground(
c4c80 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $color.=.null);.........public.f
c4ca0 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a unction.setOption($option);.....
c4cc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e 28 24 6f ..public.function.unsetOption($o
c4ce0 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ption);.......public.function.se
c4d00 74 4f 70 74 69 6f 6e 73 28 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a tOptions(array.$options);.......
c4d20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 6c 79 28 24 74 65 78 74 29 3b 0a ..public.function.apply($text);.
c4d40 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
c4d60 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b ony\Component\Console\Formatter;
c4d80 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 20 69 .........class.OutputFormatter.i
c4da0 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 mplements.OutputFormatterInterfa
c4dc0 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 70 72 69 76 61 74 65 ce.{.private.$decorated;.private
c4de0 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 .$styles.=.array();.private.$sty
c4e00 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 leStack;.........public.static.f
c4e20 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 unction.escape($text).{.return.p
c4e40 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 69 73 27 2c 20 27 reg_replace('/([^\\\\]?)</is',.'
c4e60 24 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $1\\<',.$text);.}..........publi
c4e80 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 c.function.__construct($decorate
c4ea0 64 20 3d 20 66 61 6c 73 65 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 d.=.false,.array.$styles.=.array
c4ec0 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 62 6f 6f 6c 29 20 ()).{.$this->decorated.=.(bool).
c4ee0 24 64 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 65 72 $decorated;..$this->setStyle('er
c4f00 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 ror',.new.OutputFormatterStyle('
c4f20 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 white',.'red'));.$this->setStyle
c4f40 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c ('info',.new.OutputFormatterStyl
c4f60 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 63 6f e('green'));.$this->setStyle('co
c4f80 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 mment',.new.OutputFormatterStyle
c4fa0 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 27 71 75 ('yellow'));.$this->setStyle('qu
c4fc0 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c estion',.new.OutputFormatterStyl
c4fe0 65 28 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 e('black',.'cyan'));..foreach.($
c5000 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 74 79 6c 65 29 20 7b 0a 24 74 68 styles.as.$name.=>.$style).{.$th
c5020 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a is->setStyle($name,.$style);.}..
c5040 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 6e 65 77 20 4f 75 74 70 75 74 46 6f $this->styleStack.=.new.OutputFo
c5060 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rmatterStyleStack();.}.........p
c5080 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 ublic.function.setDecorated($dec
c50a0 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 62 6f orated).{.$this->decorated.=.(bo
c50c0 6f 6c 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ol).$decorated;.}.........public
c50e0 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e .function.isDecorated().{.return
c5100 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 .$this->decorated;.}..........pu
c5120 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 blic.function.setStyle($name,.Ou
c5140 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 tputFormatterStyleInterface.$sty
c5160 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 le).{.$this->styles[strtolower($
c5180 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 name)].=.$style;.}...........pub
c51a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 lic.function.hasStyle($name).{.r
c51c0 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c eturn.isset($this->styles[strtol
c51e0 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ower($name)]);.}.............pub
c5200 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 lic.function.getStyle($name).{.i
c5220 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 f.(!$this->hasStyle($name)).{.th
c5240 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
c5260 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 3a 20 25 73 27 2c n(sprintf('Undefined.style:.%s',
c5280 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 .$name));.}..return.$this->style
c52a0 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a s[strtolower($name)];.}.........
c52c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 ..public.function.format($messag
c52e0 65 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a e).{.$offset.=.0;.$output.=.'';.
c5300 24 74 61 67 52 65 67 65 78 20 3d 20 27 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b 2d 5d 2a 27 $tagRegex.=.'[a-z][a-z0-9_=;-]*'
c5320 3b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 22 23 3c 28 28 24 74 61 67 52 65 67 65 78 29 ;.preg_match_all("#<(($tagRegex)
c5340 20 7c 20 2f 28 24 74 61 67 52 65 67 65 78 29 3f 29 3e 23 69 73 78 22 2c 20 24 6d 65 73 73 61 67 .|./($tagRegex)?)>#isx",.$messag
c5360 65 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 4f 46 46 53 45 54 5f 43 41 50 54 55 52 45 e,.$matches,.PREG_OFFSET_CAPTURE
c5380 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 5b 30 5d 20 61 73 20 24 69 20 3d 3e );.foreach.($matches[0].as.$i.=>
c53a0 20 24 6d 61 74 63 68 29 20 7b 0a 24 70 6f 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 65 .$match).{.$pos.=.$match[1];.$te
c53c0 78 74 20 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 0a 69 66 20 28 30 20 21 3d 20 24 70 6f 73 20 26 xt.=.$match[0];..if.(0.!=.$pos.&
c53e0 26 20 27 5c 5c 27 20 3d 3d 20 24 6d 65 73 73 61 67 65 5b 24 70 6f 73 20 2d 20 31 5d 29 20 7b 0a &.'\\'.==.$message[$pos.-.1]).{.
c5400 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 20 2e 3d 20 24 74 68 69 73 2d continue;.}....$output..=.$this-
c5420 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 73 75 62 73 74 72 28 24 6d 65 73 73 61 >applyCurrentStyle(substr($messa
c5440 67 65 2c 20 24 6f 66 66 73 65 74 2c 20 24 70 6f 73 20 2d 20 24 6f 66 66 73 65 74 29 29 3b 0a 24 ge,.$offset,.$pos.-.$offset));.$
c5460 6f 66 66 73 65 74 20 3d 20 24 70 6f 73 20 2b 20 73 74 72 6c 65 6e 28 24 74 65 78 74 29 3b 0a 0a offset.=.$pos.+.strlen($text);..
c5480 0a 20 69 66 20 28 24 6f 70 65 6e 20 3d 20 27 2f 27 20 21 3d 20 24 74 65 78 74 5b 31 5d 29 20 7b ..if.($open.=.'/'.!=.$text[1]).{
c54a0 0a 24 74 61 67 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 5b 24 69 5d 5b 30 5d 3b 0a 7d 20 65 6c .$tag.=.$matches[1][$i][0];.}.el
c54c0 73 65 20 7b 0a 24 74 61 67 20 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 33 5d 5b 24 69 se.{.$tag.=.isset($matches[3][$i
c54e0 5d 5b 30 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 33 5d 5b 24 69 5d 5b 30 5d 20 3a 20 27 27 3b ][0]).?.$matches[3][$i][0].:.'';
c5500 0a 7d 0a 0a 69 66 20 28 21 24 6f 70 65 6e 20 26 26 20 21 24 74 61 67 29 20 7b 0a 0a 20 24 74 68 .}..if.(!$open.&&.!$tag).{...$th
c5520 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 is->styleStack->pop();.}.elseif.
c5540 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 (false.===.$style.=.$this->creat
c5560 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 67 eStyleFromString(strtolower($tag
c5580 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 ))).{.$output..=.$this->applyCur
c55a0 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6f 70 65 rentStyle($text);.}.elseif.($ope
c55c0 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 74 n).{.$this->styleStack->push($st
c55e0 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b yle);.}.else.{.$this->styleStack
c5600 2d 3e 70 6f 70 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 ->pop($style);.}.}..$output..=.$
c5620 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 73 75 62 73 74 72 28 24 this->applyCurrentStyle(substr($
c5640 6d 65 73 73 61 67 65 2c 20 24 6f 66 66 73 65 74 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f message,.$offset));..return.str_
c5660 72 65 70 6c 61 63 65 28 27 5c 5c 3c 27 2c 20 27 3c 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a replace('\\<',.'<',.$output);.}.
c5680 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 ....public.function.getStyleStac
c56a0 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a k().{.return.$this->styleStack;.
c56c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 }.........private.function.creat
c56e0 65 53 74 79 6c 65 46 72 6f 6d 53 74 72 69 6e 67 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 eStyleFromString($string).{.if.(
c5700 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 24 73 74 72 69 6e 67 5d 29 29 20 7b isset($this->styles[$string])).{
c5720 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 24 73 74 72 69 6e 67 5d 3b 0a .return.$this->styles[$string];.
c5740 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 28 5b 5e 3d 5d 2b 29 }..if.(!preg_match_all('/([^=]+)
c5760 3d 28 5b 5e 3b 5d 2b 29 28 3b 7c 24 29 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 72 =([^;]+)(;|$)/',.strtolower($str
c5780 69 6e 67 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 54 5f 4f 52 44 45 52 29 29 ing),.$matches,.PREG_SET_ORDER))
c57a0 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 74 79 6c 65 20 3d 20 6e 65 77 .{.return.false;.}..$style.=.new
c57c0 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 29 3b 0a 66 6f 72 65 61 63 68 .OutputFormatterStyle();.foreach
c57e0 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 61 72 72 61 79 5f 73 68 .($matches.as.$match).{.array_sh
c5800 69 66 74 28 24 6d 61 74 63 68 29 3b 0a 0a 69 66 20 28 27 66 67 27 20 3d 3d 20 24 6d 61 74 63 68 ift($match);..if.('fg'.==.$match
c5820 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 6d 61 [0]).{.$style->setForeground($ma
c5840 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 62 67 27 20 3d 3d 20 24 6d 61 74 63 tch[1]);.}.elseif.('bg'.==.$matc
c5860 68 5b 30 5d 29 20 7b 0a 24 73 74 79 6c 65 2d 3e 73 65 74 42 61 63 6b 67 72 6f 75 6e 64 28 24 6d h[0]).{.$style->setBackground($m
c5880 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 72 79 20 7b 0a 24 73 74 79 6c 65 2d atch[1]);.}.else.{.try.{.$style-
c58a0 3e 73 65 74 4f 70 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 >setOption($match[1]);.}.catch.(
c58c0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a \InvalidArgumentException.$e).{.
c58e0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 79 return.false;.}.}.}..return.$sty
c5900 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 le;.}.........private.function.a
c5920 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e pplyCurrentStyle($text).{.return
c5940 20 24 74 68 69 73 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 26 26 20 73 74 72 6c 65 6e 28 .$this->isDecorated().&&.strlen(
c5960 24 74 65 78 74 29 20 3e 20 30 20 3f 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e $text).>.0.?.$this->styleStack->
c5980 67 65 74 43 75 72 72 65 6e 74 28 29 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 getCurrent()->apply($text).:.$te
c59a0 78 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 xt;.}.}.<?php...........namespac
c59c0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d e.Symfony\Component\Console\Form
c59e0 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 atter;.........interface.OutputF
c5a00 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ormatterInterface.{........publi
c5a20 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 c.function.setDecorated($decorat
c5a40 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 ed);.........public.function.isD
c5a60 65 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ecorated();..........public.func
c5a80 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 tion.setStyle($name,.OutputForma
c5aa0 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 20 24 73 74 79 6c 65 29 3b 0a 0a 0a 0a 0a tterStyleInterface.$style);.....
c5ac0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 ......public.function.hasStyle($
c5ae0 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e name);...........public.function
c5b00 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .getStyle($name);...........publ
c5b20 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a ic.function.format($message);.}.
c5b40 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
c5b60 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e y\Component\Console;..use.Symfon
c5b80 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 y\Component\Console\Descriptor\T
c5ba0 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f extDescriptor;.use.Symfony\Compo
c5bc0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 nent\Console\Descriptor\XmlDescr
c5be0 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e iptor;.use.Symfony\Component\Con
c5c00 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 sole\Helper\DebugFormatterHelper
c5c20 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ;.use.Symfony\Component\Console\
c5c40 48 65 6c 70 65 72 5c 50 72 6f 63 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e Helper\ProcessHelper;.use.Symfon
c5c60 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 51 75 65 73 74 y\Component\Console\Helper\Quest
c5c80 69 6f 6e 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 ionHelper;.use.Symfony\Component
c5ca0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
c5cc0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
c5ce0 75 74 5c 41 72 67 76 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ut\ArgvInput;.use.Symfony\Compon
c5d00 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 ent\Console\Input\ArrayInput;.us
c5d20 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
c5d40 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\InputDefinition;.use.Symfony\C
c5d60 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
c5d80 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
c5da0 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f e\Input\InputArgument;.use.Symfo
c5dc0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 ny\Component\Console\Input\Input
c5de0 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 AwareInterface;.use.Symfony\Comp
c5e00 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 42 75 66 66 65 72 65 64 4f 75 74 onent\Console\Output\BufferedOut
c5e20 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f put;.use.Symfony\Component\Conso
c5e40 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 le\Output\OutputInterface;.use.S
c5e60 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c ymfony\Component\Console\Output\
c5e80 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f ConsoleOutput;.use.Symfony\Compo
c5ea0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 nent\Console\Output\ConsoleOutpu
c5ec0 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
c5ee0 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 t\Console\Command\Command;.use.S
c5f00 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 ymfony\Component\Console\Command
c5f20 5c 48 65 6c 70 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e \HelpCommand;.use.Symfony\Compon
c5f40 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 4c 69 73 74 43 6f 6d 6d 61 6e 64 3b ent\Console\Command\ListCommand;
c5f60 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 .use.Symfony\Component\Console\H
c5f80 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d elper\HelperSet;.use.Symfony\Com
c5fa0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 48 ponent\Console\Helper\FormatterH
c5fc0 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e elper;.use.Symfony\Component\Con
c5fe0 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 sole\Helper\DialogHelper;.use.Sy
c6000 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 50 mfony\Component\Console\Helper\P
c6020 72 6f 67 72 65 73 73 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f rogressHelper;.use.Symfony\Compo
c6040 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 48 65 6c 70 65 72 3b nent\Console\Helper\TableHelper;
c6060 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 .use.Symfony\Component\Console\E
c6080 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 vent\ConsoleCommandEvent;.use.Sy
c60a0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f mfony\Component\Console\Event\Co
c60c0 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nsoleExceptionEvent;.use.Symfony
c60e0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 \Component\Console\Event\Console
c6100 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 TerminateEvent;.use.Symfony\Comp
c6120 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 onent\EventDispatcher\EventDispa
c6140 74 63 68 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tcherInterface;.................
c6160 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 ..class.Application.{.private.$c
c6180 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e 74 ommands.=.array();.private.$want
c61a0 48 65 6c 70 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 43 Helps.=.false;.private.$runningC
c61c0 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 ommand;.private.$name;.private.$
c61e0 76 65 72 73 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e version;.private.$catchException
c6200 73 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 78 69 74 20 3d 20 74 72 s.=.true;.private.$autoExit.=.tr
c6220 75 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 ue;.private.$definition;.private
c6240 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 70 72 69 76 61 74 65 20 24 64 69 73 70 61 74 63 68 65 72 .$helperSet;.private.$dispatcher
c6260 3b 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 3b 0a 70 ;.private.$terminalDimensions;.p
c6280 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a rivate.$defaultCommand;.........
c62a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 .public.function.__construct($na
c62c0 6d 65 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e me.=.'UNKNOWN',.$version.=.'UNKN
c62e0 4f 57 4e 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 OWN').{.$this->name.=.$name;.$th
c6300 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 is->version.=.$version;.$this->d
c6320 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 6c 69 73 74 27 3b 0a 24 74 68 69 73 2d 3e 68 efaultCommand.=.'list';.$this->h
c6340 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 elperSet.=.$this->getDefaultHelp
c6360 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 erSet();.$this->definition.=.$th
c6380 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b is->getDefaultInputDefinition();
c63a0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d ..foreach.($this->getDefaultComm
c63c0 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 ands().as.$command).{.$this->add
c63e0 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($command);.}.}..public.function
c6400 20 73 65 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 49 6e .setDispatcher(EventDispatcherIn
c6420 74 65 72 66 61 63 65 20 24 64 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 terface.$dispatcher).{.$this->di
c6440 73 70 61 74 63 68 65 72 20 3d 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a spatcher.=.$dispatcher;.}.......
c6460 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 .......public.function.run(Input
c6480 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 Interface.$input.=.null,.OutputI
c64a0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e nterface.$output.=.null).{.if.(n
c64c0 75 6c 6c 20 3d 3d 3d 20 24 69 6e 70 75 74 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 ull.===.$input).{.$input.=.new.A
c64e0 72 67 76 49 6e 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 rgvInput();.}..if.(null.===.$out
c6500 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 put).{.$output.=.new.ConsoleOutp
c6520 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 49 4f 28 24 69 6e 70 ut();.}..$this->configureIO($inp
c6540 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d ut,.$output);..try.{.$exitCode.=
c6560 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a .$this->doRun($input,.$output);.
c6580 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 }.catch.(\Exception.$e).{.if.(!$
c65a0 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 this->catchExceptions).{.throw.$
c65c0 65 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e e;.}..if.($output.instanceof.Con
c65e0 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 soleOutputInterface).{.$this->re
c6600 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 nderException($e,.$output->getEr
c6620 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 rorOutput());.}.else.{.$this->re
c6640 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 nderException($e,.$output);.}..$
c6660 65 78 69 74 43 6f 64 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 69 66 20 28 69 73 exitCode.=.$e->getCode();.if.(is
c6680 5f 6e 75 6d 65 72 69 63 28 24 65 78 69 74 43 6f 64 65 29 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 _numeric($exitCode)).{.$exitCode
c66a0 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 65 .=.(int).$exitCode;.if.(0.===.$e
c66c0 78 69 74 43 6f 64 65 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 20 65 6c xitCode).{.$exitCode.=.1;.}.}.el
c66e0 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 se.{.$exitCode.=.1;.}.}..if.($th
c6700 69 73 2d 3e 61 75 74 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 is->autoExit).{.if.($exitCode.>.
c6720 32 35 35 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 32 35 35 3b 0a 7d 0a 0a 65 78 69 74 28 255).{.$exitCode.=.255;.}..exit(
c6740 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b $exitCode);.}..return.$exitCode;
c6760 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 .}..........public.function.doRu
c6780 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 n(InputInterface.$input,.OutputI
c67a0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d nterface.$output).{.if.(true.===
c67c0 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 .$input->hasParameterOption(arra
c67e0 79 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 y('--version',.'-V'))).{.$output
c6800 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 ->writeln($this->getLongVersion(
c6820 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d ));..return.0;.}..$name.=.$this-
c6840 3e 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 3b 0a 69 66 20 28 74 72 75 >getCommandName($input);.if.(tru
c6860 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e e.===.$input->hasParameterOption
c6880 28 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 29 29 29 20 7b 0a 69 66 20 28 21 (array('--help',.'-h'))).{.if.(!
c68a0 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 68 65 6c 70 27 3b 0a 24 69 6e 70 75 74 20 $name).{.$name.=.'help';.$input.
c68c0 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 27 =.new.ArrayInput(array('command'
c68e0 20 3d 3e 20 27 68 65 6c 70 27 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 61 .=>.'help'));.}.else.{.$this->wa
c6900 6e 74 48 65 6c 70 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 29 ntHelps.=.true;.}.}..if.(!$name)
c6920 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 .{.$name.=.$this->defaultCommand
c6940 3b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 ;.$input.=.new.ArrayInput(array(
c6960 27 63 6f 6d 6d 61 6e 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 'command'.=>.$this->defaultComma
c6980 6e 64 29 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e nd));.}....$command.=.$this->fin
c69a0 64 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 d($name);..$this->runningCommand
c69c0 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e .=.$command;.$exitCode.=.$this->
c69e0 64 6f 52 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 doRunCommand($command,.$input,.$
c6a00 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 20 3d output);.$this->runningCommand.=
c6a20 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a .null;..return.$exitCode;.}.....
c6a40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 ....public.function.setHelperSet
c6a60 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e (HelperSet.$helperSet).{.$this->
c6a80 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a helperSet.=.$helperSet;.}.......
c6aa0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 ..public.function.getHelperSet()
c6ac0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 0a .{.return.$this->helperSet;.}...
c6ae0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 ......public.function.setDefinit
c6b00 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 ion(InputDefinition.$definition)
c6b20 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 .{.$this->definition.=.$definiti
c6b40 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 on;.}.......public.function.getD
c6b60 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 efinition().{.return.$this->defi
c6b80 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 nition;.}.......public.function.
c6ba0 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e getHelp().{.return.$this->getLon
c6bc0 67 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e gVersion();.}.........public.fun
c6be0 63 74 69 6f 6e 20 73 65 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 61 ction.setCatchExceptions($boolea
c6c00 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 62 n).{.$this->catchExceptions.=.(b
c6c20 6f 6f 6c 29 20 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ool).$boolean;.}.........public.
c6c40 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b function.setAutoExit($boolean).{
c6c60 0a 24 74 68 69 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 62 6f 6f 6c 29 20 24 62 6f 6f 6c 65 .$this->autoExit.=.(bool).$boole
c6c80 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 an;.}.........public.function.ge
c6ca0 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a tName().{.return.$this->name;.}.
c6cc0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 28 ........public.function.setName(
c6ce0 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a $name).{.$this->name.=.$name;.}.
c6d00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 73 69 ........public.function.getVersi
c6d20 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a on().{.return.$this->version;.}.
c6d40 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 73 69 ........public.function.setVersi
c6d60 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 on($version).{.$this->version.=.
c6d80 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $version;.}.........public.funct
c6da0 69 6f 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 27 55 4e 4b 4e ion.getLongVersion().{.if.('UNKN
c6dc0 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 27 55 4e OWN'.!==.$this->getName().&&.'UN
c6de0 4b 4e 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 KNOWN'.!==.$this->getVersion()).
c6e00 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f {.return.sprintf('<info>%s</info
c6e20 3e 20 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 >.version.<comment>%s</comment>'
c6e40 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 ,.$this->getName(),.$this->getVe
c6e60 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 6f 3e 43 6f 6e 73 6f rsion());.}..return.'<info>Conso
c6e80 6c 65 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 le.Tool</info>';.}...........pub
c6ea0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 lic.function.register($name).{.r
c6ec0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 24 6e 61 eturn.$this->add(new.Command($na
c6ee0 6d 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 me));.}.........public.function.
c6f00 61 64 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 66 addCommands(array.$commands).{.f
c6f20 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b oreach.($commands.as.$command).{
c6f40 0a 24 74 68 69 73 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a .$this->add($command);.}.}......
c6f60 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 43 6f 6d 6d 61 .......public.function.add(Comma
c6f80 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c nd.$command).{.$command->setAppl
c6fa0 69 63 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e ication($this);..if.(!$command->
c6fc0 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c isEnabled()).{.$command->setAppl
c6fe0 69 63 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e ication(null);..return;.}..if.(n
c7000 75 6c 6c 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 ull.===.$command->getDefinition(
c7020 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 )).{.throw.new.\LogicException(s
c7040 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 20 22 25 73 22 20 69 73 20 6e 6f printf('Command.class."%s".is.no
c7060 74 20 63 6f 72 72 65 63 74 6c 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 2e 20 59 6f 75 20 70 72 6f t.correctly.initialized..You.pro
c7080 62 61 62 6c 79 20 66 6f 72 67 6f 74 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 20 bably.forgot.to.call.the.parent.
c70a0 63 6f 6e 73 74 72 75 63 74 6f 72 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 63 6f 6d 6d 61 6e constructor.',.get_class($comman
c70c0 64 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 63 6f 6d 6d 61 6e d)));.}..$this->commands[$comman
c70e0 64 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 66 6f 72 65 61 d->getName()].=.$command;..forea
c7100 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 ch.($command->getAliases().as.$a
c7120 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 61 6c 69 61 73 5d 20 lias).{.$this->commands[$alias].
c7140 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a =.$command;.}..return.$command;.
c7160 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 }.............public.function.ge
c7180 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d t($name).{.if.(!isset($this->com
c71a0 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 mands[$name])).{.throw.new.\Inva
c71c0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 lidArgumentException(sprintf('Th
c71e0 65 20 63 6f 6d 6d 61 6e 64 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c e.command."%s".does.not.exist.',
c7200 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 63 .$name));.}..$command.=.$this->c
c7220 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 61 6e 74 ommands[$name];..if.($this->want
c7240 48 65 6c 70 73 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 66 61 6c 73 Helps).{.$this->wantHelps.=.fals
c7260 65 3b 0a 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 28 27 68 e;..$helpCommand.=.$this->get('h
c7280 65 6c 70 27 29 3b 0a 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 28 elp');.$helpCommand->setCommand(
c72a0 24 63 6f 6d 6d 61 6e 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 43 6f 6d 6d 61 6e 64 3b $command);..return.$helpCommand;
c72c0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .}..return.$command;.}..........
c72e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 .public.function.has($name).{.re
c7300 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 turn.isset($this->commands[$name
c7320 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ]);.}.........public.function.ge
c7340 74 4e 61 6d 65 73 70 61 63 65 73 28 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 tNamespaces().{.$namespaces.=.ar
c7360 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 ray();.foreach.($this->commands.
c7380 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 as.$command).{.$namespaces.=.arr
c73a0 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 24 74 68 69 73 2d 3e 65 78 74 ay_merge($namespaces,.$this->ext
c73c0 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e ractAllNamespaces($command->getN
c73e0 61 6d 65 28 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 ame()));..foreach.($command->get
c7400 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 Aliases().as.$alias).{.$namespac
c7420 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 24 74 es.=.array_merge($namespaces,.$t
c7440 68 69 73 2d 3e 65 78 74 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 61 6c 69 61 73 his->extractAllNamespaces($alias
c7460 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 ));.}.}..return.array_values(arr
c7480 61 79 5f 75 6e 69 71 75 65 28 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 6e 61 6d 65 73 70 61 63 ay_unique(array_filter($namespac
c74a0 65 73 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 es)));.}...........public.functi
c74c0 6f 6e 20 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 73 70 61 63 65 29 0a 7b 0a 24 on.findNamespace($namespace).{.$
c74e0 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 73 70 allNamespaces.=.$this->getNamesp
c7500 61 63 65 73 28 29 3b 0a 24 65 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c aces();.$expr.=.preg_replace_cal
c7520 6c 62 61 63 6b 28 27 7b 28 5b 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d lback('{([^:]+|)}',.function.($m
c7540 61 74 63 68 65 73 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 atches).{.return.preg_quote($mat
c7560 63 68 65 73 5b 31 5d 29 2e 27 5b 5e 3a 5d 2a 27 3b 20 7d 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 ches[1]).'[^:]*';.},.$namespace)
c7580 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 ;.$namespaces.=.preg_grep('{^'.$
c75a0 65 78 70 72 2e 27 7d 27 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 3b 0a 0a 69 66 20 28 expr.'}',.$allNamespaces);..if.(
c75c0 65 6d 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d empty($namespaces)).{.$message.=
c75e0 20 73 70 72 69 6e 74 66 28 27 54 68 65 72 65 20 61 72 65 20 6e 6f 20 63 6f 6d 6d 61 6e 64 73 20 .sprintf('There.are.no.commands.
c7600 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 22 25 73 22 20 6e 61 6d 65 73 70 61 63 65 2e 27 2c defined.in.the."%s".namespace.',
c7620 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 .$namespace);..if.($alternatives
c7640 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 .=.$this->findAlternatives($name
c7660 73 70 61 63 65 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 2c 20 61 72 72 61 79 28 29 29 29 space,.$allNamespaces,.array()))
c7680 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 .{.if.(1.==.count($alternatives)
c76a0 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 ).{.$message..=."\n\nDid.you.mea
c76c0 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 n.this?\n....";.}.else.{.$messag
c76e0 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 e..=."\n\nDid.you.mean.one.of.th
c7700 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c ese?\n....";.}..$message..=.impl
c7720 6f 64 65 28 22 5c 6e 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a ode("\n....",.$alternatives);.}.
c7740 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
c7760 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 3d 20 69 6e 5f 61 tion($message);.}..$exact.=.in_a
c7780 72 72 61 79 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 65 73 2c 20 74 72 rray($namespace,.$namespaces,.tr
c77a0 75 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 73 29 20 3e 20 31 20 ue);.if.(count($namespaces).>.1.
c77c0 26 26 20 21 24 65 78 61 63 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 &&.!$exact).{.throw.new.\Invalid
c77e0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 6e ArgumentException(sprintf('The.n
c7800 61 6d 65 73 70 61 63 65 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e amespace."%s".is.ambiguous.(%s).
c7820 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 76 69 ',.$namespace,.$this->getAbbrevi
c7840 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 6e ationSuggestions(array_values($n
c7860 61 6d 65 73 70 61 63 65 73 29 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 61 63 74 20 amespaces))));.}..return.$exact.
c7880 3f 20 24 6e 61 6d 65 73 70 61 63 65 20 3a 20 72 65 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 73 ?.$namespace.:.reset($namespaces
c78a0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 );.}................public.funct
c78c0 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 20 3d ion.find($name).{.$allCommands.=
c78e0 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 29 3b 0a 24 65 .array_keys($this->commands);.$e
c7900 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 5b xpr.=.preg_replace_callback('{([
c7920 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 7b 20 ^:]+|)}',.function.($matches).{.
c7940 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 27 return.preg_quote($matches[1]).'
c7960 5b 5e 3a 5d 2a 27 3b 20 7d 2c 20 24 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 70 [^:]*';.},.$name);.$commands.=.p
c7980 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 65 78 70 72 2e 27 7d 27 2c 20 24 61 6c 6c 43 6f 6d reg_grep('{^'.$expr.'}',.$allCom
c79a0 6d 61 6e 64 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 6d 61 6e 64 73 29 20 7c 7c mands);..if.(empty($commands).||
c79c0 20 63 6f 75 6e 74 28 70 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 65 78 70 72 2e 27 24 7d 27 .count(preg_grep('{^'.$expr.'$}'
c79e0 2c 20 24 63 6f 6d 6d 61 6e 64 73 29 29 20 3c 20 31 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 ,.$commands)).<.1).{.if.(false.!
c7a00 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3a 27 29 29 20 7b ==.$pos.=.strrpos($name,.':')).{
c7a20 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 73 75 62 73 74 72 28 24 ...$this->findNamespace(substr($
c7a40 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 name,.0,.$pos));.}..$message.=.s
c7a60 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 printf('Command."%s".is.not.defi
c7a80 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 ned.',.$name);..if.($alternative
c7aa0 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d s.=.$this->findAlternatives($nam
c7ac0 65 2c 20 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 2c 20 61 72 72 61 79 28 29 29 29 20 7b 0a 69 66 20 e,.$allCommands,.array())).{.if.
c7ae0 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 29 20 7b 0a 24 6d (1.==.count($alternatives)).{.$m
c7b00 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 74 68 69 73 essage..=."\n\nDid.you.mean.this
c7b20 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 ?\n....";.}.else.{.$message..=."
c7b40 5c 6e 5c 6e 44 69 64 20 79 6f 75 20 6d 65 61 6e 20 6f 6e 65 20 6f 66 20 74 68 65 73 65 3f 5c 6e \n\nDid.you.mean.one.of.these?\n
c7b60 20 20 20 20 22 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 22 5c 6e ....";.}.$message..=.implode("\n
c7b80 20 20 20 20 22 2c 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 ....",.$alternatives);.}..throw.
c7ba0 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 24 6d new.\InvalidArgumentException($m
c7bc0 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e 64 essage);.}....if.(count($command
c7be0 73 29 20 3e 20 31 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e s).>.1).{.$commandList.=.$this->
c7c00 63 6f 6d 6d 61 6e 64 73 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 commands;.$commands.=.array_filt
c7c20 65 72 28 24 63 6f 6d 6d 61 6e 64 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6e 61 6d 65 4f 72 41 er($commands,.function.($nameOrA
c7c40 6c 69 61 73 29 20 75 73 65 20 28 24 63 6f 6d 6d 61 6e 64 4c 69 73 74 2c 20 24 63 6f 6d 6d 61 6e lias).use.($commandList,.$comman
c7c60 64 73 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 73 ds).{.$commandName.=.$commandLis
c7c80 74 5b 24 6e 61 6d 65 4f 72 41 6c 69 61 73 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 72 65 74 t[$nameOrAlias]->getName();..ret
c7ca0 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 4f 72 41 6c 69 61 urn.$commandName.===.$nameOrAlia
c7cc0 73 20 7c 7c 20 21 69 6e 5f 61 72 72 61 79 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 2c 20 24 63 6f s.||.!in_array($commandName,.$co
c7ce0 6d 6d 61 6e 64 73 29 3b 0a 7d 29 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 3d 20 69 6e 5f 61 72 72 61 mmands);.});.}..$exact.=.in_arra
c7d00 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 63 y($name,.$commands,.true);.if.(c
c7d20 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 29 20 3e 20 31 20 26 26 20 21 24 65 78 61 63 74 29 20 ount($commands).>.1.&&.!$exact).
c7d40 7b 0a 24 73 75 67 67 65 73 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 62 62 72 65 {.$suggestions.=.$this->getAbbre
c7d60 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 61 72 72 61 79 5f 76 61 6c 75 65 73 28 viationSuggestions(array_values(
c7d80 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 $commands));..throw.new.\Invalid
c7da0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 ArgumentException(sprintf('Comma
c7dc0 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 6e 61 nd."%s".is.ambiguous.(%s).',.$na
c7de0 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 me,.$suggestions));.}..return.$t
c7e00 68 69 73 2d 3e 67 65 74 28 24 65 78 61 63 74 20 3f 20 24 6e 61 6d 65 20 3a 20 72 65 73 65 74 28 his->get($exact.?.$name.:.reset(
c7e20 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $commands));.}.............publi
c7e40 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c c.function.all($namespace.=.null
c7e60 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 72 ).{.if.(null.===.$namespace).{.r
c7e80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 eturn.$this->commands;.}..$comma
c7ea0 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 nds.=.array();.foreach.($this->c
c7ec0 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a ommands.as.$name.=>.$command).{.
c7ee0 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 if.($namespace.===.$this->extrac
c7f00 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 tNamespace($name,.substr_count($
c7f20 6e 61 6d 65 73 70 61 63 65 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 namespace,.':').+.1)).{.$command
c7f40 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e s[$name].=.$command;.}.}..return
c7f60 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 .$commands;.}.........public.sta
c7f80 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 24 6e tic.function.getAbbreviations($n
c7fa0 61 6d 65 73 29 0a 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 ames).{.$abbrevs.=.array();.fore
c7fc0 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 20 28 24 6c 65 ach.($names.as.$name).{.for.($le
c7fe0 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d 2d 24 n.=.strlen($name);.$len.>.0;.--$
c8000 6c 65 6e 29 20 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 len).{.$abbrev.=.substr($name,.0
c8020 2c 20 24 6c 65 6e 29 3b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 3d 20 24 ,.$len);.$abbrevs[$abbrev][].=.$
c8040 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b 0a 7d 0a 0a 0a name;.}.}..return.$abbrevs;.}...
c8060 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 .........public.function.asText(
c8080 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 72 61 77 20 3d 20 66 61 6c 73 65 29 $namespace.=.null,.$raw.=.false)
c80a0 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 .{.$descriptor.=.new.TextDescrip
c80c0 74 6f 72 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 tor();.$output.=.new.BufferedOut
c80e0 70 75 74 28 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f put(BufferedOutput::VERBOSITY_NO
c8100 52 4d 41 4c 2c 20 21 24 72 61 77 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 RMAL,.!$raw);.$descriptor->descr
c8120 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 ibe($output,.$this,.array('names
c8140 70 61 63 65 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 72 61 77 5f 6f 75 74 70 75 74 pace'.=>.$namespace,.'raw_output
c8160 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 '.=>.true));..return.$output->fe
c8180 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tch();.}............public.funct
c81a0 69 6f 6e 20 61 73 58 6d 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 2c 20 24 61 73 ion.asXml($namespace.=.null,.$as
c81c0 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 Dom.=.false).{.$descriptor.=.new
c81e0 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 61 73 44 6f 6d 29 20 7b .XmlDescriptor();..if.($asDom).{
c8200 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 .return.$descriptor->getApplicat
c8220 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a ionDocument($this,.$namespace);.
c8240 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 }..$output.=.new.BufferedOutput(
c8260 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 );.$descriptor->describe($output
c8280 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 6e ,.$this,.array('namespace'.=>.$n
c82a0 61 6d 65 73 70 61 63 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 amespace));..return.$output->fet
c82c0 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 ch();.}........public.function.r
c82e0 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 64 6f enderException($e,.$output).{.do
c8300 20 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 .{.$title.=.sprintf('..[%s]..',.
c8320 67 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 0a 24 6c 65 6e 20 3d 20 24 74 68 69 73 2d 3e 73 get_class($e));..$len.=.$this->s
c8340 74 72 69 6e 67 57 69 64 74 68 28 24 74 69 74 6c 65 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 24 74 tringWidth($title);..$width.=.$t
c8360 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d his->getTerminalWidth().?.$this-
c8380 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e >getTerminalWidth().-.1.:.PHP_IN
c83a0 54 5f 4d 41 58 3b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 49 T_MAX;...if.(defined('HHVM_VERSI
c83c0 4f 4e 27 29 20 26 26 20 24 77 69 64 74 68 20 3e 20 31 20 3c 3c 20 33 31 29 20 7b 0a 24 77 69 64 ON').&&.$width.>.1.<<.31).{.$wid
c83e0 74 68 20 3d 20 31 20 3c 3c 20 33 31 3b 0a 7d 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 6f 75 th.=.1.<<.31;.}.$formatter.=.$ou
c8400 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 tput->getFormatter();.$lines.=.a
c8420 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c 69 74 28 27 2f 5c 72 rray();.foreach.(preg_split('/\r
c8440 3f 5c 6e 2f 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 20 61 73 20 24 6c 69 6e ?\n/',.$e->getMessage()).as.$lin
c8460 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 73 70 6c 69 74 53 74 72 69 6e 67 e).{.foreach.($this->splitString
c8480 42 79 57 69 64 74 68 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 20 2d 20 34 29 20 61 73 20 24 6c ByWidth($line,.$width.-.4).as.$l
c84a0 69 6e 65 29 20 7b 0a 0a 20 24 6c 69 6e 65 4c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 ine).{...$lineLength.=.$this->st
c84c0 72 69 6e 67 57 69 64 74 68 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 1b 5c 5b 5b 5e 6d 5d ringWidth(preg_replace('/.\[[^m]
c84e0 2a 6d 2f 27 2c 20 27 27 2c 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6c 69 *m/',.'',.$formatter->format($li
c8500 6e 65 29 29 29 20 2b 20 34 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 61 72 72 61 79 28 24 6c 69 6e ne))).+.4;.$lines[].=.array($lin
c8520 65 2c 20 24 6c 69 6e 65 4c 65 6e 67 74 68 29 3b 0a 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 6c 69 e,.$lineLength);..$len.=.max($li
c8540 6e 65 4c 65 6e 67 74 68 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 neLength,.$len);.}.}..$messages.
c8560 3d 20 61 72 72 61 79 28 27 27 2c 20 27 27 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 =.array('',.'');.$messages[].=.$
c8580 65 6d 70 74 79 4c 69 6e 65 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 73 emptyLine.=.$formatter->format(s
c85a0 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 73 74 72 5f printf('<error>%s</error>',.str_
c85c0 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d repeat('.',.$len)));.$messages[]
c85e0 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 73 70 72 69 6e 74 66 28 27 3c .=.$formatter->format(sprintf('<
c8600 65 72 72 6f 72 3e 25 73 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 74 69 74 6c 65 2c 20 73 74 72 error>%s%s</error>',.$title,.str
c8620 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 _repeat('.',.max(0,.$len.-.$this
c8640 2d 3e 73 74 72 69 6e 67 57 69 64 74 68 28 24 74 69 74 6c 65 29 29 29 29 29 3b 0a 66 6f 72 65 61 ->stringWidth($title)))));.forea
c8660 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 ch.($lines.as.$line).{.$messages
c8680 5b 5d 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 73 70 72 69 6e 74 66 28 [].=.$formatter->format(sprintf(
c86a0 27 3c 65 72 72 6f 72 3e 20 20 25 73 20 20 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 6c 69 6e 65 '<error>..%s..%s</error>',.$line
c86c0 5b 30 5d 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 6c 69 6e [0],.str_repeat('.',.$len.-.$lin
c86e0 65 5b 31 5d 29 29 29 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 65 6d 70 74 79 4c e[1])));.}.$messages[].=.$emptyL
c8700 69 6e 65 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 24 6d 65 73 73 61 67 65 73 ine;.$messages[].=.'';.$messages
c8720 5b 5d 20 3d 20 27 27 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 [].=.'';..$output->writeln($mess
c8740 61 67 65 73 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 ages,.OutputInterface::OUTPUT_RA
c8760 57 29 3b 0a 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 W);..if.(OutputInterface::VERBOS
c8780 49 54 59 5f 56 45 52 42 4f 53 45 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f ITY_VERBOSE.<=.$output->getVerbo
c87a0 73 69 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d sity()).{.$output->writeln('<com
c87c0 6d 65 6e 74 3e 45 78 63 65 70 74 69 6f 6e 20 74 72 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 ment>Exception.trace:</comment>'
c87e0 29 3b 0a 0a 0a 20 24 74 72 61 63 65 20 3d 20 24 65 2d 3e 67 65 74 54 72 61 63 65 28 29 3b 0a 61 );....$trace.=.$e->getTrace();.a
c8800 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 72 61 63 65 2c 20 61 72 72 61 79 28 0a 27 66 75 6e rray_unshift($trace,.array(.'fun
c8820 63 74 69 6f 6e 27 20 3d 3e 20 27 27 2c 0a 27 66 69 6c 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 46 ction'.=>.'',.'file'.=>.$e->getF
c8840 69 6c 65 28 29 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 46 69 6c 65 28 29 20 3a ile().!==.null.?.$e->getFile().:
c8860 20 27 6e 2f 61 27 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 .'n/a',.'line'.=>.$e->getLine().
c8880 21 3d 3d 20 6e 75 6c 6c 20 3f 20 24 65 2d 3e 67 65 74 4c 69 6e 65 28 29 20 3a 20 27 6e 2f 61 27 !==.null.?.$e->getLine().:.'n/a'
c88a0 2c 0a 27 61 72 67 73 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 29 29 3b 0a 0a 66 6f 72 20 28 24 ,.'args'.=>.array(),.));..for.($
c88c0 69 20 3d 20 30 2c 20 24 63 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 72 61 63 65 29 3b 20 24 i.=.0,.$count.=.count($trace);.$
c88e0 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 69 73 73 i.<.$count;.$i++).{.$class.=.iss
c8900 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 29 20 3f 20 24 74 72 61 63 65 et($trace[$i]['class']).?.$trace
c8920 5b 24 69 5d 5b 27 63 6c 61 73 73 27 5d 20 3a 20 27 27 3b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 [$i]['class'].:.'';.$type.=.isse
c8940 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 74 79 70 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b 24 t($trace[$i]['type']).?.$trace[$
c8960 69 5d 5b 27 74 79 70 65 27 5d 20 3a 20 27 27 3b 0a 24 66 75 6e 63 74 69 6f 6e 20 3d 20 24 74 72 i]['type'].:.'';.$function.=.$tr
c8980 61 63 65 5b 24 69 5d 5b 27 66 75 6e 63 74 69 6f 6e 27 5d 3b 0a 24 66 69 6c 65 20 3d 20 69 73 73 ace[$i]['function'];.$file.=.iss
c89a0 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 66 69 6c 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b et($trace[$i]['file']).?.$trace[
c89c0 24 69 5d 5b 27 66 69 6c 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 24 6c 69 6e 65 20 3d 20 69 73 73 $i]['file'].:.'n/a';.$line.=.iss
c89e0 65 74 28 24 74 72 61 63 65 5b 24 69 5d 5b 27 6c 69 6e 65 27 5d 29 20 3f 20 24 74 72 61 63 65 5b et($trace[$i]['line']).?.$trace[
c8a00 24 69 5d 5b 27 6c 69 6e 65 27 5d 20 3a 20 27 6e 2f 61 27 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 $i]['line'].:.'n/a';..$output->w
c8a20 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 20 25 73 25 73 25 73 28 29 20 61 74 20 3c 69 6e riteln(sprintf('.%s%s%s().at.<in
c8a40 66 6f 3e 25 73 3a 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 24 63 6c 61 73 73 2c 20 24 74 79 70 65 2c fo>%s:%s</info>',.$class,.$type,
c8a60 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 66 69 6c 65 2c 20 24 6c 69 6e 65 29 29 3b 0a 7d 0a 0a 24 .$function,.$file,.$line));.}..$
c8a80 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 output->writeln("");.$output->wr
c8aa0 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 20 77 68 69 6c 65 20 28 24 65 20 3d 20 24 65 2d 3e 67 iteln("");.}.}.while.($e.=.$e->g
c8ac0 65 74 50 72 65 76 69 6f 75 73 28 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 etPrevious());..if.(null.!==.$th
c8ae0 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 is->runningCommand).{.$output->w
c8b00 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 riteln(sprintf('<info>%s</info>'
c8b20 2c 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 2d ,.sprintf($this->runningCommand-
c8b40 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 >getSynopsis(),.$this->getName()
c8b60 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 24 6f 75 74 70 )));.$output->writeln("");.$outp
c8b80 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 ut->writeln("");.}.}.......prote
c8ba0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 64 74 68 28 29 cted.function.getTerminalWidth()
c8bc0 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 .{.$dimensions.=.$this->getTermi
c8be0 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 6e 73 nalDimensions();..return.$dimens
c8c00 69 6f 6e 73 5b 30 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ions[0];.}.......protected.funct
c8c20 69 6f 6e 20 67 65 74 54 65 72 6d 69 6e 61 6c 48 65 69 67 68 74 28 29 0a 7b 0a 24 64 69 6d 65 6e ion.getTerminalHeight().{.$dimen
c8c40 73 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 sions.=.$this->getTerminalDimens
c8c60 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 6e 73 69 6f 6e 73 5b 31 5d 3b 0a ions();..return.$dimensions[1];.
c8c80 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 72 6d 69 }.......public.function.getTermi
c8ca0 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 65 72 nalDimensions().{.if.($this->ter
c8cc0 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d minalDimensions).{.return.$this-
c8ce0 3e 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 3b 0a 7d 0a 0a 69 66 20 28 27 5c 5c 27 >terminalDimensions;.}..if.('\\'
c8d00 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 0a 20 69 66 .===.DIRECTORY_SEPARATOR).{...if
c8d20 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b 29 78 5c 64 2b 20 5c 28 5c 64 2b 78 .(preg_match('/^(\d+)x\d+.\(\d+x
c8d40 28 5c 64 2b 29 5c 29 24 2f 27 2c 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e (\d+)\)$/',.trim(getenv('ANSICON
c8d60 27 29 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 ')),.$matches)).{.return.array((
c8d80 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 int).$matches[1],.(int).$matches
c8da0 5b 32 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b [2]);.}...if.(preg_match('/^(\d+
c8dc0 29 78 28 5c 64 2b 29 24 2f 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 )x(\d+)$/',.$this->getConsoleMod
c8de0 65 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 e(),.$matches)).{.return.array((
c8e00 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 int).$matches[1],.(int).$matches
c8e20 5b 32 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 73 74 74 79 53 74 72 69 6e 67 20 3d 20 24 74 68 [2]);.}.}..if.($sttyString.=.$th
c8e40 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 is->getSttyColumns()).{...if.(pr
c8e60 65 67 5f 6d 61 74 63 68 28 27 2f 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e 63 6f 6c 75 6d 6e 73 2e 28 eg_match('/rows.(\d+);.columns.(
c8e80 5c 64 2b 29 3b 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 65 73 29 \d+);/i',.$sttyString,.$matches)
c8ea0 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b ).{.return.array((int).$matches[
c8ec0 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 2],.(int).$matches[1]);.}...if.(
c8ee0 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 3b 2e 28 5c 64 2b 29 2e 72 6f 77 73 3b 2e 28 5c 64 2b 29 preg_match('/;.(\d+).rows;.(\d+)
c8f00 2e 63 6f 6c 75 6d 6e 73 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 24 6d 61 74 63 68 .columns/i',.$sttyString,.$match
c8f20 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 es)).{.return.array((int).$match
c8f40 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 7d 0a 0a es[2],.(int).$matches[1]);.}.}..
c8f60 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 75 6c 6c 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 0a 0a 0a return.array(null,.null);.}.....
c8f80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 65 72 6d 69 6e .......public.function.setTermin
c8fa0 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 24 77 69 64 74 68 2c 20 24 68 65 69 67 68 74 29 0a 7b 0a alDimensions($width,.$height).{.
c8fc0 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 61 72 72 61 $this->terminalDimensions.=.arra
c8fe0 79 28 24 77 69 64 74 68 2c 20 24 68 65 69 67 68 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 y($width,.$height);..return.$thi
c9000 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 s;.}........protected.function.c
c9020 6f 6e 66 69 67 75 72 65 49 4f 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 onfigureIO(InputInterface.$input
c9040 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 ,.OutputInterface.$output).{.if.
c9060 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 (true.===.$input->hasParameterOp
c9080 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 tion(array('--ansi'))).{.$output
c90a0 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 ->setDecorated(true);.}.elseif.(
c90c0 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 true.===.$input->hasParameterOpt
c90e0 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 29 29 29 20 7b 0a 24 6f 75 74 70 ion(array('--no-ansi'))).{.$outp
c9100 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 ut->setDecorated(false);.}..if.(
c9120 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 true.===.$input->hasParameterOpt
c9140 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 2d ion(array('--no-interaction',.'-
c9160 6e 27 29 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 n'))).{.$input->setInteractive(f
c9180 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 alse);.}.elseif.(function_exists
c91a0 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 48 65 ('posix_isatty').&&.$this->getHe
c91c0 6c 70 65 72 53 65 74 28 29 2d 3e 68 61 73 28 27 71 75 65 73 74 69 6f 6e 27 29 29 20 7b 0a 24 69 lperSet()->has('question')).{.$i
c91e0 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 nputStream.=.$this->getHelperSet
c9200 28 29 2d 3e 67 65 74 28 27 71 75 65 73 74 69 6f 6e 27 29 2d 3e 67 65 74 49 6e 70 75 74 53 74 72 ()->get('question')->getInputStr
c9220 65 61 6d 28 29 3b 0a 69 66 20 28 21 40 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 69 6e 70 75 74 eam();.if.(!@posix_isatty($input
c9240 53 74 72 65 61 6d 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 Stream)).{.$input->setInteractiv
c9260 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 e(false);.}.}..if.(true.===.$inp
c9280 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d ut->hasParameterOption(array('--
c92a0 71 75 69 65 74 27 2c 20 27 2d 71 27 29 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 quiet',.'-q'))).{.$output->setVe
c92c0 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 rbosity(OutputInterface::VERBOSI
c92e0 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e TY_QUIET);.}.else.{.if.($input->
c9300 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 76 76 27 29 20 7c 7c 20 24 69 hasParameterOption('-vvv').||.$i
c9320 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 nput->hasParameterOption('--verb
c9340 6f 73 65 3d 33 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f ose=3').||.$input->getParameterO
c9360 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d 3d 20 33 29 20 7b 0a 24 6f 75 74 ption('--verbose').===.3).{.$out
c9380 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 put->setVerbosity(OutputInterfac
c93a0 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 e::VERBOSITY_DEBUG);.}.elseif.($
c93c0 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 76 27 29 input->hasParameterOption('-vv')
c93e0 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 .||.$input->hasParameterOption('
c9400 2d 2d 76 65 72 62 6f 73 65 3d 32 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 --verbose=2').||.$input->getPara
c9420 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d 3d 20 32 29 20 meterOption('--verbose').===.2).
c9440 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e {.$output->setVerbosity(OutputIn
c9460 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 29 terface::VERBOSITY_VERY_VERBOSE)
c9480 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 ;.}.elseif.($input->hasParameter
c94a0 4f 70 74 69 6f 6e 28 27 2d 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d Option('-v').||.$input->hasParam
c94c0 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 31 27 29 20 7c 7c 20 24 69 6e eterOption('--verbose=1').||.$in
c94e0 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f put->hasParameterOption('--verbo
c9500 73 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 se').||.$input->getParameterOpti
c9520 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 on('--verbose')).{.$output->setV
c9540 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 erbosity(OutputInterface::VERBOS
c9560 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ITY_VERBOSE);.}.}.}.............
c9580 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 43 6f 6d 6d 61 ...protected.function.doRunComma
c95a0 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 nd(Command.$command,.InputInterf
c95c0 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 ace.$input,.OutputInterface.$out
c95e0 70 75 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 48 65 6c put).{.foreach.($command->getHel
c9600 70 65 72 53 65 74 28 29 20 61 73 20 24 68 65 6c 70 65 72 29 20 7b 0a 69 66 20 28 24 68 65 6c 70 perSet().as.$helper).{.if.($help
c9620 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 er.instanceof.InputAwareInterfac
c9640 65 29 20 7b 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a e).{.$helper->setInput($input);.
c9660 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 }.}..if.(null.===.$this->dispatc
c9680 68 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 69 6e 70 her).{.return.$command->run($inp
c96a0 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f ut,.$output);.}..$event.=.new.Co
c96c0 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 nsoleCommandEvent($command,.$inp
c96e0 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d ut,.$output);.$this->dispatcher-
c9700 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 >dispatch(ConsoleEvents::COMMAND
c9720 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 69 66 20 28 24 65 76 65 6e 74 2d 3e 63 6f 6d 6d 61 6e 64 53 ,.$event);..if.($event->commandS
c9740 68 6f 75 6c 64 52 75 6e 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 houldRun()).{.try.{.$exitCode.=.
c9760 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a $command->run($input,.$output);.
c9780 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 76 65 6e 74 }.catch.(\Exception.$e).{.$event
c97a0 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 6f .=.new.ConsoleTerminateEvent($co
c97c0 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2d 3e 67 65 74 43 mmand,.$input,.$output,.$e->getC
c97e0 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 ode());.$this->dispatcher->dispa
c9800 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 65 tch(ConsoleEvents::TERMINATE,.$e
c9820 76 65 6e 74 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 45 78 63 65 vent);..$event.=.new.ConsoleExce
c9840 70 74 69 6f 6e 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 ptionEvent($command,.$input,.$ou
c9860 74 70 75 74 2c 20 24 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 29 tput,.$e,.$event->getExitCode())
c9880 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f ;.$this->dispatcher->dispatch(Co
c98a0 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 45 58 43 45 50 54 49 4f 4e 2c 20 24 65 76 65 6e 74 29 3b nsoleEvents::EXCEPTION,.$event);
c98c0 0a 0a 74 68 72 6f 77 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a ..throw.$event->getException();.
c98e0 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 43 6f 6e 73 6f 6c 65 43 6f }.}.else.{.$exitCode.=.ConsoleCo
c9900 6d 6d 61 6e 64 45 76 65 6e 74 3a 3a 52 45 54 55 52 4e 5f 43 4f 44 45 5f 44 49 53 41 42 4c 45 44 mmandEvent::RETURN_CODE_DISABLED
c9920 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 ;.}..$event.=.new.ConsoleTermina
c9940 74 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 teEvent($command,.$input,.$outpu
c9960 74 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 t,.$exitCode);.$this->dispatcher
c9980 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e ->dispatch(ConsoleEvents::TERMIN
c99a0 41 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 2d 3e 67 65 ATE,.$event);..return.$event->ge
c99c0 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 tExitCode();.}.........protected
c99e0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 49 6e 70 75 74 49 6e .function.getCommandName(InputIn
c9a00 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 2d terface.$input).{.return.$input-
c9a20 3e 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f >getFirstArgument();.}.......pro
c9a40 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 tected.function.getDefaultInputD
c9a60 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 efinition().{.return.new.InputDe
c9a80 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e finition(array(.new.InputArgumen
c9aa0 74 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 t('command',.InputArgument::REQU
c9ac0 49 52 45 44 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 65 78 65 63 75 74 65 27 29 2c IRED,.'The.command.to.execute'),
c9ae0 0a 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 ..new.InputOption('--help',.'-h'
c9b00 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 ,.InputOption::VALUE_NONE,.'Disp
c9b20 6c 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 lay.this.help.message'),.new.Inp
c9b40 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 2c 20 49 6e 70 75 74 4f utOption('--quiet',.'-q',.InputO
c9b60 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 ption::VALUE_NONE,.'Do.not.outpu
c9b80 74 20 61 6e 79 20 6d 65 73 73 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e t.any.message'),.new.InputOption
c9ba0 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 ('--verbose',.'-v|vv|vvv',.Input
c9bc0 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 61 73 65 20 74 68 Option::VALUE_NONE,.'Increase.th
c9be0 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 3a 20 31 20 66 6f 72 20 6e e.verbosity.of.messages:.1.for.n
c9c00 6f 72 6d 61 6c 20 6f 75 74 70 75 74 2c 20 32 20 66 6f 72 20 6d 6f 72 65 20 76 65 72 62 6f 73 65 ormal.output,.2.for.more.verbose
c9c20 20 6f 75 74 70 75 74 20 61 6e 64 20 33 20 66 6f 72 20 64 65 62 75 67 27 29 2c 0a 6e 65 77 20 49 .output.and.3.for.debug'),.new.I
c9c40 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 2c 20 49 6e nputOption('--version',.'-V',.In
c9c60 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 20 putOption::VALUE_NONE,.'Display.
c9c80 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 27 29 2c 0a 6e 65 77 20 this.application.version'),.new.
c9ca0 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f InputOption('--ansi',.'',.InputO
c9cc0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 20 41 4e 53 49 20 6f ption::VALUE_NONE,.'Force.ANSI.o
c9ce0 75 74 70 75 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 61 utput'),.new.InputOption('--no-a
c9d00 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e nsi',.'',.InputOption::VALUE_NON
c9d20 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 74 27 29 2c 0a 6e 65 77 20 49 E,.'Disable.ANSI.output'),.new.I
c9d40 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e 27 2c 20 27 nputOption('--no-interaction',.'
c9d60 2d 6e 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 -n',.InputOption::VALUE_NONE,.'D
c9d80 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 76 65 20 71 75 65 73 74 69 o.not.ask.any.interactive.questi
c9da0 6f 6e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 on'),.));.}.......protected.func
c9dc0 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 72 65 74 75 tion.getDefaultCommands().{.retu
c9de0 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 28 29 2c 20 6e 65 77 20 rn.array(new.HelpCommand(),.new.
c9e00 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ListCommand());.}.......protecte
c9e20 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 d.function.getDefaultHelperSet()
c9e40 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 0a 6e .{.return.new.HelperSet(array(.n
c9e60 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 69 61 6c 6f 67 ew.FormatterHelper(),.new.Dialog
c9e80 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 28 29 2c 0a Helper(),.new.ProgressHelper(),.
c9ea0 6e 65 77 20 54 61 62 6c 65 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 65 62 75 67 46 6f 72 6d new.TableHelper(),.new.DebugForm
c9ec0 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 63 65 73 73 48 65 6c 70 65 72 atterHelper(),.new.ProcessHelper
c9ee0 28 29 2c 0a 6e 65 77 20 51 75 65 73 74 69 6f 6e 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a (),.new.QuestionHelper(),.));.}.
c9f00 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 74 79 43 6f ......private.function.getSttyCo
c9f20 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 lumns().{.if.(!function_exists('
c9f40 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 proc_open')).{.return;.}..$descr
c9f60 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 iptorspec.=.array(1.=>.array('pi
c9f80 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 pe',.'w'),.2.=>.array('pipe',.'w
c9fa0 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 27 73 74 74 79 20 '));.$process.=.proc_open('stty.
c9fc0 2d 61 20 7c 20 67 72 65 70 20 63 6f 6c 75 6d 6e 73 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 -a.|.grep.columns',.$descriptors
c9fe0 70 65 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 28 27 pec,.$pipes,.null,.null,.array('
ca000 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 20 28 suppress_errors'.=>.true));.if.(
ca020 69 73 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f 20 3d is_resource($process)).{.$info.=
ca040 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d 29 3b .stream_get_contents($pipes[1]);
ca060 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 .fclose($pipes[1]);.fclose($pipe
ca080 73 5b 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a 72 65 s[2]);.proc_close($process);..re
ca0a0 74 75 72 6e 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 turn.$info;.}.}.......private.fu
ca0c0 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 28 21 66 nction.getConsoleMode().{.if.(!f
ca0e0 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 unction_exists('proc_open')).{.r
ca100 65 74 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 eturn;.}..$descriptorspec.=.arra
ca120 79 28 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 y(1.=>.array('pipe',.'w'),.2.=>.
ca140 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 array('pipe',.'w'));.$process.=.
ca160 70 72 6f 63 5f 6f 70 65 6e 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 70 74 6f proc_open('mode.CON',.$descripto
ca180 72 73 70 65 63 2c 20 24 70 69 70 65 73 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 61 72 72 61 79 rspec,.$pipes,.null,.null,.array
ca1a0 28 27 73 75 70 70 72 65 73 73 5f 65 72 72 6f 72 73 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 69 66 ('suppress_errors'.=>.true));.if
ca1c0 20 28 69 73 5f 72 65 73 6f 75 72 63 65 28 24 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 69 6e 66 6f .(is_resource($process)).{.$info
ca1e0 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 65 73 5b 31 5d .=.stream_get_contents($pipes[1]
ca200 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 73 5b 31 5d 29 3b 0a 66 63 6c 6f 73 65 28 24 70 69 );.fclose($pipes[1]);.fclose($pi
ca220 70 65 73 5b 32 5d 29 3b 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 0a pes[2]);.proc_close($process);..
ca240 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 2d 2d 2d 2d 2d 2d 2d 2b 5c 72 3f 5c 6e 2e if.(preg_match('/--------+\r?\n.
ca260 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2f 27 2c 20 24 69 6e +?(\d+)\r?\n.+?(\d+)\r?\n/',.$in
ca280 66 6f 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 fo,.$matches)).{.return.$matches
ca2a0 5b 32 5d 2e 27 78 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a [2].'x'.$matches[1];.}.}.}......
ca2c0 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 ...private.function.getAbbreviat
ca2e0 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 ionSuggestions($abbrevs).{.retur
ca300 6e 20 73 70 72 69 6e 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 73 5b 30 n.sprintf('%s,.%s%s',.$abbrevs[0
ca320 5d 2c 20 24 61 62 62 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 ],.$abbrevs[1],.count($abbrevs).
ca340 3e 20 32 20 3f 20 73 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c 20 63 6f >.2.?.sprintf('.and.%d.more',.co
ca360 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a unt($abbrevs).-.2).:.'');.}.....
ca380 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 4e 61 .......public.function.extractNa
ca3a0 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a mespace($name,.$limit.=.null).{.
ca3c0 24 70 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 72 $parts.=.explode(':',.$name);.ar
ca3e0 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 ray_pop($parts);..return.implode
ca400 28 27 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 3a (':',.null.===.$limit.?.$parts.:
ca420 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 29 .array_slice($parts,.0,.$limit))
ca440 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 ;.}...........private.function.f
ca460 69 6e 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c 6c 65 63 74 69 indAlternatives($name,.$collecti
ca480 6f 6e 29 0a 7b 0a 24 74 68 72 65 73 68 6f 6c 64 20 3d 20 31 65 33 3b 0a 24 61 6c 74 65 72 6e 61 on).{.$threshold.=.1e3;.$alterna
ca4a0 74 69 76 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 tives.=.array();..$collectionPar
ca4c0 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 ts.=.array();.foreach.($collecti
ca4e0 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 74 73 5b on.as.$item).{.$collectionParts[
ca500 24 69 74 65 6d 5d 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a $item].=.explode(':',.$item);.}.
ca520 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 20 61 73 .foreach.(explode(':',.$name).as
ca540 20 24 69 20 3d 3e 20 24 73 75 62 6e 61 6d 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c .$i.=>.$subname).{.foreach.($col
ca560 6c 65 63 74 69 6f 6e 50 61 72 74 73 20 61 73 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 20 lectionParts.as.$collectionName.
ca580 3d 3e 20 24 70 61 72 74 73 29 20 7b 0a 24 65 78 69 73 74 73 20 3d 20 69 73 73 65 74 28 24 61 6c =>.$parts).{.$exists.=.isset($al
ca5a0 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 29 3b 0a 69 66 ternatives[$collectionName]);.if
ca5c0 20 28 21 69 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 5d 29 20 26 26 20 24 65 78 69 73 74 73 29 .(!isset($parts[$i]).&&.$exists)
ca5e0 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 .{.$alternatives[$collectionName
ca600 5d 20 2b 3d 20 24 74 68 72 65 73 68 6f 6c 64 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 ].+=.$threshold;.continue;.}.els
ca620 65 69 66 20 28 21 69 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 5d 29 29 20 7b 0a 63 6f 6e 74 69 eif.(!isset($parts[$i])).{.conti
ca640 6e 75 65 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 73 75 62 6e nue;.}..$lev.=.levenshtein($subn
ca660 61 6d 65 2c 20 24 70 61 72 74 73 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 ame,.$parts[$i]);.if.($lev.<=.st
ca680 72 6c 65 6e 28 24 73 75 62 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 27 27 20 21 3d 3d 20 24 73 75 rlen($subname)./.3.||.''.!==.$su
ca6a0 62 6e 61 6d 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 72 74 73 bname.&&.false.!==.strpos($parts
ca6c0 5b 24 69 5d 2c 20 24 73 75 62 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 [$i],.$subname)).{.$alternatives
ca6e0 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 3d 20 24 65 78 69 73 74 73 20 3f 20 24 61 [$collectionName].=.$exists.?.$a
ca700 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 2b 20 24 lternatives[$collectionName].+.$
ca720 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 65 78 69 73 74 73 29 20 7b lev.:.$lev;.}.elseif.($exists).{
ca740 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 .$alternatives[$collectionName].
ca760 2b 3d 20 24 74 68 72 65 73 68 6f 6c 64 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 +=.$threshold;.}.}.}..foreach.($
ca780 63 6f 6c 6c 65 63 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 6c 65 76 20 3d 20 6c 65 collection.as.$item).{.$lev.=.le
ca7a0 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 6d 29 3b 0a 69 66 20 28 24 6c 65 venshtein($name,.$item);.if.($le
ca7c0 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 33 20 7c 7c 20 66 61 6c 73 65 20 v.<=.strlen($name)./.3.||.false.
ca7e0 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 24 61 6c 74 !==.strpos($item,.$name)).{.$alt
ca800 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 3d 20 69 73 73 65 74 28 24 61 6c 74 65 72 6e ernatives[$item].=.isset($altern
ca820 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 29 20 3f 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 atives[$item]).?.$alternatives[$
ca840 69 74 65 6d 5d 20 2d 20 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 0a 7d 0a 0a 24 61 6c 74 65 72 item].-.$lev.:.$lev;.}.}..$alter
ca860 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 61 6c 74 65 72 6e 61 74 natives.=.array_filter($alternat
ca880 69 76 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6c 65 76 29 20 75 73 65 20 28 24 74 68 72 65 ives,.function.($lev).use.($thre
ca8a0 73 68 6f 6c 64 29 20 7b 20 72 65 74 75 72 6e 20 24 6c 65 76 20 3c 20 32 2a 24 74 68 72 65 73 68 shold).{.return.$lev.<.2*$thresh
ca8c0 6f 6c 64 3b 20 7d 29 3b 0a 61 73 6f 72 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 3b 0a 0a old;.});.asort($alternatives);..
ca8e0 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 return.array_keys($alternatives)
ca900 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 ;.}.......public.function.setDef
ca920 61 75 6c 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 aultCommand($commandName).{.$thi
ca940 73 2d 3e 64 65 66 61 75 6c 74 43 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 s->defaultCommand.=.$commandName
ca960 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 57 69 64 74 ;.}..private.function.stringWidt
ca980 68 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 h($string).{.if.(!function_exist
ca9a0 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 s('mb_strwidth')).{.return.strle
ca9c0 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e n($string);.}..if.(false.===.$en
ca9e0 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 coding.=.mb_detect_encoding($str
caa00 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a ing)).{.return.strlen($string);.
caa20 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 77 69 64 74 68 28 24 73 74 72 69 6e 67 2c 20 24 }..return.mb_strwidth($string,.$
caa40 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 encoding);.}..private.function.s
caa60 70 6c 69 74 53 74 72 69 6e 67 42 79 57 69 64 74 68 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 74 plitStringByWidth($string,.$widt
caa80 68 29 0a 7b 0a 0a 20 0a 20 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 h).{.......if.(!function_exists(
caaa0 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 73 70 6c 'mb_strwidth')).{.return.str_spl
caac0 69 74 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 it($string,.$width);.}..if.(fals
caae0 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f e.===.$encoding.=.mb_detect_enco
cab00 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 73 70 6c 69 ding($string)).{.return.str_spli
cab20 74 28 24 73 74 72 69 6e 67 2c 20 24 77 69 64 74 68 29 3b 0a 7d 0a 0a 24 75 74 66 38 53 74 72 69 t($string,.$width);.}..$utf8Stri
cab40 6e 67 20 3d 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 ng.=.mb_convert_encoding($string
cab60 2c 20 27 75 74 66 38 27 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 ,.'utf8',.$encoding);.$lines.=.a
cab80 72 72 61 79 28 29 3b 0a 24 6c 69 6e 65 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 rray();.$line.=.'';.foreach.(pre
caba0 67 5f 73 70 6c 69 74 28 27 2f 2f 75 27 2c 20 24 75 74 66 38 53 74 72 69 6e 67 29 20 61 73 20 24 g_split('//u',.$utf8String).as.$
cabc0 63 68 61 72 29 20 7b 0a 0a 20 69 66 20 28 6d 62 5f 73 74 72 77 69 64 74 68 28 24 6c 69 6e 65 2e char).{...if.(mb_strwidth($line.
cabe0 24 63 68 61 72 2c 20 27 75 74 66 38 27 29 20 3c 3d 20 24 77 69 64 74 68 29 20 7b 0a 24 6c 69 6e $char,.'utf8').<=.$width).{.$lin
cac00 65 20 2e 3d 20 24 63 68 61 72 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 20 24 6c 69 6e 65 73 e..=.$char;.continue;.}...$lines
cac20 5b 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 29 3b 0a 24 6c 69 [].=.str_pad($line,.$width);.$li
cac40 6e 65 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 ne.=.$char;.}.if.(strlen($line))
cac60 20 7b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 20 3f 20 73 74 .{.$lines[].=.count($lines).?.st
cac80 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 77 69 64 74 68 29 20 3a 20 24 6c 69 6e 65 3b 0a 7d 0a r_pad($line,.$width).:.$line;.}.
caca0 0a 6d 62 5f 63 6f 6e 76 65 72 74 5f 76 61 72 69 61 62 6c 65 73 28 24 65 6e 63 6f 64 69 6e 67 2c .mb_convert_variables($encoding,
cacc0 20 27 75 74 66 38 27 2c 20 24 6c 69 6e 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 73 .'utf8',.$lines);..return.$lines
cace0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 ;.}.........private.function.ext
cad00 72 61 63 74 41 6c 6c 4e 61 6d 65 73 70 61 63 65 73 28 24 6e 61 6d 65 29 0a 7b 0a 0a 20 24 70 61 ractAllNamespaces($name).{...$pa
cad20 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 2c 20 2d 31 29 3b 0a 24 rts.=.explode(':',.$name,.-1);.$
cad40 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 namespaces.=.array();..foreach.(
cad60 24 70 61 72 74 73 20 61 73 20 24 70 61 72 74 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 6e 61 $parts.as.$part).{.if.(count($na
cad80 6d 65 73 70 61 63 65 73 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 65 6e 64 mespaces)).{.$namespaces[].=.end
cada0 28 24 6e 61 6d 65 73 70 61 63 65 73 29 2e 27 3a 27 2e 24 70 61 72 74 3b 0a 7d 20 65 6c 73 65 20 ($namespaces).':'.$part;.}.else.
cadc0 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 5b 5d 20 3d 20 24 70 61 72 74 3b 0a 7d 0a 7d 0a 0a 72 65 {.$namespaces[].=.$part;.}.}..re
cade0 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a turn.$namespaces;.}.}.<?php.....
cae00 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
cae20 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 t\Console\Input;.........class.I
cae40 6e 70 75 74 41 72 67 75 6d 65 6e 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 51 55 49 52 45 44 20 3d 20 nputArgument.{.const.REQUIRED.=.
cae60 31 3b 0a 63 6f 6e 73 74 20 4f 50 54 49 4f 4e 41 4c 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 49 53 5f 1;.const.OPTIONAL.=.2;.const.IS_
cae80 41 52 52 41 59 20 3d 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 ARRAY.=.4;..private.$name;.priva
caea0 74 65 20 24 6d 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 te.$mode;.private.$default;.priv
caec0 61 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ate.$description;..............p
caee0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 ublic.function.__construct($name
caf00 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 27 ,.$mode.=.null,.$description.=.'
caf20 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d ',.$default.=.null).{.if.(null.=
caf40 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 4f 50 54 49 4f 4e ==.$mode).{.$mode.=.self::OPTION
caf60 41 4c 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c 7c 20 AL;.}.elseif.(!is_int($mode).||.
caf80 24 6d 6f 64 65 20 3e 20 37 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 6f 77 20 $mode.>.7.||.$mode.<.1).{.throw.
cafa0 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
cafc0 72 69 6e 74 66 28 27 41 72 67 75 6d 65 6e 74 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f 74 rintf('Argument.mode."%s".is.not
cafe0 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d .valid.',.$mode));.}..$this->nam
cb000 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a e.=.$name;.$this->mode.=.$mode;.
cb020 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f $this->description.=.$descriptio
cb040 6e 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b n;..$this->setDefault($default);
cb060 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 .}.......public.function.getName
cb080 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a ().{.return.$this->name;.}......
cb0a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 71 75 69 72 65 64 28 29 0a 7b 0a .public.function.isRequired().{.
cb0c0 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c 66 3a return.self::REQUIRED.===.(self:
cb0e0 3a 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a :REQUIRED.&.$this->mode);.}.....
cb100 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 ..public.function.isArray().{.re
cb120 74 75 72 6e 20 73 65 6c 66 3a 3a 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 49 turn.self::IS_ARRAY.===.(self::I
cb140 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a S_ARRAY.&.$this->mode);.}.......
cb160 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 6c 74 28 24 64 65 ..public.function.setDefault($de
cb180 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 52 45 51 55 49 52 fault.=.null).{.if.(self::REQUIR
cb1a0 45 44 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 ED.===.$this->mode.&&.null.!==.$
cb1c0 64 65 66 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 default).{.throw.new.\LogicExcep
cb1e0 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 tion('Cannot.set.a.default.value
cb200 20 65 78 63 65 70 74 20 66 6f 72 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f .except.for.InputArgument::OPTIO
cb220 4e 41 4c 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 NAL.mode.');.}..if.($this->isArr
cb240 61 79 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b ay()).{.if.(null.===.$default).{
cb260 0a 24 64 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 .$default.=.array();.}.elseif.(!
cb280 69 73 5f 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 is_array($default)).{.throw.new.
cb2a0 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 \LogicException('A.default.value
cb2c0 20 66 6f 72 20 61 6e 20 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 20 6d 75 73 74 20 62 65 20 61 .for.an.array.argument.must.be.a
cb2e0 6e 20 61 72 72 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 n.array.');.}.}..$this->default.
cb300 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$default;.}.......public.funct
cb320 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getDefault().{.return.$this-
cb340 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f >default;.}.......public.functio
cb360 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 n.getDescription().{.return.$thi
cb380 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a s->description;.}.}.<?php.......
cb3a0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
cb3c0 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 Console\Input;.............abstr
cb3e0 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 act.class.Input.implements.Input
cb400 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 Interface.{....protected.$defini
cb420 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 tion;.protected.$options.=.array
cb440 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 ();.protected.$arguments.=.array
cb460 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 72 75 ();.protected.$interactive.=.tru
cb480 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 e;.......public.function.__const
cb4a0 72 75 63 74 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e ruct(InputDefinition.$definition
cb4c0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 74 .=.null).{.if.(null.===.$definit
cb4e0 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 ion).{.$this->definition.=.new.I
cb500 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 nputDefinition();.}.else.{.$this
cb520 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 ->bind($definition);.$this->vali
cb540 64 61 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f date();.}.}.......public.functio
cb560 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 n.bind(InputDefinition.$definiti
cb580 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 on).{.$this->arguments.=.array()
cb5a0 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 ;.$this->options.=.array();.$thi
cb5c0 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 24 74 s->definition.=.$definition;..$t
cb5e0 68 69 73 2d 3e 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f his->parse();.}.....abstract.pro
cb600 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 tected.function.parse();.......p
cb620 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 69 66 20 28 ublic.function.validate().{.if.(
cb640 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c 20 24 74 68 69 73 2d count($this->arguments).<.$this-
cb660 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 >definition->getArgumentRequired
cb680 43 6f 75 6e 74 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 Count()).{.throw.new.\RuntimeExc
cb6a0 65 70 74 69 6f 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b eption('Not.enough.arguments.');
cb6c0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 .}.}.......public.function.isInt
cb6e0 65 72 61 63 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 74 65 72 eractive().{.return.$this->inter
cb700 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 active;.}.......public.function.
cb720 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 0a 7b 0a 24 setInteractive($interactive).{.$
cb740 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 62 6f 6f 6c 29 20 24 69 6e 74 65 this->interactive.=.(bool).$inte
cb760 72 61 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ractive;.}.......public.function
cb780 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d .getArguments().{.return.array_m
cb7a0 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d erge($this->definition->getArgum
cb7c0 65 6e 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 entDefaults(),.$this->arguments)
cb7e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ;.}...........public.function.ge
cb800 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 tArgument($name).{.if.(!$this->d
cb820 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b efinition->hasArgument($name)).{
cb840 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
cb860 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 tion(sprintf('The."%s".argument.
cb880 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 does.not.exist.',.$name));.}..re
cb8a0 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d turn.isset($this->arguments[$nam
cb8c0 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 e]).?.$this->arguments[$name].:.
cb8e0 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 $this->definition->getArgument($
cb900 6e 61 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a name)->getDefault();.}..........
cb920 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d public.function.setArgument($nam
cb940 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 e,.$value).{.if.(!$this->definit
cb960 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 ion->hasArgument($name)).{.throw
cb980 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
cb9a0 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e printf('The."%s".argument.does.n
cb9c0 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 ot.exist.',.$name));.}..$this->a
cb9e0 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a rguments[$name].=.$value;.}.....
cba00 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 ....public.function.hasArgument(
cba20 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f $name).{.return.$this->definitio
cba40 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 n->hasArgument($name);.}.......p
cba60 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 ublic.function.getOptions().{.re
cba80 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 turn.array_merge($this->definiti
cbaa0 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e on->getOptionDefaults(),.$this->
cbac0 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e options);.}...........public.fun
cbae0 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 ction.getOption($name).{.if.(!$t
cbb00 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 his->definition->hasOption($name
cbb20 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
cbb40 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f xception(sprintf('The."%s".optio
cbb60 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a n.does.not.exist.',.$name));.}..
cbb80 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d return.isset($this->options[$nam
cbba0 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 e]).?.$this->options[$name].:.$t
cbbc0 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 his->definition->getOption($name
cbbe0 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c )->getDefault();.}..........publ
cbc00 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 ic.function.setOption($name,.$va
cbc20 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 lue).{.if.(!$this->definition->h
cbc40 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e asOption($name)).{.throw.new.\In
cbc60 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 validArgumentException(sprintf('
cbc80 54 68 65 20 22 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 The."%s".option.does.not.exist.'
cbca0 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 ,.$name));.}..$this->options[$na
cbcc0 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 me].=.$value;.}.........public.f
cbce0 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 unction.hasOption($name).{.retur
cbd00 6e 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 n.$this->definition->hasOption($
cbd20 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e name);.}.........public.function
cbd40 20 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 .escapeToken($token).{.return.pr
cbd60 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2d 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 20 3f eg_match('{^[\w-]+$}',.$token).?
cbd80 20 24 74 6f 6b 65 6e 20 3a 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 6f 6b 65 6e 29 .$token.:.escapeshellarg($token)
cbda0 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 ;.}.}.<?php...........namespace.
cbdc0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b Symfony\Component\Console\Input;
cbde0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 .............class.StringInput.e
cbe00 78 74 65 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 xtends.ArgvInput.{.const.REGEX_S
cbe20 54 52 49 4e 47 20 3d 20 27 28 5b 5e 5c 73 5d 2b 3f 29 28 3f 3a 5c 73 7c 28 3f 3c 21 5c 5c 5c 5c TRING.=.'([^\s]+?)(?:\s|(?<!\\\\
cbe40 29 22 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f )"|(?<!\\\\)\'|$)';.const.REGEX_
cbe60 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 QUOTED_STRING.=.'(?:"([^"\\\\]*(
cbe80 3f 3a 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c ?:\\\\.[^"\\\\]*)*)"|\'([^\'\\\\
cbea0 5d 2a 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a ]*(?:\\\\.[^\'\\\\]*)*)\')';....
cbec0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
cbee0 75 63 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 uct($input,.InputDefinition.$def
cbf00 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 inition.=.null).{.parent::__cons
cbf20 74 72 75 63 74 28 61 72 72 61 79 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 truct(array(),.null);..$this->se
cbf40 74 54 6f 6b 65 6e 73 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 tTokens($this->tokenize($input))
cbf60 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 ;..if.(null.!==.$definition).{.$
cbf80 74 68 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a this->bind($definition);.}.}....
cbfa0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 6f 6b 65 6e 69 7a 65 .......private.function.tokenize
cbfc0 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c ($input).{.$tokens.=.array();.$l
cbfe0 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 69 6e 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 ength.=.strlen($input);.$cursor.
cc000 3d 20 30 3b 0a 77 68 69 6c 65 20 28 24 63 75 72 73 6f 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b =.0;.while.($cursor.<.$length).{
cc020 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 .if.(preg_match('/\s+/A',.$input
cc040 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 7d 20 65 6c ,.$match,.null,.$cursor)).{.}.el
cc060 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5b 5e 3d 22 5c 27 5c 73 5d 2b 3f 29 seif.(preg_match('/([^="\'\s]+?)
cc080 28 3d 3f 29 28 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 (=?)('.self::REGEX_QUOTED_STRING
cc0a0 2e 27 2b 29 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 6c 6c 2c 20 24 .'+)/A',.$input,.$match,.null,.$
cc0c0 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d cursor)).{.$tokens[].=.$match[1]
cc0e0 2e 24 6d 61 74 63 68 5b 32 5d 2e 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 74 72 5f 72 65 70 .$match[2].stripcslashes(str_rep
cc100 6c 61 63 65 28 61 72 72 61 79 28 27 22 5c 27 27 2c 20 27 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c lace(array('"\'',.'\'"',.'\'\'',
cc120 20 27 22 22 27 29 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c .'""'),.'',.substr($match[3],.1,
cc140 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 33 5d 29 20 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 .strlen($match[3]).-.2)));.}.els
cc160 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f eif.(preg_match('/'.self::REGEX_
cc180 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 QUOTED_STRING.'/A',.$input,.$mat
cc1a0 63 68 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 ch,.null,.$cursor)).{.$tokens[].
cc1c0 3d 20 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d =.stripcslashes(substr($match[0]
cc1e0 2c 20 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 ,.1,.strlen($match[0]).-.2));.}.
cc200 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 elseif.(preg_match('/'.self::REG
cc220 45 58 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 EX_STRING.'/A',.$input,.$match,.
cc240 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 null,.$cursor)).{.$tokens[].=.st
cc260 72 69 70 63 73 6c 61 73 68 65 73 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b ripcslashes($match[1]);.}.else.{
cc280 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 ...throw.new.\InvalidArgumentExc
cc2a0 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 eption(sprintf('Unable.to.parse.
cc2c0 69 6e 70 75 74 20 6e 65 61 72 20 22 2e 2e 2e 20 25 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 72 input.near."....%s...."',.substr
cc2e0 28 24 69 6e 70 75 74 2c 20 24 63 75 72 73 6f 72 2c 20 31 30 29 29 29 3b 0a 7d 0a 0a 24 63 75 72 ($input,.$cursor,.10)));.}..$cur
cc300 73 6f 72 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 sor.+=.strlen($match[0]);.}..ret
cc320 75 72 6e 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$tokens;.}.}.<?php..........
cc340 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
cc360 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 70 75 74 4f sole\Input;.........class.InputO
cc380 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b 0a 63 6f ption.{.const.VALUE_NONE.=.1;.co
cc3a0 6e 73 74 20 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 41 nst.VALUE_REQUIRED.=.2;.const.VA
cc3c0 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 49 53 LUE_OPTIONAL.=.4;.const.VALUE_IS
cc3e0 5f 41 52 52 41 59 20 3d 20 38 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 _ARRAY.=.8;..private.$name;.priv
cc400 61 74 65 20 24 73 68 6f 72 74 63 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a 70 72 ate.$shortcut;.private.$mode;.pr
cc420 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 ivate.$default;.private.$descrip
cc440 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tion;...............public.funct
cc460 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 73 68 6f 72 74 63 75 74 ion.__construct($name,.$shortcut
cc480 20 3d 20 6e 75 6c 6c 2c 20 24 6d 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 24 64 65 73 63 72 69 70 74 .=.null,.$mode.=.null,.$descript
cc4a0 69 6f 6e 20 3d 20 27 27 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 ion.=.'',.$default.=.null).{.if.
cc4c0 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 6e (0.===.strpos($name,.'--')).{.$n
cc4e0 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 65 ame.=.substr($name,.2);.}..if.(e
cc500 6d 70 74 79 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 mpty($name)).{.throw.new.\Invali
cc520 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 dArgumentException('An.option.na
cc540 6d 65 20 63 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d me.cannot.be.empty.');.}..if.(em
cc560 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 6e 75 pty($shortcut)).{.$shortcut.=.nu
cc580 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 20 7b ll;.}..if.(null.!==.$shortcut).{
cc5a0 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f .if.(is_array($shortcut)).{.$sho
cc5c0 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 74 29 3b rtcut.=.implode('|',.$shortcut);
cc5e0 0a 7d 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 28 5c 7c .}.$shortcuts.=.preg_split('{(\|
cc600 29 2d 3f 7d 27 2c 20 6c 74 72 69 6d 28 24 73 68 6f 72 74 63 75 74 2c 20 27 2d 27 29 29 3b 0a 24 )-?}',.ltrim($shortcut,.'-'));.$
cc620 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 73 68 6f 72 74 63 shortcuts.=.array_filter($shortc
cc640 75 74 73 29 3b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 uts);.$shortcut.=.implode('|',.$
cc660 73 68 6f 72 74 63 75 74 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 shortcuts);..if.(empty($shortcut
cc680 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
cc6a0 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 20 63 61 6e xception('An.option.shortcut.can
cc6c0 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d not.be.empty.');.}.}..if.(null.=
cc6e0 3d 3d 20 24 6d 6f 64 65 29 20 7b 0a 24 6d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f ==.$mode).{.$mode.=.self::VALUE_
cc700 4e 4f 4e 45 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6d 6f 64 65 29 20 7c NONE;.}.elseif.(!is_int($mode).|
cc720 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 68 72 |.$mode.>.15.||.$mode.<.1).{.thr
cc740 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ow.new.\InvalidArgumentException
cc760 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 6e 6f (sprintf('Option.mode."%s".is.no
cc780 74 20 76 61 6c 69 64 2e 27 2c 20 24 6d 6f 64 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 t.valid.',.$mode));.}..$this->na
cc7a0 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 20 3d 20 24 73 me.=.$name;.$this->shortcut.=.$s
cc7c0 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 24 74 hortcut;.$this->mode.=.$mode;.$t
cc7e0 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b his->description.=.$description;
cc800 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 20 26 26 20 21 24 74 68 69 73 ..if.($this->isArray().&&.!$this
cc820 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e ->acceptValue()).{.throw.new.\In
cc840 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6d 70 6f 73 73 69 62 validArgumentException('Impossib
cc860 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 6f 64 65 20 56 41 4c 55 45 5f le.to.have.an.option.mode.VALUE_
cc880 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 IS_ARRAY.if.the.option.does.not.
cc8a0 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 accept.a.value.');.}..$this->set
cc8c0 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 Default($default);.}.......publi
cc8e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 74 28 29 0a 7b 0a 72 65 74 75 72 c.function.getShortcut().{.retur
cc900 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 n.$this->shortcut;.}.......publi
cc920 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 c.function.getName().{.return.$t
cc940 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his->name;.}.......public.functi
cc960 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.acceptValue().{.return.$this-
cc980 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 56 >isValueRequired().||.$this->isV
cc9a0 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 alueOptional();.}.......public.f
cc9c0 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 74 75 unction.isValueRequired().{.retu
cc9e0 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 65 6c rn.self::VALUE_REQUIRED.===.(sel
cca00 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 f::VALUE_REQUIRED.&.$this->mode)
cca20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 ;.}.......public.function.isValu
cca40 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 eOptional().{.return.self::VALUE
cca60 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 49 4f _OPTIONAL.===.(self::VALUE_OPTIO
cca80 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c NAL.&.$this->mode);.}.......publ
ccaa0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 72 72 61 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 ic.function.isArray().{.return.s
ccac0 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 elf::VALUE_IS_ARRAY.===.(self::V
ccae0 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a ALUE_IS_ARRAY.&.$this->mode);.}.
ccb00 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 66 61 75 ........public.function.setDefau
ccb20 6c 74 28 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a lt($default.=.null).{.if.(self::
ccb40 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 VALUE_NONE.===.(self::VALUE_NONE
ccb60 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 .&.$this->mode).&&.null.!==.$def
ccb80 61 75 6c 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f ault).{.throw.new.\LogicExceptio
ccba0 6e 28 27 43 61 6e 6e 6f 74 20 73 65 74 20 61 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 77 68 n('Cannot.set.a.default.value.wh
ccbc0 65 6e 20 75 73 69 6e 67 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 en.using.InputOption::VALUE_NONE
ccbe0 20 6d 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 .mode.');.}..if.($this->isArray(
ccc00 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 )).{.if.(null.===.$default).{.$d
ccc20 65 66 61 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 5f efault.=.array();.}.elseif.(!is_
ccc40 61 72 72 61 79 28 24 64 65 66 61 75 6c 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f array($default)).{.throw.new.\Lo
ccc60 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 20 66 6f gicException('A.default.value.fo
ccc80 72 20 61 6e 20 61 72 72 61 79 20 6f 70 74 69 6f 6e 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 r.an.array.option.must.be.an.arr
ccca0 61 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 74 68 ay.');.}.}..$this->default.=.$th
cccc0 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 24 64 65 66 61 75 6c 74 20 3a 20 66 is->acceptValue().?.$default.:.f
ccce0 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 alse;.}.......public.function.ge
ccd00 74 44 65 66 61 75 6c 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 tDefault().{.return.$this->defau
ccd20 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 lt;.}.......public.function.getD
ccd40 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 escription().{.return.$this->des
ccd60 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cription;.}.........public.funct
ccd80 69 6f 6e 20 65 71 75 61 6c 73 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a ion.equals(InputOption.$option).
ccda0 7b 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 {.return.$option->getName().===.
ccdc0 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 $this->getName().&&.$option->get
ccde0 53 68 6f 72 74 63 75 74 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 6f 72 74 63 75 Shortcut().===.$this->getShortcu
cce00 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3d 3d 3d t().&&.$option->getDefault().===
cce20 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 0a 26 26 20 24 6f 70 74 69 6f 6e 2d .$this->getDefault().&&.$option-
cce40 3e 69 73 41 72 72 61 79 28 29 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 0a >isArray().===.$this->isArray().
cce60 26 26 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3d 3d &&.$option->isValueRequired().==
cce80 3d 20 24 74 68 69 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 26 26 20 24 6f =.$this->isValueRequired().&&.$o
ccea0 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3d 3d 3d 20 24 74 68 ption->isValueOptional().===.$th
ccec0 69 73 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 3b 0a 7d 0a 7d 0a 3c 3f 70 68 is->isValueOptional().;.}.}.<?ph
ccee0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
ccf00 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mponent\Console\Input;..........
ccf20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 67 76 49 6e 70 ...................class.ArgvInp
ccf40 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 6f 6b 65 ut.extends.Input.{.private.$toke
ccf60 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ns;.private.$parsed;..........pu
ccf80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 blic.function.__construct(array.
ccfa0 24 61 72 67 76 20 3d 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 $argv.=.null,.InputDefinition.$d
ccfc0 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d efinition.=.null).{.if.(null.===
ccfe0 20 24 61 72 67 76 29 20 7b 0a 24 61 72 67 76 20 3d 20 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 .$argv).{.$argv.=.$_SERVER['argv
cd000 27 5d 3b 0a 7d 0a 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 61 72 67 76 29 3b 0a 0a 24 74 '];.}....array_shift($argv);..$t
cd020 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 61 72 67 76 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f his->tokens.=.$argv;..parent::__
cd040 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 70 72 6f 74 65 construct($definition);.}..prote
cd060 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 6f 6b 65 6e 73 28 61 72 72 61 79 20 24 74 cted.function.setTokens(array.$t
cd080 6f 6b 65 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 3d 20 24 74 6f 6b 65 6e 73 okens).{.$this->tokens.=.$tokens
cd0a0 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 ;.}.....protected.function.parse
cd0c0 28 29 0a 7b 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 ().{.$parseOptions.=.true;.$this
cd0e0 2d 3e 70 61 72 73 65 64 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 77 68 69 6c 65 20 ->parsed.=.$this->tokens;.while.
cd100 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 (null.!==.$token.=.array_shift($
cd120 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 69 66 20 28 24 70 61 72 73 65 4f 70 74 69 6f this->parsed)).{.if.($parseOptio
cd140 6e 73 20 26 26 20 27 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 ns.&&.''.==.$token).{.$this->par
cd160 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 seArgument($token);.}.elseif.($p
cd180 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 2d 27 20 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b arseOptions.&&.'--'.==.$token).{
cd1a0 0a 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 .$parseOptions.=.false;.}.elseif
cd1c0 20 28 24 70 61 72 73 65 4f 70 74 69 6f 6e 73 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 .($parseOptions.&&.0.===.strpos(
cd1e0 24 74 6f 6b 65 6e 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 6f 6e $token,.'--')).{.$this->parseLon
cd200 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 72 73 gOption($token);.}.elseif.($pars
cd220 65 4f 70 74 69 6f 6e 73 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 20 26 26 eOptions.&&.'-'.===.$token[0].&&
cd240 20 27 2d 27 20 21 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 53 .'-'.!==.$token).{.$this->parseS
cd260 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 hortOption($token);.}.else.{.$th
cd280 69 73 2d 3e 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 7d 0a 7d is->parseArgument($token);.}.}.}
cd2a0 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f .......private.function.parseSho
cd2c0 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 rtOption($token).{.$name.=.subst
cd2e0 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 r($token,.1);..if.(strlen($name)
cd300 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 .>.1).{.if.($this->definition->h
cd320 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 asShortcut($name[0]).&&.$this->d
cd340 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 efinition->getOptionForShortcut(
cd360 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 74 $name[0])->acceptValue()).{...$t
cd380 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 75 his->addShortOption($name[0],.su
cd3a0 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d bstr($name,.1));.}.else.{.$this-
cd3c0 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 7d >parseShortOptionSet($name);.}.}
cd3e0 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e .else.{.$this->addShortOption($n
cd400 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ame,.null);.}.}.........private.
cd420 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 function.parseShortOptionSet($na
cd440 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 20 me).{.$len.=.strlen($name);.for.
cd460 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 ($i.=.0;.$i.<.$len;.$i++).{.if.(
cd480 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 !$this->definition->hasShortcut(
cd4a0 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 $name[$i])).{.throw.new.\Runtime
cd4c0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 Exception(sprintf('The."-%s".opt
cd4e0 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 5b 24 69 5d 29 ion.does.not.exist.',.$name[$i])
cd500 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f );.}..$option.=.$this->definitio
cd520 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 69 n->getOptionForShortcut($name[$i
cd540 5d 29 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 ]);.if.($option->acceptValue()).
cd560 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e {.$this->addLongOption($option->
cd580 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 6c getName(),.$i.===.$len.-.1.?.nul
cd5a0 6c 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 65 l.:.substr($name,.$i.+.1));..bre
cd5c0 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f ak;.}.else.{.$this->addLongOptio
cd5e0 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d n($option->getName(),.null);.}.}
cd600 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c .}.......private.function.parseL
cd620 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 ongOption($token).{.$name.=.subs
cd640 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 tr($token,.2);..if.(false.!==.$p
cd660 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 73 os.=.strpos($name,.'=')).{.$this
cd680 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c ->addLongOption(substr($name,.0,
cd6a0 20 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 29 .$pos),.substr($name,.$pos.+.1))
cd6c0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 ;.}.else.{.$this->addLongOption(
cd6e0 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 $name,.null);.}.}.........privat
cd700 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e 29 e.function.parseArgument($token)
cd720 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b .{.$c.=.count($this->arguments);
cd740 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 ....if.($this->definition->hasAr
cd760 67 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 gument($c)).{.$arg.=.$this->defi
cd780 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d 3e nition->getArgument($c);.$this->
cd7a0 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 arguments[$arg->getName()].=.$ar
cd7c0 67 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 g->isArray().?.array($token).:.$
cd7e0 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e token;....}.elseif.($this->defin
cd800 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 ition->hasArgument($c.-.1).&&.$t
cd820 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 his->definition->getArgument($c.
cd840 2d 20 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d -.1)->isArray()).{.$arg.=.$this-
cd860 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 >definition->getArgument($c.-.1)
cd880 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 ;.$this->arguments[$arg->getName
cd8a0 28 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f ()][].=.$token;....}.else.{.thro
cd8c0 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 6f 6f 20 6d 61 6e w.new.\RuntimeException('Too.man
cd8e0 79 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 y.arguments.');.}.}..........pri
cd900 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 vate.function.addShortOption($sh
cd920 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 ortcut,.$value).{.if.(!$this->de
cd940 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 finition->hasShortcut($shortcut)
cd960 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 ).{.throw.new.\RuntimeException(
cd980 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e sprintf('The."-%s".option.does.n
cd9a0 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 ot.exist.',.$shortcut));.}..$thi
cd9c0 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 s->addLongOption($this->definiti
cd9e0 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 on->getOptionForShortcut($shortc
cda00 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ut)->getName(),.$value);.}......
cda20 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 ....private.function.addLongOpti
cda40 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e on($name,.$value).{.if.(!$this->
cda60 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a definition->hasOption($name)).{.
cda80 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 throw.new.\RuntimeException(spri
cdaa0 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 ntf('The."--%s".option.does.not.
cdac0 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d 20 24 exist.',.$name));.}..$option.=.$
cdae0 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d this->definition->getOption($nam
cdb00 65 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 e);....if.(false.===.$value).{.$
cdb20 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 value.=.null;.}..if.(null.!==.$v
cdb40 61 6c 75 65 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 alue.&&.!$option->acceptValue())
cdb60 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 .{.throw.new.\RuntimeException(s
cdb80 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e printf('The."--%s".option.does.n
cdba0 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c ot.accept.a.value.',.$name,.$val
cdbc0 75 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 ue));.}..if.(null.===.$value.&&.
cdbe0 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 63 6f 75 6e 74 28 $option->acceptValue().&&.count(
cdc00 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 61 72 $this->parsed)).{.....$next.=.ar
cdc20 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 3b 0a 69 66 20 28 69 73 ray_shift($this->parsed);.if.(is
cdc40 73 65 74 28 24 6e 65 78 74 5b 30 5d 29 20 26 26 20 27 2d 27 20 21 3d 3d 20 24 6e 65 78 74 5b 30 set($next[0]).&&.'-'.!==.$next[0
cdc60 5d 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 6e 65 78 74 3b 0a 7d 20 65 6c 73 65 69 66 20 28 65 ]).{.$value.=.$next;.}.elseif.(e
cdc80 6d 70 74 79 28 24 6e 65 78 74 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 27 27 3b 0a 7d 20 65 6c mpty($next)).{.$value.=.'';.}.el
cdca0 73 65 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 se.{.array_unshift($this->parsed
cdcc0 2c 20 24 6e 65 78 74 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c ,.$next);.}.}..if.(null.===.$val
cdce0 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 ue).{.if.($option->isValueRequir
cdd00 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ed()).{.throw.new.\RuntimeExcept
cdd20 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 ion(sprintf('The."--%s".option.r
cdd40 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 69 equires.a.value.',.$name));.}..i
cdd60 66 20 28 21 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 76 61 6c 75 65 f.(!$option->isArray()).{.$value
cdd80 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 .=.$option->isValueOptional().?.
cdda0 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a $option->getDefault().:.true;.}.
cddc0 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 }..if.($option->isArray()).{.$th
cdde0 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d is->options[$name][].=.$value;.}
cde00 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 .else.{.$this->options[$name].=.
cde20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $value;.}.}.......public.functio
cde40 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 n.getFirstArgument().{.foreach.(
cde60 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 69 66 20 28 24 $this->tokens.as.$token).{.if.($
cde80 74 6f 6b 65 6e 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 74 6f 6b 65 6e 5b 30 5d 29 20 7b 0a 63 6f token.&&.'-'.===.$token[0]).{.co
cdea0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 7d 0a 0a 0a ntinue;.}..return.$token;.}.}...
cdec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 .........public.function.hasPara
cdee0 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d meterOption($values).{.$values.=
cdf00 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 .(array).$values;..foreach.($thi
cdf20 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 s->tokens.as.$token).{.foreach.(
cdf40 24 76 61 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 $values.as.$value).{.if.($token.
cdf60 3d 3d 3d 20 24 76 61 6c 75 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 ===.$value.||.0.===.strpos($toke
cdf80 6e 2c 20 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d n,.$value.'=')).{.return.true;.}
cdfa0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .}.}..return.false;.}...........
cdfc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 ..public.function.getParameterOp
cdfe0 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a tion($values,.$default.=.false).
ce000 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 24 74 6f {.$values.=.(array).$values;.$to
ce020 6b 65 6e 73 20 3d 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 3b 0a 0a 77 68 69 6c 65 20 28 30 20 kens.=.$this->tokens;..while.(0.
ce040 3c 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 61 72 72 <.count($tokens)).{.$token.=.arr
ce060 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 76 61 ay_shift($tokens);..foreach.($va
ce080 6c 75 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 74 6f 6b 65 6e 20 3d 3d 3d lues.as.$value).{.if.($token.===
ce0a0 20 24 76 61 6c 75 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 .$value.||.0.===.strpos($token,.
ce0c0 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f $value.'=')).{.if.(false.!==.$po
ce0e0 73 20 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 6e 2c 20 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 s.=.strpos($token,.'=')).{.retur
ce100 6e 20 73 75 62 73 74 72 28 24 74 6f 6b 65 6e 2c 20 24 70 6f 73 20 2b 20 31 29 3b 0a 7d 0a 0a 72 n.substr($token,.$pos.+.1);.}..r
ce120 65 74 75 72 6e 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a eturn.array_shift($tokens);.}.}.
ce140 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c }..return.$default;.}.......publ
ce160 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 73 65 6c 66 ic.function.__toString().{.$self
ce180 20 3d 20 24 74 68 69 73 3b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 .=.$this;.$tokens.=.array_map(fu
ce1a0 6e 63 74 69 6f 6e 20 28 24 74 6f 6b 65 6e 29 20 75 73 65 20 28 24 73 65 6c 66 29 20 7b 0a 69 66 nction.($token).use.($self).{.if
ce1c0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2d 5b 5e 3d 5d 2b 3d 29 28 2e 2b 29 7d 27 2c .(preg_match('{^(-[^=]+=)(.+)}',
ce1e0 20 24 74 6f 6b 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 .$token,.$match)).{.return.$matc
ce200 68 5b 31 5d 2e 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 6d 61 74 63 68 5b 32 h[1].$self->escapeToken($match[2
ce220 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 ]);.}..if.($token.&&.$token[0].!
ce240 3d 3d 20 27 2d 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f ==.'-').{.return.$self->escapeTo
ce260 6b 65 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d ken($token);.}..return.$token;.}
ce280 2c 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 ,.$this->tokens);..return.implod
ce2a0 65 28 27 20 27 2c 20 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a e('.',.$tokens);.}.}.<?php......
ce2c0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
ce2e0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 \Console\Input;.......interface.
ce300 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e InputInterface.{......public.fun
ce320 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a ction.getFirstArgument();.......
ce340 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 .....public.function.hasParamete
ce360 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rOption($values);.............pu
ce380 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e blic.function.getParameterOption
ce3a0 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a ($values,.$default.=.false);....
ce3c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 62 69 6e 64 28 49 6e 70 75 74 44 65 66 ...public.function.bind(InputDef
ce3e0 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 inition.$definition);.........pu
ce400 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a blic.function.validate();.......
ce420 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a public.function.getArguments();.
ce440 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d ........public.function.getArgum
ce460 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ent($name);..........public.func
ce480 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b tion.setArgument($name,.$value);
ce4a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 .........public.function.hasArgu
ce4c0 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ment($name);.......public.functi
ce4e0 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 on.getOptions();.........public.
ce500 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a function.getOption($name);......
ce520 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e ....public.function.setOption($n
ce540 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ame,.$value);.........public.fun
ce560 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ction.hasOption($name);.......pu
ce580 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 3b 0a 0a blic.function.isInteractive();..
ce5a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 74 65 72 61 63 74 .....public.function.setInteract
ce5c0 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ive($interactive);.}.<?php......
ce5e0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
ce600 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Console\Input;.............clas
ce620 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 s.ArrayInput.extends.Input.{.pri
ce640 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 vate.$parameters;..........publi
ce660 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 c.function.__construct(array.$pa
ce680 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e rameters,.InputDefinition.$defin
ce6a0 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 ition.=.null).{.$this->parameter
ce6c0 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 s.=.$parameters;..parent::__cons
ce6e0 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c truct($definition);.}.......publ
ce700 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b ic.function.getFirstArgument().{
ce720 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 .foreach.($this->parameters.as.$
ce740 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 6b 65 79 20 26 26 20 27 2d 27 key.=>.$value).{.if.($key.&&.'-'
ce760 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 .===.$key[0]).{.continue;.}..ret
ce780 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$value;.}.}............publi
ce7a0 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 c.function.hasParameterOption($v
ce7c0 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 alues).{.$values.=.(array).$valu
ce7e0 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 es;..foreach.($this->parameters.
ce800 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 21 69 73 5f 69 6e 74 28 24 6b 29 29 20 as.$k.=>.$v).{.if.(!is_int($k)).
ce820 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 {.$v.=.$k;.}..if.(in_array($v,.$
ce840 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 values)).{.return.true;.}.}..ret
ce860 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.false;.}.............public.
ce880 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c function.getParameterOption($val
ce8a0 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 ues,.$default.=.false).{.$values
ce8c0 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 .=.(array).$values;..foreach.($t
ce8e0 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 his->parameters.as.$k.=>.$v).{.i
ce900 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 76 f.(is_int($k)).{.if.(in_array($v
ce920 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 20 65 ,.$values)).{.return.true;.}.}.e
ce940 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a lseif.(in_array($k,.$values)).{.
ce960 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b return.$v;.}.}..return.$default;
ce980 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 .}.......public.function.__toStr
ce9a0 69 6e 67 28 29 0a 7b 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 ing().{.$params.=.array();.forea
ce9c0 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 70 61 72 61 6d 20 ch.($this->parameters.as.$param.
ce9e0 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 24 70 61 72 61 6d 20 26 26 20 27 2d 27 20 3d 3d 3d =>.$val).{.if.($param.&&.'-'.===
cea00 20 24 70 61 72 61 6d 5b 30 5d 29 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d 20 24 70 61 72 61 6d .$param[0]).{.$params[].=.$param
cea20 2e 28 27 27 20 21 3d 20 24 76 61 6c 20 3f 20 27 3d 27 2e 24 74 68 69 73 2d 3e 65 73 63 61 70 65 .(''.!=.$val.?.'='.$this->escape
cea40 54 6f 6b 65 6e 28 24 76 61 6c 29 20 3a 20 27 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 Token($val).:.'');.}.else.{.$par
cea60 61 6d 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c 29 ams[].=.$this->escapeToken($val)
cea80 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 70 61 72 61 ;.}.}..return.implode('.',.$para
ceaa0 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 ms);.}.....protected.function.pa
ceac0 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 rse().{.foreach.($this->paramete
ceae0 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 30 20 3d 3d rs.as.$key.=>.$value).{.if.(0.==
ceb00 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 =.strpos($key,.'--')).{.$this->a
ceb20 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 32 29 2c 20 24 76 ddLongOption(substr($key,.2),.$v
ceb40 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d alue);.}.elseif.('-'.===.$key[0]
ceb60 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 ).{.$this->addShortOption(substr
ceb80 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 ($key,.1),.$value);.}.else.{.$th
ceba0 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d is->addArgument($key,.$value);.}
cebc0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 .}.}..........private.function.a
cebe0 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 2c 20 24 76 61 6c 75 65 29 ddShortOption($shortcut,.$value)
cec00 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 .{.if.(!$this->definition->hasSh
cec20 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ortcut($shortcut)).{.throw.new.\
cec40 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 InvalidArgumentException(sprintf
cec60 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 ('The."-%s".option.does.not.exis
cec80 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 4c t.',.$shortcut));.}..$this->addL
ceca0 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 ongOption($this->definition->get
cecc0 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 2d 3e 67 65 OptionForShortcut($shortcut)->ge
cece0 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 tName(),.$value);.}...........pr
ced00 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 6e 61 ivate.function.addLongOption($na
ced20 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 me,.$value).{.if.(!$this->defini
ced40 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 tion->hasOption($name)).{.throw.
ced60 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 new.\InvalidArgumentException(sp
ced80 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f rintf('The."--%s".option.does.no
ceda0 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 20 3d t.exist.',.$name));.}..$option.=
cedc0 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 6e .$this->definition->getOption($n
cede0 61 6d 65 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 ame);..if.(null.===.$value).{.if
cee00 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a .($option->isValueRequired()).{.
cee20 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
cee40 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 ion(sprintf('The."--%s".option.r
cee60 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 equires.a.value.',.$name));.}..$
cee80 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c value.=.$option->isValueOptional
ceea0 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 74 72 75 ().?.$option->getDefault().:.tru
ceec0 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 e;.}..$this->options[$name].=.$v
ceee0 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f alue;.}..........private.functio
cef00 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 n.addArgument($name,.$value).{.i
cef20 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 f.(!$this->definition->hasArgume
cef40 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 nt($name)).{.throw.new.\InvalidA
cef60 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 rgumentException(sprintf('The."%
cef80 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e s".argument.does.not.exist.',.$n
cefa0 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 ame));.}..$this->arguments[$name
cefc0 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ].=.$value;.}.}.<?php...........
cefe0 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 namespace.Symfony\Component\Cons
cf000 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 49 6e 70 75 ole\Input;........interface.Inpu
cf020 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tAwareInterface.{......public.fu
cf040 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 nction.setInput(InputInterface.$
cf060 69 6e 70 75 74 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 input);.}.<?php...........namesp
cf080 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e ace.Symfony\Component\Console\In
cf0a0 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 put;..use.Symfony\Component\Cons
cf0c0 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 ole\Descriptor\TextDescriptor;.u
cf0e0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 se.Symfony\Component\Console\Des
cf100 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f criptor\XmlDescriptor;.use.Symfo
cf120 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 42 75 66 66 ny\Component\Console\Output\Buff
cf140 65 72 65 64 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 eredOutput;................class
cf160 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 72 67 75 .InputDefinition.{.private.$argu
cf180 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 70 ments;.private.$requiredCount;.p
cf1a0 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c rivate.$hasAnArrayArgument.=.fal
cf1c0 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 76 61 74 se;.private.$hasOptional;.privat
cf1e0 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 73 3b 0a e.$options;.private.$shortcuts;.
cf200 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
cf220 75 63 74 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 29 uct(array.$definition.=.array())
cf240 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 .{.$this->setDefinition($definit
cf260 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ion);.}.........public.function.
cf280 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 setDefinition(array.$definition)
cf2a0 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e .{.$arguments.=.array();.$option
cf2c0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f s.=.array();.foreach.($definitio
cf2e0 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 74 61 6e 63 65 n.as.$item).{.if.($item.instance
cf300 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 5d 20 3d 20 24 of.InputOption).{.$options[].=.$
cf320 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d 20 24 69 item;.}.else.{.$arguments[].=.$i
cf340 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 tem;.}.}..$this->setArguments($a
cf360 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 rguments);.$this->setOptions($op
cf380 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tions);.}.........public.functio
cf3a0 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 n.setArguments($arguments.=.arra
cf3c0 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 y()).{.$this->arguments.=.array(
cf3e0 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 3b 0a 24 74 68 );.$this->requiredCount.=.0;.$th
cf400 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e is->hasOptional.=.false;.$this->
cf420 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 hasAnArrayArgument.=.false;.$thi
cf440 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a s->addArguments($arguments);.}..
cf460 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 .......public.function.addArgume
cf480 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 nts($arguments.=.array()).{.if.(
cf4a0 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 null.!==.$arguments).{.foreach.(
cf4c0 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 $arguments.as.$argument).{.$this
cf4e0 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 7d 0a ->addArgument($argument);.}.}.}.
cf500 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 ..........public.function.addArg
cf520 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b ument(InputArgument.$argument).{
cf540 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 .if.(isset($this->arguments[$arg
cf560 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ument->getName()])).{.throw.new.
cf580 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 61 72 67 75 \LogicException(sprintf('An.argu
cf5a0 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 ment.with.name."%s".already.exis
cf5c0 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a ts.',.$argument->getName()));.}.
cf5e0 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 29 20 .if.($this->hasAnArrayArgument).
cf600 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e {.throw.new.\LogicException('Can
cf620 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 61 72 72 not.add.an.argument.after.an.arr
cf640 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 ay.argument.');.}..if.($argument
cf660 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 ->isRequired().&&.$this->hasOpti
cf680 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f onal).{.throw.new.\LogicExceptio
cf6a0 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 6d 65 6e n('Cannot.add.a.required.argumen
cf6c0 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 69 t.after.an.optional.one.');.}..i
cf6e0 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 68 69 73 f.($argument->isArray()).{.$this
cf700 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a ->hasAnArrayArgument.=.true;.}..
cf720 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 29 20 7b 0a 2b if.($argument->isRequired()).{.+
cf740 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a +$this->requiredCount;.}.else.{.
cf760 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 $this->hasOptional.=.true;.}..$t
cf780 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d his->arguments[$argument->getNam
cf7a0 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e()].=.$argument;.}.............
cf7c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d public.function.getArgument($nam
cf7e0 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 e).{.if.(!$this->hasArgument($na
cf800 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e me)).{.throw.new.\InvalidArgumen
cf820 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 tException(sprintf('The."%s".arg
cf840 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b ument.does.not.exist.',.$name));
cf860 0a 7d 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f .}..$arguments.=.is_int($name).?
cf880 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 .array_values($this->arguments).
cf8a0 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 61 72 67 :.$this->arguments;..return.$arg
cf8c0 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 uments[$name];.}...........publi
cf8e0 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a c.function.hasArgument($name).{.
cf900 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 61 72 72 $arguments.=.is_int($name).?.arr
cf920 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a 20 24 74 ay_values($this->arguments).:.$t
cf940 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 61 his->arguments;..return.isset($a
cf960 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rguments[$name]);.}.........publ
cf980 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 ic.function.getArguments().{.ret
cf9a0 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 urn.$this->arguments;.}.......pu
cf9c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f 75 6e 74 28 29 blic.function.getArgumentCount()
cf9e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d .{.return.$this->hasAnArrayArgum
cfa00 65 6e 74 20 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 74 68 69 73 2d ent.?.PHP_INT_MAX.:.count($this-
cfa20 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >arguments);.}.......public.func
cfa40 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 28 29 0a tion.getArgumentRequiredCount().
cfa60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d {.return.$this->requiredCount;.}
cfa80 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 .......public.function.getArgume
cfaa0 6e 74 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 ntDefaults().{.$values.=.array()
cfac0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 ;.foreach.($this->arguments.as.$
cfae0 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 argument).{.$values[$argument->g
cfb00 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c etName()].=.$argument->getDefaul
cfb20 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a t();.}..return.$values;.}.......
cfb40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 ..public.function.setOptions($op
cfb60 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e tions.=.array()).{.$this->option
cfb80 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 20 3d 20 s.=.array();.$this->shortcuts.=.
cfba0 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 array();.$this->addOptions($opti
cfbc0 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ons);.}.........public.function.
cfbe0 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b addOptions($options.=.array()).{
cfc00 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b .foreach.($options.as.$option).{
cfc20 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a .$this->addOption($option);.}.}.
cfc40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 ..........public.function.addOpt
cfc60 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 69 ion(InputOption.$option).{.if.(i
cfc80 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 sset($this->options[$option->get
cfca0 4e 61 6d 65 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 68 Name()]).&&.!$option->equals($th
cfcc0 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 is->options[$option->getName()])
cfce0 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 ).{.throw.new.\LogicException(sp
cfd00 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 6c 72 65 rintf('An.option.named."%s".alre
cfd20 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 ady.exists.',.$option->getName()
cfd40 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 ));.}..if.($option->getShortcut(
cfd60 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 )).{.foreach.(explode('|',.$opti
cfd80 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 63 75 74 29 on->getShortcut()).as.$shortcut)
cfda0 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 .{.if.(isset($this->shortcuts[$s
cfdc0 68 6f 72 74 63 75 74 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 24 74 hortcut]).&&.!$option->equals($t
cfde0 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 his->options[$this->shortcuts[$s
cfe00 68 6f 72 74 63 75 74 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 hortcut]])).{.throw.new.\LogicEx
cfe20 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 74 68 20 ception(sprintf('An.option.with.
cfe40 73 68 6f 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 shortcut."%s".already.exists.',.
cfe60 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f $shortcut));.}.}.}..$this->optio
cfe80 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e ns[$option->getName()].=.$option
cfea0 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 7b 0a ;.if.($option->getShortcut()).{.
cfec0 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 foreach.(explode('|',.$option->g
cfee0 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 63 75 74 29 20 7b 0a 24 74 etShortcut()).as.$shortcut).{.$t
cff00 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 20 3d 20 24 6f 70 74 his->shortcuts[$shortcut].=.$opt
cff20 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ion->getName();.}.}.}...........
cff40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d ..public.function.getOption($nam
cff60 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 e).{.if.(!$this->hasOption($name
cff80 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 )).{.throw.new.\InvalidArgumentE
cffa0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 xception(sprintf('The."--%s".opt
cffc0 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d ion.does.not.exist.',.$name));.}
cffe0 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 3b 0a ..return.$this->options[$name];.
d0000 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f }...........public.function.hasO
d0020 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 ption($name).{.return.isset($thi
d0040 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 s->options[$name]);.}.........pu
d0060 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 blic.function.getOptions().{.ret
d0080 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 urn.$this->options;.}.........pu
d00a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 29 blic.function.hasShortcut($name)
d00c0 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 .{.return.isset($this->shortcuts
d00e0 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 [$name]);.}.........public.funct
d0100 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 ion.getOptionForShortcut($shortc
d0120 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 24 74 ut).{.return.$this->getOption($t
d0140 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 29 29 3b his->shortcutToName($shortcut));
d0160 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 .}.......public.function.getOpti
d0180 6f 6e 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 29 onDefaults().{.$values.=.array()
d01a0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 ;.foreach.($this->options.as.$op
d01c0 74 69 6f 6e 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 tion).{.$values[$option->getName
d01e0 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a ()].=.$option->getDefault();.}..
d0200 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 return.$values;.}...........priv
d0220 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f ate.function.shortcutToName($sho
d0240 72 74 63 75 74 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 rtcut).{.if.(!isset($this->short
d0260 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 cuts[$shortcut])).{.throw.new.\I
d0280 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 nvalidArgumentException(sprintf(
d02a0 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 'The."-%s".option.does.not.exist
d02c0 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .',.$shortcut));.}..return.$this
d02e0 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ->shortcuts[$shortcut];.}.......
d0300 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 0a 7b 0a public.function.getSynopsis().{.
d0320 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 $elements.=.array();.foreach.($t
d0340 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a his->getOptions().as.$option).{.
d0360 24 73 68 6f 72 74 63 75 74 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 $shortcut.=.$option->getShortcut
d0380 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 ().?.sprintf('-%s|',.$option->ge
d03a0 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d tShortcut()).:.'';.$elements[].=
d03c0 20 73 70 72 69 6e 74 66 28 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 .sprintf('['.($option->isValueRe
d03e0 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 28 24 6f 70 quired().?.'%s--%s="..."'.:.($op
d0400 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 27 25 73 2d 2d 25 tion->isValueOptional().?.'%s--%
d0420 73 5b 3d 22 2e 2e 2e 22 5d 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c 20 24 73 68 s[="..."]'.:.'%s--%s')).']',.$sh
d0440 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a 0a ortcut,.$option->getName());.}..
d0460 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 foreach.($this->getArguments().a
d0480 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 s.$argument).{.$elements[].=.spr
d04a0 69 6e 74 66 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 intf($argument->isRequired().?.'
d04c0 25 73 27 20 3a 20 27 5b 25 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 %s'.:.'[%s]',.$argument->getName
d04e0 28 29 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 31 27 20 3a ().($argument->isArray().?.'1'.:
d0500 20 27 27 29 29 3b 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 .''));..if.($argument->isArray()
d0520 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 2e 2e 2e 20 5b ).{.$elements[].=.sprintf('....[
d0540 25 73 4e 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 7d 0a %sN]',.$argument->getName());.}.
d0560 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d 65 6e 74 73 }..return.implode('.',.$elements
d0580 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 );.}.........public.function.asT
d05a0 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 ext().{.$descriptor.=.new.TextDe
d05c0 73 63 72 69 70 74 6f 72 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 scriptor();.$output.=.new.Buffer
d05e0 65 64 4f 75 74 70 75 74 28 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 edOutput(BufferedOutput::VERBOSI
d0600 54 59 5f 4e 4f 52 4d 41 4c 2c 20 74 72 75 65 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 TY_NORMAL,.true);.$descriptor->d
d0620 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 72 escribe($output,.$this,.array('r
d0640 61 77 5f 6f 75 74 70 75 74 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f aw_output'.=>.true));..return.$o
d0660 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c utput->fetch();.}...........publ
d0680 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 ic.function.asXml($asDom.=.false
d06a0 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 ).{.$descriptor.=.new.XmlDescrip
d06c0 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 61 73 44 6f 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 tor();..if.($asDom).{.return.$de
d06e0 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 scriptor->getInputDefinitionDocu
d0700 6d 65 6e 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 ment($this);.}..$output.=.new.Bu
d0720 66 66 65 72 65 64 4f 75 74 70 75 74 28 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 fferedOutput();.$descriptor->des
d0740 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 cribe($output,.$this);..return.$
d0760 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a output->fetch();.}.}.<?php......
d0780 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
d07a0 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Console;..use.Symfony\Component
d07c0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 \Console\Input\StringInput;.use.
d07e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 Symfony\Component\Console\Output
d0800 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 \ConsoleOutput;.use.Symfony\Comp
d0820 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 75 73 onent\Process\ProcessBuilder;.us
d0840 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 68 70 45 e.Symfony\Component\Process\PhpE
d0860 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 xecutableFinder;...........class
d0880 20 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 .Shell.{.private.$application;.p
d08a0 72 69 76 61 74 65 20 24 68 69 73 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 rivate.$history;.private.$output
d08c0 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 ;.private.$hasReadline;.private.
d08e0 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a $processIsolation.=.false;......
d0900 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
d0920 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 Application.$application).{.$thi
d0940 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 s->hasReadline.=.function_exists
d0960 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e ('readline');.$this->application
d0980 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 20 .=.$application;.$this->history.
d09a0 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 5f 27 2e 24 61 =.getenv('HOME').'/.history_'.$a
d09c0 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 pplication->getName();.$this->ou
d09e0 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 0a tput.=.new.ConsoleOutput();.}...
d0a00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 69 73 2d ..public.function.run().{.$this-
d0a20 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 41 75 74 6f 45 78 69 74 28 66 61 6c 73 65 29 >application->setAutoExit(false)
d0a40 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 68 45 78 ;.$this->application->setCatchEx
d0a60 63 65 70 74 69 6f 6e 73 28 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 ceptions(true);..if.($this->hasR
d0a80 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 6f 72 79 eadline).{.readline_read_history
d0aa0 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f 6d 70 6c ($this->history);.readline_compl
d0ac0 65 74 69 6f 6e 5f 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 61 75 74 etion_function(array($this,.'aut
d0ae0 6f 63 6f 6d 70 6c 65 74 65 72 27 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d ocompleter'));.}..$this->output-
d0b00 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 61 64 65 72 28 29 29 3b 0a 24 70 >writeln($this->getHeader());.$p
d0b20 68 70 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f hp.=.null;.if.($this->processIso
d0b40 6c 61 74 69 6f 6e 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 lation).{.$finder.=.new.PhpExecu
d0b60 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 70 68 70 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 tableFinder();.$php.=.$finder->f
d0b80 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 3c 3c ind();.$this->output->writeln(<<
d0ba0 3c 45 4f 46 0a 3c 69 6e 66 6f 3e 52 75 6e 6e 69 6e 67 20 77 69 74 68 20 70 72 6f 63 65 73 73 20 <EOF.<info>Running.with.process.
d0bc0 69 73 6f 6c 61 74 69 6f 6e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 72 20 74 isolation,.you.should.consider.t
d0be0 68 69 73 3a 3c 2f 69 6e 66 6f 3e 0a 20 20 2a 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 69 73 20 his:</info>...*.each.command.is.
d0c00 65 78 65 63 75 74 65 64 20 61 73 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2c 0a 20 20 executed.as.separate.process,...
d0c20 2a 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 6e 74 65 72 61 63 *.commands.don't.support.interac
d0c40 74 69 76 69 74 79 2c 20 61 6c 6c 20 70 61 72 61 6d 73 20 6d 75 73 74 20 62 65 20 70 61 73 73 65 tivity,.all.params.must.be.passe
d0c60 64 20 65 78 70 6c 69 63 69 74 6c 79 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 74 70 75 d.explicitly,...*.commands.outpu
d0c80 74 20 69 73 20 6e 6f 74 20 63 6f 6c 6f 72 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d 0a 0a 77 t.is.not.colorized...EOF.);.}..w
d0ca0 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e hile.(true).{.$command.=.$this->
d0cc0 72 65 61 64 6c 69 6e 65 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6d 6d readline();..if.(false.===.$comm
d0ce0 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c and).{.$this->output->writeln("\
d0d00 6e 22 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 n");..break;.}..if.($this->hasRe
d0d20 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 79 28 24 adline).{.readline_add_history($
d0d40 63 6f 6d 6d 61 6e 64 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 6f 72 79 command);.readline_write_history
d0d60 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e ($this->history);.}..if.($this->
d0d80 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 20 50 72 processIsolation).{.$pb.=.new.Pr
d0da0 6f 63 65 73 73 42 75 69 6c 64 65 72 28 29 3b 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 70 62 0a ocessBuilder();..$process.=.$pb.
d0dc0 2d 3e 61 64 64 28 24 70 68 70 29 0a 2d 3e 61 64 64 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 ->add($php).->add($_SERVER['argv
d0de0 27 5d 5b 30 5d 29 0a 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 72 69 74 '][0]).->add($command).->inherit
d0e00 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e 67 65 74 EnvironmentVariables(true).->get
d0e20 50 72 6f 63 65 73 73 28 29 0a 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 Process().;..$output.=.$this->ou
d0e40 74 70 75 74 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 tput;.$process->run(function.($t
d0e60 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 ype,.$data).use.($output).{.$out
d0e80 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 74 20 3d put->writeln($data);.});..$ret.=
d0ea0 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 20 65 6c 73 65 .$process->getExitCode();.}.else
d0ec0 20 7b 0a 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 .{.$ret.=.$this->application->ru
d0ee0 6e 28 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 74 68 n(new.StringInput($command),.$th
d0f00 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 72 65 74 29 20 is->output);.}..if.(0.!==.$ret).
d0f20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 {.$this->output->writeln(sprintf
d0f40 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 65 64 20 ('<error>The.command.terminated.
d0f60 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 73 74 61 74 75 73 20 28 25 73 29 3c 2f 65 72 72 6f 72 with.an.error.status.(%s)</error
d0f80 3e 27 2c 20 24 72 65 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 >',.$ret));.}.}.}.......protecte
d0fa0 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 d.function.getHeader().{.return.
d0fc0 3c 3c 3c 45 4f 46 0a 0a 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 6f 3e 7b 24 74 <<<EOF..Welcome.to.the.<info>{$t
d0fe0 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 7d 3c 2f 69 6e his->application->getName()}</in
d1000 66 6f 3e 20 73 68 65 6c 6c 20 28 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d 3e 61 70 70 6c fo>.shell.(<comment>{$this->appl
d1020 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e ication->getVersion()}</comment>
d1040 29 2e 0a 0a 41 74 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 )...At.the.prompt,.type.<comment
d1060 3e 68 65 6c 70 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 6c 70 2c 0a 6f >help</comment>.for.some.help,.o
d1080 72 20 3c 63 6f 6d 6d 65 6e 74 3e 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 67 65 74 r.<comment>list</comment>.to.get
d10a0 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 2e 0a 0a .a.list.of.available.commands...
d10c0 54 6f 20 65 78 69 74 20 74 68 65 20 73 68 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f 6d 6d 65 6e 74 To.exit.the.shell,.type.<comment
d10e0 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f >^D</comment>...EOF;.}.......pro
d1100 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 6d 70 74 28 29 0a 7b 0a 0a 20 tected.function.getPrompt().{...
d1120 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 return.$this->output->getFormatt
d1140 65 72 28 29 2d 3e 66 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d er()->format($this->application-
d1160 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 >getName().'.>.');.}..protected.
d1180 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 function.getOutput().{.return.$t
d11a0 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 his->output;.}..protected.functi
d11c0 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 on.getApplication().{.return.$th
d11e0 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 is->application;.}.........priva
d1200 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 78 74 29 te.function.autocompleter($text)
d1220 0a 7b 0a 24 69 6e 66 6f 20 3d 20 72 65 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 74 65 78 .{.$info.=.readline_info();.$tex
d1240 74 20 3d 20 73 75 62 73 74 72 28 24 69 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 27 5d 2c t.=.substr($info['line_buffer'],
d1260 20 30 2c 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f 5b 27 70 .0,.$info['end']);..if.($info['p
d1280 6f 69 6e 74 27 5d 20 21 3d 3d 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 74 75 72 oint'].!==.$info['end']).{.retur
d12a0 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f n.true;.}....if.(false.===.strpo
d12c0 73 28 24 74 65 78 74 2c 20 27 20 27 29 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 74 75 72 s($text,.'.').||.!$text).{.retur
d12e0 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d n.array_keys($this->application-
d1300 3e 61 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 >all());.}....try.{.$command.=.$
d1320 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 72 28 24 this->application->find(substr($
d1340 74 65 78 74 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 3b 0a 7d text,.0,.strpos($text,.'.')));.}
d1360 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 .catch.(\Exception.$e).{.return.
d1380 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 29 true;.}..$list.=.array('--help')
d13a0 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 ;.foreach.($command->getDefiniti
d13c0 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b on()->getOptions().as.$option).{
d13e0 0a 24 6c 69 73 74 5b 5d 20 3d 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 .$list[].=.'--'.$option->getName
d1400 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 ();.}..return.$list;.}.......pri
d1420 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 20 28 24 vate.function.readline().{.if.($
d1440 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 72 65 61 this->hasReadline).{.$line.=.rea
d1460 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 7d 20 65 6c 73 dline($this->getPrompt());.}.els
d1480 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e e.{.$this->output->write($this->
d14a0 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 54 44 49 getPrompt());.$line.=.fgets(STDI
d14c0 4e 2c 20 31 30 32 34 29 3b 0a 24 6c 69 6e 65 20 3d 20 28 21 24 6c 69 6e 65 20 26 26 20 73 74 72 N,.1024);.$line.=.(!$line.&&.str
d14e0 6c 65 6e 28 24 6c 69 6e 65 29 20 3d 3d 20 30 29 20 3f 20 66 61 6c 73 65 20 3a 20 72 74 72 69 6d len($line).==.0).?.false.:.rtrim
d1500 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 ($line);.}..return.$line;.}..pub
d1520 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e lic.function.getProcessIsolation
d1540 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 ().{.return.$this->processIsolat
d1560 69 6f 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 63 65 ion;.}..public.function.setProce
d1580 73 73 49 73 6f 6c 61 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 0a 7b ssIsolation($processIsolation).{
d15a0 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 28 62 6f 6f 6c .$this->processIsolation.=.(bool
d15c0 29 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d ).$processIsolation;..if.($this-
d15e0 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 26 26 20 21 63 6c 61 73 73 5f 65 78 69 73 >processIsolation.&&.!class_exis
d1600 74 73 28 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 73 5c ts('Symfony\\Component\\Process\
d1620 5c 50 72 6f 63 65 73 73 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 \Process')).{.throw.new.\Runtime
d1640 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 69 73 6f 6c 61 74 65 20 70 72 6f Exception('Unable.to.isolate.pro
d1660 63 65 73 73 65 73 20 61 73 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 50 72 6f 63 65 73 73 20 43 6f cesses.as.the.Symfony.Process.Co
d1680 6d 70 6f 6e 65 6e 74 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2e 27 29 3b 0a 7d 0a 7d mponent.is.not.installed.');.}.}
d16a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
d16c0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 3b fony\Component\Console\Question;
d16e0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 20 65 78 74 65 .......class.ChoiceQuestion.exte
d1700 6e 64 73 20 51 75 65 73 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 68 6f 69 63 65 73 3b nds.Question.{.private.$choices;
d1720 0a 70 72 69 76 61 74 65 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 3b 0a 70 .private.$multiselect.=.false;.p
d1740 72 69 76 61 74 65 20 24 70 72 6f 6d 70 74 20 3d 20 27 20 3e 20 27 3b 0a 70 72 69 76 61 74 65 20 rivate.$prompt.=.'.>.';.private.
d1760 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 69 73 20 69 $errorMessage.=.'Value."%s".is.i
d1780 6e 76 61 6c 69 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e nvalid';.........public.function
d17a0 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 63 .__construct($question,.array.$c
d17c0 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e hoices,.$default.=.null).{.paren
d17e0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 t::__construct($question,.$defau
d1800 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 68 6f 69 63 65 73 20 3d 20 24 63 68 6f 69 63 65 73 3b lt);..$this->choices.=.$choices;
d1820 0a 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 44 .$this->setValidator($this->getD
d1840 65 66 61 75 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 41 75 efaultValidator());.$this->setAu
d1860 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 61 72 72 61 79 5f 6b 65 79 73 28 24 63 68 tocompleterValues(array_keys($ch
d1880 6f 69 63 65 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e oices));.}.......public.function
d18a0 20 67 65 74 43 68 6f 69 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 .getChoices().{.return.$this->ch
d18c0 6f 69 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 oices;.}...........public.functi
d18e0 6f 6e 20 73 65 74 4d 75 6c 74 69 73 65 6c 65 63 74 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 0a on.setMultiselect($multiselect).
d1900 7b 0a 24 74 68 69 73 2d 3e 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 24 6d 75 6c 74 69 73 65 6c {.$this->multiselect.=.$multisel
d1920 65 63 74 3b 0a 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e ect;.$this->setValidator($this->
d1940 67 65 74 44 65 66 61 75 6c 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 getDefaultValidator());..return.
d1960 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 $this;.}.......public.function.g
d1980 65 74 50 72 6f 6d 70 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 6d 70 etPrompt().{.return.$this->promp
d19a0 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 t;.}.........public.function.set
d19c0 50 72 6f 6d 70 74 28 24 70 72 6f 6d 70 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 20 Prompt($prompt).{.$this->prompt.
d19e0 3d 20 24 70 72 6f 6d 70 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a =.$prompt;..return.$this;.}.....
d1a00 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4d 65 ......public.function.setErrorMe
d1a20 73 73 61 67 65 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 ssage($errorMessage).{.$this->er
d1a40 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 3b 0a 24 74 68 69 rorMessage.=.$errorMessage;.$thi
d1a60 73 2d 3e 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c s->setValidator($this->getDefaul
d1a80 74 56 61 6c 69 64 61 74 6f 72 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a tValidator());..return.$this;.}.
d1aa0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c ......private.function.getDefaul
d1ac0 74 56 61 6c 69 64 61 74 6f 72 28 29 0a 7b 0a 24 63 68 6f 69 63 65 73 20 3d 20 24 74 68 69 73 2d tValidator().{.$choices.=.$this-
d1ae0 3e 63 68 6f 69 63 65 73 3b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d >choices;.$errorMessage.=.$this-
d1b00 3e 65 72 72 6f 72 4d 65 73 73 61 67 65 3b 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 24 74 >errorMessage;.$multiselect.=.$t
d1b20 68 69 73 2d 3e 6d 75 6c 74 69 73 65 6c 65 63 74 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 his->multiselect;..return.functi
d1b40 6f 6e 20 28 24 73 65 6c 65 63 74 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 65 on.($selected).use.($choices,.$e
d1b60 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 24 rrorMessage,.$multiselect).{...$
d1b80 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 20 selectedChoices.=.str_replace('.
d1ba0 27 2c 20 27 27 2c 20 24 73 65 6c 65 63 74 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 ',.'',.$selected);..if.($multise
d1bc0 6c 65 63 74 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d lect).{...if.(!preg_match('/^[a-
d1be0 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 28 3f 3a 2c 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 zA-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$
d1c00 2f 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 2c 20 24 6d 61 74 63 68 65 73 29 29 /',.$selectedChoices,.$matches))
d1c20 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
d1c40 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 73 eption(sprintf($errorMessage,.$s
d1c60 65 6c 65 63 74 65 64 29 29 3b 0a 7d 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 elected));.}.$selectedChoices.=.
d1c80 65 78 70 6c 6f 64 65 28 27 2c 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b 0a explode(',',.$selectedChoices);.
d1ca0 7d 20 65 6c 73 65 20 7b 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 }.else.{.$selectedChoices.=.arra
d1cc0 79 28 24 73 65 6c 65 63 74 65 64 29 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f y($selected);.}..$multiselectCho
d1ce0 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 74 ices.=.array();.foreach.($select
d1d00 65 64 43 68 6f 69 63 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 edChoices.as.$value).{.if.(empty
d1d20 28 24 63 68 6f 69 63 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 ($choices[$value])).{.throw.new.
d1d40 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
d1d60 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 61 72 72 f($errorMessage,.$value));.}.arr
d1d80 61 79 5f 70 75 73 68 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 2c 20 24 63 68 ay_push($multiselectChoices,.$ch
d1da0 6f 69 63 65 73 5b 24 76 61 6c 75 65 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c oices[$value]);.}..if.($multisel
d1dc0 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 ect).{.return.$multiselectChoice
d1de0 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 68 6f 69 63 65 73 5b 24 73 65 6c 65 63 74 65 64 5d s;.}..return.$choices[$selected]
d1e00 3b 0a 7d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.};.}.}.<?php...........namespa
d1e20 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 ce.Symfony\Component\Console\Que
d1e40 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 51 stion;.......class.ConfirmationQ
d1e60 75 65 73 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 51 75 65 73 74 69 6f 6e 0a 7b 0a 0a 0a 0a 0a 0a uestion.extends.Question.{......
d1e80 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 .public.function.__construct($qu
d1ea0 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 70 61 72 65 6e estion,.$default.=.true).{.paren
d1ec0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 28 62 6f 6f 6c 29 t::__construct($question,.(bool)
d1ee0 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 4e 6f 72 6d 61 6c 69 7a 65 .$default);..$this->setNormalize
d1f00 72 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 29 r($this->getDefaultNormalizer())
d1f20 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 ;.}.......private.function.getDe
d1f40 66 61 75 6c 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 0a 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 24 faultNormalizer().{.$default.=.$
d1f60 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 this->getDefault();..return.func
d1f80 74 69 6f 6e 20 28 24 61 6e 73 77 65 72 29 20 75 73 65 20 28 24 64 65 66 61 75 6c 74 29 20 7b 0a tion.($answer).use.($default).{.
d1fa0 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 61 6e 73 77 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 if.(is_bool($answer)).{.return.$
d1fc0 61 6e 73 77 65 72 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c answer;.}..if.(false.===.$defaul
d1fe0 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 3d 20 73 t).{.return.$answer.&&.'y'.===.s
d2000 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e trtolower($answer[0]);.}..return
d2020 20 21 24 61 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 .!$answer.||.'y'.===.strtolower(
d2040 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a $answer[0]);.};.}.}.<?php.......
d2060 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
d2080 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 51 75 Console\Question;.......class.Qu
d20a0 65 73 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 71 75 65 73 74 69 6f 6e 3b 0a 70 72 69 76 estion.{.private.$question;.priv
d20c0 61 74 65 20 24 61 74 74 65 6d 70 74 73 3b 0a 70 72 69 76 61 74 65 20 24 68 69 64 64 65 6e 20 3d ate.$attempts;.private.$hidden.=
d20e0 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 20 .false;.private.$hiddenFallback.
d2100 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 =.true;.private.$autocompleterVa
d2120 6c 75 65 73 3b 0a 70 72 69 76 61 74 65 20 24 76 61 6c 69 64 61 74 6f 72 3b 0a 70 72 69 76 61 74 lues;.private.$validator;.privat
d2140 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 3b e.$default;.private.$normalizer;
d2160 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 ........public.function.__constr
d2180 75 63 74 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a uct($question,.$default.=.null).
d21a0 7b 0a 24 74 68 69 73 2d 3e 71 75 65 73 74 69 6f 6e 20 3d 20 24 71 75 65 73 74 69 6f 6e 3b 0a 24 {.$this->question.=.$question;.$
d21c0 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 20 3d 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a this->default.=.$default;.}.....
d21e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 51 75 65 73 74 69 6f 6e 28 29 0a ..public.function.getQuestion().
d2200 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 71 75 65 73 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a {.return.$this->question;.}.....
d2220 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 61 75 6c 74 28 29 0a 7b ..public.function.getDefault().{
d2240 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .return.$this->default;.}.......
d2260 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 69 64 64 65 6e 28 29 0a 7b 0a 72 65 74 public.function.isHidden().{.ret
d2280 75 72 6e 20 24 74 68 69 73 2d 3e 68 69 64 64 65 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 urn.$this->hidden;.}...........p
d22a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 69 64 64 65 6e 28 24 68 69 64 64 65 6e ublic.function.setHidden($hidden
d22c0 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 ).{.if.($this->autocompleterValu
d22e0 65 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 es).{.throw.new.\LogicException(
d2300 27 41 20 68 69 64 64 65 6e 20 71 75 65 73 74 69 6f 6e 20 63 61 6e 6e 6f 74 20 75 73 65 20 74 68 'A.hidden.question.cannot.use.th
d2320 65 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 69 e.autocompleter.');.}..$this->hi
d2340 64 64 65 6e 20 3d 20 28 62 6f 6f 6c 29 20 24 68 69 64 64 65 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 dden.=.(bool).$hidden;..return.$
d2360 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 this;.}.......public.function.is
d2380 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d HiddenFallback().{.return.$this-
d23a0 3e 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 >hiddenFallback;.}.........publi
d23c0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 24 66 61 c.function.setHiddenFallback($fa
d23e0 6c 6c 62 61 63 6b 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 20 llback).{.$this->hiddenFallback.
d2400 3d 20 28 62 6f 6f 6c 29 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 =.(bool).$fallback;..return.$thi
d2420 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 s;.}.......public.function.getAu
d2440 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tocompleterValues().{.return.$th
d2460 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a is->autocompleterValues;.}......
d2480 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 6f 63 6f 6d ......public.function.setAutocom
d24a0 70 6c 65 74 65 72 56 61 6c 75 65 73 28 24 76 61 6c 75 65 73 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c pleterValues($values).{.if.(null
d24c0 20 21 3d 3d 20 24 76 61 6c 75 65 73 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 .!==.$values.&&.!is_array($value
d24e0 73 29 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 s)).{.if.(!$values.instanceof.\T
d2500 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 24 76 61 6c 75 65 73 20 69 6e 73 74 61 6e 63 65 6f 66 raversable.||.$values.instanceof
d2520 20 5c 43 6f 75 6e 74 61 62 6c 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 .\Countable).{.throw.new.\Invali
d2540 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 75 74 6f 63 6f 6d 70 6c 65 74 65 dArgumentException('Autocomplete
d2560 72 20 76 61 6c 75 65 73 20 63 61 6e 20 62 65 20 65 69 74 68 65 72 20 61 6e 20 61 72 72 61 79 2c r.values.can.be.either.an.array,
d2580 20 60 6e 75 6c 6c 60 20 6f 72 20 61 6e 20 6f 62 6a 65 63 74 20 69 6d 70 6c 65 6d 65 6e 74 69 6e .`null`.or.an.object.implementin
d25a0 67 20 62 6f 74 68 20 60 43 6f 75 6e 74 61 62 6c 65 60 20 61 6e 64 20 60 54 72 61 76 65 72 73 61 g.both.`Countable`.and.`Traversa
d25c0 62 6c 65 60 20 69 6e 74 65 72 66 61 63 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 ble`.interfaces.');.}.}..if.($th
d25e0 69 73 2d 3e 68 69 64 64 65 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 is->hidden).{.throw.new.\LogicEx
d2600 63 65 70 74 69 6f 6e 28 27 41 20 68 69 64 64 65 6e 20 71 75 65 73 74 69 6f 6e 20 63 61 6e 6e 6f ception('A.hidden.question.canno
d2620 74 20 75 73 65 20 74 68 65 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 2e 27 29 3b 0a 7d 0a 0a 24 t.use.the.autocompleter.');.}..$
d2640 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 20 3d 20 24 76 61 6c this->autocompleterValues.=.$val
d2660 75 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 ues;..return.$this;.}.........pu
d2680 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 69 blic.function.setValidator($vali
d26a0 64 61 74 6f 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 20 3d 20 24 76 61 6c dator).{.$this->validator.=.$val
d26c0 69 64 61 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 idator;..return.$this;.}.......p
d26e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 61 74 6f 72 28 29 0a 7b 0a ublic.function.getValidator().{.
d2700 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a return.$this->validator;.}......
d2720 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 61 78 41 74 74 .......public.function.setMaxAtt
d2740 65 6d 70 74 73 28 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 empts($attempts).{.if.(null.!==.
d2760 24 61 74 74 65 6d 70 74 73 20 26 26 20 24 61 74 74 65 6d 70 74 73 20 3c 20 31 29 20 7b 0a 74 68 $attempts.&&.$attempts.<.1).{.th
d2780 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
d27a0 6e 28 27 4d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 61 74 74 65 6d 70 74 73 20 6d 75 n('Maximum.number.of.attempts.mu
d27c0 73 74 20 62 65 20 61 20 70 6f 73 69 74 69 76 65 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 st.be.a.positive.value.');.}..$t
d27e0 68 69 73 2d 3e 61 74 74 65 6d 70 74 73 20 3d 20 24 61 74 74 65 6d 70 74 73 3b 0a 0a 72 65 74 75 his->attempts.=.$attempts;..retu
d2800 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.$this;.}.........public.funct
d2820 69 6f 6e 20 67 65 74 4d 61 78 41 74 74 65 6d 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 ion.getMaxAttempts().{.return.$t
d2840 68 69 73 2d 3e 61 74 74 65 6d 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 his->attempts;.}...........publi
d2860 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 24 6e 6f 72 6d 61 6c c.function.setNormalizer($normal
d2880 69 7a 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 24 6e 6f 72 izer).{.$this->normalizer.=.$nor
d28a0 6d 61 6c 69 7a 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a malizer;..return.$this;.}.......
d28c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 ..public.function.getNormalizer(
d28e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 72 3b 0a 7d 0a ).{.return.$this->normalizer;.}.
d2900 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 34 2d 32 30 31 35 20 46 61 62 69 65 6e }.Copyright.(c).2004-2015.Fabien
d2920 20 50 6f 74 65 6e 63 69 65 72 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 .Potencier..Permission.is.hereby
d2940 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 .granted,.free.of.charge,.to.any
d2960 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 .person.obtaining.a.copy.of.this
d2980 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e .software.and.associated.documen
d29a0 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 tation.files.(the."Software"),.t
d29c0 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 o.deal.in.the.Software.without.r
d29e0 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 estriction,.including.without.li
d2a00 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 mitation.the.rights.to.use,.copy
d2a20 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 ,.modify,.merge,.publish,.distri
d2a40 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f bute,.sublicense,.and/or.sell.co
d2a60 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 pies.of.the.Software,.and.to.per
d2a80 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 mit.persons.to.whom.the.Software
d2aa0 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 .is.furnished.to.do.so,.subject.
d2ac0 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 to.the.following.conditions:..Th
d2ae0 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 e.above.copyright.notice.and.thi
d2b00 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 s.permission.notice.shall.be.inc
d2b20 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 luded.in.all.copies.or.substanti
d2b40 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 al.portions.of.the.Software...TH
d2b60 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 E.SOFTWARE.IS.PROVIDED."AS.IS",.
d2b80 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 WITHOUT.WARRANTY.OF.ANY.KIND,.EX
d2ba0 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 PRESS.OR.IMPLIED,.INCLUDING.BUT.
d2bc0 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 NOT.LIMITED.TO.THE.WARRANTIES.OF
d2be0 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 .MERCHANTABILITY,.FITNESS.FOR.A.
d2c00 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e PARTICULAR.PURPOSE.AND.NONINFRIN
d2c20 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 GEMENT..IN.NO.EVENT.SHALL.THE.AU
d2c40 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 THORS.OR.COPYRIGHT.HOLDERS.BE.LI
d2c60 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f ABLE.FOR.ANY.CLAIM,.DAMAGES.OR.O
d2c80 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 THER.LIABILITY,.WHETHER.IN.AN.AC
d2ca0 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 TION.OF.CONTRACT,.TORT.OR.OTHERW
d2cc0 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 ISE,.ARISING.FROM,.OUT.OF.OR.IN.
d2ce0 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 CONNECTION.WITH.THE.SOFTWARE.OR.
d2d00 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 THE.USE.OR.OTHER.DEALINGS.IN.THE
d2d20 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .SOFTWARE..<?php...........names
d2d40 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f pace.Symfony\Component\Console\O
d2d60 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f utput;..use.Symfony\Component\Co
d2d80 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 nsole\Formatter\OutputFormatterI
d2da0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
d2dc0 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
d2de0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 r;.................abstract.clas
d2e00 73 20 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 s.Output.implements.OutputInterf
d2e20 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 ace.{.private.$verbosity;.privat
d2e40 65 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 e.$formatter;...........public.f
d2e60 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d unction.__construct($verbosity.=
d2e80 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 .self::VERBOSITY_NORMAL,.$decora
d2ea0 74 65 64 20 3d 20 66 61 6c 73 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 ted.=.false,.OutputFormatterInte
d2ec0 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 rface.$formatter.=.null).{.$this
d2ee0 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 ->verbosity.=.null.===.$verbosit
d2f00 79 20 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 y.?.self::VERBOSITY_NORMAL.:.$ve
d2f20 72 62 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 rbosity;.$this->formatter.=.$for
d2f40 6d 61 74 74 65 72 20 3f 3a 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 3b matter.?:.new.OutputFormatter();
d2f60 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 .$this->formatter->setDecorated(
d2f80 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 $decorated);.}.....public.functi
d2fa0 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 on.setFormatter(OutputFormatterI
d2fc0 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f nterface.$formatter).{.$this->fo
d2fe0 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c rmatter.=.$formatter;.}.....publ
d3000 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 72 65 74 ic.function.getFormatter().{.ret
d3020 75 72 6e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c urn.$this->formatter;.}.....publ
d3040 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 ic.function.setDecorated($decora
d3060 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f ted).{.$this->formatter->setDeco
d3080 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rated($decorated);.}.....public.
d30a0 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 function.isDecorated().{.return.
d30c0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b $this->formatter->isDecorated();
d30e0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 .}.....public.function.setVerbos
d3100 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d ity($level).{.$this->verbosity.=
d3120 20 28 69 6e 74 29 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .(int).$level;.}.....public.func
d3140 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 tion.getVerbosity().{.return.$th
d3160 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f is->verbosity;.}..public.functio
d3180 6e 20 69 73 51 75 69 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f n.isQuiet().{.return.self::VERBO
d31a0 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b SITY_QUIET.===.$this->verbosity;
d31c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a .}..public.function.isVerbose().
d31e0 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 {.return.self::VERBOSITY_VERBOSE
d3200 20 3c 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 .<=.$this->verbosity;.}..public.
d3220 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 function.isVeryVerbose().{.retur
d3240 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3c n.self::VERBOSITY_VERY_VERBOSE.<
d3260 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 =.$this->verbosity;.}..public.fu
d3280 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a nction.isDebug().{.return.self::
d32a0 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 20 3c 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 VERBOSITY_DEBUG.<=.$this->verbos
d32c0 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 ity;.}.....public.function.write
d32e0 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 ln($messages,.$type.=.self::OUTP
d3300 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 UT_NORMAL).{.$this->write($messa
d3320 67 65 73 2c 20 74 72 75 65 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ges,.true,.$type);.}.....public.
d3340 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 function.write($messages,.$newli
d3360 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 ne.=.false,.$type.=.self::OUTPUT
d3380 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 _NORMAL).{.if.(self::VERBOSITY_Q
d33a0 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 29 20 7b 0a 72 65 74 UIET.===.$this->verbosity).{.ret
d33c0 75 72 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 urn;.}..$messages.=.(array).$mes
d33e0 73 61 67 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d sages;..foreach.($messages.as.$m
d3400 65 73 73 61 67 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 essage).{.switch.($type).{.case.
d3420 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a OutputInterface::OUTPUT_NORMAL:.
d3440 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 $message.=.$this->formatter->for
d3460 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 mat($message);.break;.case.Outpu
d3480 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3a 0a 62 72 65 61 6b 3b 0a 63 tInterface::OUTPUT_RAW:.break;.c
d34a0 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 50 4c 41 49 ase.OutputInterface::OUTPUT_PLAI
d34c0 4e 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e N:.$message.=.strip_tags($this->
d34e0 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 29 3b 0a 62 72 formatter->format($message));.br
d3500 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 eak;.default:.throw.new.\Invalid
d3520 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f ArgumentException(sprintf('Unkno
d3540 77 6e 20 6f 75 74 70 75 74 20 74 79 70 65 20 67 69 76 65 6e 20 28 25 73 29 27 2c 20 24 74 79 70 wn.output.type.given.(%s)',.$typ
d3560 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c e));.}..$this->doWrite($message,
d3580 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 .$newline);.}.}........abstract.
d35a0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 protected.function.doWrite($mess
d35c0 61 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a age,.$newline);.}.<?php.........
d35e0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
d3600 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nsole\Output;..use.Symfony\Compo
d3620 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 nent\Console\Formatter\OutputFor
d3640 6d 61 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f matter;.use.Symfony\Component\Co
d3660 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 nsole\Formatter\OutputFormatterI
d3680 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f nterface;............class.NullO
d36a0 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 utput.implements.OutputInterface
d36c0 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 .{....public.function.setFormatt
d36e0 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 er(OutputFormatterInterface.$for
d3700 6d 61 74 74 65 72 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f matter).{...}.....public.functio
d3720 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 n.getFormatter().{...return.new.
d3740 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 OutputFormatter();.}.....public.
d3760 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 function.setDecorated($decorated
d3780 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 ).{...}.....public.function.isDe
d37a0 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a corated().{.return.false;.}.....
d37c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 public.function.setVerbosity($le
d37e0 76 65 6c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 vel).{...}.....public.function.g
d3800 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 etVerbosity().{.return.self::VER
d3820 42 4f 53 49 54 59 5f 51 55 49 45 54 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e BOSITY_QUIET;.}..public.function
d3840 20 69 73 51 75 69 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 .isQuiet().{.return.true;.}..pub
d3860 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 lic.function.isVerbose().{.retur
d3880 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 n.false;.}..public.function.isVe
d38a0 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 ryVerbose().{.return.false;.}..p
d38c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.isDebug().{.retur
d38e0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 n.false;.}.....public.function.w
d3900 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a riteln($messages,.$type.=.self::
d3920 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 OUTPUT_NORMAL).{...}.....public.
d3940 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 function.write($messages,.$newli
d3960 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 ne.=.false,.$type.=.self::OUTPUT
d3980 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a _NORMAL).{...}.}.<?php..........
d39a0 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
d39c0 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f sole\Output;........interface.Co
d39e0 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 4f 75 74 nsoleOutputInterface.extends.Out
d3a00 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 putInterface.{......public.funct
d3a20 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ion.getErrorOutput();.......publ
d3a40 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 4f 75 74 70 75 ic.function.setErrorOutput(Outpu
d3a60 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a tInterface.$error);.}.<?php.....
d3a80 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
d3aa0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Output;..use.Symfony\C
d3ac0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
d3ae0 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tFormatterInterface;............
d3b00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 .....class.StreamOutput.extends.
d3b20 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b 0a 0a 0a 0a 0a 0a 0a Output.{.private.$stream;.......
d3b40 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 .......public.function.__constru
d3b60 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 ct($stream,.$verbosity.=.self::V
d3b80 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 ERBOSITY_NORMAL,.$decorated.=.nu
d3ba0 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f ll,.OutputFormatterInterface.$fo
d3bc0 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 rmatter.=.null).{.if.(!is_resour
d3be0 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 65 74 5f ce($stream).||.'stream'.!==.get_
d3c00 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 6f 77 20 resource_type($stream)).{.throw.
d3c20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 new.\InvalidArgumentException('T
d3c40 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 20 73 74 he.StreamOutput.class.needs.a.st
d3c60 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d ream.as.its.first.argument.');.}
d3c80 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 66 20 28 ..$this->stream.=.$stream;..if.(
d3ca0 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 61 74 65 null.===.$decorated).{.$decorate
d3cc0 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a d.=.$this->hasColorSupport();.}.
d3ce0 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 2c .parent::__construct($verbosity,
d3d00 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a .$decorated,.$formatter);.}.....
d3d20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a ..public.function.getStream().{.
d3d40 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 return.$this->stream;.}.....prot
d3d60 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c ected.function.doWrite($message,
d3d80 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 77 72 69 .$newline).{.if.(false.===.@fwri
d3da0 74 65 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 2e 28 24 6e 65 77 te($this->stream,.$message.($new
d3dc0 6c 69 6e 65 20 3f 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a 20 74 68 72 6f 77 line.?.PHP_EOL.:.''))).{...throw
d3de0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 .new.\RuntimeException('Unable.t
d3e00 6f 20 77 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 7d 0a 0a 66 66 6c 75 73 68 28 24 74 68 o.write.output.');.}..fflush($th
d3e20 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 is->stream);.}............protec
d3e40 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 0a 7b ted.function.hasColorSupport().{
d3e60 0a 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 3d 3d 20 27 5c 5c 27 .if.(DIRECTORY_SEPARATOR.==.'\\'
d3e80 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 74 65 6e 76 28 27 41 4e 53 ).{.return.false.!==.getenv('ANS
d3ea0 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e 27 20 3d 3d 3d 20 67 65 74 65 6e 76 28 27 43 6f 6e 45 6d ICON').||.'ON'.===.getenv('ConEm
d3ec0 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 uANSI');.}..return.function_exis
d3ee0 74 73 28 27 70 6f 73 69 78 5f 69 73 61 74 74 79 27 29 20 26 26 20 40 70 6f 73 69 78 5f 69 73 61 ts('posix_isatty').&&.@posix_isa
d3f00 74 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a tty($this->stream);.}.}.<?php...
d3f20 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
d3f40 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 75 ent\Console\Output;.....class.Bu
d3f60 66 66 65 72 65 64 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 0a 7b 0a 0a 0a fferedOutput.extends.Output.{...
d3f80 0a 70 72 69 76 61 74 65 20 24 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 .private.$buffer.=.'';.......pub
d3fa0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 28 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 lic.function.fetch().{.$content.
d3fc0 3d 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 3b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 3d =.$this->buffer;.$this->buffer.=
d3fe0 20 27 27 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f .'';..return.$content;.}.....pro
d4000 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 tected.function.doWrite($message
d4020 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 2e 3d 20 24 ,.$newline).{.$this->buffer..=.$
d4040 6d 65 73 73 61 67 65 3b 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d message;..if.($newline).{.$this-
d4060 3e 62 75 66 66 65 72 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a >buffer..=."\n";.}.}.}.<?php....
d4080 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
d40a0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c nt\Console\Output;..use.Symfony\
d40c0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 Component\Console\Formatter\Outp
d40e0 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e utFormatterInterface;.........in
d4100 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 terface.OutputInterface.{.const.
d4120 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f VERBOSITY_QUIET.=.0;.const.VERBO
d4140 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 SITY_NORMAL.=.1;.const.VERBOSITY
d4160 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 _VERBOSE.=.2;.const.VERBOSITY_VE
d4180 52 59 5f 56 45 52 42 4f 53 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f RY_VERBOSE.=.3;.const.VERBOSITY_
d41a0 44 45 42 55 47 20 3d 20 34 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 DEBUG.=.4;..const.OUTPUT_NORMAL.
d41c0 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 20 3d 20 31 3b 0a 63 6f 6e 73 74 =.0;.const.OUTPUT_RAW.=.1;.const
d41e0 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .OUTPUT_PLAIN.=.2;.............p
d4200 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 ublic.function.write($messages,.
d4220 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a $newline.=.false,.$type.=.self::
d4240 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 OUTPUT_NORMAL);............publi
d4260 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 c.function.writeln($messages,.$t
d4280 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a ype.=.self::OUTPUT_NORMAL);.....
d42a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 ....public.function.setVerbosity
d42c0 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ($level);.........public.functio
d42e0 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 n.getVerbosity();.........public
d4300 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 .function.setDecorated($decorate
d4320 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 d);.........public.function.isDe
d4340 63 6f 72 61 74 65 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 corated();.........public.functi
d4360 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 on.setFormatter(OutputFormatterI
d4380 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 nterface.$formatter);.........pu
d43a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a blic.function.getFormatter();.}.
d43c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
d43e0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 y\Component\Console\Output;..use
d4400 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 .Symfony\Component\Console\Forma
d4420 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a tter\OutputFormatterInterface;..
d4440 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 ...............class.ConsoleOutp
d4460 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e ut.extends.StreamOutput.implemen
d4480 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 ts.ConsoleOutputInterface.{.priv
d44a0 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ate.$stderr;...........public.fu
d44c0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d 20 nction.__construct($verbosity.=.
d44e0 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 self::VERBOSITY_NORMAL,.$decorat
d4500 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 ed.=.null,.OutputFormatterInterf
d4520 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6f 75 74 70 75 74 ace.$formatter.=.null).{.$output
d4540 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 74 27 3b 0a 69 66 20 28 21 24 74 Stream.=.'php://stdout';.if.(!$t
d4560 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 28 29 29 20 7b 0a 24 6f 75 74 70 his->hasStdoutSupport()).{.$outp
d4580 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 70 75 74 27 3b 0a 7d 0a 0a 70 61 utStream.=.'php://output';.}..pa
d45a0 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 6f 70 65 6e 28 24 6f 75 74 70 75 74 53 rent::__construct(fopen($outputS
d45c0 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 tream,.'w'),.$verbosity,.$decora
d45e0 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 ted,.$formatter);..$this->stderr
d4600 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f .=.new.StreamOutput(fopen('php:/
d4620 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 74 79 2c 20 24 64 65 63 /stderr',.'w'),.$verbosity,.$dec
d4640 6f 72 61 74 65 64 2c 20 24 74 68 69 73 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 29 3b 0a orated,.$this->getFormatter());.
d4660 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 }.....public.function.setDecorat
d4680 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 44 65 63 6f ed($decorated).{.parent::setDeco
d46a0 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 rated($decorated);.$this->stderr
d46c0 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a ->setDecorated($decorated);.}...
d46e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f ..public.function.setFormatter(O
d4700 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 utputFormatterInterface.$formatt
d4720 65 72 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 73 65 74 46 6f 72 6d 61 74 74 65 72 28 24 66 6f 72 6d er).{.parent::setFormatter($form
d4740 61 74 74 65 72 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 46 6f 72 6d 61 74 atter);.$this->stderr->setFormat
d4760 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ter($formatter);.}.....public.fu
d4780 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 70 61 nction.setVerbosity($level).{.pa
d47a0 72 65 6e 74 3a 3a 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 24 74 68 69 rent::setVerbosity($level);.$thi
d47c0 73 2d 3e 73 74 64 65 72 72 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b s->stderr->setVerbosity($level);
d47e0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 4f .}.....public.function.getErrorO
d4800 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a utput().{.return.$this->stderr;.
d4820 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 4f 75 }.....public.function.setErrorOu
d4840 74 70 75 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 0a 7b 0a 24 tput(OutputInterface.$error).{.$
d4860 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a this->stderr.=.$error;.}........
d4880 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 64 6f 75 74 ....protected.function.hasStdout
d48a0 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 27 4f 53 34 30 30 27 20 21 3d 20 70 Support().{.return.('OS400'.!=.p
d48c0 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a hp_uname('s'));.}.}.<?php.......
d48e0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
d4900 43 6f 6e 73 6f 6c 65 5c 4c 6f 67 67 65 72 3b 0a 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 41 62 73 Console\Logger;..use.Psr\Log\Abs
d4920 74 72 61 63 74 4c 6f 67 67 65 72 3b 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 49 6e 76 61 6c 69 64 tractLogger;.use.Psr\Log\Invalid
d4940 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 50 73 72 5c 4c 6f 67 5c 4c ArgumentException;.use.Psr\Log\L
d4960 6f 67 4c 65 76 65 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ogLevel;.use.Symfony\Component\C
d4980 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 onsole\Output\OutputInterface;.u
d49a0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 se.Symfony\Component\Console\Out
d49c0 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a put\ConsoleOutputInterface;.....
d49e0 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 4c 6f 67 67 65 72 20 65 78 74 65 6e 64 73 20 41 ...class.ConsoleLogger.extends.A
d4a00 62 73 74 72 61 63 74 4c 6f 67 67 65 72 0a 7b 0a 63 6f 6e 73 74 20 49 4e 46 4f 20 3d 20 27 69 6e bstractLogger.{.const.INFO.=.'in
d4a20 66 6f 27 3b 0a 63 6f 6e 73 74 20 45 52 52 4f 52 20 3d 20 27 65 72 72 6f 72 27 3b 0a 0a 0a 0a 0a fo';.const.ERROR.=.'error';.....
d4a40 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 65 72 private.$output;....private.$ver
d4a60 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 4c 6f 67 4c 65 76 65 6c bosityLevelMap.=.array(.LogLevel
d4a80 3a 3a 45 4d 45 52 47 45 4e 43 59 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a ::EMERGENCY.=>.OutputInterface::
d4aa0 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 52 VERBOSITY_NORMAL,.LogLevel::ALER
d4ac0 54 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f T.=>.OutputInterface::VERBOSITY_
d4ae0 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 43 52 49 54 49 43 41 4c 20 3d 3e 20 4f 75 NORMAL,.LogLevel::CRITICAL.=>.Ou
d4b00 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c tputInterface::VERBOSITY_NORMAL,
d4b20 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 52 52 4f 52 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 .LogLevel::ERROR.=>.OutputInterf
d4b40 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a ace::VERBOSITY_NORMAL,.LogLevel:
d4b60 3a 57 41 52 4e 49 4e 47 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 :WARNING.=>.OutputInterface::VER
d4b80 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 4e 4f 54 49 43 45 20 BOSITY_NORMAL,.LogLevel::NOTICE.
d4ba0 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 =>.OutputInterface::VERBOSITY_VE
d4bc0 52 42 4f 53 45 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 49 4e 46 4f 20 3d 3e 20 4f 75 74 70 75 74 49 RBOSE,.LogLevel::INFO.=>.OutputI
d4be0 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 nterface::VERBOSITY_VERY_VERBOSE
d4c00 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 45 42 55 47 20 3d 3e 20 4f 75 74 70 75 74 49 6e 74 65 72 ,.LogLevel::DEBUG.=>.OutputInter
d4c20 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 2c 0a 29 3b 0a 0a 0a 0a 70 72 69 face::VERBOSITY_DEBUG,.);....pri
d4c40 76 61 74 65 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 4c 6f vate.$formatLevelMap.=.array(.Lo
d4c60 67 4c 65 76 65 6c 3a 3a 45 4d 45 52 47 45 4e 43 59 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 gLevel::EMERGENCY.=>.self::ERROR
d4c80 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 41 4c 45 52 54 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 52 4f 52 ,.LogLevel::ALERT.=>.self::ERROR
d4ca0 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 43 52 49 54 49 43 41 4c 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 ,.LogLevel::CRITICAL.=>.self::ER
d4cc0 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 45 52 52 4f 52 20 3d 3e 20 73 65 6c 66 3a 3a 45 52 ROR,.LogLevel::ERROR.=>.self::ER
d4ce0 52 4f 52 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 57 41 52 4e 49 4e 47 20 3d 3e 20 73 65 6c 66 3a 3a ROR,.LogLevel::WARNING.=>.self::
d4d00 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 4e 4f 54 49 43 45 20 3d 3e 20 73 65 6c 66 3a 3a INFO,.LogLevel::NOTICE.=>.self::
d4d20 49 4e 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 49 4e 46 4f 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e INFO,.LogLevel::INFO.=>.self::IN
d4d40 46 4f 2c 0a 4c 6f 67 4c 65 76 65 6c 3a 3a 44 45 42 55 47 20 3d 3e 20 73 65 6c 66 3a 3a 49 4e 46 FO,.LogLevel::DEBUG.=>.self::INF
d4d60 4f 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f O,.);.......public.function.__co
d4d80 6e 73 74 72 75 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c nstruct(OutputInterface.$output,
d4da0 20 61 72 72 61 79 20 24 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 61 .array.$verbosityLevelMap.=.arra
d4dc0 79 28 29 2c 20 61 72 72 61 79 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 3d 20 61 72 72 y(),.array.$formatLevelMap.=.arr
d4de0 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b ay()).{.$this->output.=.$output;
d4e00 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 3d 20 24 76 65 72 .$this->verbosityLevelMap.=.$ver
d4e20 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 20 2b 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 bosityLevelMap.+.$this->verbosit
d4e40 79 4c 65 76 65 6c 4d 61 70 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 yLevelMap;.$this->formatLevelMap
d4e60 20 3d 20 24 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 20 2b 20 24 74 68 69 73 2d 3e 66 6f 72 6d .=.$formatLevelMap.+.$this->form
d4e80 61 74 4c 65 76 65 6c 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f atLevelMap;.}.....public.functio
d4ea0 6e 20 6c 6f 67 28 24 6c 65 76 65 6c 2c 20 24 6d 65 73 73 61 67 65 2c 20 61 72 72 61 79 20 24 63 n.log($level,.$message,.array.$c
d4ec0 6f 6e 74 65 78 74 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 ontext.=.array()).{.if.(!isset($
d4ee0 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 29 this->verbosityLevelMap[$level])
d4f00 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 ).{.throw.new.InvalidArgumentExc
d4f20 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 6c 6f 67 20 6c 65 76 65 6c 20 22 25 eption(sprintf('The.log.level."%
d4f40 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6c 65 76 65 6c 29 29 3b 0a 7d s".does.not.exist.',.$level));.}
d4f60 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 65 76 65 6c 4d 61 70 5b 24 6c ....if.($this->formatLevelMap[$l
d4f80 65 76 65 6c 5d 20 3d 3d 3d 20 73 65 6c 66 3a 3a 45 52 52 4f 52 20 26 26 20 24 74 68 69 73 2d 3e evel].===.self::ERROR.&&.$this->
d4fa0 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 output.instanceof.ConsoleOutputI
d4fc0 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 nterface).{.$output.=.$this->out
d4fe0 70 75 74 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a put->getErrorOutput();.}.else.{.
d5000 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 69 66 20 28 $output.=.$this->output;.}..if.(
d5020 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 24 74 68 69 73 $output->getVerbosity().>=.$this
d5040 2d 3e 76 65 72 62 6f 73 69 74 79 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 29 20 7b 0a 24 ->verbosityLevelMap[$level]).{.$
d5060 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 25 31 24 73 3e 5b output->writeln(sprintf('<%1$s>[
d5080 25 32 24 73 5d 20 25 33 24 73 3c 2f 25 31 24 73 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 %2$s].%3$s</%1$s>',.$this->forma
d50a0 74 4c 65 76 65 6c 4d 61 70 5b 24 6c 65 76 65 6c 5d 2c 20 24 6c 65 76 65 6c 2c 20 24 74 68 69 73 tLevelMap[$level],.$level,.$this
d50c0 2d 3e 69 6e 74 65 72 70 6f 6c 61 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 6e 74 65 78 74 ->interpolate($message,.$context
d50e0 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 )));.}.}............private.func
d5100 74 69 6f 6e 20 69 6e 74 65 72 70 6f 6c 61 74 65 28 24 6d 65 73 73 61 67 65 2c 20 61 72 72 61 79 tion.interpolate($message,.array
d5120 20 24 63 6f 6e 74 65 78 74 29 0a 7b 0a 0a 20 24 72 65 70 6c 61 63 65 20 3d 20 61 72 72 61 79 28 .$context).{...$replace.=.array(
d5140 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 78 74 20 61 73 20 24 6b 65 79 20 3d 3e 20 );.foreach.($context.as.$key.=>.
d5160 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 29 20 26 26 20 28 $val).{.if.(!is_array($val).&&.(
d5180 21 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 29 20 7c 7c 20 6d 65 74 68 6f 64 5f 65 78 69 73 74 !is_object($val).||.method_exist
d51a0 73 28 24 76 61 6c 2c 20 27 5f 5f 74 6f 53 74 72 69 6e 67 27 29 29 29 20 7b 0a 24 72 65 70 6c 61 s($val,.'__toString'))).{.$repla
d51c0 63 65 5b 73 70 72 69 6e 74 66 28 27 7b 25 73 7d 27 2c 20 24 6b 65 79 29 5d 20 3d 20 24 76 61 6c ce[sprintf('{%s}',.$key)].=.$val
d51e0 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 74 72 28 24 6d 65 73 73 61 67 65 2c 20 ;.}.}....return.strtr($message,.
d5200 24 72 65 70 6c 61 63 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e $replace);.}.}.<?php...........n
d5220 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f amespace.Symfony\Component\Conso
d5240 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 le\Descriptor;..use.Symfony\Comp
d5260 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 onent\Console\Output\OutputInter
d5280 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 65 73 63 72 69 70 74 6f 72 face;.......interface.Descriptor
d52a0 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 Interface.{........public.functi
d52c0 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 on.describe(OutputInterface.$out
d52e0 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 put,.$object,.array.$options.=.a
d5300 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 rray());.}.<?php...........names
d5320 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 pace.Symfony\Component\Console\D
d5340 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e escriptor;..use.Symfony\Componen
d5360 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f t\Console\Application;.use.Symfo
d5380 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d ny\Component\Console\Command\Com
d53a0 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 mand;.use.Symfony\Component\Cons
d53c0 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d ole\Input\InputArgument;.use.Sym
d53e0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 fony\Component\Console\Input\Inp
d5400 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e utDefinition;.use.Symfony\Compon
d5420 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a ent\Console\Input\InputOption;..
d5440 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 .......class.TextDescriptor.exte
d5460 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 nds.Descriptor.{....protected.fu
d5480 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 nction.describeInputArgument(Inp
d54a0 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 utArgument.$argument,.array.$opt
d54c0 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ions.=.array()).{.if.(null.!==.$
d54e0 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 argument->getDefault().&&.(!is_a
d5500 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c rray($argument->getDefault()).||
d5520 20 63 6f 75 6e 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 .count($argument->getDefault()))
d5540 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 ).{.$default.=.sprintf('<comment
d5560 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 >.(default:.%s)</comment>',.$thi
d5580 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 61 72 67 75 6d 65 6e 74 2d s->formatDefaultValue($argument-
d55a0 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 >getDefault()));.}.else.{.$defau
d55c0 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 lt.=.'';.}..$nameWidth.=.isset($
d55e0 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e options['name_width']).?.$option
d5600 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 61 72 67 75 6d 65 s['name_width'].:.strlen($argume
d5620 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 nt->getName());..$this->writeTex
d5640 74 28 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 7b 6e 61 6d 65 57 69 64 74 68 7d t(sprintf(".<info>%-${nameWidth}
d5660 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 0a 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 s</info>.%s%s",.$argument->getNa
d5680 6d 65 28 29 2c 0a 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 me(),.str_replace("\n",."\n".str
d56a0 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6e 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 61 _repeat('.',.$nameWidth.+.2),.$a
d56c0 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 0a 24 64 65 66 rgument->getDescription()),.$def
d56e0 61 75 6c 74 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 ault.),.$options);.}.....protect
d5700 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ed.function.describeInputOption(
d5720 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 InputOption.$option,.array.$opti
d5740 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 ons.=.array()).{.if.($option->ac
d5760 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 69 6f 6e 2d ceptValue().&&.null.!==.$option-
d5780 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 >getDefault().&&.(!is_array($opt
d57a0 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 7c 7c 20 63 6f 75 6e 74 28 24 6f 70 74 ion->getDefault()).||.count($opt
d57c0 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 20 ion->getDefault()))).{.$default.
d57e0 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 3a 20 25 =.sprintf('<comment>.(default:.%
d5800 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 65 66 61 s)</comment>',.$this->formatDefa
d5820 75 6c 74 56 61 6c 75 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 29 ultValue($option->getDefault()))
d5840 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6e 61 ;.}.else.{.$default.=.'';.}..$na
d5860 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 meWidth.=.isset($options['name_w
d5880 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d idth']).?.$options['name_width']
d58a0 20 3a 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 .:.strlen($option->getName());.$
d58c0 6e 61 6d 65 57 69 74 68 53 68 6f 72 74 63 75 74 57 69 64 74 68 20 3d 20 24 6e 61 6d 65 57 69 64 nameWithShortcutWidth.=.$nameWid
d58e0 74 68 20 2d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 th.-.strlen($option->getName()).
d5900 2d 20 32 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 22 -.2;..$this->writeText(sprintf("
d5920 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6e 61 6d 65 57 69 74 68 53 68 6f .<info>%s</info>.%-${nameWithSho
d5940 72 74 63 75 74 57 69 64 74 68 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 2e 24 6f 70 74 69 6f rtcutWidth}s%s%s%s",.'--'.$optio
d5960 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 n->getName(),.$option->getShortc
d5980 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 28 2d 25 73 29 20 27 2c 20 24 6f 70 74 69 6f 6e ut().?.sprintf('(-%s).',.$option
d59a0 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 2c 0a 73 74 72 5f 72 65 70 6c 61 ->getShortcut()).:.'',.str_repla
d59c0 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6e ce("\n",."\n".str_repeat('.',.$n
d59e0 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 ameWidth.+.2),.$option->getDescr
d5a00 69 70 74 69 6f 6e 28 29 29 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 69 73 iption()),.$default,.$option->is
d5a20 41 72 72 61 79 28 29 20 3f 20 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 6d 75 6c 74 69 70 6c 65 20 76 Array().?.'<comment>.(multiple.v
d5a40 61 6c 75 65 73 20 61 6c 6c 6f 77 65 64 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 20 3a 20 27 27 0a 29 alues.allowed)</comment>'.:.''.)
d5a60 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ,.$options);.}.....protected.fun
d5a80 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e ction.describeInputDefinition(In
d5aa0 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 putDefinition.$definition,.array
d5ac0 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6e 61 6d 65 57 69 64 74 .$options.=.array()).{.$nameWidt
d5ae0 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 h.=.0;.foreach.($definition->get
d5b00 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e Options().as.$option).{.$nameLen
d5b20 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 gth.=.strlen($option->getName())
d5b40 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 .+.2;.if.($option->getShortcut()
d5b60 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f ).{.$nameLength.+=.strlen($optio
d5b80 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 24 6e 61 6d 65 57 69 n->getShortcut()).+.3;.}.$nameWi
d5ba0 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 dth.=.max($nameWidth,.$nameLengt
d5bc0 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 h);.}.foreach.($definition->getA
d5be0 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 6e 61 6d 65 rguments().as.$argument).{.$name
d5c00 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 68 2c 20 73 74 72 6c 65 6e 28 24 Width.=.max($nameWidth,.strlen($
d5c20 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6e 61 6d 65 argument->getName()));.}.++$name
d5c40 57 69 64 74 68 3b 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 Width;..if.($definition->getArgu
d5c60 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f ments()).{.$this->writeText('<co
d5c80 6d 6d 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 mment>Arguments:</comment>',.$op
d5ca0 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a tions);.$this->writeText("\n");.
d5cc0 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e foreach.($definition->getArgumen
d5ce0 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 ts().as.$argument).{.$this->desc
d5d00 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 ribeInputArgument($argument,.arr
d5d20 61 79 5f 6d 65 72 67 65 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 ay_merge($options,.array('name_w
d5d40 69 64 74 68 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 29 3b 0a 24 74 68 69 73 2d 3e 77 idth'.=>.$nameWidth)));.$this->w
d5d60 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 riteText("\n");.}.}..if.($defini
d5d80 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 26 26 20 24 64 65 66 69 6e 69 74 tion->getArguments().&&.$definit
d5da0 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 ion->getOptions()).{.$this->writ
d5dc0 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d eText("\n");.}..if.($definition-
d5de0 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 >getOptions()).{.$this->writeTex
d5e00 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c t('<comment>Options:</comment>',
d5e20 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e .$options);.$this->writeText("\n
d5e40 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 ");.foreach.($definition->getOpt
d5e60 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 ions().as.$option).{.$this->desc
d5e80 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 5f 6d ribeInputOption($option,.array_m
d5ea0 65 72 67 65 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 64 74 68 erge($options,.array('name_width
d5ec0 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 '.=>.$nameWidth)));.$this->write
d5ee0 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 Text("\n");.}.}.}.....protected.
d5f00 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 function.describeCommand(Command
d5f20 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 .$command,.array.$options.=.arra
d5f40 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a y()).{.$command->getSynopsis();.
d5f60 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 $command->mergeApplicationDefini
d5f80 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 tion(false);..$this->writeText('
d5fa0 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 <comment>Usage:</comment>',.$opt
d5fc0 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 ions);.$this->writeText("\n");.$
d5fe0 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 20 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 this->writeText('.'.$command->ge
d6000 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 tSynopsis(),.$options);.$this->w
d6020 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 6f 6d 6d riteText("\n");..if.(count($comm
d6040 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d and->getAliases()).>.0).{.$this-
d6060 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 >writeText("\n");.$this->writeTe
d6080 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 6c 69 61 73 65 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 xt('<comment>Aliases:</comment>.
d60a0 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e <info>'.implode(',.',.$command->
d60c0 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 20 24 6f 70 74 69 6f 6e getAliases()).'</info>',.$option
d60e0 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 63 6f 6d 6d 61 6e s);.}..if.($definition.=.$comman
d6100 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 20 7b 0a 24 74 68 69 d->getNativeDefinition()).{.$thi
d6120 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 s->writeText("\n");.$this->descr
d6140 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 ibeInputDefinition($definition,.
d6160 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 $options);.}..$this->writeText("
d6180 5c 6e 22 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 \n");..if.($help.=.$command->get
d61a0 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 ProcessedHelp()).{.$this->writeT
d61c0 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 48 65 6c 70 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 ext('<comment>Help:</comment>',.
d61e0 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 $options);.$this->writeText("\n"
d6200 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 20 27 2e 73 74 72 5f 72 65 70 6c );.$this->writeText('.'.str_repl
d6220 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 68 65 6c 70 29 2c 20 24 6f 70 74 69 6f 6e ace("\n",."\n.",.$help),.$option
d6240 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a s);.$this->writeText("\n");.}.}.
d6260 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 ....protected.function.describeA
d6280 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 pplication(Application.$applicat
d62a0 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b ion,.array.$options.=.array()).{
d62c0 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 .$describedNamespace.=.isset($op
d62e0 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 tions['namespace']).?.$options['
d6300 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e namespace'].:.null;.$description
d6320 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 .=.new.ApplicationDescription($a
d6340 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 pplication,.$describedNamespace)
d6360 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 ;..if.(isset($options['raw_text'
d6380 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 7b 0a 24 77 ]).&&.$options['raw_text']).{.$w
d63a0 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 idth.=.$this->getColumnWidth($de
d63c0 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 66 6f 72 65 scription->getCommands());..fore
d63e0 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 ach.($description->getCommands()
d6400 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 .as.$command).{.$this->writeText
d6420 28 73 70 72 69 6e 74 66 28 22 25 2d 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 63 6f 6d 6d (sprintf("%-${width}s.%s",.$comm
d6440 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 and->getName(),.$command->getDes
d6460 63 72 69 70 74 69 6f 6e 28 29 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 cription()),.$options);.$this->w
d6480 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 27 riteText("\n");.}.}.else.{.if.('
d64a0 27 20 21 3d 20 24 68 65 6c 70 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 '.!=.$help.=.$application->getHe
d64c0 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 24 68 65 6c 70 5c lp()).{.$this->writeText("$help\
d64e0 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 n\n",.$options);.}..$this->write
d6500 54 65 78 74 28 22 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 5c Text("<comment>Usage:</comment>\
d6520 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 n",.$options);.$this->writeText(
d6540 22 20 63 6f 6d 6d 61 6e 64 20 5b 6f 70 74 69 6f 6e 73 5d 20 5b 61 72 67 75 6d 65 6e 74 73 5d 5c ".command.[options].[arguments]\
d6560 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 n\n",.$options);.$this->writeTex
d6580 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c t('<comment>Options:</comment>',
d65a0 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 3d 20 24 61 70 .$options);..$inputOptions.=.$ap
d65c0 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f plication->getDefinition()->getO
d65e0 70 74 69 6f 6e 73 28 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 ptions();..$width.=.0;.foreach.(
d6600 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d $inputOptions.as.$option).{.$nam
d6620 65 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d eLength.=.strlen($option->getNam
d6640 65 28 29 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 e()).+.2;.if.($option->getShortc
d6660 75 74 28 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f ut()).{.$nameLength.+=.strlen($o
d6680 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 24 77 69 ption->getShortcut()).+.3;.}.$wi
d66a0 64 74 68 20 3d 20 6d 61 78 28 24 77 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 29 3b 0a dth.=.max($width,.$nameLength);.
d66c0 7d 0a 2b 2b 24 77 69 64 74 68 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 4f 70 74 69 }.++$width;..foreach.($inputOpti
d66e0 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 ons.as.$option).{.$this->writeTe
d6700 78 74 28 22 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 xt("\n",.$options);.$this->descr
d6720 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 5f 6d 65 ibeInputOption($option,.array_me
d6740 72 67 65 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 64 74 68 27 rge($options,.array('name_width'
d6760 20 3d 3e 20 24 77 69 64 74 68 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 .=>.$width)));.}..$this->writeTe
d6780 78 74 28 22 5c 6e 5c 6e 22 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 77 69 64 74 68 20 3d 20 xt("\n\n",.$options);..$width.=.
d67a0 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 73 63 72 69 70 74 69 $this->getColumnWidth($descripti
d67c0 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 69 on->getCommands());..if.($descri
d67e0 62 65 64 4e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 bedNamespace).{.$this->writeText
d6800 28 73 70 72 69 6e 74 66 28 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d (sprintf("<comment>Available.com
d6820 6d 61 6e 64 73 20 66 6f 72 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a 3c mands.for.the.\"%s\".namespace:<
d6840 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 /comment>",.$describedNamespace)
d6860 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 ,.$options);.}.else.{.$this->wri
d6880 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 teText('<comment>Available.comma
d68a0 6e 64 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a nds:</comment>',.$options);.}...
d68c0 20 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 .foreach.($description->getNames
d68e0 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 21 24 64 paces().as.$namespace).{.if.(!$d
d6900 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 26 26 20 41 70 70 6c 69 63 61 74 69 6f 6e escribedNamespace.&&.Application
d6920 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 3d Description::GLOBAL_NAMESPACE.!=
d6940 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 =.$namespace['id']).{.$this->wri
d6960 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 teText("\n");.$this->writeText('
d6980 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3c 2f 63 <comment>'.$namespace['id'].'</c
d69a0 6f 6d 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 omment>',.$options);.}..foreach.
d69c0 28 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 ($namespace['commands'].as.$name
d69e0 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 ).{.$this->writeText("\n");.$thi
d6a00 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 s->writeText(sprintf(".<info>%-$
d6a20 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 64 65 73 {width}s</info>.%s",.$name,.$des
d6a40 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 cription->getCommand($name)->get
d6a60 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a Description()),.$options);.}.}..
d6a80 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a $this->writeText("\n");.}.}.....
d6aa0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 54 65 78 74 28 24 63 6f 6e 74 private.function.writeText($cont
d6ac0 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b ent,.array.$options.=.array()).{
d6ae0 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 .$this->write(.isset($options['r
d6b00 61 77 5f 74 65 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 aw_text']).&&.$options['raw_text
d6b20 27 5d 20 3f 20 73 74 72 69 70 5f 74 61 67 73 28 24 63 6f 6e 74 65 6e 74 29 20 3a 20 24 63 6f 6e '].?.strip_tags($content).:.$con
d6b40 74 65 6e 74 2c 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 tent,.isset($options['raw_output
d6b60 27 5d 29 20 3f 20 21 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 27 5d 20 3a 20 ']).?.!$options['raw_output'].:.
d6b80 74 72 75 65 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 true.);.}.........private.functi
d6ba0 6f 6e 20 66 6f 72 6d 61 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 64 65 66 61 75 6c 74 29 0a on.formatDefaultValue($default).
d6bc0 7b 0a 69 66 20 28 50 48 50 5f 56 45 52 53 49 4f 4e 5f 49 44 20 3c 20 35 30 34 30 30 29 20 7b 0a {.if.(PHP_VERSION_ID.<.50400).{.
d6be0 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f 27 2c 20 27 2f 27 2c 20 6a 73 return.str_replace('\/',.'/',.js
d6c00 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 on_encode($default));.}..return.
d6c20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 json_encode($default,.JSON_UNESC
d6c40 41 50 45 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e APED_SLASHES.|.JSON_UNESCAPED_UN
d6c60 49 43 4f 44 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ICODE);.}.......private.function
d6c80 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 .getColumnWidth(array.$commands)
d6ca0 0a 7b 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 .{.$width.=.0;.foreach.($command
d6cc0 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 68 20 3d 20 73 74 72 6c 65 6e s.as.$command).{.$width.=.strlen
d6ce0 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3e 20 24 77 69 64 74 68 20 3f ($command->getName()).>.$width.?
d6d00 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 3a 20 24 .strlen($command->getName()).:.$
d6d20 77 69 64 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 69 64 74 68 20 2b 20 32 3b 0a 7d 0a 7d width;.}..return.$width.+.2;.}.}
d6d40 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
d6d60 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b ny\Component\Console\Descriptor;
d6d80 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ..use.Symfony\Component\Console\
d6da0 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 Application;.use.Symfony\Compone
d6dc0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 nt\Console\Command\Command;.use.
d6de0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
d6e00 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f InputArgument;.use.Symfony\Compo
d6e20 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 nent\Console\Input\InputDefiniti
d6e40 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
d6e60 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 e\Input\InputOption;.........cla
d6e80 73 73 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 ss.XmlDescriptor.extends.Descrip
d6ea0 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e tor.{......public.function.getIn
d6ec0 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 44 65 66 69 6e putDefinitionDocument(InputDefin
d6ee0 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 ition.$definition).{.$dom.=.new.
d6f00 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 \DOMDocument('1.0',.'UTF-8');.$d
d6f20 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d om->appendChild($definitionXML.=
d6f40 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 69 6e 69 74 69 6f 6e .$dom->createElement('definition
d6f60 27 29 29 3b 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c '));..$definitionXML->appendChil
d6f80 64 28 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c d($argumentsXML.=.$dom->createEl
d6fa0 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 ement('arguments'));.foreach.($d
d6fc0 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 efinition->getArguments().as.$ar
d6fe0 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 gument).{.$this->appendDocument(
d7000 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 $argumentsXML,.$this->getInputAr
d7020 67 75 6d 65 6e 74 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a 0a 24 gumentDocument($argument));.}..$
d7040 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f 70 74 69 definitionXML->appendChild($opti
d7060 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6f 70 onsXML.=.$dom->createElement('op
d7080 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e tions'));.foreach.($definition->
d70a0 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 getOptions().as.$option).{.$this
d70c0 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 2c 20 24 74 ->appendDocument($optionsXML,.$t
d70e0 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 his->getInputOptionDocument($opt
d7100 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ion));.}..return.$dom;.}.......p
d7120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e ublic.function.getCommandDocumen
d7140 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 t(Command.$command).{.$dom.=.new
d7160 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 .\DOMDocument('1.0',.'UTF-8');.$
d7180 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 20 3d 20 24 dom->appendChild($commandXML.=.$
d71a0 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a dom->createElement('command'));.
d71c0 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 .$command->getSynopsis();.$comma
d71e0 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 nd->mergeApplicationDefinition(f
d7200 61 6c 73 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 alse);..$commandXML->setAttribut
d7220 65 28 27 69 64 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 63 e('id',.$command->getName());.$c
d7240 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 ommandXML->setAttribute('name',.
d7260 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 $command->getName());..$commandX
d7280 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 75 73 61 67 65 58 4d 4c 20 3d 20 24 64 6f 6d ML->appendChild($usageXML.=.$dom
d72a0 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 75 73 61 67 65 27 29 29 3b 0a 24 75 73 61 67 ->createElement('usage'));.$usag
d72c0 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 eXML->appendChild($dom->createTe
d72e0 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f xtNode(sprintf($command->getSyno
d7300 70 73 69 73 28 29 2c 20 27 27 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 psis(),.'')));..$commandXML->app
d7320 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d endChild($descriptionXML.=.$dom-
d7340 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a >createElement('description'));.
d7360 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f $descriptionXML->appendChild($do
d7380 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c m->createTextNode(str_replace("\
d73a0 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 n",."\n.",.$command->getDescript
d73c0 69 6f 6e 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 ion())));..$commandXML->appendCh
d73e0 69 6c 64 28 24 68 65 6c 70 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 ild($helpXML.=.$dom->createEleme
d7400 6e 74 28 27 68 65 6c 70 27 29 29 3b 0a 24 68 65 6c 70 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 nt('help'));.$helpXML->appendChi
d7420 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 74 72 5f 72 65 70 6c ld($dom->createTextNode(str_repl
d7440 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 ace("\n",."\n.",.$command->getPr
d7460 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e ocessedHelp())));..$commandXML->
d7480 61 70 70 65 6e 64 43 68 69 6c 64 28 24 61 6c 69 61 73 65 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e appendChild($aliasesXML.=.$dom->
d74a0 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 29 3b 0a 66 6f 72 65 61 createElement('aliases'));.forea
d74c0 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 ch.($command->getAliases().as.$a
d74e0 6c 69 61 73 29 20 7b 0a 24 61 6c 69 61 73 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 lias).{.$aliasesXML->appendChild
d7500 28 24 61 6c 69 61 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 ($aliasXML.=.$dom->createElement
d7520 28 27 61 6c 69 61 73 27 29 29 3b 0a 24 61 6c 69 61 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 ('alias'));.$aliasXML->appendChi
d7540 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 6c 69 61 73 29 29 ld($dom->createTextNode($alias))
d7560 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 ;.}..$definitionXML.=.$this->get
d7580 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 InputDefinitionDocument($command
d75a0 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 3b 0a 24 74 68 69 73 2d ->getNativeDefinition());.$this-
d75c0 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2c 20 24 64 65 >appendDocument($commandXML,.$de
d75e0 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 42 79 54 61 67 4e 61 6d finitionXML->getElementsByTagNam
d7600 65 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 2d 3e 69 74 65 6d 28 30 29 29 3b 0a 0a 72 65 74 75 e('definition')->item(0));..retu
d7620 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rn.$dom;.}........public.functio
d7640 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 41 70 70 6c 69 63 61 n.getApplicationDocument(Applica
d7660 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 tion.$application,.$namespace.=.
d7680 6e 75 6c 6c 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 null).{.$dom.=.new.\DOMDocument(
d76a0 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 '1.0',.'UTF-8');.$dom->appendChi
d76c0 6c 64 28 24 72 6f 6f 74 58 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e ld($rootXml.=.$dom->createElemen
d76e0 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e t('symfony'));..if.($application
d7700 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 27 55 4e 4b 4e 4f 57 4e 27 29 20 7b 0a 24 72 6f ->getName().!==.'UNKNOWN').{.$ro
d7720 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 61 70 70 otXml->setAttribute('name',.$app
d7740 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 lication->getName());.if.($appli
d7760 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 21 3d 3d 20 27 55 4e 4b 4e 4f 57 cation->getVersion().!==.'UNKNOW
d7780 4e 27 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 76 65 N').{.$rootXml->setAttribute('ve
d77a0 72 73 69 6f 6e 27 2c 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e rsion',.$application->getVersion
d77c0 28 29 29 3b 0a 7d 0a 7d 0a 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 ());.}.}..$rootXml->appendChild(
d77e0 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 $commandsXML.=.$dom->createEleme
d7800 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d nt('commands'));..$description.=
d7820 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 .new.ApplicationDescription($app
d7840 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 69 66 20 28 24 6e 61 6d lication,.$namespace);..if.($nam
d7860 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 espace).{.$commandsXML->setAttri
d7880 62 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 7d bute('namespace',.$namespace);.}
d78a0 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d ..foreach.($description->getComm
d78c0 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 ands().as.$command).{.$this->app
d78e0 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2c 20 24 74 68 69 73 2d endDocument($commandsXML,.$this-
d7900 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a >getCommandDocument($command));.
d7920 7d 0a 0a 69 66 20 28 21 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e }..if.(!$namespace).{.$rootXml->
d7940 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 20 3d 20 24 64 6f appendChild($namespacesXML.=.$do
d7960 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 73 27 29 29 3b m->createElement('namespaces'));
d7980 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 ..foreach.($description->getName
d79a0 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f spaces().as.$namespaceDescriptio
d79c0 6e 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 n).{.$namespacesXML->appendChild
d79e0 28 24 6e 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 ($namespaceArrayXML.=.$dom->crea
d7a00 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 3b 0a 24 6e 61 6d 65 73 70 teElement('namespace'));.$namesp
d7a20 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 aceArrayXML->setAttribute('id',.
d7a40 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f 6e 5b 27 69 64 27 5d 29 3b 0a 0a 66 $namespaceDescription['id']);..f
d7a60 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f 6e 5b 27 63 oreach.($namespaceDescription['c
d7a80 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 ommands'].as.$name).{.$namespace
d7aa0 41 72 72 61 79 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 6f 6d 6d 61 6e 64 58 4d ArrayXML->appendChild($commandXM
d7ac0 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 L.=.$dom->createElement('command
d7ae0 27 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 '));.$commandXML->appendChild($d
d7b00 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d 0a om->createTextNode($name));.}.}.
d7b20 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 }..return.$dom;.}.....protected.
d7b40 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 function.describeInputArgument(I
d7b60 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f nputArgument.$argument,.array.$o
d7b80 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 ptions.=.array()).{.$this->write
d7ba0 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 Document($this->getInputArgument
d7bc0 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 Document($argument));.}.....prot
d7be0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 ected.function.describeInputOpti
d7c00 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f on(InputOption.$option,.array.$o
d7c20 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 ptions.=.array()).{.$this->write
d7c40 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 6f Document($this->getInputOptionDo
d7c60 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 cument($option));.}.....protecte
d7c80 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 d.function.describeInputDefiniti
d7ca0 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 on(InputDefinition.$definition,.
d7cc0 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 array.$options.=.array()).{.$thi
d7ce0 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 s->writeDocument($this->getInput
d7d00 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 29 DefinitionDocument($definition))
d7d20 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 ;.}.....protected.function.descr
d7d40 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 ibeCommand(Command.$command,.arr
d7d60 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e ay.$options.=.array()).{.$this->
d7d80 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 writeDocument($this->getCommandD
d7da0 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ocument($command));.}.....protec
d7dc0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e ted.function.describeApplication
d7de0 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 (Application.$application,.array
d7e00 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 .$options.=.array()).{.$this->wr
d7e20 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f iteDocument($this->getApplicatio
d7e40 6e 44 6f 63 75 6d 65 6e 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 69 73 73 65 74 28 24 6f nDocument($application,.isset($o
d7e60 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b ptions['namespace']).?.$options[
d7e80 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 'namespace'].:.null));.}........
d7ea0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 private.function.appendDocument(
d7ec0 5c 44 4f 4d 4e 6f 64 65 20 24 70 61 72 65 6e 74 4e 6f 64 65 2c 20 5c 44 4f 4d 4e 6f 64 65 20 24 \DOMNode.$parentNode,.\DOMNode.$
d7ee0 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 69 6d 70 6f importedParent).{.foreach.($impo
d7f00 72 74 65 64 50 61 72 65 6e 74 2d 3e 63 68 69 6c 64 4e 6f 64 65 73 20 61 73 20 24 63 68 69 6c 64 rtedParent->childNodes.as.$child
d7f20 4e 6f 64 65 29 20 7b 0a 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 Node).{.$parentNode->appendChild
d7f40 28 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 6f 77 6e 65 72 44 6f 63 75 6d 65 6e 74 2d 3e 69 6d 70 ($parentNode->ownerDocument->imp
d7f60 6f 72 74 4e 6f 64 65 28 24 63 68 69 6c 64 4e 6f 64 65 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 0a ortNode($childNode,.true));.}.}.
d7f80 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 44 6f ........private.function.writeDo
d7fa0 63 75 6d 65 6e 74 28 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 20 24 64 6f 6d 29 0a 7b 0a 24 64 6f 6d cument(\DOMDocument.$dom).{.$dom
d7fc0 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 77 72 ->formatOutput.=.true;.$this->wr
d7fe0 69 74 65 28 24 64 6f 6d 2d 3e 73 61 76 65 58 4d 4c 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 ite($dom->saveXML());.}.......pr
d8000 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 ivate.function.getInputArgumentD
d8020 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 ocument(InputArgument.$argument)
d8040 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 .{.$dom.=.new.\DOMDocument('1.0'
d8060 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 ,.'UTF-8');..$dom->appendChild($
d8080 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 objectXML.=.$dom->createElement(
d80a0 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 'argument'));.$objectXML->setAtt
d80c0 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d ribute('name',.$argument->getNam
d80e0 65 28 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 e());.$objectXML->setAttribute('
d8100 69 73 5f 72 65 71 75 69 72 65 64 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 is_required',.$argument->isRequi
d8120 72 65 64 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 red().?.1.:.0);.$objectXML->setA
d8140 74 74 72 69 62 75 74 65 28 27 69 73 5f 61 72 72 61 79 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e ttribute('is_array',.$argument->
d8160 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e isArray().?.1.:.0);.$objectXML->
d8180 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 appendChild($descriptionXML.=.$d
d81a0 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 om->createElement('description')
d81c0 29 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 );.$descriptionXML->appendChild(
d81e0 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 61 72 67 75 6d 65 6e 74 2d 3e $dom->createTextNode($argument->
d8200 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d getDescription()));..$objectXML-
d8220 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 73 58 4d 4c 20 3d 20 24 64 6f 6d >appendChild($defaultsXML.=.$dom
d8240 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 24 64 ->createElement('defaults'));.$d
d8260 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 efaults.=.is_array($argument->ge
d8280 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 tDefault()).?.$argument->getDefa
d82a0 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 ult().:.(is_bool($argument->getD
d82c0 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 61 72 efault()).?.array(var_export($ar
d82e0 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 gument->getDefault(),.true)).:.(
d8300 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 $argument->getDefault().?.array(
d8320 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 $argument->getDefault()).:.array
d8340 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 ()));.foreach.($defaults.as.$def
d8360 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c ault).{.$defaultsXML->appendChil
d8380 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d d($defaultXML.=.$dom->createElem
d83a0 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 ent('default'));.$defaultXML->ap
d83c0 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 pendChild($dom->createTextNode($
d83e0 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a default));.}..return.$dom;.}....
d8400 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 4f 70 74 69 ...private.function.getInputOpti
d8420 6f 6e 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a onDocument(InputOption.$option).
d8440 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 28 27 31 2e 30 27 2c {.$dom.=.new.\DOMDocument('1.0',
d8460 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6f .'UTF-8');..$dom->appendChild($o
d8480 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 bjectXML.=.$dom->createElement('
d84a0 6f 70 74 69 6f 6e 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 option'));.$objectXML->setAttrib
d84c0 75 74 65 28 27 6e 61 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d ute('name',.'--'.$option->getNam
d84e0 65 28 29 29 3b 0a 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 e());.$pos.=.strpos($option->get
d8500 53 68 6f 72 74 63 75 74 28 29 2c 20 27 7c 27 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 Shortcut(),.'|');.if.(false.!==.
d8520 24 70 6f 73 29 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 $pos).{.$objectXML->setAttribute
d8540 28 27 73 68 6f 72 74 63 75 74 27 2c 20 27 2d 27 2e 73 75 62 73 74 72 28 24 6f 70 74 69 6f 6e 2d ('shortcut',.'-'.substr($option-
d8560 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 24 6f 62 6a 65 >getShortcut(),.0,.$pos));.$obje
d8580 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 73 27 2c ctXML->setAttribute('shortcuts',
d85a0 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 .'-'.implode('|-',.explode('|',.
d85c0 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 29 3b 0a 7d 20 65 6c 73 $option->getShortcut())));.}.els
d85e0 65 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 e.{.$objectXML->setAttribute('sh
d8600 6f 72 74 63 75 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 ortcut',.$option->getShortcut().
d8620 3f 20 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3a 20 27 ?.'-'.$option->getShortcut().:.'
d8640 27 29 3b 0a 7d 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 ');.}.$objectXML->setAttribute('
d8660 61 63 63 65 70 74 5f 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 accept_value',.$option->acceptVa
d8680 6c 75 65 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 lue().?.1.:.0);.$objectXML->setA
d86a0 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 2c 20 24 6f ttribute('is_value_required',.$o
d86c0 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 31 20 3a 20 30 ption->isValueRequired().?.1.:.0
d86e0 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f );.$objectXML->setAttribute('is_
d8700 6d 75 6c 74 69 70 6c 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 multiple',.$option->isArray().?.
d8720 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 1.:.0);.$objectXML->appendChild(
d8740 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c $descriptionXML.=.$dom->createEl
d8760 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 64 65 73 63 72 69 70 74 ement('description'));.$descript
d8780 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 ionXML->appendChild($dom->create
d87a0 54 65 78 74 4e 6f 64 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e TextNode($option->getDescription
d87c0 28 29 29 29 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 ()));..if.($option->acceptValue(
d87e0 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f )).{.$defaults.=.is_array($optio
d8800 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 n->getDefault()).?.$option->getD
d8820 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 efault().:.(is_bool($option->get
d8840 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 70 6f 72 74 28 24 6f Default()).?.array(var_export($o
d8860 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 20 3a 20 28 24 ption->getDefault(),.true)).:.($
d8880 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 72 72 61 79 28 24 6f 70 option->getDefault().?.array($op
d88a0 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 72 61 79 28 29 29 29 3b tion->getDefault()).:.array()));
d88c0 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c .$objectXML->appendChild($defaul
d88e0 74 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 tsXML.=.$dom->createElement('def
d8900 61 75 6c 74 73 27 29 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 65 66 61 75 6c 74 73 29 aults'));..if.(!empty($defaults)
d8920 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 73 20 24 64 65 66 61 75 ).{.foreach.($defaults.as.$defau
d8940 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 lt).{.$defaultsXML->appendChild(
d8960 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e $defaultXML.=.$dom->createElemen
d8980 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 4d 4c 2d 3e 61 70 70 65 t('default'));.$defaultXML->appe
d89a0 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 64 65 ndChild($dom->createTextNode($de
d89c0 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 7d fault));.}.}.}..return.$dom;.}.}
d89e0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
d8a00 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b ny\Component\Console\Descriptor;
d8a20 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ..use.Symfony\Component\Console\
d8a40 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 Application;.use.Symfony\Compone
d8a60 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 nt\Console\Command\Command;.use.
d8a80 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c Symfony\Component\Console\Input\
d8aa0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f InputArgument;.use.Symfony\Compo
d8ac0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 nent\Console\Input\InputDefiniti
d8ae0 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
d8b00 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 e\Input\InputOption;.........cla
d8b20 73 73 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 ss.MarkdownDescriptor.extends.De
d8b40 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e scriptor.{....protected.function
d8b60 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 .describeInputArgument(InputArgu
d8b80 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d ment.$argument,.array.$options.=
d8ba0 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 27 2a 2a 27 2e 24 .array()).{.$this->write(.'**'.$
d8bc0 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c 6e 5c 6e 22 argument->getName().':**'."\n\n"
d8be0 0a 2e 27 2a 20 4e 61 6d 65 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 ..'*.Name:.'.($argument->getName
d8c00 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 72 65 71 75 ().?:.'<none>')."\n"..'*.Is.requ
d8c20 69 72 65 64 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 ired:.'.($argument->isRequired()
d8c40 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 61 72 72 .?.'yes'.:.'no')."\n"..'*.Is.arr
d8c60 61 79 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 79 ay:.'.($argument->isArray().?.'y
d8c80 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e es'.:.'no')."\n"..'*.Description
d8ca0 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 :.'.($argument->getDescription()
d8cc0 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 75 6c 74 3a 20 .?:.'<none>')."\n"..'*.Default:.
d8ce0 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 `'.str_replace("\n",.'',.var_exp
d8d00 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 ort($argument->getDefault(),.tru
d8d20 65 29 29 2e 27 60 27 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 e)).'`'.);.}.....protected.funct
d8d40 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 ion.describeInputOption(InputOpt
d8d60 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 ion.$option,.array.$options.=.ar
d8d80 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 27 2a 2a 27 2e 24 6f 70 74 ray()).{.$this->write(.'**'.$opt
d8da0 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 ion->getName().':**'."\n\n"..'*.
d8dc0 4e 61 6d 65 3a 20 60 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 60 Name:.`--'.$option->getName().'`
d8de0 27 2e 22 5c 6e 22 0a 2e 27 2a 20 53 68 6f 72 74 63 75 74 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d '."\n"..'*.Shortcut:.'.($option-
d8e00 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 60 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c >getShortcut().?.'`-'.implode('|
d8e20 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f -',.explode('|',.$option->getSho
d8e40 72 74 63 75 74 28 29 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e rtcut())).'`'.:.'<none>')."\n"..
d8e60 27 2a 20 41 63 63 65 70 74 20 76 61 6c 75 65 3a 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 '*.Accept.value:.'.($option->acc
d8e80 65 70 74 56 61 6c 75 65 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a eptValue().?.'yes'.:.'no')."\n".
d8ea0 2e 27 2a 20 49 73 20 76 61 6c 75 65 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 6f 70 74 69 6f .'*.Is.value.required:.'.($optio
d8ec0 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 n->isValueRequired().?.'yes'.:.'
d8ee0 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 6d 75 6c 74 69 70 6c 65 3a 20 27 2e 28 24 6f no')."\n"..'*.Is.multiple:.'.($o
d8f00 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 ption->isArray().?.'yes'.:.'no')
d8f20 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 6f 70 74 69 6f ."\n"..'*.Description:.'.($optio
d8f40 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 n->getDescription().?:.'<none>')
d8f60 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 ."\n"..'*.Default:.`'.str_replac
d8f80 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e e("\n",.'',.var_export($option->
d8fa0 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 2e 27 60 27 0a 29 3b 0a 7d 0a 0a 0a getDefault(),.true)).'`'.);.}...
d8fc0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 ..protected.function.describeInp
d8fe0 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 utDefinition(InputDefinition.$de
d9000 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 finition,.array.$options.=.array
d9020 28 29 29 0a 7b 0a 69 66 20 28 24 73 68 6f 77 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 ()).{.if.($showArguments.=.count
d9040 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 29 20 3e 20 ($definition->getArguments()).>.
d9060 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 23 23 23 20 41 72 67 75 6d 65 6e 74 73 0).{.$this->write('###.Arguments
d9080 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 :');.foreach.($definition->getAr
d90a0 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d guments().as.$argument).{.$this-
d90c0 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 74 68 >write("\n\n");.$this->write($th
d90e0 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d is->describeInputArgument($argum
d9100 65 6e 74 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 69 6e 69 74 69 6f ent));.}.}..if.(count($definitio
d9120 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a 69 66 20 28 24 73 68 6f n->getOptions()).>.0).{.if.($sho
d9140 77 41 72 67 75 6d 65 6e 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e wArguments).{.$this->write("\n\n
d9160 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 23 23 23 20 4f 70 74 69 6f 6e 73 ");.}..$this->write('###.Options
d9180 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 :');.foreach.($definition->getOp
d91a0 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 tions().as.$option).{.$this->wri
d91c0 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e te("\n\n");.$this->write($this->
d91e0 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d describeInputOption($option));.}
d9200 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 .}.}.....protected.function.desc
d9220 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 ribeCommand(Command.$command,.ar
d9240 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 ray.$options.=.array()).{.$comma
d9260 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 nd->getSynopsis();.$command->mer
d9280 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a geApplicationDefinition(false);.
d92a0 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 .$this->write(.$command->getName
d92c0 28 29 2e 22 5c 6e 22 0a 2e 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 ()."\n"..str_repeat('-',.strlen(
d92e0 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 2e 22 5c 6e 5c 6e 22 0a 2e 27 2a $command->getName()))."\n\n"..'*
d9300 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 .Description:.'.($command->getDe
d9320 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 scription().?:.'<none>')."\n"..'
d9340 2a 20 55 73 61 67 65 3a 20 60 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 *.Usage:.`'.$command->getSynopsi
d9360 73 28 29 2e 27 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 41 6c 69 61 73 65 73 3a 20 27 2e 28 63 6f 75 s().'`'."\n"..'*.Aliases:.'.(cou
d9380 6e 74 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 3f 20 27 60 27 nt($command->getAliases()).?.'`'
d93a0 2e 69 6d 70 6c 6f 64 65 28 27 60 2c 20 60 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c .implode('`,.`',.$command->getAl
d93c0 69 61 73 65 73 28 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 0a 29 3b 0a 0a 69 66 20 iases()).'`'.:.'<none>').);..if.
d93e0 28 24 68 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 ($help.=.$command->getProcessedH
d9400 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 elp()).{.$this->write("\n\n");.$
d9420 74 68 69 73 2d 3e 77 72 69 74 65 28 24 68 65 6c 70 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 6d this->write($help);.}..if.($comm
d9440 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 20 7b 0a 24 74 and->getNativeDefinition()).{.$t
d9460 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 his->write("\n\n");.$this->descr
d9480 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 ibeInputDefinition($command->get
d94a0 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f NativeDefinition());.}.}.....pro
d94c0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 tected.function.describeApplicat
d94e0 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 ion(Application.$application,.ar
d9500 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 65 73 63 72 ray.$options.=.array()).{.$descr
d9520 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 ibedNamespace.=.isset($options['
d9540 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 namespace']).?.$options['namespa
d9560 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 ce'].:.null;.$description.=.new.
d9580 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 ApplicationDescription($applicat
d95a0 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 24 74 68 69 ion,.$describedNamespace);..$thi
d95c0 73 2d 3e 77 72 69 74 65 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 s->write($application->getName()
d95e0 2e 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 3d 27 2c 20 73 74 72 6c 65 6e 28 24 61 70 ."\n".str_repeat('=',.strlen($ap
d9600 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 plication->getName())));..foreac
d9620 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 h.($description->getNamespaces()
d9640 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 41 70 70 6c 69 63 61 74 69 6f .as.$namespace).{.if.(Applicatio
d9660 6e 44 65 73 63 72 69 70 74 69 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 nDescription::GLOBAL_NAMESPACE.!
d9680 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 ==.$namespace['id']).{.$this->wr
d96a0 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 2a 2a 27 2e 24 ite("\n\n");.$this->write('**'.$
d96c0 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3a 2a 2a 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 namespace['id'].':**');.}..$this
d96e0 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 69 6d ->write("\n\n");.$this->write(im
d9700 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 plode("\n",.array_map(function.(
d9720 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 20 27 2e 24 63 6f 6d $commandName).{.return.'*.'.$com
d9740 6d 61 6e 64 4e 61 6d 65 3b 0a 7d 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 mandName;.},.$namespace['command
d9760 73 27 5d 29 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e s'])));.}..foreach.($description
d9780 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 ->getCommands().as.$command).{.$
d97a0 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 this->write("\n\n");.$this->writ
d97c0 65 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e e($this->describeCommand($comman
d97e0 64 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 d));.}.}.}.<?php...........names
d9800 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 pace.Symfony\Component\Console\D
d9820 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e escriptor;..use.Symfony\Componen
d9840 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f t\Console\Application;.use.Symfo
d9860 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d ny\Component\Console\Command\Com
d9880 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 mand;.......class.ApplicationDes
d98a0 63 72 69 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 cription.{.const.GLOBAL_NAMESPAC
d98c0 45 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c E.=.'_global';.....private.$appl
d98e0 69 63 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 3b ication;.....private.$namespace;
d9900 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 0a 0a 0a 0a 70 72 .....private.$namespaces;.....pr
d9920 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 6c ivate.$commands;.....private.$al
d9940 69 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f iases;........public.function.__
d9960 63 6f 6e 73 74 72 75 63 74 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 construct(Application.$applicati
d9980 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e on,.$namespace.=.null).{.$this->
d99a0 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 application.=.$application;.$thi
d99c0 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3d 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 7d 0a 0a 0a 0a s->namespace.=.$namespace;.}....
d99e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 .public.function.getNamespaces()
d9a00 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 .{.if.(null.===.$this->namespace
d9a20 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 s).{.$this->inspectApplication()
d9a40 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 3b 0a 7d ;.}..return.$this->namespaces;.}
d9a60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 73 .....public.function.getCommands
d9a80 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 ().{.if.(null.===.$this->command
d9aa0 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 s).{.$this->inspectApplication()
d9ac0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a ;.}..return.$this->commands;.}..
d9ae0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e .......public.function.getComman
d9b00 64 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d d($name).{.if.(!isset($this->com
d9b20 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 mands[$name]).&&.!isset($this->a
d9b40 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 liases[$name])).{.throw.new.\Inv
d9b60 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 alidArgumentException(sprintf('C
d9b80 6f 6d 6d 61 6e 64 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d ommand.%s.does.not.exist.',.$nam
d9ba0 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d e));.}..return.isset($this->comm
d9bc0 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 ands[$name]).?.$this->commands[$
d9be0 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d name].:.$this->aliases[$name];.}
d9c00 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 70 65 63 74 41 70 70 6c 69 63 ..private.function.inspectApplic
d9c20 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 ation().{.$this->commands.=.arra
d9c40 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 y();.$this->namespaces.=.array()
d9c60 3b 0a 0a 24 61 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c ;..$all.=.$this->application->al
d9c80 6c 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 70 70 6c l($this->namespace.?.$this->appl
d9ca0 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 24 74 68 69 73 2d 3e 6e 61 ication->findNamespace($this->na
d9cc0 6d 65 73 70 61 63 65 29 20 3a 20 6e 75 6c 6c 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 mespace).:.null);.foreach.($this
d9ce0 2d 3e 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 24 61 6c 6c 29 20 61 73 20 24 6e 61 6d 65 73 70 61 ->sortCommands($all).as.$namespa
d9d00 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 ce.=>.$commands).{.$names.=.arra
d9d20 79 28 29 3b 0a 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 y();...foreach.($commands.as.$na
d9d40 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d me.=>.$command).{.if.(!$command-
d9d60 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 >getName()).{.continue;.}..if.($
d9d80 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a command->getName().===.$name).{.
d9da0 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e $this->commands[$name].=.$comman
d9dc0 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 d;.}.else.{.$this->aliases[$name
d9de0 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 5b 5d 20 3d 20 24 6e 61 6d ].=.$command;.}..$names[].=.$nam
d9e00 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 61 6d 65 73 70 61 e;.}..$this->namespaces[$namespa
d9e20 63 65 5d 20 3d 20 61 72 72 61 79 28 27 69 64 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 ce].=.array('id'.=>.$namespace,.
d9e40 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 6e 61 6d 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 'commands'.=>.$names);.}.}......
d9e60 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 61 .private.function.sortCommands(a
d9e80 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d rray.$commands).{.$namespacedCom
d9ea0 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 mands.=.array();.foreach.($comma
d9ec0 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 6b 65 79 nds.as.$name.=>.$command).{.$key
d9ee0 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 65 78 74 72 61 63 74 4e 61 .=.$this->application->extractNa
d9f00 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 7b 0a mespace($name,.1);.if.(!$key).{.
d9f20 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 64 $key.=.'_global';.}..$namespaced
d9f40 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 Commands[$key][$name].=.$command
d9f60 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b 0a ;.}.ksort($namespacedCommands);.
d9f80 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 73 .foreach.($namespacedCommands.as
d9fa0 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 29 3b .&$commands).{.ksort($commands);
d9fc0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b 0a .}..return.$namespacedCommands;.
d9fe0 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 }.}.<?php...........namespace.Sy
da000 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
da020 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f or;..use.Symfony\Component\Conso
da040 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 le\Application;.use.Symfony\Comp
da060 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 onent\Console\Command\Command;.u
da080 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
da0a0 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ut\InputArgument;.use.Symfony\Co
da0c0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e mponent\Console\Input\InputDefin
da0e0 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ition;.use.Symfony\Component\Con
da100 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 sole\Input\InputOption;.use.Symf
da120 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 ony\Component\Console\Output\Out
da140 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 putInterface;.......abstract.cla
da160 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 65 73 63 72 69 70 ss.Descriptor.implements.Descrip
da180 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 torInterface.{....private.$outpu
da1a0 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 t;.....public.function.describe(
da1c0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 OutputInterface.$output,.$object
da1e0 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 ,.array.$options.=.array()).{.$t
da200 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 73 77 69 74 63 68 20 28 his->output.=.$output;..switch.(
da220 74 72 75 65 29 20 7b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 true).{.case.$object.instanceof.
da240 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e InputArgument:.$this->describeIn
da260 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a putArgument($object,.$options);.
da280 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 break;.case.$object.instanceof.I
da2a0 6e 70 75 74 4f 70 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 nputOption:.$this->describeInput
da2c0 4f 70 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b Option($object,.$options);.break
da2e0 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 ;.case.$object.instanceof.InputD
da300 65 66 69 6e 69 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 efinition:.$this->describeInputD
da320 65 66 69 6e 69 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 efinition($object,.$options);.br
da340 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d eak;.case.$object.instanceof.Com
da360 6d 61 6e 64 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 6f 62 mand:.$this->describeCommand($ob
da380 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 ject,.$options);.break;.case.$ob
da3a0 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 24 74 68 ject.instanceof.Application:.$th
da3c0 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c is->describeApplication($object,
da3e0 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f .$options);.break;.default:.thro
da400 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 w.new.\InvalidArgumentException(
da420 73 70 72 69 6e 74 66 28 27 4f 62 6a 65 63 74 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 20 sprintf('Object.of.type."%s".is.
da440 6e 6f 74 20 64 65 73 63 72 69 62 61 62 6c 65 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 not.describable.',.get_class($ob
da460 6a 65 63 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ject)));.}.}........protected.fu
da480 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 63 6f 6e 74 65 6e 74 2c 20 24 64 65 63 6f 72 61 74 65 nction.write($content,.$decorate
da4a0 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 d.=.false).{.$this->output->writ
da4c0 65 28 24 63 6f 6e 74 65 6e 74 2c 20 66 61 6c 73 65 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3f 20 e($content,.false,.$decorated.?.
da4e0 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3a OutputInterface::OUTPUT_NORMAL.:
da500 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d .OutputInterface::OUTPUT_RAW);.}
da520 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
da540 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 ction.describeInputArgument(Inpu
da560 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 tArgument.$argument,.array.$opti
da580 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 ons.=.array());..........abstrac
da5a0 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 t.protected.function.describeInp
da5c0 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 utOption(InputOption.$option,.ar
da5e0 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a ray.$options.=.array());........
da600 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 ..abstract.protected.function.de
da620 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e scribeInputDefinition(InputDefin
da640 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e ition.$definition,.array.$option
da660 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 s.=.array());..........abstract.
da680 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 protected.function.describeComma
da6a0 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 nd(Command.$command,.array.$opti
da6c0 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 ons.=.array());..........abstrac
da6e0 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 t.protected.function.describeApp
da700 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f lication(Application.$applicatio
da720 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a n,.array.$options.=.array());.}.
da740 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
da760 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a y\Component\Console\Descriptor;.
da780 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 .use.Symfony\Component\Console\A
da7a0 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e pplication;.use.Symfony\Componen
da7c0 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 t\Console\Command\Command;.use.S
da7e0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
da800 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e nputArgument;.use.Symfony\Compon
da820 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f ent\Console\Input\InputDefinitio
da840 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 n;.use.Symfony\Component\Console
da860 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 \Input\InputOption;.........clas
da880 73 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 s.JsonDescriptor.extends.Descrip
da8a0 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 tor.{....protected.function.desc
da8c0 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 ribeInputArgument(InputArgument.
da8e0 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 $argument,.array.$options.=.arra
da900 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 y()).{.$this->writeData($this->g
da920 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 74 61 28 24 61 72 67 75 6d 65 6e 74 29 2c 20 etInputArgumentData($argument),.
da940 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 $options);.}.....protected.funct
da960 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 ion.describeInputOption(InputOpt
da980 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 ion.$option,.array.$options.=.ar
da9a0 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d ray()).{.$this->writeData($this-
da9c0 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 2c 20 24 6f >getInputOptionData($option),.$o
da9e0 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ptions);.}.....protected.functio
daa00 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 n.describeInputDefinition(InputD
daa20 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 efinition.$definition,.array.$op
daa40 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 tions.=.array()).{.$this->writeD
daa60 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 ata($this->getInputDefinitionDat
daa80 61 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a a($definition),.$options);.}....
daaa0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d .protected.function.describeComm
daac0 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 and(Command.$command,.array.$opt
daae0 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 ions.=.array()).{.$this->writeDa
dab00 74 61 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 24 63 6f 6d 6d 61 6e ta($this->getCommandData($comman
dab20 64 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 d),.$options);.}.....protected.f
dab40 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c unction.describeApplication(Appl
dab60 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 ication.$application,.array.$opt
dab80 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 ions.=.array()).{.$describedName
daba0 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 space.=.isset($options['namespac
dabc0 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e e']).?.$options['namespace'].:.n
dabe0 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 ull;.$description.=.new.Applicat
dac00 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 ionDescription($application,.$de
dac20 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 scribedNamespace);.$commands.=.a
dac40 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e rray();..foreach.($description->
dac60 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 63 6f getCommands().as.$command).{.$co
dac80 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 mmands[].=.$this->getCommandData
daca0 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 64 65 73 63 72 69 62 65 ($command);.}..$data.=.$describe
dacc0 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e dNamespace.?.array('commands'.=>
dace0 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 64 65 73 63 .$commands,.'namespace'.=>.$desc
dad00 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 ribedNamespace).:.array('command
dad20 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 73 70 61 63 65 73 27 20 3d 3e s'.=>.$commands,.'namespaces'.=>
dad40 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e .array_values($description->getN
dad60 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 amespaces()));..$this->writeData
dad80 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ($data,.$options);.}..........pr
dada0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 44 61 74 61 28 61 72 72 61 79 20 24 ivate.function.writeData(array.$
dadc0 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 data,.array.$options).{.$this->w
dade0 72 69 74 65 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 61 74 61 2c 20 69 73 73 65 74 28 24 6f rite(json_encode($data,.isset($o
dae00 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d 29 20 3f 20 24 6f 70 74 69 ptions['json_encoding']).?.$opti
dae20 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e 67 27 5d 20 3a 20 30 29 29 3b 0a 7d 0a 0a 0a ons['json_encoding'].:.0));.}...
dae40 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 41 72 67 ....private.function.getInputArg
dae60 75 6d 65 6e 74 44 61 74 61 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e umentData(InputArgument.$argumen
dae80 74 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 61 72 t).{.return.array(.'name'.=>.$ar
daea0 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 69 73 5f 72 65 71 75 69 72 65 64 27 gument->getName(),.'is_required'
daec0 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 .=>.$argument->isRequired(),.'is
daee0 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 2c _array'.=>.$argument->isArray(),
daf00 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 .'description'.=>.$argument->get
daf20 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 61 72 67 Description(),.'default'.=>.$arg
daf40 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ument->getDefault(),.);.}.......
daf60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 private.function.getInputOptionD
daf80 61 74 61 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 ata(InputOption.$option).{.retur
dafa0 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d n.array(.'name'.=>.'--'.$option-
dafc0 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 68 6f 72 74 63 75 74 27 20 3d 3e 20 24 6f 70 74 69 6f >getName(),.'shortcut'.=>.$optio
dafe0 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 n->getShortcut().?.'-'.implode('
db000 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 |-',.explode('|',.$option->getSh
db020 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 27 2c 0a 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 20 ortcut())).:.'',.'accept_value'.
db040 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 2c 0a 27 69 73 5f 76 =>.$option->acceptValue(),.'is_v
db060 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c alue_required'.=>.$option->isVal
db080 75 65 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 20 3d 3e 20 24 ueRequired(),.'is_multiple'.=>.$
db0a0 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 option->isArray(),.'description'
db0c0 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 .=>.$option->getDescription(),.'
db0e0 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 default'.=>.$option->getDefault(
db100 29 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 ),.);.}.......private.function.g
db120 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 49 6e 70 75 74 44 65 66 69 6e etInputDefinitionData(InputDefin
db140 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d ition.$definition).{.$inputArgum
db160 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 ents.=.array();.foreach.($defini
db180 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e tion->getArguments().as.$name.=>
db1a0 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 5b 24 6e .$argument).{.$inputArguments[$n
db1c0 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 ame].=.$this->getInputArgumentDa
db1e0 74 61 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 ta($argument);.}..$inputOptions.
db200 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d =.array();.foreach.($definition-
db220 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 69 6f >getOptions().as.$name.=>.$optio
db240 6e 29 20 7b 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 n).{.$inputOptions[$name].=.$thi
db260 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 3b 0a s->getInputOptionData($option);.
db280 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 61 72 67 75 6d 65 6e 74 73 27 20 3d 3e 20 24 }..return.array('arguments'.=>.$
db2a0 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 2c 20 27 6f 70 74 69 6f 6e 73 27 20 3d 3e 20 24 69 6e inputArguments,.'options'.=>.$in
db2c0 70 75 74 4f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e putOptions);.}.......private.fun
db2e0 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 43 6f 6d 6d 61 6e 64 20 24 63 6f ction.getCommandData(Command.$co
db300 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 mmand).{.$command->getSynopsis()
db320 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 ;.$command->mergeApplicationDefi
db340 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e nition(false);..return.array(.'n
db360 61 6d 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 75 73 ame'.=>.$command->getName(),.'us
db380 61 67 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c age'.=>.$command->getSynopsis(),
db3a0 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 .'description'.=>.$command->getD
db3c0 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 68 65 6c 70 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 escription(),.'help'.=>.$command
db3e0 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 2c 0a 27 61 6c 69 61 73 65 73 27 20 ->getProcessedHelp(),.'aliases'.
db400 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 2c 0a 27 64 65 66 69 =>.$command->getAliases(),.'defi
db420 6e 69 74 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 nition'.=>.$this->getInputDefini
db440 74 69 6f 6e 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 tionData($command->getNativeDefi
db460 6e 69 74 69 6f 6e 28 29 29 2c 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a nition()),.);.}.}.<?php.........
db480 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f ..namespace.Symfony\Component\Co
db4a0 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 nsole\Helper;.........interface.
db4c0 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 HelperInterface.{........public.
db4e0 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 function.setHelperSet(HelperSet.
db500 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c $helperSet.=.null);.........publ
db520 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a ic.function.getHelperSet();.....
db540 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d ....public.function.getName();.}
db560 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
db580 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 ny\Component\Console\Helper;..us
db5a0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 e.Symfony\Component\Console\Outp
db5c0 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ut\OutputInterface;.use.Symfony\
db5e0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4e 75 6c 6c 4f 75 74 Component\Console\Output\NullOut
db600 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 48 65 6c 70 65 72 20 put;..........class.TableHelper.
db620 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 44 45 extends.Helper.{.const.LAYOUT_DE
db640 46 41 55 4c 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 FAULT.=.0;.const.LAYOUT_BORDERLE
db660 53 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 43 4f 4d 50 41 43 54 20 3d 20 32 SS.=.1;.const.LAYOUT_COMPACT.=.2
db680 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 ;.....private.$table;..public.fu
db6a0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 nction.__construct().{.$this->ta
db6c0 62 6c 65 20 3d 20 6e 65 77 20 54 61 62 6c 65 28 6e 65 77 20 4e 75 6c 6c 4f 75 74 70 75 74 28 29 ble.=.new.Table(new.NullOutput()
db6e0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 );.}...........public.function.s
db700 65 74 4c 61 79 6f 75 74 28 24 6c 61 79 6f 75 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6c 61 79 etLayout($layout).{.switch.($lay
db720 6f 75 74 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c out).{.case.self::LAYOUT_BORDERL
db740 45 53 53 3a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 53 74 79 6c 65 28 27 62 6f 72 ESS:.$this->table->setStyle('bor
db760 64 65 72 6c 65 73 73 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4c 41 derless');.break;..case.self::LA
db780 59 4f 55 54 5f 43 4f 4d 50 41 43 54 3a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 53 YOUT_COMPACT:.$this->table->setS
db7a0 74 79 6c 65 28 27 63 6f 6d 70 61 63 74 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 tyle('compact');.break;..case.se
db7c0 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 3a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 lf::LAYOUT_DEFAULT:.$this->table
db7e0 2d 3e 73 65 74 53 74 79 6c 65 28 27 64 65 66 61 75 6c 74 27 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 ->setStyle('default');.break;..d
db800 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 efault:.throw.new.\InvalidArgume
db820 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 61 62 ntException(sprintf('Invalid.tab
db840 6c 65 20 6c 61 79 6f 75 74 20 22 25 73 22 2e 27 2c 20 24 6c 61 79 6f 75 74 29 29 3b 0a 7d 3b 0a le.layout."%s".',.$layout));.};.
db860 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .return.$this;.}..public.functio
db880 6e 20 73 65 74 48 65 61 64 65 72 73 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 n.setHeaders(array.$headers).{.$
db8a0 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 this->table->setHeaders($headers
db8c0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 );..return.$this;.}..public.func
db8e0 74 69 6f 6e 20 73 65 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 69 tion.setRows(array.$rows).{.$thi
db900 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 0a 72 65 74 75 72 s->table->setRows($rows);..retur
db920 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 n.$this;.}..public.function.addR
db940 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d ows(array.$rows).{.$this->table-
db960 3e 61 64 64 52 6f 77 73 28 24 72 6f 77 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a >addRows($rows);..return.$this;.
db980 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 61 72 72 61 79 20 }..public.function.addRow(array.
db9a0 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 61 64 64 52 6f 77 28 24 72 6f $row).{.$this->table->addRow($ro
db9c0 77 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e w);..return.$this;.}..public.fun
db9e0 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d 6e 2c 20 61 72 72 61 79 20 24 72 6f 77 ction.setRow($column,.array.$row
dba00 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d 6e ).{.$this->table->setRow($column
dba20 2c 20 24 72 6f 77 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ,.$row);..return.$this;.}.......
dba40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 ..public.function.setPaddingChar
dba60 28 24 70 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 ($paddingChar).{.$this->table->g
dba80 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 24 70 61 64 64 69 etStyle()->setPaddingChar($paddi
dbaa0 6e 67 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ngChar);..return.$this;.}.......
dbac0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 ..public.function.setHorizontalB
dbae0 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 29 orderChar($horizontalBorderChar)
dbb00 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 .{.$this->table->getStyle()->set
dbb20 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c HorizontalBorderChar($horizontal
dbb40 42 6f 72 64 65 72 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a BorderChar);..return.$this;.}...
dbb60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 74 69 63 61 ......public.function.setVertica
dbb80 6c 42 6f 72 64 65 72 43 68 61 72 28 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 lBorderChar($verticalBorderChar)
dbba0 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 .{.$this->table->getStyle()->set
dbbc0 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 76 65 72 74 69 63 61 6c 42 6f 72 64 VerticalBorderChar($verticalBord
dbbe0 65 72 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a erChar);..return.$this;.}.......
dbc00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 ..public.function.setCrossingCha
dbc20 72 28 24 63 72 6f 73 73 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d r($crossingChar).{.$this->table-
dbc40 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 24 63 72 >getStyle()->setCrossingChar($cr
dbc60 6f 73 73 69 6e 67 43 68 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a ossingChar);..return.$this;.}...
dbc80 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 48 65 61 ......public.function.setCellHea
dbca0 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 derFormat($cellHeaderFormat).{.$
dbcc0 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 43 65 6c 6c this->table->getStyle()->setCell
dbce0 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 3b HeaderFormat($cellHeaderFormat);
dbd00 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ..return.$this;.}.........public
dbd20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c .function.setCellRowFormat($cell
dbd40 52 6f 77 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 RowFormat).{.$this->table->getSt
dbd60 79 6c 65 28 29 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c yle()->setCellHeaderFormat($cell
dbd80 52 6f 77 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a RowFormat);..return.$this;.}....
dbda0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 43 .....public.function.setCellRowC
dbdc0 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d ontentFormat($cellRowContentForm
dbde0 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e at).{.$this->table->getStyle()->
dbe00 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 setCellRowContentFormat($cellRow
dbe20 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ContentFormat);..return.$this;.}
dbe40 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 6f 72 64 .........public.function.setBord
dbe60 65 72 46 6f 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d erFormat($borderFormat).{.$this-
dbe80 3e 74 61 62 6c 65 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 42 6f 72 64 65 72 46 6f 72 >table->getStyle()->setBorderFor
dbea0 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 mat($borderFormat);..return.$thi
dbec0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 s;.}.........public.function.set
dbee0 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 PadType($padType).{.$this->table
dbf00 2d 3e 67 65 74 53 74 79 6c 65 28 29 2d 3e 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 ->getStyle()->setPadType($padTyp
dbf20 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e);..return.$this;.}............
dbf40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 4f 75 74 70 75 ....public.function.render(Outpu
dbf60 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 70 20 3d 20 6e 65 77 20 5c tInterface.$output).{.$p.=.new.\
dbf80 52 65 66 6c 65 63 74 69 6f 6e 50 72 6f 70 65 72 74 79 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 2c ReflectionProperty($this->table,
dbfa0 20 27 6f 75 74 70 75 74 27 29 3b 0a 24 70 2d 3e 73 65 74 41 63 63 65 73 73 69 62 6c 65 28 74 72 .'output');.$p->setAccessible(tr
dbfc0 75 65 29 3b 0a 24 70 2d 3e 73 65 74 56 61 6c 75 65 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 2c 20 ue);.$p->setValue($this->table,.
dbfe0 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 62 6c 65 2d 3e 72 65 6e 64 65 72 28 $output);..$this->table->render(
dc000 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 );.}.....public.function.getName
dc020 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 74 61 62 6c 65 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ().{.return.'table';.}.}.<?php..
dc040 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
dc060 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e nent\Console\Helper;..use.Symfon
dc080 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 y\Component\Console\Output\Outpu
dc0a0 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 0a 7b tInterface;........class.Table.{
dc0c0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 ......private.$headers.=.array()
dc0e0 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b ;.......private.$rows.=.array();
dc100 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 .......private.$columnWidths.=.a
dc120 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 75 6d 62 65 72 4f 66 43 rray();.......private.$numberOfC
dc140 6f 6c 75 6d 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a olumns;.....private.$output;....
dc160 0a 70 72 69 76 61 74 65 20 24 73 74 79 6c 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 .private.$style;..private.static
dc180 20 24 73 74 79 6c 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e .$styles;..public.function.__con
dc1a0 73 74 72 75 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a struct(OutputInterface.$output).
dc1c0 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 69 66 20 28 {.$this->output.=.$output;..if.(
dc1e0 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 20 !self::$styles).{.self::$styles.
dc200 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e =.self::initStyles();.}..$this->
dc220 73 65 74 53 74 79 6c 65 28 27 64 65 66 61 75 6c 74 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 setStyle('default');.}........pu
dc240 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 44 65 66 blic.static.function.setStyleDef
dc260 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 54 61 62 6c 65 53 74 79 6c 65 20 24 73 74 79 6c 65 inition($name,.TableStyle.$style
dc280 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a 3a ).{.if.(!self::$styles).{.self::
dc2a0 24 73 74 79 6c 65 73 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d 0a $styles.=.self::initStyles();.}.
dc2c0 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 73 74 79 6c 65 3b 0a .self::$styles[$name].=.$style;.
dc2e0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e }.........public.static.function
dc300 20 67 65 74 53 74 79 6c 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 .getStyleDefinition($name).{.if.
dc320 28 21 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 (!self::$styles).{.self::$styles
dc340 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 53 74 79 6c 65 73 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 73 .=.self::initStyles();.}..if.(!s
dc360 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 elf::$styles[$name]).{.throw.new
dc380 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
dc3a0 74 66 28 27 53 74 79 6c 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c tf('Style."%s".is.not.defined.',
dc3c0 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 79 6c 65 .$name));.}..return.self::$style
dc3e0 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 s[$name];.}.........public.funct
dc400 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 24 6e 61 6d 65 20 ion.setStyle($name).{.if.($name.
dc420 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 74 79 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e instanceof.TableStyle).{.$this->
dc440 73 74 79 6c 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 73 style.=.$name;.}.elseif.(isset(s
dc460 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 elf::$styles[$name])).{.$this->s
dc480 74 79 6c 65 20 3d 20 73 65 6c 66 3a 3a 24 73 74 79 6c 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 20 65 tyle.=.self::$styles[$name];.}.e
dc4a0 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 lse.{.throw.new.\InvalidArgument
dc4c0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 74 79 6c 65 20 22 25 73 22 20 69 73 Exception(sprintf('Style."%s".is
dc4e0 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 .not.defined.',.$name));.}..retu
dc500 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f rn.$this;.}.......public.functio
dc520 6e 20 67 65 74 53 74 79 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 n.getStyle().{.return.$this->sty
dc540 6c 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 61 64 65 72 le;.}..public.function.setHeader
dc560 73 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 s(array.$headers).{.$this->heade
dc580 72 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 68 65 61 64 65 72 73 29 3b 0a 0a 72 65 rs.=.array_values($headers);..re
dc5a0 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 turn.$this;.}..public.function.s
dc5c0 65 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 etRows(array.$rows).{.$this->row
dc5e0 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 52 s.=.array();..return.$this->addR
dc600 6f 77 73 28 24 72 6f 77 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 ows($rows);.}..public.function.a
dc620 64 64 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 ddRows(array.$rows).{.foreach.($
dc640 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 6f 77 28 24 72 rows.as.$row).{.$this->addRow($r
dc660 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 ow);.}..return.$this;.}..public.
dc680 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 24 72 6f 77 29 0a 7b 0a 69 66 20 28 24 72 6f 77 function.addRow($row).{.if.($row
dc6a0 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 24 74 .instanceof.TableSeparator).{.$t
dc6c0 68 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 24 72 6f 77 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a his->rows[].=.$row;..return;.}..
dc6e0 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 6f 77 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 if.(!is_array($row)).{.throw.new
dc700 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 41 20 72 6f .\InvalidArgumentException('A.ro
dc720 77 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 72 20 61 20 54 61 62 6c 65 53 65 70 w.must.be.an.array.or.a.TableSep
dc740 61 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 6f arator.instance.');.}..$this->ro
dc760 77 73 5b 5d 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 72 6f 77 29 3b 0a 0a 65 6e 64 28 ws[].=.array_values($row);..end(
dc780 24 74 68 69 73 2d 3e 72 6f 77 73 29 3b 0a 24 72 6f 77 4b 65 79 20 3d 20 6b 65 79 28 24 74 68 69 $this->rows);.$rowKey.=.key($thi
dc7a0 73 2d 3e 72 6f 77 73 29 3b 0a 72 65 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 77 73 29 3b 0a 0a 66 s->rows);.reset($this->rows);..f
dc7c0 6f 72 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 65 6c 6c 56 61 6c oreach.($row.as.$key.=>.$cellVal
dc7e0 75 65 29 20 7b 0a 69 66 20 28 21 73 74 72 73 74 72 28 24 63 65 6c 6c 56 61 6c 75 65 2c 20 22 5c ue).{.if.(!strstr($cellValue,."\
dc800 6e 22 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 6e 65 73 20 3d 20 65 78 70 n")).{.continue;.}..$lines.=.exp
dc820 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 65 6c 6c 56 61 6c 75 65 29 3b 0a 24 74 68 69 73 2d 3e 72 lode("\n",.$cellValue);.$this->r
dc840 6f 77 73 5b 24 72 6f 77 4b 65 79 5d 5b 24 6b 65 79 5d 20 3d 20 24 6c 69 6e 65 73 5b 30 5d 3b 0a ows[$rowKey][$key].=.$lines[0];.
dc860 75 6e 73 65 74 28 24 6c 69 6e 65 73 5b 30 5d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e unset($lines[0]);..foreach.($lin
dc880 65 73 20 61 73 20 24 6c 69 6e 65 4b 65 79 20 3d 3e 20 24 6c 69 6e 65 29 20 7b 0a 24 6e 65 78 74 es.as.$lineKey.=>.$line).{.$next
dc8a0 52 6f 77 4b 65 79 20 3d 20 24 72 6f 77 4b 65 79 20 2b 20 24 6c 69 6e 65 4b 65 79 20 2b 20 31 3b RowKey.=.$rowKey.+.$lineKey.+.1;
dc8c0 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f 77 ..if.(isset($this->rows[$nextRow
dc8e0 4b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f 77 4b 65 79 Key])).{.$this->rows[$nextRowKey
dc900 5d 5b 24 6b 65 79 5d 20 3d 20 24 6c 69 6e 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ][$key].=.$line;.}.else.{.$this-
dc920 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f 77 4b 65 79 5d 20 3d 20 61 72 72 61 79 28 24 6b 65 79 20 >rows[$nextRowKey].=.array($key.
dc940 3d 3e 20 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a =>.$line);.}.}.}..return.$this;.
dc960 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 6d }..public.function.setRow($colum
dc980 6e 2c 20 61 72 72 61 79 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 63 6f n,.array.$row).{.$this->rows[$co
dc9a0 6c 75 6d 6e 5d 20 3d 20 24 72 6f 77 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a lumn].=.$row;..return.$this;.}..
dc9c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 ............public.function.rend
dc9e0 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 er().{.$this->renderRowSeparator
dca00 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 74 68 69 73 2d 3e 68 65 61 64 ();.$this->renderRow($this->head
dca20 65 72 73 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c 48 65 61 64 65 72 ers,.$this->style->getCellHeader
dca40 46 6f 72 6d 61 74 28 29 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 68 65 61 Format());.if.(!empty($this->hea
dca60 64 65 72 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 ders)).{.$this->renderRowSeparat
dca80 6f 72 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 or();.}.foreach.($this->rows.as.
dcaa0 24 72 6f 77 29 20 7b 0a 69 66 20 28 24 72 6f 77 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c $row).{.if.($row.instanceof.Tabl
dcac0 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 eSeparator).{.$this->renderRowSe
dcae0 70 61 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 parator();.}.else.{.$this->rende
dcb00 72 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c rRow($row,.$this->style->getCell
dcb20 52 6f 77 46 6f 72 6d 61 74 28 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 RowFormat());.}.}.if.(!empty($th
dcb40 69 73 2d 3e 72 6f 77 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 is->rows)).{.$this->renderRowSep
dcb60 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 29 3b 0a 7d arator();.}..$this->cleanup();.}
dcb80 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f .......private.function.renderRo
dcba0 77 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 63 6f 75 6e 74 20 wSeparator().{.if.(0.===.$count.
dcbc0 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 29 20 7b =.$this->getNumberOfColumns()).{
dcbe0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 .return;.}..if.(!$this->style->g
dcc00 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 29 20 26 26 20 21 24 74 68 etHorizontalBorderChar().&&.!$th
dcc20 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 29 20 7b 0a is->style->getCrossingChar()).{.
dcc40 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 61 72 6b 75 70 20 3d 20 24 74 68 69 73 2d 3e 73 74 79 6c return;.}..$markup.=.$this->styl
dcc60 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 3b 0a 66 6f 72 20 28 24 63 6f 6c 75 e->getCrossingChar();.for.($colu
dcc80 6d 6e 20 3d 20 30 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d mn.=.0;.$column.<.$count;.$colum
dcca0 6e 2b 2b 29 20 7b 0a 24 6d 61 72 6b 75 70 20 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 n++).{.$markup..=.str_repeat($th
dccc0 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 is->style->getHorizontalBorderCh
dcce0 61 72 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c ar(),.$this->getColumnWidth($col
dcd00 75 6d 6e 29 29 2e 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 72 6f 73 73 69 6e 67 43 umn)).$this->style->getCrossingC
dcd20 68 61 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e har();.}..$this->output->writeln
dcd40 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 42 6f 72 64 65 72 (sprintf($this->style->getBorder
dcd60 46 6f 72 6d 61 74 28 29 2c 20 24 6d 61 72 6b 75 70 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 Format(),.$markup));.}.....priva
dcd80 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f te.function.renderColumnSeparato
dcda0 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e r().{.$this->output->write(sprin
dcdc0 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 tf($this->style->getBorderFormat
dcde0 28 29 2c 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 56 65 72 74 69 63 61 6c 42 6f 72 (),.$this->style->getVerticalBor
dce00 64 65 72 43 68 61 72 28 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 derChar()));.}..........private.
dce20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 function.renderRow(array.$row,.$
dce40 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 72 6f 77 29 29 20 7b cellFormat).{.if.(empty($row)).{
dce60 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 .return;.}..$this->renderColumnS
dce80 65 70 61 72 61 74 6f 72 28 29 3b 0a 66 6f 72 20 28 24 63 6f 6c 75 6d 6e 20 3d 20 30 2c 20 24 63 eparator();.for.($column.=.0,.$c
dcea0 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 ount.=.$this->getNumberOfColumns
dcec0 28 29 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d 6e 2b 2b 29 ();.$column.<.$count;.$column++)
dcee0 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 65 6c 6c 28 24 72 6f 77 2c 20 24 63 6f 6c 75 .{.$this->renderCell($row,.$colu
dcf00 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 mn,.$cellFormat);.$this->renderC
dcf20 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 olumnSeparator();.}.$this->outpu
dcf40 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 t->writeln('');.}.........privat
dcf60 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 65 6c 6c 28 61 72 72 61 79 20 24 72 6f 77 e.function.renderCell(array.$row
dcf80 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 24 63 65 6c 6c 20 ,.$column,.$cellFormat).{.$cell.
dcfa0 3d 20 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 20 3f 20 24 72 6f 77 5b 24 63 =.isset($row[$column]).?.$row[$c
dcfc0 6f 6c 75 6d 6e 5d 20 3a 20 27 27 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 olumn].:.'';.$width.=.$this->get
dcfe0 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 3b 0a 0a 0a 20 69 66 20 28 66 75 6e ColumnWidth($column);....if.(fun
dd000 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 20 26 26 20 66 ction_exists('mb_strwidth').&&.f
dd020 61 6c 73 65 20 21 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 alse.!==.$encoding.=.mb_detect_e
dd040 6e 63 6f 64 69 6e 67 28 24 63 65 6c 6c 29 29 20 7b 0a 24 77 69 64 74 68 20 2b 3d 20 73 74 72 6c ncoding($cell)).{.$width.+=.strl
dd060 65 6e 28 24 63 65 6c 6c 29 20 2d 20 6d 62 5f 73 74 72 77 69 64 74 68 28 24 63 65 6c 6c 2c 20 24 en($cell).-.mb_strwidth($cell,.$
dd080 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 24 77 69 64 74 68 20 2b 3d 20 48 65 6c 70 65 72 3a 3a encoding);.}..$width.+=.Helper::
dd0a0 73 74 72 6c 65 6e 28 24 63 65 6c 6c 29 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 strlen($cell).-.Helper::strlenWi
dd0c0 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 thoutDecoration($this->output->g
dd0e0 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 63 65 6c 6c 29 3b 0a 0a 24 63 6f 6e 74 65 6e 74 etFormatter(),.$cell);..$content
dd100 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c .=.sprintf($this->style->getCell
dd120 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 29 2c 20 24 63 65 6c 6c 29 3b 0a 0a 24 74 68 RowContentFormat(),.$cell);..$th
dd140 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 63 65 6c 6c 46 is->output->write(sprintf($cellF
dd160 6f 72 6d 61 74 2c 20 73 74 72 5f 70 61 64 28 24 63 6f 6e 74 65 6e 74 2c 20 24 77 69 64 74 68 2c ormat,.str_pad($content,.$width,
dd180 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 29 2c .$this->style->getPaddingChar(),
dd1a0 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 2d 3e 67 65 74 50 61 64 54 79 70 65 28 29 29 29 29 3b 0a .$this->style->getPadType())));.
dd1c0 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 75 6d 62 }.......private.function.getNumb
dd1e0 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 erOfColumns().{.if.(null.!==.$th
dd200 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 is->numberOfColumns).{.return.$t
dd220 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 7d 0a 0a 24 63 6f 6c 75 6d 6e his->numberOfColumns;.}..$column
dd240 73 20 3d 20 61 72 72 61 79 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 29 s.=.array(count($this->headers))
dd260 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 ;.foreach.($this->rows.as.$row).
dd280 7b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 {.$columns[].=.count($row);.}..r
dd2a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6d eturn.$this->numberOfColumns.=.m
dd2c0 61 78 28 24 63 6f 6c 75 6d 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ax($columns);.}.........private.
dd2e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 function.getColumnWidth($column)
dd300 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 .{.if.(isset($this->columnWidths
dd320 5b 24 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 [$column])).{.return.$this->colu
dd340 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 20 3d mnWidths[$column];.}..$lengths.=
dd360 20 61 72 72 61 79 28 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 74 68 69 73 .array($this->getCellWidth($this
dd380 2d 3e 68 65 61 64 65 72 73 2c 20 24 63 6f 6c 75 6d 6e 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 ->headers,.$column));.foreach.($
dd3a0 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 69 66 20 28 24 72 6f 77 20 69 this->rows.as.$row).{.if.($row.i
dd3c0 6e 73 74 61 6e 63 65 6f 66 20 54 61 62 6c 65 53 65 70 61 72 61 74 6f 72 29 20 7b 0a 63 6f 6e 74 nstanceof.TableSeparator).{.cont
dd3e0 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 inue;.}..$lengths[].=.$this->get
dd400 43 65 6c 6c 57 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 7d 0a 0a 72 65 74 CellWidth($row,.$column);.}..ret
dd420 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d urn.$this->columnWidths[$column]
dd440 20 3d 20 6d 61 78 28 24 6c 65 6e 67 74 68 73 29 20 2b 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d .=.max($lengths).+.strlen($this-
dd460 3e 73 74 79 6c 65 2d 3e 67 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 >style->getCellRowContentFormat(
dd480 29 29 20 2d 20 32 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 )).-.2;.}..........private.funct
dd4a0 69 6f 6e 20 67 65 74 43 65 6c 6c 57 69 64 74 68 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 6f ion.getCellWidth(array.$row,.$co
dd4c0 6c 75 6d 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d lumn).{.return.isset($row[$colum
dd4e0 6e 5d 29 20 3f 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 n]).?.Helper::strlenWithoutDecor
dd500 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 ation($this->output->getFormatte
dd520 72 28 29 2c 20 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 70 r(),.$row[$column]).:.0;.}.....p
dd540 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 24 74 68 69 rivate.function.cleanup().{.$thi
dd560 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 s->columnWidths.=.array();.$this
dd580 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 72 69 ->numberOfColumns.=.null;.}..pri
dd5a0 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 53 74 79 6c 65 73 28 vate.static.function.initStyles(
dd5c0 29 0a 7b 0a 24 62 6f 72 64 65 72 6c 65 73 73 20 3d 20 6e 65 77 20 54 61 62 6c 65 53 74 79 6c 65 ).{.$borderless.=.new.TableStyle
dd5e0 28 29 3b 0a 24 62 6f 72 64 65 72 6c 65 73 73 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 ();.$borderless.->setHorizontalB
dd600 6f 72 64 65 72 43 68 61 72 28 27 3d 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 orderChar('=').->setVerticalBord
dd620 65 72 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 20 erChar('.').->setCrossingChar('.
dd640 27 29 0a 3b 0a 0a 24 63 6f 6d 70 61 63 74 20 3d 20 6e 65 77 20 54 61 62 6c 65 53 74 79 6c 65 28 ').;..$compact.=.new.TableStyle(
dd660 29 3b 0a 24 63 6f 6d 70 61 63 74 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 );.$compact.->setHorizontalBorde
dd680 72 43 68 61 72 28 27 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 rChar('').->setVerticalBorderCha
dd6a0 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 27 29 0a 2d 3e 73 r('.').->setCrossingChar('').->s
dd6c0 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 3b 0a 0a etCellRowContentFormat('%s').;..
dd6e0 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 6e 65 77 20 54 return.array(.'default'.=>.new.T
dd700 61 62 6c 65 53 74 79 6c 65 28 29 2c 0a 27 62 6f 72 64 65 72 6c 65 73 73 27 20 3d 3e 20 24 62 6f ableStyle(),.'borderless'.=>.$bo
dd720 72 64 65 72 6c 65 73 73 2c 0a 27 63 6f 6d 70 61 63 74 27 20 3d 3e 20 24 63 6f 6d 70 61 63 74 2c rderless,.'compact'.=>.$compact,
dd740 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .);.}.}.<?php...........namespac
dd760 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 e.Symfony\Component\Console\Help
dd780 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f er;..use.Symfony\Component\Conso
dd7a0 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a le\Output\OutputInterface;......
dd7c0 0a 0a 63 6c 61 73 73 20 50 72 6f 67 72 65 73 73 42 61 72 0a 7b 0a 0a 20 70 72 69 76 61 74 65 20 ..class.ProgressBar.{...private.
dd7e0 24 62 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 72 $barWidth.=.28;.private.$barChar
dd800 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 27 2d 27 3b 0a 70 ;.private.$emptyBarChar.=.'-';.p
dd820 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 3b 0a 70 72 69 76 rivate.$progressChar.=.'>';.priv
dd840 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 72 65 64 ate.$format.=.null;.private.$red
dd860 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 rawFreq.=.1;.....private.$output
dd880 3b 0a 70 72 69 76 61 74 65 20 24 73 74 65 70 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 ;.private.$step.=.0;.private.$ma
dd8a0 78 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 x;.private.$startTime;.private.$
dd8c0 73 74 65 70 57 69 64 74 68 3b 0a 70 72 69 76 61 74 65 20 24 70 65 72 63 65 6e 74 20 3d 20 30 2e stepWidth;.private.$percent.=.0.
dd8e0 30 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 0;.private.$lastMessagesLength.=
dd900 20 30 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 3b 0a 70 72 .0;.private.$formatLineCount;.pr
dd920 69 76 61 74 65 20 24 6d 65 73 73 61 67 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 76 65 72 77 72 ivate.$messages;.private.$overwr
dd940 69 74 65 20 3d 20 74 72 75 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 66 6f 72 ite.=.true;..private.static.$for
dd960 6d 61 74 74 65 72 73 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 66 6f 72 6d 61 74 73 matters;.private.static.$formats
dd980 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 ;........public.function.__const
dd9a0 72 75 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d ruct(OutputInterface.$output,.$m
dd9c0 61 78 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 ax.=.0).{.$this->output.=.$outpu
dd9e0 74 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 3b 0a 0a 69 66 t;.$this->setMaxSteps($max);..if
dda00 20 28 21 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 29 .(!$this->output->isDecorated())
dda20 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a .{...$this->overwrite.=.false;..
dda40 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 31 30 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e if.($this->max.>.10).{...$this->
dda60 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 6d 61 78 20 2f 20 31 30 29 3b 0a 7d setRedrawFrequency($max./.10);.}
dda80 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 46 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 64 65 74 65 .}..$this->setFormat($this->dete
ddaa0 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 72 rmineBestFormat());..$this->star
ddac0 74 54 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tTime.=.time();.}..........publi
ddae0 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 6c 61 63 65 68 6f 6c 64 65 72 c.static.function.setPlaceholder
ddb00 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 63 61 6c 6c FormatterDefinition($name,.$call
ddb20 61 62 6c 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 29 20 able).{.if.(!self::$formatters).
ddb40 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 20 3d 20 73 65 6c 66 3a 3a 69 6e 69 74 {.self::$formatters.=.self::init
ddb60 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 73 28 29 3b 0a 7d 0a 0a 73 65 6c 66 PlaceholderFormatters();.}..self
ddb80 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 61 6c 6c 61 62 6c 65 ::$formatters[$name].=.$callable
ddba0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 ;.}.........public.static.functi
ddbc0 6f 6e 20 67 65 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 on.getPlaceholderFormatterDefini
ddbe0 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 tion($name).{.if.(!self::$format
ddc00 74 65 72 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 20 3d 20 73 65 6c 66 ters).{.self::$formatters.=.self
ddc20 3a 3a 69 6e 69 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 73 28 29 3b 0a 7d ::initPlaceholderFormatters();.}
ddc40 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 ..return.isset(self::$formatters
ddc60 5b 24 6e 61 6d 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 74 65 72 73 5b 24 6e 61 [$name]).?.self::$formatters[$na
ddc80 6d 65 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 me].:.null;.}..........public.st
ddca0 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f atic.function.setFormatDefinitio
ddcc0 6e 28 24 6e 61 6d 65 2c 20 24 66 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 n($name,.$format).{.if.(!self::$
ddce0 66 6f 72 6d 61 74 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 20 3d 20 73 65 6c 66 formats).{.self::$formats.=.self
ddd00 3a 3a 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 ::initFormats();.}..self::$forma
ddd20 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ts[$name].=.$format;.}.........p
ddd40 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 6f 72 6d 61 74 44 ublic.static.function.getFormatD
ddd60 65 66 69 6e 69 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 66 efinition($name).{.if.(!self::$f
ddd80 6f 72 6d 61 74 73 29 20 7b 0a 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 20 3d 20 73 65 6c 66 3a ormats).{.self::$formats.=.self:
ddda0 3a 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 :initFormats();.}..return.isset(
dddc0 73 65 6c 66 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 6e 61 6d 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 self::$formats[$name]).?.self::$
ddde0 66 6f 72 6d 61 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 formats[$name].:.null;.}..public
dde00 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 73 73 61 67 65 28 24 6d 65 73 73 61 67 65 2c 20 24 .function.setMessage($message,.$
dde20 6e 61 6d 65 20 3d 20 27 6d 65 73 73 61 67 65 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 name.=.'message').{.$this->messa
dde40 67 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 ges[$name].=.$message;.}..public
dde60 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 24 6e 61 6d 65 20 3d 20 27 6d 65 .function.getMessage($name.=.'me
dde80 73 73 61 67 65 27 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 73 ssage').{.return.$this->messages
ddea0 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e [$name];.}.......public.function
ddec0 20 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e .getStartTime().{.return.$this->
ddee0 73 74 61 72 74 54 69 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 startTime;.}.......public.functi
ddf00 6f 6e 20 67 65 74 4d 61 78 53 74 65 70 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getMaxSteps().{.return.$this-
ddf20 3e 6d 61 78 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >max;.}.........public.function.
ddf40 67 65 74 53 74 65 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f getStep().{.return.$this->getPro
ddf60 67 72 65 73 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e gress();.}.......public.function
ddf80 20 67 65 74 50 72 6f 67 72 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 .getProgress().{.return.$this->s
ddfa0 74 65 70 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 tep;.}.........public.function.g
ddfc0 65 74 53 74 65 70 57 69 64 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 etStepWidth().{.return.$this->st
ddfe0 65 70 57 69 64 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e epWidth;.}.......public.function
de000 20 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 .getProgressPercent().{.return.$
de020 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->percent;.}.......public.fu
de040 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 nction.setBarWidth($size).{.$thi
de060 73 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 3b 0a 7d 0a 0a 0a 0a s->barWidth.=.(int).$size;.}....
de080 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 61 72 57 69 64 74 68 28 29 ...public.function.getBarWidth()
de0a0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 0a 0a 0a .{.return.$this->barWidth;.}....
de0c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 43 68 61 72 61 63 74 ...public.function.setBarCharact
de0e0 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 63 68 er($char).{.$this->barChar.=.$ch
de100 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 ar;.}.......public.function.getB
de120 61 72 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 arCharacter().{.if.(null.===.$th
de140 69 73 2d 3e 62 61 72 43 68 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 is->barChar).{.return.$this->max
de160 20 3f 20 27 3d 27 20 3a 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a .?.'='.:.$this->emptyBarChar;.}.
de180 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .return.$this->barChar;.}.......
de1a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 public.function.setEmptyBarChara
de1c0 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 cter($char).{.$this->emptyBarCha
de1e0 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 r.=.$char;.}.......public.functi
de200 6f 6e 20 67 65 74 45 6d 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 72 65 74 75 on.getEmptyBarCharacter().{.retu
de220 72 6e 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->emptyBarChar;.}.......
de240 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 public.function.setProgressChara
de260 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 cter($char).{.$this->progressCha
de280 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 r.=.$char;.}.......public.functi
de2a0 6f 6e 20 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 29 0a 7b 0a 72 65 74 75 on.getProgressCharacter().{.retu
de2c0 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->progressChar;.}.......
de2e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 public.function.setFormat($forma
de300 74 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 78 20 26 26 20 6e 75 6c 6c 20 21 t).{...if.(!$this->max.&&.null.!
de320 3d 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f ==.self::getFormatDefinition($fo
de340 72 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 rmat.'_nomax')).{.$this->format.
de360 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 =.self::getFormatDefinition($for
de380 6d 61 74 2e 27 5f 6e 6f 6d 61 78 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 6e 75 6c 6c 20 21 3d mat.'_nomax');.}.elseif.(null.!=
de3a0 3d 20 73 65 6c 66 3a 3a 67 65 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 =.self::getFormatDefinition($for
de3c0 6d 61 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 67 65 mat)).{.$this->format.=.self::ge
de3e0 74 46 6f 72 6d 61 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 20 65 6c tFormatDefinition($format);.}.el
de400 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a se.{.$this->format.=.$format;.}.
de420 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 20 3d 20 73 75 62 73 74 72 .$this->formatLineCount.=.substr
de440 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 5c 6e 22 29 3b 0a 7d 0a 0a _count($this->format,."\n");.}..
de460 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 .....public.function.setRedrawFr
de480 65 71 75 65 6e 63 79 28 24 66 72 65 71 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 equency($freq).{.$this->redrawFr
de4a0 65 71 20 3d 20 28 69 6e 74 29 20 24 66 72 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eq.=.(int).$freq;.}.......public
de4c0 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 6d 61 78 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 .function.start($max.=.null).{.$
de4e0 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b 0a 24 74 68 69 73 2d this->startTime.=.time();.$this-
de500 3e 73 74 65 70 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 20 3d 20 30 2e 30 3b >step.=.0;.$this->percent.=.0.0;
de520 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 ..if.(null.!==.$max).{.$this->se
de540 74 4d 61 78 53 74 65 70 73 28 24 6d 61 78 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c tMaxSteps($max);.}..$this->displ
de560 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ay();.}.........public.function.
de580 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 50 advance($step.=.1).{.$this->setP
de5a0 72 6f 67 72 65 73 73 28 24 74 68 69 73 2d 3e 73 74 65 70 20 2b 20 24 73 74 65 70 29 3b 0a 7d 0a rogress($this->step.+.$step);.}.
de5c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 75 72 ..........public.function.setCur
de5e0 72 65 6e 74 28 24 73 74 65 70 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 67 72 65 73 73 rent($step).{.$this->setProgress
de600 28 24 73 74 65 70 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($step);.}.......public.function
de620 20 73 65 74 4f 76 65 72 77 72 69 74 65 28 24 6f 76 65 72 77 72 69 74 65 29 0a 7b 0a 24 74 68 69 .setOverwrite($overwrite).{.$thi
de640 73 2d 3e 6f 76 65 72 77 72 69 74 65 20 3d 20 28 62 6f 6f 6c 29 20 24 6f 76 65 72 77 72 69 74 65 s->overwrite.=.(bool).$overwrite
de660 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 ;.}.........public.function.setP
de680 72 6f 67 72 65 73 73 28 24 73 74 65 70 29 0a 7b 0a 24 73 74 65 70 20 3d 20 28 69 6e 74 29 20 24 rogress($step).{.$step.=.(int).$
de6a0 73 74 65 70 3b 0a 69 66 20 28 24 73 74 65 70 20 3c 20 24 74 68 69 73 2d 3e 73 74 65 70 29 20 7b step;.if.($step.<.$this->step).{
de6c0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 .throw.new.\LogicException('You.
de6e0 63 61 6e 5c 27 74 20 72 65 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 2e can\'t.regress.the.progress.bar.
de700 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 26 26 20 24 73 74 65 70 20 3e ');.}..if.($this->max.&&.$step.>
de720 20 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 24 73 74 65 .$this->max).{.$this->max.=.$ste
de740 70 3b 0a 7d 0a 0a 24 70 72 65 76 50 65 72 69 6f 64 20 3d 20 69 6e 74 76 61 6c 28 24 74 68 69 73 p;.}..$prevPeriod.=.intval($this
de760 2d 3e 73 74 65 70 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 3b 0a 24 63 75 ->step./.$this->redrawFreq);.$cu
de780 72 72 50 65 72 69 6f 64 20 3d 20 69 6e 74 76 61 6c 28 24 73 74 65 70 20 2f 20 24 74 68 69 73 2d rrPeriod.=.intval($step./.$this-
de7a0 3e 72 65 64 72 61 77 46 72 65 71 29 3b 0a 24 74 68 69 73 2d 3e 73 74 65 70 20 3d 20 24 73 74 65 >redrawFreq);.$this->step.=.$ste
de7c0 70 3b 0a 24 74 68 69 73 2d 3e 70 65 72 63 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f p;.$this->percent.=.$this->max.?
de7e0 20 28 66 6c 6f 61 74 29 20 24 74 68 69 73 2d 3e 73 74 65 70 20 2f 20 24 74 68 69 73 2d 3e 6d 61 .(float).$this->step./.$this->ma
de800 78 20 3a 20 30 3b 0a 69 66 20 28 24 70 72 65 76 50 65 72 69 6f 64 20 21 3d 3d 20 24 63 75 72 72 x.:.0;.if.($prevPeriod.!==.$curr
de820 50 65 72 69 6f 64 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 20 3d 3d 3d 20 24 73 74 65 70 29 20 Period.||.$this->max.===.$step).
de840 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c {.$this->display();.}.}.....publ
de860 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 ic.function.finish().{.if.(!$thi
de880 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 24 74 68 69 73 2d 3e 73 74 s->max).{.$this->max.=.$this->st
de8a0 65 70 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 65 70 20 3d 3d 3d 20 24 74 68 69 73 ep;.}..if.($this->step.===.$this
de8c0 2d 3e 6d 61 78 20 26 26 20 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 0a 20 ->max.&&.!$this->overwrite).{...
de8e0 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 50 72 6f 67 72 65 73 73 28 24 74 return;.}..$this->setProgress($t
de900 68 69 73 2d 3e 6d 61 78 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e his->max);.}.....public.function
de920 20 64 69 73 70 6c 61 79 28 29 0a 7b 0a 69 66 20 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 .display().{.if.(OutputInterface
de940 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 75 74 ::VERBOSITY_QUIET.===.$this->out
de960 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d put->getVerbosity()).{.return;.}
de980 0a 0a 0a 20 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 ....$self.=.$this;.$output.=.$th
de9a0 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 6d is->output;.$messages.=.$this->m
de9c0 65 73 73 61 67 65 73 3b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 70 72 65 67 5f 72 essages;.$this->overwrite(preg_r
de9e0 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 25 28 5b 61 2d 7a 5c 2d 5f 5d 2b 29 28 3f eplace_callback("{%([a-z\-_]+)(?
dea00 3a 5c 3a 28 5b 5e 25 5d 2b 29 29 3f 25 7d 69 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 :\:([^%]+))?%}i",.function.($mat
dea20 63 68 65 73 29 20 75 73 65 20 28 24 73 65 6c 66 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 ches).use.($self,.$output,.$mess
dea40 61 67 65 73 29 20 7b 0a 69 66 20 28 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 73 65 6c 66 3a 3a ages).{.if.($formatter.=.$self::
dea60 67 65 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 74 65 72 44 65 66 69 6e 69 74 69 6f getPlaceholderFormatterDefinitio
dea80 6e 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 63 61 6c 6c 5f 75 n($matches[1])).{.$text.=.call_u
deaa0 73 65 72 5f 66 75 6e 63 28 24 66 6f 72 6d 61 74 74 65 72 2c 20 24 73 65 6c 66 2c 20 24 6f 75 74 ser_func($formatter,.$self,.$out
deac0 70 75 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 6d 65 73 73 61 67 65 73 5b put);.}.elseif.(isset($messages[
deae0 24 6d 61 74 63 68 65 73 5b 31 5d 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 6d 65 73 73 61 67 $matches[1]])).{.$text.=.$messag
deb00 65 73 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e es[$matches[1]];.}.else.{.return
deb20 20 24 6d 61 74 63 68 65 73 5b 30 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 .$matches[0];.}..if.(isset($matc
deb40 68 65 73 5b 32 5d 29 29 20 7b 0a 24 74 65 78 74 20 3d 20 73 70 72 69 6e 74 66 28 27 25 27 2e 24 hes[2])).{.$text.=.sprintf('%'.$
deb60 6d 61 74 63 68 65 73 5b 32 5d 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 matches[2],.$text);.}..return.$t
deb80 65 78 74 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ext;.},.$this->format));.}......
deba0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 28 29 0a 7b 0a 69 66 20 ...public.function.clear().{.if.
debc0 28 21 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a (!$this->overwrite).{.return;.}.
debe0 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 6e .$this->overwrite(str_repeat("\n
dec00 22 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 29 3b 0a 7d 0a 0a ",.$this->formatLineCount));.}..
dec20 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 61 78 53 74 65 70 .....private.function.setMaxStep
dec40 73 28 24 6d 61 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 3d 20 6d 61 78 28 30 2c 20 28 69 s($max).{.$this->max.=.max(0,.(i
dec60 6e 74 29 20 24 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 65 70 57 69 64 74 68 20 3d 20 24 74 nt).$max);.$this->stepWidth.=.$t
dec80 68 69 73 2d 3e 6d 61 78 20 3f 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 28 24 74 68 69 73 2d his->max.?.Helper::strlen($this-
deca0 3e 6d 61 78 29 20 3a 20 34 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 >max).:.4;.}.......private.funct
decc0 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 69 6e 65 73 ion.overwrite($message).{.$lines
dece0 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 20 69 .=.explode("\n",.$message);....i
ded00 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c f.(null.!==.$this->lastMessagesL
ded20 65 6e 67 74 68 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 69 20 3d ength).{.foreach.($lines.as.$i.=
ded40 3e 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 >.$line).{.if.($this->lastMessag
ded60 65 73 4c 65 6e 67 74 68 20 3e 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 esLength.>.Helper::strlenWithout
ded80 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 Decoration($this->output->getFor
deda0 6d 61 74 74 65 72 28 29 2c 20 24 6c 69 6e 65 29 29 20 7b 0a 24 6c 69 6e 65 73 5b 24 69 5d 20 3d matter(),.$line)).{.$lines[$i].=
dedc0 20 73 74 72 5f 70 61 64 28 24 6c 69 6e 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 .str_pad($line,.$this->lastMessa
dede0 67 65 73 4c 65 6e 67 74 68 2c 20 22 5c 78 32 30 22 2c 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 gesLength,."\x20",.STR_PAD_RIGHT
dee00 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 29 20 );.}.}.}..if.($this->overwrite).
dee20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 44 22 29 {...$this->output->write("\x0D")
dee40 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 73 74 65 70 20 3e 20 30 29 20 7b 0a 0a ;.}.elseif.($this->step.>.0).{..
dee60 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 0a .$this->output->writeln('');.}..
dee80 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 20 7b 0a 24 74 if.($this->formatLineCount).{.$t
deea0 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 22 5c 30 33 33 his->output->write(sprintf("\033
deec0 5b 25 64 41 22 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 4c 69 6e 65 43 6f 75 6e 74 29 29 3b [%dA",.$this->formatLineCount));
deee0 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 .}.$this->output->write(implode(
def00 22 5c 6e 22 2c 20 24 6c 69 6e 65 73 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 "\n",.$lines));..$this->lastMess
def20 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 agesLength.=.0;.foreach.($lines.
def40 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 65 6e 20 3d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 as.$line).{.$len.=.Helper::strle
def60 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 nWithoutDecoration($this->output
def80 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 24 6c ->getFormatter(),.$line);.if.($l
defa0 65 6e 20 3e 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 29 20 en.>.$this->lastMessagesLength).
defc0 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 6c {.$this->lastMessagesLength.=.$l
defe0 65 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 65 74 65 en;.}.}.}..private.function.dete
df000 72 6d 69 6e 65 42 65 73 74 46 6f 72 6d 61 74 28 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 rmineBestFormat().{.switch.($thi
df020 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 0a 20 63 s->output->getVerbosity()).{...c
df040 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 ase.OutputInterface::VERBOSITY_V
df060 45 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 72 ERBOSE:.return.$this->max.?.'ver
df080 62 6f 73 65 27 20 3a 20 27 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 3b 0a 63 61 73 65 20 4f 75 bose'.:.'verbose_nomax';.case.Ou
df0a0 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 tputInterface::VERBOSITY_VERY_VE
df0c0 52 42 4f 53 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 76 65 72 79 RBOSE:.return.$this->max.?.'very
df0e0 5f 76 65 72 62 6f 73 65 27 20 3a 20 27 76 65 72 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 _verbose'.:.'very_verbose_nomax'
df100 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 ;.case.OutputInterface::VERBOSIT
df120 59 5f 44 45 42 55 47 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 64 65 Y_DEBUG:.return.$this->max.?.'de
df140 62 75 67 27 20 3a 20 27 64 65 62 75 67 5f 6e 6f 6d 61 78 27 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 bug'.:.'debug_nomax';.default:.r
df160 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 78 20 3f 20 27 6e 6f 72 6d 61 6c 27 20 3a 20 27 6e eturn.$this->max.?.'normal'.:.'n
df180 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 ormal_nomax';.}.}..private.stati
df1a0 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 6c 61 63 65 68 6f 6c 64 65 72 46 6f 72 6d 61 74 c.function.initPlaceholderFormat
df1c0 74 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 62 61 72 27 20 3d 3e 20 ters().{.return.array(.'bar'.=>.
df1e0 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 2c 20 4f 75 74 70 function.(ProgressBar.$bar,.Outp
df200 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 utInterface.$output).{.$complete
df220 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 Bars.=.floor($bar->getMaxSteps()
df240 20 3e 20 30 20 3f 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 .>.0.?.$bar->getProgressPercent(
df260 29 20 2a 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 20 3a 20 24 62 61 72 2d 3e ).*.$bar->getBarWidth().:.$bar->
df280 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 25 20 24 62 61 72 2d 3e 67 65 74 42 61 72 57 69 64 74 getProgress().%.$bar->getBarWidt
df2a0 68 28 29 29 3b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 62 61 72 h());.$display.=.str_repeat($bar
df2c0 2d 3e 67 65 74 42 61 72 43 68 61 72 61 63 74 65 72 28 29 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 ->getBarCharacter(),.$completeBa
df2e0 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3c 20 24 62 61 72 2d 3e 67 rs);.if.($completeBars.<.$bar->g
df300 65 74 42 61 72 57 69 64 74 68 28 29 29 20 7b 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 24 62 61 etBarWidth()).{.$emptyBars.=.$ba
df320 72 2d 3e 67 65 74 42 61 72 57 69 64 74 68 28 29 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 r->getBarWidth().-.$completeBars
df340 20 2d 20 48 65 6c 70 65 72 3a 3a 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 .-.Helper::strlenWithoutDecorati
df360 6f 6e 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2c 20 24 62 61 72 on($output->getFormatter(),.$bar
df380 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 29 29 3b 0a 24 64 69 73 70 ->getProgressCharacter());.$disp
df3a0 6c 61 79 20 2e 3d 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 lay..=.$bar->getProgressCharacte
df3c0 72 28 29 2e 73 74 72 5f 72 65 70 65 61 74 28 24 62 61 72 2d 3e 67 65 74 45 6d 70 74 79 42 61 72 r().str_repeat($bar->getEmptyBar
df3e0 43 68 61 72 61 63 74 65 72 28 29 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 72 65 74 Character(),.$emptyBars);.}..ret
df400 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 66 75 urn.$display;.},.'elapsed'.=>.fu
df420 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 nction.(ProgressBar.$bar).{.retu
df440 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 74 69 6d 65 28 29 20 2d 20 24 rn.Helper::formatTime(time().-.$
df460 62 61 72 2d 3e 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 3b 0a 7d 2c 0a 27 72 65 6d 61 69 6e bar->getStartTime());.},.'remain
df480 69 6e 67 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 ing'.=>.function.(ProgressBar.$b
df4a0 61 72 29 20 7b 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 20 ar).{.if.(!$bar->getMaxSteps()).
df4c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 {.throw.new.\LogicException('Una
df4e0 62 6c 65 20 74 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 69 6d ble.to.display.the.remaining.tim
df500 65 20 69 66 20 74 68 65 20 6d 61 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 73 74 65 70 73 e.if.the.maximum.number.of.steps
df520 20 69 73 20 6e 6f 74 20 73 65 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 65 .is.not.set.');.}..if.(!$bar->ge
df540 74 50 72 6f 67 72 65 73 73 28 29 29 20 7b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 30 3b 0a 7d tProgress()).{.$remaining.=.0;.}
df560 20 65 6c 73 65 20 7b 0a 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 72 6f 75 6e 64 28 28 74 69 6d 65 .else.{.$remaining.=.round((time
df580 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 20 2f 20 24 62 61 ().-.$bar->getStartTime())./.$ba
df5a0 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 20 2a 20 28 24 62 61 72 2d 3e 67 65 74 4d 61 78 r->getProgress().*.($bar->getMax
df5c0 53 74 65 70 73 28 29 20 2d 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 29 29 3b Steps().-.$bar->getProgress()));
df5e0 0a 7d 0a 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 72 .}..return.Helper::formatTime($r
df600 65 6d 61 69 6e 69 6e 67 29 3b 0a 7d 2c 0a 27 65 73 74 69 6d 61 74 65 64 27 20 3d 3e 20 66 75 6e emaining);.},.'estimated'.=>.fun
df620 63 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 69 66 20 28 21 ction.(ProgressBar.$bar).{.if.(!
df640 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 $bar->getMaxSteps()).{.throw.new
df660 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 6f 20 64 69 73 70 .\LogicException('Unable.to.disp
df680 6c 61 79 20 74 68 65 20 65 73 74 69 6d 61 74 65 64 20 74 69 6d 65 20 69 66 20 74 68 65 20 6d 61 lay.the.estimated.time.if.the.ma
df6a0 78 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 20 73 74 65 70 73 20 69 73 20 6e 6f 74 20 73 65 74 ximum.number.of.steps.is.not.set
df6c0 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 .');.}..if.(!$bar->getProgress()
df6e0 29 20 7b 0a 24 65 73 74 69 6d 61 74 65 64 20 3d 20 30 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 ).{.$estimated.=.0;.}.else.{.$es
df700 74 69 6d 61 74 65 64 20 3d 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 20 2d 20 24 62 61 72 2d 3e timated.=.round((time().-.$bar->
df720 67 65 74 53 74 61 72 74 54 69 6d 65 28 29 29 20 2f 20 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 getStartTime())./.$bar->getProgr
df740 65 73 73 28 29 20 2a 20 24 62 61 72 2d 3e 67 65 74 4d 61 78 53 74 65 70 73 28 29 29 3b 0a 7d 0a ess().*.$bar->getMaxSteps());.}.
df760 0a 72 65 74 75 72 6e 20 48 65 6c 70 65 72 3a 3a 66 6f 72 6d 61 74 54 69 6d 65 28 24 65 73 74 69 .return.Helper::formatTime($esti
df780 6d 61 74 65 64 29 3b 0a 7d 2c 0a 27 6d 65 6d 6f 72 79 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 mated);.},.'memory'.=>.function.
df7a0 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 48 65 6c 70 (ProgressBar.$bar).{.return.Help
df7c0 65 72 3a 3a 66 6f 72 6d 61 74 4d 65 6d 6f 72 79 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 67 er::formatMemory(memory_get_usag
df7e0 65 28 74 72 75 65 29 29 3b 0a 7d 2c 0a 27 63 75 72 72 65 6e 74 27 20 3d 3e 20 66 75 6e 63 74 69 e(true));.},.'current'.=>.functi
df800 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 on.(ProgressBar.$bar).{.return.s
df820 74 72 5f 70 61 64 28 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 28 29 2c 20 24 62 61 72 tr_pad($bar->getProgress(),.$bar
df840 2d 3e 67 65 74 53 74 65 70 57 69 64 74 68 28 29 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c ->getStepWidth(),.'.',.STR_PAD_L
df860 45 46 54 29 3b 0a 7d 2c 0a 27 6d 61 78 27 20 3d 3e 20 66 75 6e 63 74 69 6f 6e 20 28 50 72 6f 67 EFT);.},.'max'.=>.function.(Prog
df880 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 72 2d 3e 67 65 74 ressBar.$bar).{.return.$bar->get
df8a0 4d 61 78 53 74 65 70 73 28 29 3b 0a 7d 2c 0a 27 70 65 72 63 65 6e 74 27 20 3d 3e 20 66 75 6e 63 MaxSteps();.},.'percent'.=>.func
df8c0 74 69 6f 6e 20 28 50 72 6f 67 72 65 73 73 42 61 72 20 24 62 61 72 29 20 7b 0a 72 65 74 75 72 6e tion.(ProgressBar.$bar).{.return
df8e0 20 66 6c 6f 6f 72 28 24 62 61 72 2d 3e 67 65 74 50 72 6f 67 72 65 73 73 50 65 72 63 65 6e 74 28 .floor($bar->getProgressPercent(
df900 29 20 2a 20 31 30 30 29 3b 0a 7d 2c 0a 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 ).*.100);.},.);.}..private.stati
df920 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 46 6f 72 6d 61 74 73 28 29 0a 7b 0a 72 65 74 75 72 c.function.initFormats().{.retur
df940 6e 20 61 72 72 61 79 28 0a 27 6e 6f 72 6d 61 6c 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 n.array(.'normal'.=>.'.%current%
df960 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 27 2c 0a 27 /%max%.[%bar%].%percent:3s%%',.'
df980 6e 6f 72 6d 61 6c 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 normal_nomax'.=>.'.%current%.[%b
df9a0 61 72 25 5d 27 2c 0a 0a 27 76 65 72 62 6f 73 65 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 ar%]',..'verbose'.=>.'.%current%
df9c0 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 6c /%max%.[%bar%].%percent:3s%%.%el
df9e0 61 70 73 65 64 3a 36 73 25 27 2c 0a 27 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 apsed:6s%',.'verbose_nomax'.=>.'
dfa00 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 27 .%current%.[%bar%].%elapsed:6s%'
dfa20 2c 0a 0a 27 76 65 72 79 5f 76 65 72 62 6f 73 65 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 ,..'very_verbose'.=>.'.%current%
dfa40 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 3a 33 73 25 25 20 25 65 6c /%max%.[%bar%].%percent:3s%%.%el
dfa60 61 70 73 65 64 3a 36 73 25 2f 25 65 73 74 69 6d 61 74 65 64 3a 2d 36 73 25 27 2c 0a 27 76 65 72 apsed:6s%/%estimated:-6s%',.'ver
dfa80 79 5f 76 65 72 62 6f 73 65 5f 6e 6f 6d 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 y_verbose_nomax'.=>.'.%current%.
dfaa0 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 73 65 64 3a 36 73 25 27 2c 0a 0a 27 64 65 62 75 67 27 20 [%bar%].%elapsed:6s%',..'debug'.
dfac0 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 =>.'.%current%/%max%.[%bar%].%pe
dfae0 72 63 65 6e 74 3a 33 73 25 25 20 25 65 6c 61 70 73 65 64 3a 36 73 25 2f 25 65 73 74 69 6d 61 74 rcent:3s%%.%elapsed:6s%/%estimat
dfb00 65 64 3a 2d 36 73 25 20 25 6d 65 6d 6f 72 79 3a 36 73 25 27 2c 0a 27 64 65 62 75 67 5f 6e 6f 6d ed:-6s%.%memory:6s%',.'debug_nom
dfb20 61 78 27 20 3d 3e 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 25 65 6c 61 70 ax'.=>.'.%current%.[%bar%].%elap
dfb40 73 65 64 3a 36 73 25 20 25 6d 65 6d 6f 72 79 3a 36 73 25 27 2c 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 sed:6s%.%memory:6s%',.);.}.}.<?p
dfb60 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
dfb80 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 omponent\Console\Helper;..use.Sy
dfba0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
dfbc0 6f 72 5c 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 or\DescriptorInterface;.use.Symf
dfbe0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 ony\Component\Console\Descriptor
dfc00 5c 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \JsonDescriptor;.use.Symfony\Com
dfc20 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4d 61 72 6b 64 6f ponent\Console\Descriptor\Markdo
dfc40 77 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e wnDescriptor;.use.Symfony\Compon
dfc60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 ent\Console\Descriptor\TextDescr
dfc80 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e iptor;.use.Symfony\Component\Con
dfca0 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 sole\Descriptor\XmlDescriptor;.u
dfcc0 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 se.Symfony\Component\Console\Out
dfce0 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 put\OutputInterface;.......class
dfd00 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 .DescriptorHelper.extends.Helper
dfd20 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 .{....private.$descriptors.=.arr
dfd40 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ay();.....public.function.__cons
dfd60 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 74 78 74 27 truct().{.$this.->register('txt'
dfd80 2c 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 ,.new.TextDescriptor()).->regist
dfda0 65 72 28 27 78 6d 6c 27 2c 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d er('xml',.new.XmlDescriptor()).-
dfdc0 3e 72 65 67 69 73 74 65 72 28 27 6a 73 6f 6e 27 2c 20 6e 65 77 20 4a 73 6f 6e 44 65 73 63 72 69 >register('json',.new.JsonDescri
dfde0 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6d 64 27 2c 20 6e 65 77 20 4d 61 72 ptor()).->register('md',.new.Mar
dfe00 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kdownDescriptor()).;.}..........
dfe20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 .....public.function.describe(Ou
dfe40 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 tputInterface.$output,.$object,.
dfe60 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 array.$options.=.array()).{.$opt
dfe80 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 0a 27 72 61 77 5f 74 ions.=.array_merge(array(.'raw_t
dfea0 65 78 74 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 66 6f 72 6d 61 74 27 20 3d 3e 20 27 74 78 74 27 ext'.=>.false,.'format'.=>.'txt'
dfec0 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 ,.),.$options);..if.(!isset($thi
dfee0 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 s->descriptors[$options['format'
dff00 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e ]])).{.throw.new.\InvalidArgumen
dff20 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 73 75 70 70 6f 72 74 65 64 20 tException(sprintf('Unsupported.
dff40 66 6f 72 6d 61 74 20 22 25 73 22 2e 27 2c 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 format."%s".',.$options['format'
dff60 5d 29 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 ]));.}..$descriptor.=.$this->des
dff80 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 5d 3b 0a 24 64 criptors[$options['format']];.$d
dffa0 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 62 escriptor->describe($output,.$ob
dffc0 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ject,.$options);.}..........publ
dffe0 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 66 6f 72 6d 61 74 2c 20 44 65 ic.function.register($format,.De
e0000 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 20 24 64 65 73 63 72 69 70 74 6f 72 29 0a 7b scriptorInterface.$descriptor).{
e0020 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 66 6f 72 6d 61 74 5d 20 3d 20 24 .$this->descriptors[$format].=.$
e0040 64 65 73 63 72 69 70 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a descriptor;..return.$this;.}....
e0060 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 .public.function.getName().{.ret
e0080 75 72 6e 20 27 64 65 73 63 72 69 70 74 6f 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a urn.'descriptor';.}.}.<?php.....
e00a0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
e00c0 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Helper;..use.Symfony\C
e00e0 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 omponent\Console\Formatter\Outpu
e0100 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 tFormatter;.......class.Formatte
e0120 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a rHelper.extends.Helper.{........
e0140 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 ..public.function.formatSection(
e0160 24 73 65 63 74 69 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e $section,.$message,.$style.=.'in
e0180 66 6f 27 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c fo').{.return.sprintf('<%s>[%s]<
e01a0 2f 25 73 3e 20 25 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 /%s>.%s',.$style,.$section,.$sty
e01c0 6c 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 le,.$message);.}...........publi
e01e0 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 c.function.formatBlock($messages
e0200 2c 20 24 73 74 79 6c 65 2c 20 24 6c 61 72 67 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 ,.$style,.$large.=.false).{.if.(
e0220 21 69 73 5f 61 72 72 61 79 28 24 6d 65 73 73 61 67 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 !is_array($messages)).{.$message
e0240 73 20 3d 20 61 72 72 61 79 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 24 6c 65 6e 20 3d 20 s.=.array($messages);.}..$len.=.
e0260 30 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 0;.$lines.=.array();.foreach.($m
e0280 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 essages.as.$message).{.$message.
e02a0 3d 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 70 65 28 24 6d 65 73 73 61 =.OutputFormatter::escape($messa
e02c0 67 65 29 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 72 67 65 20 3f ge);.$lines[].=.sprintf($large.?
e02e0 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 24 .'..%s..'.:.'.%s.',.$message);.$
e0300 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 len.=.max($this->strlen($message
e0320 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a ).+.($large.?.4.:.2),.$len);.}..
e0340 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 73 74 72 5f 72 $messages.=.$large.?.array(str_r
e0360 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 epeat('.',.$len)).:.array();.for
e0380 20 28 24 69 20 3d 20 30 3b 20 69 73 73 65 74 28 24 6c 69 6e 65 73 5b 24 69 5d 29 3b 20 2b 2b 24 .($i.=.0;.isset($lines[$i]);.++$
e03a0 69 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 73 5b 24 69 5d 2e 73 74 i).{.$messages[].=.$lines[$i].st
e03c0 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c r_repeat('.',.$len.-.$this->strl
e03e0 65 6e 28 24 6c 69 6e 65 73 5b 24 69 5d 29 29 3b 0a 7d 0a 69 66 20 28 24 6c 61 72 67 65 29 20 7b en($lines[$i]));.}.if.($large).{
e0400 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 .$messages[].=.str_repeat('.',.$
e0420 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 69 73 73 65 74 28 24 6d 65 73 len);.}..for.($i.=.0;.isset($mes
e0440 73 61 67 65 73 5b 24 69 5d 29 3b 20 2b 2b 24 69 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 24 69 sages[$i]);.++$i).{.$messages[$i
e0460 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c ].=.sprintf('<%s>%s</%s>',.$styl
e0480 65 2c 20 24 6d 65 73 73 61 67 65 73 5b 24 69 5d 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 e,.$messages[$i],.$style);.}..re
e04a0 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d turn.implode("\n",.$messages);.}
e04c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b .....public.function.getName().{
e04e0 0a 72 65 74 75 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .return.'formatter';.}.}.<?php..
e0500 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
e0520 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 nent\Console\Helper;.........cla
e0540 73 73 20 44 65 62 75 67 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 ss.DebugFormatterHelper.extends.
e0560 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 Helper.{.private.$colors.=.array
e0580 28 27 62 6c 61 63 6b 27 2c 20 27 72 65 64 27 2c 20 27 67 72 65 65 6e 27 2c 20 27 79 65 6c 6c 6f ('black',.'red',.'green',.'yello
e05a0 77 27 2c 20 27 62 6c 75 65 27 2c 20 27 6d 61 67 65 6e 74 61 27 2c 20 27 63 79 61 6e 27 2c 20 27 w',.'blue',.'magenta',.'cyan',.'
e05c0 77 68 69 74 65 27 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 65 64 20 3d 20 61 72 72 61 white');.private.$started.=.arra
e05e0 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 75 6e 74 20 3d 20 2d 31 3b 0a 0a 0a 0a 0a 0a 0a y();.private.$count.=.-1;.......
e0600 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 69 64 2c 20 24 ....public.function.start($id,.$
e0620 6d 65 73 73 61 67 65 2c 20 24 70 72 65 66 69 78 20 3d 20 27 52 55 4e 27 29 0a 7b 0a 24 74 68 69 message,.$prefix.=.'RUN').{.$thi
e0640 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 20 3d 20 61 72 72 61 79 28 27 62 6f 72 64 65 72 27 s->started[$id].=.array('border'
e0660 20 3d 3e 20 2b 2b 24 74 68 69 73 2d 3e 63 6f 75 6e 74 20 25 20 63 6f 75 6e 74 28 24 74 68 69 73 .=>.++$this->count.%.count($this
e0680 2d 3e 63 6f 6c 6f 72 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 25 73 3c ->colors));..return.sprintf("%s<
e06a0 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 62 6c 75 bg=blue;fg=white>.%s.</>.<fg=blu
e06c0 65 3e 25 73 3c 2f 3e 5c 6e 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 e>%s</>\n",.$this->getBorder($id
e06e0 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ),.$prefix,.$message);.}........
e0700 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 67 72 65 73 73 28 24 69 .....public.function.progress($i
e0720 64 2c 20 24 62 75 66 66 65 72 2c 20 24 65 72 72 6f 72 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 d,.$buffer,.$error.=.false,.$pre
e0740 66 69 78 20 3d 20 27 4f 55 54 27 2c 20 24 65 72 72 6f 72 50 72 65 66 69 78 20 3d 20 27 45 52 52 fix.=.'OUT',.$errorPrefix.=.'ERR
e0760 27 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 29 ').{.$message.=.'';..if.($error)
e0780 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d .{.if.(isset($this->started[$id]
e07a0 5b 27 6f 75 74 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b 0a 75 6e ['out'])).{.$message..=."\n";.un
e07c0 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 3b set($this->started[$id]['out']);
e07e0 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 .}.if.(!isset($this->started[$id
e0800 5d 5b 27 65 72 72 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 ]['err'])).{.$message..=.sprintf
e0820 28 22 25 73 3c 62 67 3d 72 65 64 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 ("%s<bg=red;fg=white>.%s.</>.",.
e0840 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 2c 20 24 65 72 72 6f 72 50 72 65 $this->getBorder($id),.$errorPre
e0860 66 69 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d fix);.$this->started[$id]['err']
e0880 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 74 72 5f 72 65 70 6c .=.true;.}..$message..=.str_repl
e08a0 61 63 65 28 22 5c 6e 22 2c 20 73 70 72 69 6e 74 66 28 22 5c 6e 25 73 3c 62 67 3d 72 65 64 3b 66 ace("\n",.sprintf("\n%s<bg=red;f
e08c0 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 g=white>.%s.</>.",.$this->getBor
e08e0 64 65 72 28 24 69 64 29 2c 20 24 65 72 72 6f 72 50 72 65 66 69 78 29 2c 20 24 62 75 66 66 65 72 der($id),.$errorPrefix),.$buffer
e0900 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 );.}.else.{.if.(isset($this->sta
e0920 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d rted[$id]['err'])).{.$message..=
e0940 20 22 5c 6e 22 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d ."\n";.unset($this->started[$id]
e0960 5b 27 65 72 72 27 5d 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 ['err']);.}.if.(!isset($this->st
e0980 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e arted[$id]['out'])).{.$message..
e09a0 3d 20 73 70 72 69 6e 74 66 28 22 25 73 3c 62 67 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e =.sprintf("%s<bg=green;fg=white>
e09c0 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 .%s.</>.",.$this->getBorder($id)
e09e0 2c 20 24 70 72 65 66 69 78 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b ,.$prefix);.$this->started[$id][
e0a00 27 6f 75 74 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 73 74 'out'].=.true;.}..$message..=.st
e0a20 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 73 70 72 69 6e 74 66 28 22 5c 6e 25 73 3c 62 67 r_replace("\n",.sprintf("\n%s<bg
e0a40 3d 67 72 65 65 6e 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 22 2c 20 24 74 68 69 73 =green;fg=white>.%s.</>.",.$this
e0a60 2d 3e 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 29 2c 20 24 62 75 66 ->getBorder($id),.$prefix),.$buf
e0a80 66 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a fer);.}..return.$message;.}.....
e0aa0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 6f 70 28 24 69 64 2c .......public.function.stop($id,
e0ac0 20 24 6d 65 73 73 61 67 65 2c 20 24 73 75 63 63 65 73 73 66 75 6c 2c 20 24 70 72 65 66 69 78 20 .$message,.$successful,.$prefix.
e0ae0 3d 20 27 52 45 53 27 29 0a 7b 0a 24 74 72 61 69 6c 69 6e 67 45 4f 4c 20 3d 20 69 73 73 65 74 28 =.'RES').{.$trailingEOL.=.isset(
e0b00 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 29 20 7c 7c 20 69 $this->started[$id]['out']).||.i
e0b20 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 sset($this->started[$id]['err'])
e0b40 20 3f 20 22 5c 6e 22 20 3a 20 27 27 3b 0a 0a 69 66 20 28 24 73 75 63 63 65 73 73 66 75 6c 29 20 .?."\n".:.'';..if.($successful).
e0b60 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 25 73 25 73 3c 62 67 3d 67 72 65 65 6e 3b {.return.sprintf("%s%s<bg=green;
e0b80 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 67 72 65 65 6e 3e 25 73 3c 2f 3e fg=white>.%s.</>.<fg=green>%s</>
e0ba0 5c 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 \n",.$trailingEOL,.$this->getBor
e0bc0 64 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a der($id),.$prefix,.$message);.}.
e0be0 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 22 25 73 25 73 3c 62 67 3d 72 65 64 .$message.=.sprintf("%s%s<bg=red
e0c00 3b 66 67 3d 77 68 69 74 65 3e 20 25 73 20 3c 2f 3e 20 3c 66 67 3d 72 65 64 3e 25 73 3c 2f 3e 5c ;fg=white>.%s.</>.<fg=red>%s</>\
e0c20 6e 22 2c 20 24 74 72 61 69 6c 69 6e 67 45 4f 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 42 6f 72 64 n",.$trailingEOL,.$this->getBord
e0c40 65 72 28 24 69 64 29 2c 20 24 70 72 65 66 69 78 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 75 6e er($id),.$prefix,.$message);..un
e0c60 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 6f 75 74 27 5d 2c 20 set($this->started[$id]['out'],.
e0c80 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 65 72 72 27 5d 29 3b 0a 0a 72 65 $this->started[$id]['err']);..re
e0ca0 74 75 72 6e 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 turn.$message;.}.......private.f
e0cc0 75 6e 63 74 69 6f 6e 20 67 65 74 42 6f 72 64 65 72 28 24 69 64 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.getBorder($id).{.return.
e0ce0 73 70 72 69 6e 74 66 28 27 3c 62 67 3d 25 73 3e 20 3c 2f 3e 27 2c 20 24 74 68 69 73 2d 3e 63 6f sprintf('<bg=%s>.</>',.$this->co
e0d00 6c 6f 72 73 5b 24 74 68 69 73 2d 3e 73 74 61 72 74 65 64 5b 24 69 64 5d 5b 27 62 6f 72 64 65 72 lors[$this->started[$id]['border
e0d20 27 5d 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e ']]);.}.....public.function.getN
e0d40 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 64 65 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 ame().{.return.'debug_formatter'
e0d60 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 ;.}.}.<?php...........namespace.
e0d80 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 Symfony\Component\Console\Helper
e0da0 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 ;..use.Symfony\Component\Console
e0dc0 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d \Output\OutputInterface;.use.Sym
e0de0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e fony\Component\Process\Exception
e0e00 5c 50 72 6f 63 65 73 73 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d \ProcessFailedException;.use.Sym
e0e20 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 3b 0a fony\Component\Process\Process;.
e0e40 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 use.Symfony\Component\Process\Pr
e0e60 6f 63 65 73 73 42 75 69 6c 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 ocessBuilder;.......class.Proces
e0e80 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a sHelper.extends.Helper.{........
e0ea0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 4f 75 74 70 75 74 49 .....public.function.run(OutputI
e0ec0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 20 3d nterface.$output,.$cmd,.$error.=
e0ee0 20 6e 75 6c 6c 2c 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 62 6f 73 .null,.$callback.=.null,.$verbos
e0f00 69 74 79 20 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 ity.=.OutputInterface::VERBOSITY
e0f20 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 29 0a 7b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 _VERY_VERBOSE).{.$formatter.=.$t
e0f40 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 65 62 75 67 5f his->getHelperSet()->get('debug_
e0f60 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 6d 64 29 formatter');..if.(is_array($cmd)
e0f80 29 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3a 3a 63 ).{.$process.=.ProcessBuilder::c
e0fa0 72 65 61 74 65 28 24 63 6d 64 29 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 3b 0a 7d 20 65 6c 73 reate($cmd)->getProcess();.}.els
e0fc0 65 69 66 20 28 24 63 6d 64 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 72 6f 63 65 73 73 29 20 7b 0a eif.($cmd.instanceof.Process).{.
e0fe0 24 70 72 6f 63 65 73 73 20 3d 20 24 63 6d 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 63 65 $process.=.$cmd;.}.else.{.$proce
e1000 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6d 64 29 3b 0a 7d 0a 0a 69 66 20 28 24 ss.=.new.Process($cmd);.}..if.($
e1020 76 65 72 62 6f 73 69 74 79 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 verbosity.<=.$output->getVerbosi
e1040 74 79 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 65 ty()).{.$output->write($formatte
e1060 72 2d 3e 73 74 61 72 74 28 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 65 73 r->start(spl_object_hash($proces
e1080 73 29 2c 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 70 72 6f 63 65 73 73 s),.$this->escapeString($process
e10a0 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f ->getCommandLine())));.}..if.($o
e10c0 75 74 70 75 74 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 utput->isDebug()).{.$callback.=.
e10e0 24 74 68 69 73 2d 3e 77 72 61 70 43 61 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 $this->wrapCallback($output,.$pr
e1100 6f 63 65 73 73 2c 20 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 2d 3e ocess,.$callback);.}..$process->
e1120 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 69 74 79 20 run($callback);..if.($verbosity.
e1140 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 24 6d <=.$output->getVerbosity()).{.$m
e1160 65 73 73 61 67 65 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 essage.=.$process->isSuccessful(
e1180 29 20 3f 20 27 43 6f 6d 6d 61 6e 64 20 72 61 6e 20 73 75 63 63 65 73 73 66 75 6c 6c 79 27 20 3a ).?.'Command.ran.successfully'.:
e11a0 20 73 70 72 69 6e 74 66 28 27 25 73 20 43 6f 6d 6d 61 6e 64 20 64 69 64 20 6e 6f 74 20 72 75 6e .sprintf('%s.Command.did.not.run
e11c0 20 73 75 63 63 65 73 73 66 75 6c 6c 79 27 2c 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 .successfully',.$process->getExi
e11e0 74 43 6f 64 65 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 tCode());.$output->write($format
e1200 74 65 72 2d 3e 73 74 6f 70 28 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 65 ter->stop(spl_object_hash($proce
e1220 73 73 29 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 63 65 ss),.$message,.$process->isSucce
e1240 73 73 66 75 6c 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 ssful()));.}..if.(!$process->isS
e1260 75 63 63 65 73 73 66 75 6c 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 20 uccessful().&&.null.!==.$error).
e1280 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 {.$output->writeln(sprintf('<err
e12a0 6f 72 3e 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 53 74 72 or>%s</error>',.$this->escapeStr
e12c0 69 6e 67 28 24 65 72 72 6f 72 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 ing($error)));.}..return.$proces
e12e0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s;.}....................public.f
e1300 75 6e 63 74 69 6f 6e 20 6d 75 73 74 52 75 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 unction.mustRun(OutputInterface.
e1320 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 2c 20 24 63 $output,.$cmd,.$error.=.null,.$c
e1340 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 74 68 allback.=.null).{.$process.=.$th
e1360 69 73 2d 3e 72 75 6e 28 24 6f 75 74 70 75 74 2c 20 24 63 6d 64 2c 20 24 65 72 72 6f 72 2c 20 24 is->run($output,.$cmd,.$error,.$
e1380 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 21 24 70 72 6f 63 65 73 73 2d 3e 69 73 53 75 63 callback);..if.(!$process->isSuc
e13a0 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 73 73 46 61 cessful()).{.throw.new.ProcessFa
e13c0 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 28 24 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 iledException($process);.}..retu
e13e0 72 6e 20 24 70 72 6f 63 65 73 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$process;.}...........public.
e1400 66 75 6e 63 74 69 6f 6e 20 77 72 61 70 43 61 6c 6c 62 61 63 6b 28 4f 75 74 70 75 74 49 6e 74 65 function.wrapCallback(OutputInte
e1420 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 50 72 6f 63 65 73 73 20 24 70 72 6f 63 65 73 73 2c rface.$output,.Process.$process,
e1440 20 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 66 6f 72 6d 61 74 74 65 72 20 .$callback.=.null).{.$formatter.
e1460 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 65 =.$this->getHelperSet()->get('de
e1480 62 75 67 5f 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b bug_formatter');..$that.=.$this;
e14a0 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 ..return.function.($type,.$buffe
e14c0 72 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 63 61 6c 6c r).use.($output,.$process,.$call
e14e0 62 61 63 6b 2c 20 24 66 6f 72 6d 61 74 74 65 72 2c 20 24 74 68 61 74 29 20 7b 0a 24 6f 75 74 70 back,.$formatter,.$that).{.$outp
e1500 75 74 2d 3e 77 72 69 74 65 28 24 66 6f 72 6d 61 74 74 65 72 2d 3e 70 72 6f 67 72 65 73 73 28 73 ut->write($formatter->progress(s
e1520 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 72 6f 63 65 73 73 29 2c 20 24 74 68 61 74 2d pl_object_hash($process),.$that-
e1540 3e 65 73 63 61 70 65 53 74 72 69 6e 67 28 24 62 75 66 66 65 72 29 2c 20 50 72 6f 63 65 73 73 3a >escapeString($buffer),.Process:
e1560 3a 45 52 52 20 3d 3d 3d 20 24 74 79 70 65 29 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 :ERR.===.$type));..if.(null.!==.
e1580 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c $callback).{.call_user_func($cal
e15a0 6c 62 61 63 6b 2c 20 24 74 79 70 65 2c 20 24 62 75 66 66 65 72 29 3b 0a 7d 0a 7d 3b 0a 7d 0a 0a lback,.$type,.$buffer);.}.};.}..
e15c0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 53 74 72 69 6e .....public.function.escapeStrin
e15e0 67 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 3c 27 g($str).{.return.str_replace('<'
e1600 2c 20 27 5c 5c 3c 27 2c 20 24 73 74 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ,.'\\<',.$str);.}.....public.fun
e1620 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 72 6f 63 65 73 ction.getName().{.return.'proces
e1640 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 s';.}.}.<?php...........namespac
e1660 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 e.Symfony\Component\Console\Help
e1680 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f er;..use.Symfony\Component\Conso
e16a0 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 le\Command\Command;.......class.
e16c0 48 65 6c 70 65 72 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 HelperSet.implements.\IteratorAg
e16e0 67 72 65 67 61 74 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 gregate.{.private.$helpers.=.arr
e1700 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ay();.private.$command;.......pu
e1720 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 blic.function.__construct(array.
e1740 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 $helpers.=.array()).{.foreach.($
e1760 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c 69 61 73 20 3d 3e 20 24 68 65 6c 70 65 72 29 20 7b 0a helpers.as.$alias.=>.$helper).{.
e1780 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 6c 70 65 72 2c 20 69 73 5f 69 6e 74 28 24 61 6c 69 61 $this->set($helper,.is_int($alia
e17a0 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 6c 69 61 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s).?.null.:.$alias);.}.}........
e17c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 48 65 6c 70 65 72 49 6e 74 65 72 66 public.function.set(HelperInterf
e17e0 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 61 6c 69 61 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 ace.$helper,.$alias.=.null).{.$t
e1800 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 68 65 6c 70 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d his->helpers[$helper->getName()]
e1820 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 6c 69 61 73 29 .=.$helper;.if.(null.!==.$alias)
e1840 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 61 6c 69 61 73 5d 20 3d 20 24 68 65 6c .{.$this->helpers[$alias].=.$hel
e1860 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 28 24 74 per;.}..$helper->setHelperSet($t
e1880 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 his);.}.........public.function.
e18a0 68 61 73 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d has($name).{.return.isset($this-
e18c0 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 >helpers[$name]);.}...........pu
e18e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 blic.function.get($name).{.if.(!
e1900 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c $this->has($name)).{.throw.new.\
e1920 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 InvalidArgumentException(sprintf
e1940 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 ('The.helper."%s".is.not.defined
e1960 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 .',.$name));.}..return.$this->he
e1980 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e lpers[$name];.}.......public.fun
e19a0 63 74 69 6f 6e 20 73 65 74 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e ction.setCommand(Command.$comman
e19c0 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f d.=.null).{.$this->command.=.$co
e19e0 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 mmand;.}.......public.function.g
e1a00 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d etCommand().{.return.$this->comm
e1a20 61 6e 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 and;.}..public.function.getItera
e1a40 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f tor().{.return.new.\ArrayIterato
e1a60 72 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a r($this->helpers);.}.}.<?php....
e1a80 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
e1aa0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c nt\Console\Helper;..use.Symfony\
e1ac0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 Component\Console\Output\OutputI
e1ae0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
e1b00 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
e1b20 72 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 6c 6f 67 48 65 6c rStyle;..........class.DialogHel
e1b40 70 65 72 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 0a 7b 0a 70 per.extends.InputAwareHelper.{.p
e1b60 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 61 rivate.$inputStream;.private.sta
e1b80 74 69 63 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 79 tic.$shell;.private.static.$stty
e1ba0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ;.................public.functio
e1bc0 6e 20 73 65 6c 65 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 n.select(OutputInterface.$output
e1be0 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 63 68 6f 69 63 65 73 2c 20 24 64 65 66 61 75 6c 74 20 ,.$question,.$choices,.$default.
e1c00 3d 20 6e 75 6c 6c 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 65 72 72 6f =.null,.$attempts.=.false,.$erro
e1c20 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 rMessage.=.'Value."%s".is.invali
e1c40 64 27 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 77 69 64 d',.$multiselect.=.false).{.$wid
e1c60 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c 20 61 72 72 th.=.max(array_map('strlen',.arr
e1c80 61 79 5f 6b 65 79 73 28 24 63 68 6f 69 63 65 73 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 ay_keys($choices)));..$messages.
e1ca0 3d 20 28 61 72 72 61 79 29 20 24 71 75 65 73 74 69 6f 6e 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 =.(array).$question;.foreach.($c
e1cc0 68 6f 69 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 hoices.as.$key.=>.$value).{.$mes
e1ce0 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 7b sages[].=.sprintf("..[<info>%-${
e1d00 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 width}s</info>].%s",.$key,.$valu
e1d20 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 e);.}..$output->writeln($message
e1d40 73 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 41 6e 64 56 61 6c 69 s);..$result.=.$this->askAndVali
e1d60 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 27 3e 20 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 date($output,.'>.',.function.($p
e1d80 69 63 6b 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 65 72 72 6f 72 4d 65 73 73 icked).use.($choices,.$errorMess
e1da0 61 67 65 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 24 73 65 6c 65 63 74 65 64 age,.$multiselect).{...$selected
e1dc0 43 68 6f 69 63 65 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 20 22 2c 20 22 22 2c 20 24 Choices.=.str_replace(".",."",.$
e1de0 70 69 63 6b 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 picked);..if.($multiselect).{...
e1e00 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d if.(!preg_match('/^[a-zA-Z0-9_-]
e1e20 2b 28 3f 3a 2c 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f 27 2c 20 24 73 65 6c 65 63 +(?:,[a-zA-Z0-9_-]+)*$/',.$selec
e1e40 74 65 64 43 68 6f 69 63 65 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e tedChoices,.$matches)).{.throw.n
e1e60 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 ew.\InvalidArgumentException(spr
e1e80 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 70 69 63 6b 65 64 29 29 3b 0a 7d intf($errorMessage,.$picked));.}
e1ea0 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 2c .$selectedChoices.=.explode(",",
e1ec0 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 65 .$selectedChoices);.}.else.{.$se
e1ee0 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 70 69 63 6b 65 64 29 3b 0a lectedChoices.=.array($picked);.
e1f00 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 29 }..$multiselectChoices.=.array()
e1f20 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 61 73 20 ;..foreach.($selectedChoices.as.
e1f40 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 68 6f 69 63 65 73 5b 24 76 61 $value).{.if.(empty($choices[$va
e1f60 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d lue])).{.throw.new.\InvalidArgum
e1f80 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 entException(sprintf($errorMessa
e1fa0 67 65 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 61 72 72 61 79 5f 70 75 73 68 28 24 6d 75 6c 74 ge,.$value));.}.array_push($mult
e1fc0 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 iselectChoices,.$value);.}..if.(
e1fe0 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 75 6c 74 69 73 65 6c $multiselect).{.return.$multisel
e2000 65 63 74 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 69 63 6b 65 64 3b 0a 7d ectChoices;.}..return.$picked;.}
e2020 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 0a 72 65 74 75 72 6e 20 ,.$attempts,.$default);..return.
e2040 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 $result;.}..............public.f
e2060 75 6e 63 74 69 6f 6e 20 61 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 unction.ask(OutputInterface.$out
e2080 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c put,.$question,.$default.=.null,
e20a0 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 .array.$autocomplete.=.null).{.i
e20c0 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 f.($this->input.&&.!$this->input
e20e0 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 ->isInteractive()).{.return.$def
e2100 61 75 6c 74 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f ault;.}..$output->write($questio
e2120 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 n);..$inputStream.=.$this->input
e2140 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 Stream.?:.STDIN;..if.(null.===.$
e2160 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 autocomplete.||.!$this->hasSttyA
e2180 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e 70 75 vailable()).{.$ret.=.fgets($inpu
e21a0 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 tStream,.4096);.if.(false.===.$r
e21c0 65 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f et).{.throw.new.\RuntimeExceptio
e21e0 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 74 n('Aborted');.}.$ret.=.trim($ret
e2200 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a );.}.else.{.$ret.=.'';..$i.=.0;.
e2220 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c $ofs.=.-1;.$matches.=.$autocompl
e2240 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 ete;.$numMatches.=.count($matche
e2260 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 s);..$sttyMode.=.shell_exec('stt
e2280 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 69 63 61 y.-g');....shell_exec('stty.-ica
e22a0 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d non.-echo');....$output->getForm
e22c0 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 27 68 6c 27 2c 20 6e 65 77 20 4f 75 74 70 atter()->setStyle('hl',.new.Outp
e22e0 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 77 68 69 74 65 utFormatterStyle('black',.'white
e2300 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 69 6e 70 75 74 53 74 72 65 61 '));....while.(!feof($inputStrea
e2320 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 31 m)).{.$c.=.fread($inputStream,.1
e2340 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 30 );....if.("\177".===.$c).{.if.(0
e2360 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 20 26 26 20 30 20 21 3d 3d 20 24 69 29 20 7b 0a .===.$numMatches.&&.0.!==.$i).{.
e2380 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 31 44 22 $i--;...$output->write("\033[1D"
e23a0 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d 20 30 29 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 3b );.}..if.($i.===.0).{.$ofs.=.-1;
e23c0 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d .$matches.=.$autocomplete;.$numM
e23e0 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 7d 20 65 6c 73 65 atches.=.count($matches);.}.else
e2400 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d 20 .{.$numMatches.=.0;.}....$ret.=.
e2420 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 24 69 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 substr($ret,.0,.$i);.}.elseif.("
e2440 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 0a 20 24 63 20 2e 3d 20 66 72 65 61 64 28 24 69 \033".===.$c).{...$c..=.fread($i
e2460 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 5b nputStream,.2);....if.(isset($c[
e2480 32 5d 29 20 26 26 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d 3d 2]).&&.('A'.===.$c[2].||.'B'.===
e24a0 20 24 63 5b 32 5d 29 29 20 7b 0a 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 20 .$c[2])).{.if.('A'.===.$c[2].&&.
e24c0 2d 31 20 3d 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 28 -1.===.$ofs).{.$ofs.=.0;.}..if.(
e24e0 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0.===.$numMatches).{.continue;.}
e2500 0a 0a 24 6f 66 73 20 2b 3d 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 3a ..$ofs.+=.('A'.===.$c[2]).?.-1.:
e2520 20 31 3b 0a 24 6f 66 73 20 3d 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 20 .1;.$ofs.=.($numMatches.+.$ofs).
e2540 25 20 24 6e 75 6d 4d 61 74 63 68 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 24 %.$numMatches;.}.}.elseif.(ord($
e2560 63 29 20 3c 20 33 32 29 20 7b 0a 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 5c c).<.32).{.if.("\t".===.$c.||."\
e2580 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 n".===.$c).{.if.($numMatches.>.0
e25a0 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 68 .&&.-1.!==.$ofs).{.$ret.=.$match
e25c0 65 73 5b 24 6f 66 73 5d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 74 es[$ofs];...$output->write(subst
e25e0 72 28 24 72 65 74 2c 20 24 69 29 29 3b 0a 24 69 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 3b r($ret,.$i));.$i.=.strlen($ret);
e2600 0a 7d 0a 0a 69 66 20 28 22 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e .}..if.("\n".===.$c).{.$output->
e2620 77 72 69 74 65 28 24 63 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 write($c);.break;.}..$numMatches
e2640 20 3d 20 30 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 .=.0;.}..continue;.}.else.{.$out
e2660 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 3b 0a 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b 2b put->write($c);.$ret..=.$c;.$i++
e2680 3b 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a 66 ;..$numMatches.=.0;.$ofs.=.0;..f
e26a0 6f 72 65 61 63 68 20 28 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 29 oreach.($autocomplete.as.$value)
e26c0 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 72 .{...if.(0.===.strpos($value,.$r
e26e0 65 74 29 20 26 26 20 24 69 20 21 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b 0a et).&&.$i.!==.strlen($value)).{.
e2700 24 6d 61 74 63 68 65 73 5b 24 6e 75 6d 4d 61 74 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 65 $matches[$numMatches++].=.$value
e2720 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b ;.}.}.}....$output->write("\033[
e2740 4b 22 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 K");..if.($numMatches.>.0.&&.-1.
e2760 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 !==.$ofs).{...$output->write("\0
e2780 33 33 37 22 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 73 337");...$output->write('<hl>'.s
e27a0 75 62 73 74 72 28 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c 3e ubstr($matches[$ofs],.$i).'</hl>
e27c0 27 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a 7d ');...$output->write("\0338");.}
e27e0 0a 7d 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 .}....shell_exec(sprintf('stty.%
e2800 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 s',.$sttyMode));.}..return.strle
e2820 6e 28 24 72 65 74 29 20 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 64 65 66 61 75 6c 74 3b 0a 7d n($ret).>.0.?.$ret.:.$default;.}
e2840 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b .............public.function.ask
e2860 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 Confirmation(OutputInterface.$ou
e2880 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 tput,.$question,.$default.=.true
e28a0 29 0a 7b 0a 24 61 6e 73 77 65 72 20 3d 20 27 7a 27 3b 0a 77 68 69 6c 65 20 28 24 61 6e 73 77 65 ).{.$answer.=.'z';.while.($answe
e28c0 72 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 r.&&.!in_array(strtolower($answe
e28e0 72 5b 30 5d 29 2c 20 61 72 72 61 79 28 27 79 27 2c 20 27 6e 27 29 29 29 20 7b 0a 24 61 6e 73 77 r[0]),.array('y',.'n'))).{.$answ
e2900 65 72 20 3d 20 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 er.=.$this->ask($output,.$questi
e2920 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 65 66 61 75 6c 74 29 20 on);.}..if.(false.===.$default).
e2940 7b 0a 72 65 74 75 72 6e 20 24 61 6e 73 77 65 72 20 26 26 20 27 79 27 20 3d 3d 20 73 74 72 74 6f {.return.$answer.&&.'y'.==.strto
e2960 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 61 lower($answer[0]);.}..return.!$a
e2980 6e 73 77 65 72 20 7c 7c 20 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 nswer.||.'y'.==.strtolower($answ
e29a0 65 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e er[0]);.}.............public.fun
e29c0 63 74 69 6f 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 6e ction.askHiddenResponse(OutputIn
e29e0 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c terface.$output,.$question,.$fal
e2a00 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 lback.=.true).{.if.('\\'.===.DIR
e2a20 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 ECTORY_SEPARATOR).{.$exe.=.__DIR
e2a40 5f 5f 2e 27 2f 2e 2e 2f 52 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 6e 70 75 __.'/../Resources/bin/hiddeninpu
e2a60 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 t.exe';....if.('phar:'.===.subst
e2a80 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 r(__FILE__,.0,.5)).{.$tmpExe.=.s
e2aa0 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e ys_get_temp_dir().'/hiddeninput.
e2ac0 65 78 65 27 3b 0a 63 6f 70 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 exe';.copy($exe,.$tmpExe);.$exe.
e2ae0 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 =.$tmpExe;.}..$output->write($qu
e2b00 65 73 74 69 6f 6e 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 estion);.$value.=.rtrim(shell_ex
e2b20 65 63 28 24 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b ec($exe));.$output->writeln('');
e2b40 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 ..if.(isset($tmpExe)).{.unlink($
e2b60 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 tmpExe);.}..return.$value;.}..if
e2b80 20 28 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 .($this->hasSttyAvailable()).{.$
e2ba0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 73 74 74 79 output->write($question);..$stty
e2bc0 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 73 Mode.=.shell_exec('stty.-g');..s
e2be0 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 68 6f 27 29 3b 0a 24 76 61 6c 75 65 20 hell_exec('stty.-echo');.$value.
e2c00 3d 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 =.fgets($this->inputStream.?:.ST
e2c20 44 49 4e 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 DIN,.4096);.shell_exec(sprintf('
e2c40 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 stty.%s',.$sttyMode));..if.(fals
e2c60 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 e.===.$value).{.throw.new.\Runti
e2c80 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 meException('Aborted');.}..$valu
e2ca0 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 e.=.trim($value);.$output->write
e2cc0 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 ln('');..return.$value;.}..if.(f
e2ce0 61 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c alse.!==.$shell.=.$this->getShel
e2d00 6c 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 l()).{.$output->write($question)
e2d20 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 20 3f 20 ;.$readCmd.=.$shell.===.'csh'.?.
e2d40 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 'set.mypassword.=.$<'.:.'read.-r
e2d60 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 .mypassword';.$command.=.sprintf
e2d80 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f ("/usr/bin/env.%s.-c.'stty.-echo
e2da0 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f ;.%s;.stty.echo;.echo.\$mypasswo
e2dc0 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 rd'",.$shell,.$readCmd);.$value.
e2de0 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 =.rtrim(shell_exec($command));.$
e2e00 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 output->writeln('');..return.$va
e2e20 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 66 61 6c 6c 62 61 63 6b 29 20 7b 0a 72 65 74 75 72 6e 20 lue;.}..if.($fallback).{.return.
e2e40 24 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a $this->ask($output,.$question);.
e2e60 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 }..throw.new.\RuntimeException('
e2e80 55 6e 61 62 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d Unable.to.hide.the.response');.}
e2ea0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ....................public.funct
e2ec0 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 ion.askAndValidate(OutputInterfa
e2ee0 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f ce.$output,.$question,.$validato
e2f00 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d r,.$attempts.=.false,.$default.=
e2f20 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c .null,.array.$autocomplete.=.nul
e2f40 6c 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 l).{.$that.=.$this;..$interviewe
e2f60 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 r.=.function.().use.($output,.$q
e2f80 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 uestion,.$default,.$autocomplete
e2fa0 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 28 24 6f 75 ,.$that).{.return.$that->ask($ou
e2fc0 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f tput,.$question,.$default,.$auto
e2fe0 63 6f 6d 70 6c 65 74 65 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c complete);.};..return.$this->val
e3000 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f 75 74 idateAttempts($interviewer,.$out
e3020 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a 7d 0a 0a put,.$validator,.$attempts);.}..
e3040 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ..................public.functio
e3060 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 61 6c 69 64 61 74 65 28 4f n.askHiddenResponseAndValidate(O
e3080 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f utputInterface.$output,.$questio
e30a0 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 n,.$validator,.$attempts.=.false
e30c0 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 ,.$fallback.=.true).{.$that.=.$t
e30e0 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 his;..$interviewer.=.function.()
e3100 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 .use.($output,.$question,.$fallb
e3120 61 63 6b 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 48 ack,.$that).{.return.$that->askH
e3140 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e iddenResponse($output,.$question
e3160 2c 20 24 66 61 6c 6c 62 61 63 6b 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ,.$fallback);.};..return.$this->
e3180 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 validateAttempts($interviewer,.$
e31a0 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a output,.$validator,.$attempts);.
e31c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 }.........public.function.setInp
e31e0 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 utStream($stream).{.$this->input
e3200 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Stream.=.$stream;.}.......public
e3220 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 .function.getInputStream().{.ret
e3240 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 urn.$this->inputStream;.}.....pu
e3260 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getName().{.return
e3280 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .'dialog';.}.......private.funct
e32a0 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 ion.getShell().{.if.(null.!==.se
e32c0 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c lf::$shell).{.return.self::$shel
e32e0 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 l;.}..self::$shell.=.false;..if.
e3300 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a (file_exists('/usr/bin/env')).{.
e3320 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 ..$test.=."/usr/bin/env.%s.-c.'e
e3340 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 cho.OK'.2>./dev/null";.foreach.(
e3360 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 array('bash',.'zsh',.'ksh',.'csh
e3380 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 ').as.$sh).{.if.('OK'.===.rtrim(
e33a0 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 shell_exec(sprintf($test,.$sh)))
e33c0 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d ).{.self::$shell.=.$sh;.break;.}
e33e0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a 0a 70 72 .}.}..return.self::$shell;.}..pr
e3400 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 ivate.function.hasSttyAvailable(
e3420 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 74 74 79 29 20 7b 0a ).{.if.(null.!==.self::$stty).{.
e3440 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 78 65 63 28 27 73 74 74 return.self::$stty;.}..exec('stt
e3460 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 63 6f 64 65 29 3b 0a 0a 72 y.2>&1',.$output,.$exitcode);..r
e3480 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 74 63 6f 64 65 20 3d 3d eturn.self::$stty.=.$exitcode.==
e34a0 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 =.0;.}..............private.func
e34c0 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 tion.validateAttempts($interview
e34e0 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 76 61 er,.OutputInterface.$output,.$va
e3500 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e lidator,.$attempts).{.$error.=.n
e3520 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 ull;.while.(false.===.$attempts.
e3540 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ||.$attempts--).{.if.(null.!==.$
e3560 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d error).{.$output->writeln($this-
e3580 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 >getHelperSet()->get('formatter'
e35a0 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 )->formatBlock($error->getMessag
e35c0 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 e(),.'error'));.}..try.{.return.
e35e0 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 69 6e 74 65 call_user_func($validator,.$inte
e3600 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 rviewer());.}.catch.(\Exception.
e3620 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 7d $error).{.}.}..throw.$error;.}.}
e3640 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
e3660 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 ny\Component\Console\Helper;..us
e3680 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 e.Symfony\Component\Console\Inpu
e36a0 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f t\InputInterface;.use.Symfony\Co
e36c0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 mponent\Console\Output\OutputInt
e36e0 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f erface;.use.Symfony\Component\Co
e3700 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 nsole\Formatter\OutputFormatterS
e3720 74 79 6c 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tyle;.use.Symfony\Component\Cons
e3740 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 51 75 65 73 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f ole\Question\Question;.use.Symfo
e3760 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 51 75 65 73 74 69 6f 6e 5c 43 68 ny\Component\Console\Question\Ch
e3780 6f 69 63 65 51 75 65 73 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 51 75 65 73 74 69 oiceQuestion;.......class.Questi
e37a0 6f 6e 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 onHelper.extends.Helper.{.privat
e37c0 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 e.$inputStream;.private.static.$
e37e0 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a 0a shell;.private.static.$stty;....
e3800 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 49 6e 70 .........public.function.ask(Inp
e3820 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 utInterface.$input,.OutputInterf
e3840 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 ace.$output,.Question.$question)
e3860 0a 7b 0a 69 66 20 28 21 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 .{.if.(!$input->isInteractive())
e3880 20 7b 0a 72 65 74 75 72 6e 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 .{.return.$question->getDefault(
e38a0 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 56 61 6c 69 64 61 74 );.}..if.(!$question->getValidat
e38c0 6f 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 41 73 6b 28 24 6f 75 74 or()).{.return.$this->doAsk($out
e38e0 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 put,.$question);.}..$that.=.$thi
e3900 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 s;..$interviewer.=.function.().u
e3920 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 74 68 61 74 29 20 7b se.($output,.$question,.$that).{
e3940 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 64 6f 41 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 .return.$that->doAsk($output,.$q
e3960 75 65 73 74 69 6f 6e 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 69 uestion);.};..return.$this->vali
e3980 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f 75 74 70 dateAttempts($interviewer,.$outp
e39a0 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ut,.$question);.}...........publ
e39c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 ic.function.setInputStream($stre
e39e0 61 6d 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 29 am).{.if.(!is_resource($stream))
e3a00 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
e3a20 65 70 74 69 6f 6e 28 27 49 6e 70 75 74 20 73 74 72 65 61 6d 20 6d 75 73 74 20 62 65 20 61 20 76 eption('Input.stream.must.be.a.v
e3a40 61 6c 69 64 20 72 65 73 6f 75 72 63 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 70 75 alid.resource.');.}..$this->inpu
e3a60 74 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tStream.=.$stream;.}.......publi
e3a80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 c.function.getInputStream().{.re
e3aa0 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 turn.$this->inputStream;.}.....p
e3ac0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 ublic.function.getName().{.retur
e3ae0 6e 20 27 71 75 65 73 74 69 6f 6e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 n.'question';.}...............pu
e3b00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 41 73 6b 28 4f 75 74 70 75 74 49 6e 74 65 72 66 blic.function.doAsk(OutputInterf
e3b20 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 29 ace.$output,.Question.$question)
e3b40 0a 7b 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 .{.$inputStream.=.$this->inputSt
e3b60 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 71 75 65 73 ream.?:.STDIN;..$message.=.$ques
e3b80 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 71 75 65 73 74 69 tion->getQuestion();.if.($questi
e3ba0 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 68 6f 69 63 65 51 75 65 73 74 69 6f 6e 29 20 7b 0a on.instanceof.ChoiceQuestion).{.
e3bc0 24 77 69 64 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 6c 65 6e 27 2c $width.=.max(array_map('strlen',
e3be0 20 61 72 72 61 79 5f 6b 65 79 73 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 63 65 .array_keys($question->getChoice
e3c00 73 28 29 29 29 29 3b 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 71 75 s())));..$messages.=.(array).$qu
e3c20 65 73 74 69 6f 6e 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 estion->getQuestion();.foreach.(
e3c40 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 43 68 6f 69 63 65 73 28 29 20 61 73 20 24 6b 65 79 20 $question->getChoices().as.$key.
e3c60 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e =>.$value).{.$messages[].=.sprin
e3c80 74 66 28 22 20 20 5b 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d tf("..[<info>%-${width}s</info>]
e3ca0 20 25 73 22 2c 20 24 6b 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d .%s",.$key,.$value);.}..$output-
e3cc0 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 24 6d 65 73 73 61 67 65 20 3d >writeln($messages);..$message.=
e3ce0 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 3b 0a 7d 0a 0a 24 6f 75 74 .$question->getPrompt();.}..$out
e3d00 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 24 61 75 74 6f 63 6f 6d 70 put->write($message);..$autocomp
e3d20 6c 65 74 65 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 41 75 74 6f 63 6f 6d 70 6c 65 74 lete.=.$question->getAutocomplet
e3d40 65 72 56 61 6c 75 65 73 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 6f 63 6f erValues();.if.(null.===.$autoco
e3d60 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 mplete.||.!$this->hasSttyAvailab
e3d80 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 71 75 65 73 74 le()).{.$ret.=.false;.if.($quest
e3da0 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 74 20 3d 20 ion->isHidden()).{.try.{.$ret.=.
e3dc0 74 72 69 6d 28 24 74 68 69 73 2d 3e 67 65 74 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f trim($this->getHiddenResponse($o
e3de0 75 74 70 75 74 2c 20 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 utput,.$inputStream));.}.catch.(
e3e00 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 71 75 \RuntimeException.$e).{.if.(!$qu
e3e20 65 73 74 69 6f 6e 2d 3e 69 73 48 69 64 64 65 6e 46 61 6c 6c 62 61 63 6b 28 29 29 20 7b 0a 74 68 estion->isHiddenFallback()).{.th
e3e40 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 row.$e;.}.}.}..if.(false.===.$re
e3e60 74 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 t).{.$ret.=.fgets($inputStream,.
e3e80 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 74 29 20 7b 0a 74 68 72 4096);.if.(false.===.$ret).{.thr
e3ea0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 ow.new.\RuntimeException('Aborte
e3ec0 64 27 29 3b 0a 7d 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 72 65 74 29 3b 0a 7d 0a 7d 20 65 6c d');.}.$ret.=.trim($ret);.}.}.el
e3ee0 73 65 20 7b 0a 24 72 65 74 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 61 75 74 6f 63 6f 6d 70 se.{.$ret.=.trim($this->autocomp
e3f00 6c 65 74 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 69 6e 70 75 74 53 lete($output,.$question,.$inputS
e3f20 74 72 65 61 6d 29 29 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 20 tream));.}..$ret.=.strlen($ret).
e3f40 3e 20 30 20 3f 20 24 72 65 74 20 3a 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 >.0.?.$ret.:.$question->getDefau
e3f60 6c 74 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 72 20 3d 20 24 71 75 65 73 74 69 lt();..if.($normalizer.=.$questi
e3f80 6f 6e 2d 3e 67 65 74 4e 6f 72 6d 61 6c 69 7a 65 72 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6e on->getNormalizer()).{.return.$n
e3fa0 6f 72 6d 61 6c 69 7a 65 72 28 24 72 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b ormalizer($ret);.}..return.$ret;
e3fc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 .}..........private.function.aut
e3fe0 6f 63 6f 6d 70 6c 65 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 ocomplete(OutputInterface.$outpu
e4000 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 69 6e 70 75 74 53 74 72 t,.Question.$question,.$inputStr
e4020 65 61 6d 29 0a 7b 0a 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 24 71 75 65 73 74 69 6f 6e eam).{.$autocomplete.=.$question
e4040 2d 3e 67 65 74 41 75 74 6f 63 6f 6d 70 6c 65 74 65 72 56 61 6c 75 65 73 28 29 3b 0a 24 72 65 74 ->getAutocompleterValues();.$ret
e4060 20 3d 20 27 27 3b 0a 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 .=.'';..$i.=.0;.$ofs.=.-1;.$matc
e4080 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 hes.=.$autocomplete;.$numMatches
e40a0 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d .=.count($matches);..$sttyMode.=
e40c0 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c .shell_exec('stty.-g');....shell
e40e0 5f 65 78 65 63 28 27 73 74 74 79 20 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 _exec('stty.-icanon.-echo');....
e4100 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c $output->getFormatter()->setStyl
e4120 65 28 27 68 6c 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 e('hl',.new.OutputFormatterStyle
e4140 28 27 62 6c 61 63 6b 27 2c 20 27 77 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 ('black',.'white'));....while.(!
e4160 66 65 6f 66 28 24 69 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 feof($inputStream)).{.$c.=.fread
e4180 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 ($inputStream,.1);....if.("\177"
e41a0 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 .===.$c).{.if.(0.===.$numMatches
e41c0 20 26 26 20 30 20 21 3d 3d 20 24 69 29 20 7b 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d .&&.0.!==.$i).{.$i--;...$output-
e41e0 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d >write("\033[1D");.}..if.($i.===
e4200 20 30 29 20 7b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 .0).{.$ofs.=.-1;.$matches.=.$aut
e4220 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 ocomplete;.$numMatches.=.count($
e4240 6d 61 74 63 68 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d matches);.}.else.{.$numMatches.=
e4260 20 30 3b 0a 7d 0a 0a 0a 20 24 72 65 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 .0;.}....$ret.=.substr($ret,.0,.
e4280 24 69 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b 0a $i);.}.elseif.("\033".===.$c).{.
e42a0 0a 20 24 63 20 2e 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a ..$c..=.fread($inputStream,.2);.
e42c0 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 63 5b 32 5d 29 20 26 26 20 28 27 41 27 20 3d 3d 3d 20 ...if.(isset($c[2]).&&.('A'.===.
e42e0 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 29 20 7b 0a 69 66 20 28 27 $c[2].||.'B'.===.$c[2])).{.if.('
e4300 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 20 2d 31 20 3d 3d 3d 20 24 6f 66 73 29 20 7b 0a 24 A'.===.$c[2].&&.-1.===.$ofs).{.$
e4320 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 ofs.=.0;.}..if.(0.===.$numMatche
e4340 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 66 73 20 2b 3d 20 28 27 41 27 20 3d s).{.continue;.}..$ofs.+=.('A'.=
e4360 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 24 6f 66 73 20 3d 20 28 24 6e 75 6d ==.$c[2]).?.-1.:.1;.$ofs.=.($num
e4380 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 20 25 20 24 6e 75 6d 4d 61 74 63 68 65 73 3b 0a 7d Matches.+.$ofs).%.$numMatches;.}
e43a0 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 24 63 29 20 3c 20 33 32 29 20 7b 0a 69 66 20 28 22 .}.elseif.(ord($c).<.32).{.if.("
e43c0 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 69 66 20 \t".===.$c.||."\n".===.$c).{.if.
e43e0 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 ($numMatches.>.0.&&.-1.!==.$ofs)
e4400 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 3b 0a 0a 20 24 6f 75 74 .{.$ret.=.$matches[$ofs];...$out
e4420 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 74 72 28 24 72 65 74 2c 20 24 69 29 29 3b 0a 24 69 put->write(substr($ret,.$i));.$i
e4440 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 22 5c 6e 22 20 3d 3d 3d .=.strlen($ret);.}..if.("\n".===
e4460 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 3b 0a 62 72 65 61 6b .$c).{.$output->write($c);.break
e4480 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 ;.}..$numMatches.=.0;.}..continu
e44a0 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 3b 0a e;.}.else.{.$output->write($c);.
e44c0 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b 2b 3b 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d $ret..=.$c;.$i++;..$numMatches.=
e44e0 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 63 6f 6d .0;.$ofs.=.0;..foreach.($autocom
e4500 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 plete.as.$value).{...if.(0.===.s
e4520 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 72 65 74 29 20 26 26 20 24 69 20 21 3d 3d 20 73 74 trpos($value,.$ret).&&.$i.!==.st
e4540 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 6e 75 6d 4d 61 74 rlen($value)).{.$matches[$numMat
e4560 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 6f 75 74 70 ches++].=.$value;.}.}.}....$outp
e4580 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 4b 22 29 3b 0a 0a 69 66 20 28 24 6e 75 6d 4d 61 ut->write("\033[K");..if.($numMa
e45a0 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 20 7b 0a 0a 20 24 6f tches.>.0.&&.-1.!==.$ofs).{...$o
e45c0 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 37 22 29 3b 0a 0a 20 24 6f 75 74 70 75 74 utput->write("\0337");...$output
e45e0 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 73 75 62 73 74 72 28 24 6d 61 74 63 68 65 73 5b 24 ->write('<hl>'.substr($matches[$
e4600 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c 3e 27 29 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 ofs],.$i).'</hl>');...$output->w
e4620 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a 7d 0a 7d 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 rite("\0338");.}.}....shell_exec
e4640 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b (sprintf('stty.%s',.$sttyMode));
e4660 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ..return.$ret;.}...........priva
e4680 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 te.function.getHiddenResponse(Ou
e46a0 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 75 74 53 74 72 tputInterface.$output,.$inputStr
e46c0 65 61 6d 29 0a 7b 0a 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 eam).{.if.('\\'.===.DIRECTORY_SE
e46e0 50 41 52 41 54 4f 52 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 52 PARATOR).{.$exe.=.__DIR__.'/../R
e4700 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a esources/bin/hiddeninput.exe';..
e4720 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f ..if.('phar:'.===.substr(__FILE_
e4740 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 _,.0,.5)).{.$tmpExe.=.sys_get_te
e4760 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 63 6f 70 mp_dir().'/hiddeninput.exe';.cop
e4780 79 28 24 65 78 65 2c 20 24 74 6d 70 45 78 65 29 3b 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 y($exe,.$tmpExe);.$exe.=.$tmpExe
e47a0 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 ;.}..$value.=.rtrim(shell_exec($
e47c0 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 69 66 exe));.$output->writeln('');..if
e47e0 20 28 69 73 73 65 74 28 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 .(isset($tmpExe)).{.unlink($tmpE
e4800 78 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 xe);.}..return.$value;.}..if.($t
e4820 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 73 74 74 79 his->hasSttyAvailable()).{.$stty
e4840 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 73 Mode.=.shell_exec('stty.-g');..s
e4860 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 68 6f 27 29 3b 0a 24 76 61 6c 75 65 20 hell_exec('stty.-echo');.$value.
e4880 3d 20 66 67 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 73 68 65 =.fgets($inputStream,.4096);.she
e48a0 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 ll_exec(sprintf('stty.%s',.$stty
e48c0 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b Mode));..if.(false.===.$value).{
e48e0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 .throw.new.\RuntimeException('Ab
e4900 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 orted');.}..$value.=.trim($value
e4920 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e );.$output->writeln('');..return
e4940 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c .$value;.}..if.(false.!==.$shell
e4960 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c 6c 28 29 29 20 7b 0a 24 72 65 61 64 43 6d 64 .=.$this->getShell()).{.$readCmd
e4980 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 20 3f 20 27 73 65 74 20 6d 79 70 61 73 .=.$shell.===.'csh'.?.'set.mypas
e49a0 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 sword.=.$<'.:.'read.-r.mypasswor
e49c0 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e d';.$command.=.sprintf("/usr/bin
e49e0 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 /env.%s.-c.'stty.-echo;.%s;.stty
e4a00 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 .echo;.echo.\$mypassword'",.$she
e4a20 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 ll,.$readCmd);.$value.=.rtrim(sh
e4a40 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 ell_exec($command));.$output->wr
e4a60 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 74 68 iteln('');..return.$value;.}..th
e4a80 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c row.new.\RuntimeException('Unabl
e4aa0 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a e.to.hide.the.response.');.}....
e4ac0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 .........private.function.valida
e4ae0 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 4f 75 74 70 75 74 49 teAttempts($interviewer,.OutputI
e4b00 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 51 75 65 73 74 69 6f 6e 20 24 71 75 65 73 nterface.$output,.Question.$ques
e4b20 74 69 6f 6e 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 24 61 74 74 65 6d 70 74 73 tion).{.$error.=.null;.$attempts
e4b40 20 3d 20 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 4d 61 78 41 74 74 65 6d 70 74 73 28 29 3b 0a .=.$question->getMaxAttempts();.
e4b60 77 68 69 6c 65 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 7c 7c 20 24 61 74 while.(null.===.$attempts.||.$at
e4b80 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 65 72 72 6f 72 29 tempts--).{.if.(null.!==.$error)
e4ba0 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 .{.if.(null.!==.$this->getHelper
e4bc0 53 65 74 28 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e Set().&&.$this->getHelperSet()->
e4be0 68 61 73 28 27 66 6f 72 6d 61 74 74 65 72 27 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 has('formatter')).{.$message.=.$
e4c00 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 this->getHelperSet()->get('forma
e4c20 74 74 65 72 27 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d tter')->formatBlock($error->getM
e4c40 65 73 73 61 67 65 28 29 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 essage(),.'error');.}.else.{.$me
e4c60 73 73 61 67 65 20 3d 20 27 3c 65 72 72 6f 72 3e 27 2e 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 ssage.=.'<error>'.$error->getMes
e4c80 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 sage().'</error>';.}..$output->w
e4ca0 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 riteln($message);.}..try.{.retur
e4cc0 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 71 75 65 73 74 69 6f 6e 2d 3e 67 65 74 56 n.call_user_func($question->getV
e4ce0 61 6c 69 64 61 74 6f 72 28 29 2c 20 24 69 6e 74 65 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 alidator(),.$interviewer());.}.c
e4d00 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a atch.(\Exception.$error).{.}.}..
e4d20 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 throw.$error;.}.......private.fu
e4d40 6e 63 74 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d nction.getShell().{.if.(null.!==
e4d60 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 .self::$shell).{.return.self::$s
e4d80 68 65 6c 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c 73 65 3b 0a 0a hell;.}..self::$shell.=.false;..
e4da0 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 if.(file_exists('/usr/bin/env'))
e4dc0 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 .{...$test.=."/usr/bin/env.%s.-c
e4de0 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 .'echo.OK'.2>./dev/null";.foreac
e4e00 68 20 28 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 h.(array('bash',.'zsh',.'ksh',.'
e4e20 63 73 68 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 csh').as.$sh).{.if.('OK'.===.rtr
e4e40 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 im(shell_exec(sprintf($test,.$sh
e4e60 29 29 29 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b )))).{.self::$shell.=.$sh;.break
e4e80 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a ;.}.}.}..return.self::$shell;.}.
e4ea0 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 ......private.function.hasSttyAv
e4ec0 61 69 6c 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 ailable().{.if.(null.!==.self::$
e4ee0 73 74 74 79 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 stty).{.return.self::$stty;.}..e
e4f00 78 65 63 28 27 73 74 74 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 63 xec('stty.2>&1',.$output,.$exitc
e4f20 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 ode);..return.self::$stty.=.$exi
e4f40 74 63 6f 64 65 20 3d 3d 3d 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tcode.===.0;.}.}.<?php..........
e4f60 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
e4f80 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 53 65 sole\Helper;.......class.TableSe
e4fa0 70 61 72 61 74 6f 72 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 parator.{.}.<?php...........name
e4fc0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c space.Symfony\Component\Console\
e4fe0 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 Helper;..use.Symfony\Component\C
e5000 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 onsole\Formatter\OutputFormatter
e5020 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 Interface;.......abstract.class.
e5040 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 Helper.implements.HelperInterfac
e5060 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b e.{.protected.$helperSet.=.null;
e5080 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 72 .......public.function.setHelper
e50a0 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 Set(HelperSet.$helperSet.=.null)
e50c0 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 .{.$this->helperSet.=.$helperSet
e50e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c ;.}.......public.function.getHel
e5100 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 perSet().{.return.$this->helperS
e5120 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 et;.}.........public.static.func
e5140 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 tion.strlen($string).{.if.(!func
e5160 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 77 69 64 74 68 27 29 29 20 7b 0a 72 65 tion_exists('mb_strwidth')).{.re
e5180 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c turn.strlen($string);.}..if.(fal
e51a0 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 se.===.$encoding.=.mb_detect_enc
e51c0 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 oding($string)).{.return.strlen(
e51e0 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 77 69 64 74 68 28 $string);.}..return.mb_strwidth(
e5200 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 $string,.$encoding);.}..public.s
e5220 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 54 69 6d 65 28 24 73 65 63 73 29 tatic.function.formatTime($secs)
e5240 0a 7b 0a 73 74 61 74 69 63 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a .{.static.$timeFormats.=.array(.
e5260 61 72 72 61 79 28 30 2c 20 27 3c 20 31 20 73 65 63 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 array(0,.'<.1.sec'),.array(2,.'1
e5280 20 73 65 63 27 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 .sec'),.array(59,.'secs',.1),.ar
e52a0 72 61 79 28 36 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d ray(60,.'1.min'),.array(3600,.'m
e52c0 69 6e 73 27 2c 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a ins',.60),.array(5400,.'1.hr'),.
e52e0 61 72 72 61 79 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 array(86400,.'hrs',.3600),.array
e5300 28 31 32 39 36 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c (129600,.'1.day'),.array(604800,
e5320 20 27 64 61 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 .'days',.86400),.);..foreach.($t
e5340 69 6d 65 46 6f 72 6d 61 74 73 20 61 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 65 imeFormats.as.$format).{.if.($se
e5360 63 73 20 3e 3d 20 24 66 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a cs.>=.$format[0]).{.continue;.}.
e5380 0a 69 66 20 28 32 20 3d 3d 20 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 72 65 74 75 .if.(2.==.count($format)).{.retu
e53a0 72 6e 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 65 69 6c 28 24 73 rn.$format[1];.}..return.ceil($s
e53c0 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 5d ecs./.$format[2]).'.'.$format[1]
e53e0 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f ;.}.}..public.static.function.fo
e5400 72 6d 61 74 4d 65 6d 6f 72 79 28 24 6d 65 6d 6f 72 79 29 0a 7b 0a 69 66 20 28 24 6d 65 6d 6f 72 rmatMemory($memory).{.if.($memor
e5420 79 20 3e 3d 20 31 30 32 34 20 2a 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 72 65 74 75 72 y.>=.1024.*.1024.*.1024).{.retur
e5440 6e 20 73 70 72 69 6e 74 66 28 27 25 2e 31 66 20 47 69 42 27 2c 20 24 6d 65 6d 6f 72 79 20 2f 20 n.sprintf('%.1f.GiB',.$memory./.
e5460 31 30 32 34 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 6d 1024./.1024./.1024);.}..if.($mem
e5480 6f 72 79 20 3e 3d 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 ory.>=.1024.*.1024).{.return.spr
e54a0 69 6e 74 66 28 27 25 2e 31 66 20 4d 69 42 27 2c 20 24 6d 65 6d 6f 72 79 20 2f 20 31 30 32 34 20 intf('%.1f.MiB',.$memory./.1024.
e54c0 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 6d 6f 72 79 20 3e 3d 20 31 30 32 34 29 /.1024);.}..if.($memory.>=.1024)
e54e0 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 25 64 20 4b 69 42 27 2c 20 24 6d 65 6d .{.return.sprintf('%d.KiB',.$mem
e5500 6f 72 79 20 2f 20 31 30 32 34 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 ory./.1024);.}..return.sprintf('
e5520 25 64 20 42 27 2c 20 24 6d 65 6d 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 %d.B',.$memory);.}..public.stati
e5540 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 c.function.strlenWithoutDecorati
e5560 6f 6e 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 on(OutputFormatterInterface.$for
e5580 6d 61 74 74 65 72 2c 20 24 73 74 72 69 6e 67 29 0a 7b 0a 24 69 73 44 65 63 6f 72 61 74 65 64 20 matter,.$string).{.$isDecorated.
e55a0 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 24 66 6f =.$formatter->isDecorated();.$fo
e55c0 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 3b 0a 0a 20 rmatter->setDecorated(false);...
e55e0 24 73 74 72 69 6e 67 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 73 74 $string.=.$formatter->format($st
e5600 72 69 6e 67 29 3b 0a 0a 20 24 73 74 72 69 6e 67 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ring);...$string.=.preg_replace(
e5620 22 2f 5c 30 33 33 5c 5b 5b 5e 6d 5d 2a 6d 2f 22 2c 20 27 27 2c 20 24 73 74 72 69 6e 67 29 3b 0a "/\033\[[^m]*m/",.'',.$string);.
e5640 24 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 69 73 44 65 63 6f $formatter->setDecorated($isDeco
e5660 72 61 74 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 73 74 72 6c 65 6e 28 24 73 74 rated);..return.self::strlen($st
e5680 72 69 6e 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 ring);.}.}.<?php...........names
e56a0 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 pace.Symfony\Component\Console\H
e56c0 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f elper;..use.Symfony\Component\Co
e56e0 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4e 75 6c 6c 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d nsole\Output\NullOutput;.use.Sym
e5700 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 fony\Component\Console\Output\Ou
e5720 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 tputInterface;..........class.Pr
e5740 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 63 6f ogressHelper.extends.Helper.{.co
e5760 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 63 65 6e 74 25 25 27 nst.FORMAT_QUIET.=.'.%percent%%'
e5780 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 20 25 63 75 72 72 65 ;.const.FORMAT_NORMAL.=.'.%curre
e57a0 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 27 3b 0a 63 nt%/%max%.[%bar%].%percent%%';.c
e57c0 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 63 75 72 72 65 6e 74 onst.FORMAT_VERBOSE.=.'.%current
e57e0 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 20 45 6c 61 70 73 %/%max%.[%bar%].%percent%%.Elaps
e5800 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 ed:.%elapsed%';.const.FORMAT_QUI
e5820 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a 63 6f 6e 73 74 20 46 ET_NOMAX.=.'.%current%';.const.F
e5840 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 ORMAT_NORMAL_NOMAX.=.'.%current%
e5860 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 5f .[%bar%]';.const.FORMAT_VERBOSE_
e5880 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 20 45 6c 61 70 NOMAX.=.'.%current%.[%bar%].Elap
e58a0 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 62 61 72 sed:.%elapsed%';....private.$bar
e58c0 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 72 20 3d 20 27 Width.=.28;.private.$barChar.=.'
e58e0 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 27 2d 27 3b =';.private.$emptyBarChar.=.'-';
e5900 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e 27 3b 0a 70 72 .private.$progressChar.=.'>';.pr
e5920 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 74 65 20 24 72 ivate.$format.=.null;.private.$r
e5940 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 4d 65 73 edrawFreq.=.1;..private.$lastMes
e5960 73 61 67 65 73 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 72 4f 72 69 sagesLength;.private.$barCharOri
e5980 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a ginal;.....private.$output;.....
e59a0 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ..private.$current;.......privat
e59c0 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 e.$max;.......private.$startTime
e59e0 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 ;.......private.$defaultFormatVa
e5a00 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 2c 0a 27 6d 61 78 27 2c 0a 27 62 rs.=.array(.'current',.'max',.'b
e5a20 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c 61 70 73 65 64 27 2c 0a 29 3b 0a 0a 0a ar',.'percent',.'elapsed',.);...
e5a40 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 56 61 72 73 3b 0a 0a 0a 0a 0a 0a 0a 70 ....private.$formatVars;.......p
e5a60 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 rivate.$widths.=.array(.'current
e5a80 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c 0a 27 70 65 72 63 65 6e 74 27 20 3d 3e '.=>.4,.'max'.=>.4,.'percent'.=>
e5aa0 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 .3,.'elapsed'.=>.6,.);.......pri
e5ac0 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 61 72 72 61 79 vate.$timeFormats.=.array(.array
e5ae0 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 20 73 65 63 27 29 2c 0a 61 (0,.'???'),.array(2,.'1.sec'),.a
e5b00 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 72 61 79 28 36 30 2c 20 27 rray(59,.'secs',.1),.array(60,.'
e5b20 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d 69 6e 73 27 2c 20 36 30 29 1.min'),.array(3600,.'mins',.60)
e5b40 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a 61 72 72 61 79 28 38 36 34 ,.array(5400,.'1.hr'),.array(864
e5b60 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 28 31 32 39 36 30 30 2c 20 00,.'hrs',.3600),.array(129600,.
e5b80 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c 20 27 64 61 79 73 27 2c 20 '1.day'),.array(604800,.'days',.
e5ba0 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 86400),.);.......public.function
e5bc0 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 .setBarWidth($size).{.$this->bar
e5be0 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 Width.=.(int).$size;.}.......pub
e5c00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 lic.function.setBarCharacter($ch
e5c20 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a ar).{.$this->barChar.=.$char;.}.
e5c40 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d 70 74 79 42 61 ......public.function.setEmptyBa
e5c60 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6d 70 74 79 rCharacter($char).{.$this->empty
e5c80 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 BarChar.=.$char;.}.......public.
e5ca0 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 65 72 28 24 63 function.setProgressCharacter($c
e5cc0 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 24 63 68 har).{.$this->progressChar.=.$ch
e5ce0 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 ar;.}.......public.function.setF
e5d00 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d ormat($format).{.$this->format.=
e5d20 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$format;.}.......public.functio
e5d40 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 66 72 65 71 29 0a 7b 0a 24 74 n.setRedrawFrequency($freq).{.$t
e5d60 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 69 6e 74 29 20 24 66 72 65 71 3b 0a 7d his->redrawFreq.=.(int).$freq;.}
e5d80 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 4f 75 ........public.function.start(Ou
e5da0 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 78 20 3d 20 6e 75 tputInterface.$output,.$max.=.nu
e5dc0 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 69 6d 65 28 29 3b ll).{.$this->startTime.=.time();
e5de0 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6d 61 78 20 .$this->current.=.0;.$this->max.
e5e00 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d =.(int).$max;....$this->output.=
e5e20 20 24 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 20 3f 20 24 6f 75 74 70 75 .$output->isDecorated().?.$outpu
e5e40 74 20 3a 20 6e 65 77 20 4e 75 6c 6c 4f 75 74 70 75 74 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 t.:.new.NullOutput();.$this->las
e5e60 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 tMessagesLength.=.0;.$this->barC
e5e80 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 27 27 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 harOriginal.=.'';..if.(null.===.
e5ea0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 74 $this->format).{.switch.($output
e5ec0 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 ->getVerbosity()).{.case.OutputI
e5ee0 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 73 nterface::VERBOSITY_QUIET:.$this
e5f00 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f ->format.=.self::FORMAT_QUIET_NO
e5f20 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 MAX;.if.($this->max.>.0).{.$this
e5f40 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 3b 0a 7d ->format.=.self::FORMAT_QUIET;.}
e5f60 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 .break;.case.OutputInterface::VE
e5f80 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 RBOSITY_VERBOSE:.case.OutputInte
e5fa0 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 3a 0a 63 rface::VERBOSITY_VERY_VERBOSE:.c
e5fc0 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 ase.OutputInterface::VERBOSITY_D
e5fe0 45 42 55 47 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d EBUG:.$this->format.=.self::FORM
e6000 41 54 5f 56 45 52 42 4f 53 45 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 AT_VERBOSE_NOMAX;.if.($this->max
e6020 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f .>.0).{.$this->format.=.self::FO
e6040 52 4d 41 54 5f 56 45 52 42 4f 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a RMAT_VERBOSE;.}.break;.default:.
e6060 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 $this->format.=.self::FORMAT_NOR
e6080 4d 41 4c 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b MAL_NOMAX;.if.($this->max.>.0).{
e60a0 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f .$this->format.=.self::FORMAT_NO
e60c0 52 4d 41 4c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 RMAL;.}.break;.}.}..$this->initi
e60e0 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 alize();.}..........public.funct
e6100 69 6f 6e 20 61 64 76 61 6e 63 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 77 20 3d ion.advance($step.=.1,.$redraw.=
e6120 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 43 75 72 72 65 6e 74 28 24 74 68 69 .false).{.$this->setCurrent($thi
e6140 73 2d 3e 63 75 72 72 65 6e 74 20 2b 20 24 73 74 65 70 2c 20 24 72 65 64 72 61 77 29 3b 0a 7d 0a s->current.+.$step,.$redraw);.}.
e6160 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 75 72 72 .........public.function.setCurr
e6180 65 6e 74 28 24 63 75 72 72 65 6e 74 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b ent($current,.$redraw.=.false).{
e61a0 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 .if.(null.===.$this->startTime).
e61c0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 {.throw.new.\LogicException('You
e61e0 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 .must.start.the.progress.bar.bef
e6200 6f 72 65 20 63 61 6c 6c 69 6e 67 20 73 65 74 43 75 72 72 65 6e 74 28 29 2e 27 29 3b 0a 7d 0a 0a ore.calling.setCurrent().');.}..
e6220 24 63 75 72 72 65 6e 74 20 3d 20 28 69 6e 74 29 20 24 63 75 72 72 65 6e 74 3b 0a 0a 69 66 20 28 $current.=.(int).$current;..if.(
e6240 24 63 75 72 72 65 6e 74 20 3c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 74 68 72 $current.<.$this->current).{.thr
e6260 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 5c ow.new.\LogicException('You.can\
e6280 27 74 20 72 65 67 72 65 73 73 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 27 29 3b 0a 7d 't.regress.the.progress.bar');.}
e62a0 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 72 ..if.(0.===.$this->current).{.$r
e62c0 65 64 72 61 77 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 72 65 76 50 65 72 69 6f 64 20 3d 20 28 edraw.=.true;.}..$prevPeriod.=.(
e62e0 69 6e 74 29 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 72 65 int).($this->current./.$this->re
e6300 64 72 61 77 46 72 65 71 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 24 63 75 drawFreq);..$this->current.=.$cu
e6320 72 72 65 6e 74 3b 0a 0a 24 63 75 72 72 50 65 72 69 6f 64 20 3d 20 28 69 6e 74 29 20 28 24 74 68 rrent;..$currPeriod.=.(int).($th
e6340 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 is->current./.$this->redrawFreq)
e6360 3b 0a 69 66 20 28 24 72 65 64 72 61 77 20 7c 7c 20 24 70 72 65 76 50 65 72 69 6f 64 20 21 3d 3d ;.if.($redraw.||.$prevPeriod.!==
e6380 20 24 63 75 72 72 50 65 72 69 6f 64 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 20 3d 3d 3d 20 24 .$currPeriod.||.$this->max.===.$
e63a0 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 this->current).{.$this->display(
e63c0 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 );.}.}.........public.function.d
e63e0 69 73 70 6c 61 79 28 24 66 69 6e 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 isplay($finish.=.false).{.if.(nu
e6400 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 ll.===.$this->startTime).{.throw
e6420 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 .new.\LogicException('You.must.s
e6440 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c tart.the.progress.bar.before.cal
e6460 6c 69 6e 67 20 64 69 73 70 6c 61 79 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d ling.display().');.}..$message.=
e6480 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e .$this->format;.foreach.($this->
e64a0 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 76 generate($finish).as.$name.=>.$v
e64c0 61 6c 75 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 alue).{.$message.=.str_replace("
e64e0 25 7b 24 6e 61 6d 65 7d 25 22 2c 20 24 76 61 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d %{$name}%",.$value,.$message);.}
e6500 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c .$this->overwrite($this->output,
e6520 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$message);.}.........public.fun
e6540 63 74 69 6f 6e 20 63 6c 65 61 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 ction.clear().{.$this->overwrite
e6560 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ($this->output,.'');.}.....publi
e6580 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 69 73 68 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d c.function.finish().{.if.(null.=
e65a0 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ==.$this->startTime).{.throw.new
e65c0 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 .\LogicException('You.must.start
e65e0 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 .the.progress.bar.before.calling
e6600 20 66 69 6e 69 73 68 28 29 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 .finish().');.}..if.(null.!==.$t
e6620 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 his->startTime).{.if.(!$this->ma
e6640 78 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 x).{.$this->barChar.=.$this->bar
e6660 43 68 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 74 72 75 CharOriginal;.$this->display(tru
e6680 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 24 e);.}.$this->startTime.=.null;.$
e66a0 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 24 74 68 69 73 this->output->writeln('');.$this
e66c0 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ->output.=.null;.}.}.....private
e66e0 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e .function.initialize().{.$this->
e6700 66 6f 72 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 formatVars.=.array();.foreach.($
e6720 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 46 6f 72 6d 61 74 56 61 72 73 20 61 73 20 24 76 61 72 29 this->defaultFormatVars.as.$var)
e6740 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 66 .{.if.(false.!==.strpos($this->f
e6760 6f 72 6d 61 74 2c 20 22 25 7b 24 76 61 72 7d 25 22 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 ormat,."%{$var}%")).{.$this->for
e6780 6d 61 74 56 61 72 73 5b 24 76 61 72 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 matVars[$var].=.true;.}.}..if.($
e67a0 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 this->max.>.0).{.$this->widths['
e67c0 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 78 max'].=.$this->strlen($this->max
e67e0 29 3b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 24 74 );.$this->widths['current'].=.$t
e6800 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 his->widths['max'];.}.else.{.$th
e6820 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 is->barCharOriginal.=.$this->bar
e6840 43 68 61 72 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 65 6d Char;.$this->barChar.=.$this->em
e6860 70 74 79 42 61 72 43 68 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ptyBarChar;.}.}.........private.
e6880 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 20 3d 20 66 61 6c 73 function.generate($finish.=.fals
e68a0 65 29 0a 7b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 65 72 63 65 6e 74 20 3d e).{.$vars.=.array();.$percent.=
e68c0 20 30 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 70 65 72 63 65 .0;.if.($this->max.>.0).{.$perce
e68e0 6e 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 nt.=.(float).$this->current./.$t
e6900 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f his->max;.}..if.(isset($this->fo
e6920 72 6d 61 74 56 61 72 73 5b 27 62 61 72 27 5d 29 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 rmatVars['bar'])).{.$completeBar
e6940 73 20 3d 20 30 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 63 s.=.0;..if.($this->max.>.0).{.$c
e6960 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a 20 24 ompleteBars.=.floor($percent.*.$
e6980 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 24 this->barWidth);.}.else.{.if.(!$
e69a0 66 69 6e 69 73 68 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 finish).{.$completeBars.=.floor(
e69c0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 $this->current.%.$this->barWidth
e69e0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 24 74 68 69 );.}.else.{.$completeBars.=.$thi
e6a00 73 2d 3e 62 61 72 57 69 64 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 24 s->barWidth;.}.}..$emptyBars.=.$
e6a20 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 2d this->barWidth.-.$completeBars.-
e6a40 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 .$this->strlen($this->progressCh
e6a60 61 72 29 3b 0a 24 62 61 72 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 62 61 ar);.$bar.=.str_repeat($this->ba
e6a80 72 43 68 61 72 2c 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 rChar,.$completeBars);.if.($comp
e6aa0 6c 65 74 65 42 61 72 73 20 3c 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 20 7b 0a 24 62 leteBars.<.$this->barWidth).{.$b
e6ac0 61 72 20 2e 3d 20 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 24 62 61 72 20 ar..=.$this->progressChar;.$bar.
e6ae0 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 .=.str_repeat($this->emptyBarCha
e6b00 72 2c 20 24 65 6d 70 74 79 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 61 72 73 5b 27 62 61 72 27 5d 20 r,.$emptyBars);.}..$vars['bar'].
e6b20 3d 20 24 62 61 72 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d =.$bar;.}..if.(isset($this->form
e6b40 61 74 56 61 72 73 5b 27 65 6c 61 70 73 65 64 27 5d 29 29 20 7b 0a 24 65 6c 61 70 73 65 64 20 3d atVars['elapsed'])).{.$elapsed.=
e6b60 20 74 69 6d 65 28 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 76 61 72 .time().-.$this->startTime;.$var
e6b80 73 5b 27 65 6c 61 70 73 65 64 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 68 75 s['elapsed'].=.str_pad($this->hu
e6ba0 6d 61 6e 65 54 69 6d 65 28 24 65 6c 61 70 73 65 64 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 maneTime($elapsed),.$this->width
e6bc0 73 5b 27 65 6c 61 70 73 65 64 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 s['elapsed'],.'.',.STR_PAD_LEFT)
e6be0 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 ;.}..if.(isset($this->formatVars
e6c00 5b 27 63 75 72 72 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 63 75 72 72 65 6e 74 27 5d ['current'])).{.$vars['current']
e6c20 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2c 20 24 74 68 69 73 .=.str_pad($this->current,.$this
e6c40 2d 3e 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 ->widths['current'],.'.',.STR_PA
e6c60 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 D_LEFT);.}..if.(isset($this->for
e6c80 6d 61 74 56 61 72 73 5b 27 6d 61 78 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 6d 61 78 27 5d 20 matVars['max'])).{.$vars['max'].
e6ca0 3d 20 24 74 68 69 73 2d 3e 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 =.$this->max;.}..if.(isset($this
e6cc0 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 ->formatVars['percent'])).{.$var
e6ce0 73 5b 27 70 65 72 63 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 66 6c 6f 6f 72 28 24 70 65 s['percent'].=.str_pad(floor($pe
e6d00 72 63 65 6e 74 20 2a 20 31 30 30 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 70 65 72 rcent.*.100),.$this->widths['per
e6d20 63 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 72 cent'],.'.',.STR_PAD_LEFT);.}..r
e6d40 65 74 75 72 6e 20 24 76 61 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 eturn.$vars;.}.........private.f
e6d60 75 6e 63 74 69 6f 6e 20 68 75 6d 61 6e 65 54 69 6d 65 28 24 73 65 63 73 29 0a 7b 0a 24 74 65 78 unction.humaneTime($secs).{.$tex
e6d80 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 46 6f 72 6d t.=.'';.foreach.($this->timeForm
e6da0 61 74 73 20 61 73 20 24 66 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 65 63 73 20 3c 20 24 66 ats.as.$format).{.if.($secs.<.$f
e6dc0 6f 72 6d 61 74 5b 30 5d 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 20 3d ormat[0]).{.if.(count($format).=
e6de0 3d 20 32 29 20 7b 0a 24 74 65 78 74 20 3d 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b =.2).{.$text.=.$format[1];.break
e6e00 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 3d 20 63 65 69 6c 28 24 73 65 63 73 20 2f 20 ;.}.else.{.$text.=.ceil($secs./.
e6e20 24 66 6f 72 6d 61 74 5b 32 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 $format[2]).'.'.$format[1];.brea
e6e40 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a k;.}.}.}..return.$text;.}.......
e6e60 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 4f 75 74 70 .private.function.overwrite(Outp
e6e80 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b utInterface.$output,.$message).{
e6ea0 0a 24 6c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 .$length.=.$this->strlen($messag
e6ec0 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d e);....if.(null.!==.$this->lastM
e6ee0 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 26 26 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 essagesLength.&&.$this->lastMess
e6f00 61 67 65 73 4c 65 6e 67 74 68 20 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6d 65 73 73 61 67 65 agesLength.>.$length).{.$message
e6f20 20 3d 20 73 74 72 5f 70 61 64 28 24 6d 65 73 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 74 .=.str_pad($message,.$this->last
e6f40 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 2c 20 22 5c 78 32 30 22 2c 20 53 54 52 5f 50 41 44 5f MessagesLength,."\x20",.STR_PAD_
e6f60 52 49 47 48 54 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 RIGHT);.}....$output->write("\x0
e6f80 44 22 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a D");.$output->write($message);..
e6fa0 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 74 68 69 $this->lastMessagesLength.=.$thi
e6fc0 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 s->strlen($message);.}.....publi
e6fe0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 c.function.getName().{.return.'p
e7000 72 6f 67 72 65 73 73 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 rogress';.}.}.<?php...........na
e7020 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c mespace.Symfony\Component\Consol
e7040 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 e\Helper;..use.Symfony\Component
e7060 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 \Console\Input\InputInterface;.u
e7080 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 se.Symfony\Component\Console\Inp
e70a0 75 74 5c 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 ut\InputAwareInterface;.......ab
e70c0 73 74 72 61 63 74 20 63 6c 61 73 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 20 65 78 stract.class.InputAwareHelper.ex
e70e0 74 65 6e 64 73 20 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 41 77 61 tends.Helper.implements.InputAwa
e7100 72 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a reInterface.{.protected.$input;.
e7120 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 49 6e 70 ....public.function.setInput(Inp
e7140 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 utInterface.$input).{.$this->inp
e7160 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ut.=.$input;.}.}.<?php..........
e7180 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e .namespace.Symfony\Component\Con
e71a0 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 53 sole\Helper;........class.TableS
e71c0 74 79 6c 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 64 64 69 6e 67 43 68 61 72 20 3d 20 27 20 tyle.{.private.$paddingChar.=.'.
e71e0 27 3b 0a 70 72 69 76 61 74 65 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 ';.private.$horizontalBorderChar
e7200 20 3d 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 .=.'-';.private.$verticalBorderC
e7220 68 61 72 20 3d 20 27 7c 27 3b 0a 70 72 69 76 61 74 65 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 har.=.'|';.private.$crossingChar
e7240 20 3d 20 27 2b 27 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 .=.'+';.private.$cellHeaderForma
e7260 74 20 3d 20 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 70 72 69 76 61 74 65 20 24 t.=.'<info>%s</info>';.private.$
e7280 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 27 25 73 27 3b 0a 70 72 69 76 61 74 65 20 24 63 cellRowFormat.=.'%s';.private.$c
e72a0 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 20 3d 20 27 20 25 73 20 27 3b 0a 70 72 ellRowContentFormat.=.'.%s.';.pr
e72c0 69 76 61 74 65 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 20 3d 20 27 25 73 27 3b 0a 70 72 69 76 ivate.$borderFormat.=.'%s';.priv
e72e0 61 74 65 20 24 70 61 64 54 79 70 65 20 3d 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 3b 0a 0a 0a ate.$padType.=.STR_PAD_RIGHT;...
e7300 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 64 69 6e 67 ......public.function.setPadding
e7320 43 68 61 72 28 24 70 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 69 66 20 28 21 24 70 61 64 64 69 Char($paddingChar).{.if.(!$paddi
e7340 6e 67 43 68 61 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 ngChar).{.throw.new.\LogicExcept
e7360 69 6f 6e 28 27 54 68 65 20 70 61 64 64 69 6e 67 20 63 68 61 72 20 6d 75 73 74 20 6e 6f 74 20 62 ion('The.padding.char.must.not.b
e7380 65 20 65 6d 70 74 79 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 61 72 e.empty');.}..$this->paddingChar
e73a0 20 3d 20 24 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a .=.$paddingChar;..return.$this;.
e73c0 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 64 64 69 }.......public.function.getPaddi
e73e0 6e 67 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 ngChar().{.return.$this->padding
e7400 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Char;.}.........public.function.
e7420 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e setHorizontalBorderChar($horizon
e7440 74 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 talBorderChar).{.$this->horizont
e7460 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 alBorderChar.=.$horizontalBorder
e7480 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 Char;..return.$this;.}.......pub
e74a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 lic.function.getHorizontalBorder
e74c0 43 68 61 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 Char().{.return.$this->horizonta
e74e0 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 lBorderChar;.}.........public.fu
e7500 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 76 65 nction.setVerticalBorderChar($ve
e7520 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 74 69 rticalBorderChar).{.$this->verti
e7540 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 calBorderChar.=.$verticalBorderC
e7560 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c har;..return.$this;.}.......publ
e7580 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 ic.function.getVerticalBorderCha
e75a0 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 74 69 63 61 6c 42 6f 72 64 r().{.return.$this->verticalBord
e75c0 65 72 43 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f erChar;.}.........public.functio
e75e0 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 24 63 72 6f 73 73 69 6e 67 43 68 61 72 29 n.setCrossingChar($crossingChar)
e7600 0a 7b 0a 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 20 3d 20 24 63 72 6f 73 73 69 .{.$this->crossingChar.=.$crossi
e7620 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ngChar;..return.$this;.}.......p
e7640 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 29 ublic.function.getCrossingChar()
e7660 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 7d .{.return.$this->crossingChar;.}
e7680 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c .........public.function.setCell
e76a0 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 29 0a HeaderFormat($cellHeaderFormat).
e76c0 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c {.$this->cellHeaderFormat.=.$cel
e76e0 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a lHeaderFormat;..return.$this;.}.
e7700 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 48 65 61 ......public.function.getCellHea
e7720 64 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c derFormat().{.return.$this->cell
e7740 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 HeaderFormat;.}.........public.f
e7760 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f unction.setCellRowFormat($cellRo
e7780 77 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 wFormat).{.$this->cellRowFormat.
e77a0 3d 20 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b =.$cellRowFormat;..return.$this;
e77c0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c .}.......public.function.getCell
e77e0 52 6f 77 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c RowFormat().{.return.$this->cell
e7800 52 6f 77 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 RowFormat;.}.........public.func
e7820 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 24 63 65 tion.setCellRowContentFormat($ce
e7840 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c llRowContentFormat).{.$this->cel
e7860 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 lRowContentFormat.=.$cellRowCont
e7880 65 6e 74 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a entFormat;..return.$this;.}.....
e78a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 ..public.function.getCellRowCont
e78c0 65 6e 74 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 65 6c 6c entFormat().{.return.$this->cell
e78e0 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c RowContentFormat;.}.........publ
e7900 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 24 62 6f 72 ic.function.setBorderFormat($bor
e7920 64 65 72 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 derFormat).{.$this->borderFormat
e7940 20 3d 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b .=.$borderFormat;..return.$this;
e7960 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 6f 72 64 .}.......public.function.getBord
e7980 65 72 46 6f 72 6d 61 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 6f 72 64 65 erFormat().{.return.$this->borde
e79a0 72 46 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 rFormat;.}.........public.functi
e79c0 6f 6e 20 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d on.setPadType($padType).{.$this-
e79e0 3e 70 61 64 54 79 70 65 20 3d 20 24 70 61 64 54 79 70 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 >padType.=.$padType;..return.$th
e7a00 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 is;.}.......public.function.getP
e7a20 61 64 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 64 54 79 70 65 adType().{.return.$this->padType
e7a40 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 ;.}.}.<?php...........namespace.
e7a60 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b Symfony\Component\Console\Event;
e7a80 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c ..use.Symfony\Component\Console\
e7aa0 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Command\Command;.use.Symfony\Com
e7ac0 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 ponent\Console\Input\InputInterf
e7ae0 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ace;.use.Symfony\Component\Conso
e7b00 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 le\Output\OutputInterface;.use.S
e7b20 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 ymfony\Component\EventDispatcher
e7b40 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 \Event;.......class.ConsoleEvent
e7b60 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 6d .extends.Event.{.protected.$comm
e7b80 61 6e 64 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f and;..private.$input;.private.$o
e7ba0 75 74 70 75 74 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 utput;..public.function.__constr
e7bc0 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 uct(Command.$command,.InputInter
e7be0 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 face.$input,.OutputInterface.$ou
e7c00 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e tput).{.$this->command.=.$comman
e7c20 64 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d d;.$this->input.=.$input;.$this-
e7c40 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 >output.=.$output;.}.......publi
e7c60 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getCommand().{.return
e7c80 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .$this->command;.}.......public.
e7ca0 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 function.getInput().{.return.$th
e7cc0 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 is->input;.}.......public.functi
e7ce0 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f on.getOutput().{.return.$this->o
e7d00 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 utput;.}.}.<?php...........names
e7d20 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 pace.Symfony\Component\Console\E
e7d40 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e vent;..use.Symfony\Component\Con
e7d60 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e sole\Command\Command;.use.Symfon
e7d80 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 y\Component\Console\Input\InputI
e7da0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c nterface;.use.Symfony\Component\
e7dc0 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a Console\Output\OutputInterface;.
e7de0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e ......class.ConsoleTerminateEven
e7e00 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 0a 0a 70 72 t.extends.ConsoleEvent.{......pr
e7e20 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ivate.$exitCode;..public.functio
e7e40 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 n.__construct(Command.$command,.
e7e60 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
e7e80 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 erface.$output,.$exitCode).{.par
e7ea0 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 ent::__construct($command,.$inpu
e7ec0 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 69 74 43 6f 64 65 t,.$output);..$this->setExitCode
e7ee0 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ($exitCode);.}.......public.func
e7f00 74 69 6f 6e 20 73 65 74 45 78 69 74 43 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 24 74 tion.setExitCode($exitCode).{.$t
e7f20 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b his->exitCode.=.(int).$exitCode;
e7f40 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 .}.......public.function.getExit
e7f60 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b Code().{.return.$this->exitCode;
e7f80 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
e7fa0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a ymfony\Component\Console\Event;.
e7fc0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 .use.Symfony\Component\Console\C
e7fe0 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ommand\Command;.use.Symfony\Comp
e8000 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 onent\Console\Input\InputInterfa
e8020 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c ce;.use.Symfony\Component\Consol
e8040 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a e\Output\OutputInterface;.......
e8060 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 20 65 78 74 65 class.ConsoleExceptionEvent.exte
e8080 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 63 65 nds.ConsoleEvent.{.private.$exce
e80a0 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 ption;.private.$exitCode;..publi
e80c0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 c.function.__construct(Command.$
e80e0 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 command,.InputInterface.$input,.
e8100 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 5c 45 78 63 65 70 74 OutputInterface.$output,.\Except
e8120 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 61 72 ion.$exception,.$exitCode).{.par
e8140 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 ent::__construct($command,.$inpu
e8160 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 63 65 70 74 69 6f t,.$output);..$this->setExceptio
e8180 6e 28 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d n($exception);.$this->exitCode.=
e81a0 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .(int).$exitCode;.}.......public
e81c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 .function.getException().{.retur
e81e0 6e 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 n.$this->exception;.}.........pu
e8200 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 65 70 74 69 6f 6e 28 5c 45 78 63 65 blic.function.setException(\Exce
e8220 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 65 70 ption.$exception).{.$this->excep
e8240 74 69 6f 6e 20 3d 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.=.$exception;.}.......publi
e8260 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 c.function.getExitCode().{.retur
e8280 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a n.$this->exitCode;.}.}.<?php....
e82a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
e82c0 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f nt\Console\Event;.......class.Co
e82e0 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c nsoleCommandEvent.extends.Consol
e8300 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 52 45 54 55 52 4e 5f 43 4f 44 45 5f 44 49 eEvent.{....const.RETURN_CODE_DI
e8320 53 41 42 4c 45 44 20 3d 20 31 31 33 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d SABLED.=.113;.......private.$com
e8340 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c mandShouldRun.=.true;.......publ
e8360 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 ic.function.disableCommand().{.r
e8380 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 eturn.$this->commandShouldRun.=.
e83a0 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 false;.}.......public.function.e
e83c0 6e 61 62 6c 65 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 nableCommand().{.return.$this->c
e83e0 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ommandShouldRun.=.true;.}.......
e8400 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 52 75 6e public.function.commandShouldRun
e8420 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 53 68 6f 75 6c 64 ().{.return.$this->commandShould
e8440 52 75 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 Run;.}.}.<?php...........namespa
e8460 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 0a ce.Symfony\Component\Console;...
e8480 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 0a 7b 0a ....final.class.ConsoleEvents.{.
e84a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 27 63 6f 6e ............const.COMMAND.=.'con
e84c0 73 6f 6c 65 2e 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 sole.command';.............const
e84e0 20 54 45 52 4d 49 4e 41 54 45 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 74 65 72 6d 69 6e 61 74 65 27 .TERMINATE.=.'console.terminate'
e8500 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 45 58 43 45 50 54 49 4f 4e 20 3d ;..............const.EXCEPTION.=
e8520 20 27 63 6f 6e 73 6f 6c 65 2e 65 78 63 65 70 74 69 6f 6e 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .'console.exception';.}.<?php...
e8540 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
e8560 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ent\Finder;..use.Symfony\Compone
e8580 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 nt\Finder\Adapter\AdapterInterfa
e85a0 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 ce;.use.Symfony\Component\Finder
e85c0 5c 41 64 61 70 74 65 72 5c 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d \Adapter\GnuFindAdapter;.use.Sym
e85e0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 42 73 fony\Component\Finder\Adapter\Bs
e8600 64 46 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e dFindAdapter;.use.Symfony\Compon
e8620 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 50 68 70 41 64 61 70 74 65 72 3b 0a 75 ent\Finder\Adapter\PhpAdapter;.u
e8640 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 se.Symfony\Component\Finder\Comp
e8660 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f arator\DateComparator;.use.Symfo
e8680 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e ny\Component\Finder\Comparator\N
e86a0 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d umberComparator;.use.Symfony\Com
e86c0 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 45 78 63 65 70 74 69 6f ponent\Finder\Exception\Exceptio
e86e0 6e 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nInterface;.use.Symfony\Componen
e8700 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 t\Finder\Iterator\CustomFilterIt
e8720 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 erator;.use.Symfony\Component\Fi
e8740 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 nder\Iterator\DateRangeFilterIte
e8760 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e rator;.use.Symfony\Component\Fin
e8780 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 der\Iterator\DepthRangeFilterIte
e87a0 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e rator;.use.Symfony\Component\Fin
e87c0 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c der\Iterator\ExcludeDirectoryFil
e87e0 74 65 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 terIterator;.use.Symfony\Compone
e8800 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 nt\Finder\Iterator\FilecontentFi
e8820 6c 74 65 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e lterIterator;.use.Symfony\Compon
e8840 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c 74 ent\Finder\Iterator\FilenameFilt
e8860 65 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e erIterator;.use.Symfony\Componen
e8880 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 t\Finder\Iterator\SizeRangeFilte
e88a0 72 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 rIterator;.use.Symfony\Component
e88c0 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f \Finder\Iterator\SortableIterato
e88e0 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6e 64 65 72 20 r;.................class.Finder.
e8900 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2c 20 5c implements.\IteratorAggregate,.\
e8920 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c Countable.{.const.IGNORE_VCS_FIL
e8940 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d ES.=.1;.const.IGNORE_DOT_FILES.=
e8960 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 .2;..private.$mode.=.0;.private.
e8980 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 4e 61 $names.=.array();.private.$notNa
e89a0 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 65 78 63 6c 75 64 65 20 mes.=.array();.private.$exclude.
e89c0 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 =.array();.private.$filters.=.ar
e89e0 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 64 65 70 74 68 73 20 3d 20 61 72 72 61 79 28 29 ray();.private.$depths.=.array()
e8a00 3b 0a 70 72 69 76 61 74 65 20 24 73 69 7a 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 ;.private.$sizes.=.array();.priv
e8a20 61 74 65 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 ate.$followLinks.=.false;.privat
e8a40 65 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 e.$sort.=.false;.private.$ignore
e8a60 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 .=.0;.private.$dirs.=.array();.p
e8a80 72 69 76 61 74 65 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 rivate.$dates.=.array();.private
e8aa0 20 24 69 74 65 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 .$iterators.=.array();.private.$
e8ac0 63 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 contains.=.array();.private.$not
e8ae0 43 6f 6e 74 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 61 64 61 Contains.=.array();.private.$ada
e8b00 70 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 73 20 pters.=.array();.private.$paths.
e8b20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 =.array();.private.$notPaths.=.a
e8b40 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c rray();.private.$ignoreUnreadabl
e8b60 65 44 69 72 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 eDirs.=.false;..private.static.$
e8b80 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 vcsPatterns.=.array('.svn',.'_sv
e8ba0 6e 27 2c 20 27 43 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 n',.'CVS',.'_darcs',.'.arch-para
e8bc0 6d 73 27 2c 20 27 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 ms',.'.monotone',.'.bzr',.'.git'
e8be0 2c 20 27 2e 68 67 27 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ,.'.hg');.....public.function.__
e8c00 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 74 construct().{.$this->ignore.=.st
e8c20 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 3a atic::IGNORE_VCS_FILES.|.static:
e8c40 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 0a 24 74 68 69 73 0a 2d 3e 61 64 64 41 :IGNORE_DOT_FILES;..$this.->addA
e8c60 64 61 70 74 65 72 28 6e 65 77 20 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a 2d 3e 61 dapter(new.GnuFindAdapter()).->a
e8c80 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a ddAdapter(new.BsdFindAdapter()).
e8ca0 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 50 68 70 41 64 61 70 74 65 72 28 29 2c 20 2d ->addAdapter(new.PhpAdapter(),.-
e8cc0 35 30 29 0a 2d 3e 73 65 74 41 64 61 70 74 65 72 28 27 70 68 70 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 50).->setAdapter('php').;.}.....
e8ce0 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 ....public.static.function.creat
e8d00 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a 0a e().{.return.new.static();.}....
e8d20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 64 61 70 74 65 72 ......public.function.addAdapter
e8d40 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 70 72 69 (AdapterInterface.$adapter,.$pri
e8d60 6f 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 61 64 ority.=.0).{.$this->adapters[$ad
e8d80 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 64 61 70 apter->getName()].=.array(.'adap
e8da0 74 65 72 27 20 3d 3e 20 24 61 64 61 70 74 65 72 2c 0a 27 70 72 69 6f 72 69 74 79 27 20 3d 3e 20 ter'.=>.$adapter,.'priority'.=>.
e8dc0 24 70 72 69 6f 72 69 74 79 2c 0a 27 73 65 6c 65 63 74 65 64 27 20 3d 3e 20 66 61 6c 73 65 2c 0a $priority,.'selected'.=>.false,.
e8de0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 );..return.$this->sortAdapters()
e8e00 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 42 65 73 ;.}.......public.function.useBes
e8e20 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 tAdapter().{.$this->resetAdapter
e8e40 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 Selection();..return.$this->sort
e8e60 41 64 61 70 74 65 72 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Adapters();.}...........public.f
e8e80 75 6e 63 74 69 6f 6e 20 73 65 74 41 64 61 70 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 unction.setAdapter($name).{.if.(
e8ea0 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 !isset($this->adapters[$name])).
e8ec0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 {.throw.new.\InvalidArgumentExce
e8ee0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 64 61 70 74 65 72 20 22 25 73 22 20 64 6f 65 73 ption(sprintf('Adapter."%s".does
e8f00 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d .not.exist.',.$name));.}..$this-
e8f20 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d >resetAdapterSelection();.$this-
e8f40 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 74 >adapters[$name]['selected'].=.t
e8f60 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 rue;..return.$this->sortAdapters
e8f80 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f ();.}.......public.function.remo
e8fa0 76 65 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d veAdapters().{.$this->adapters.=
e8fc0 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .array();..return.$this;.}......
e8fe0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 73 28 29 0a 7b .public.function.getAdapters().{
e9000 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 6d 61 70 28 66 .return.array_values(array_map(f
e9020 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 64 61 70 74 65 72 29 20 7b 0a 72 65 74 75 72 unction.(array.$adapter).{.retur
e9040 6e 20 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d n.$adapter['adapter'];.},.$this-
e9060 3e 61 64 61 70 74 65 72 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 >adapters));.}.........public.fu
e9080 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 69 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f nction.directories().{.$this->mo
e90a0 64 65 20 3d 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 de.=.Iterator\FileTypeFilterIter
e90c0 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 3b 0a 0a 72 65 74 75 72 6e 20 ator::ONLY_DIRECTORIES;..return.
e90e0 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $this;.}.........public.function
e9100 20 66 69 6c 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 49 74 65 72 61 74 6f .files().{.$this->mode.=.Iterato
e9120 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 r\FileTypeFilterIterator::ONLY_F
e9140 49 4c 45 53 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ILES;..return.$this;.}..........
e9160 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 70 74 68 28 24 .........public.function.depth($
e9180 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 74 68 73 5b 5d 20 3d 20 6e 65 77 20 43 level).{.$this->depths[].=.new.C
e91a0 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 6c 65 76 65 omparator\NumberComparator($leve
e91c0 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a l);..return.$this;.}............
e91e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 61 74 65 28 24 ..........public.function.date($
e9200 64 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d date).{.$this->dates[].=.new.Com
e9220 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 28 24 64 61 74 65 29 3b 0a 0a parator\DateComparator($date);..
e9240 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$this;.}.................
e9260 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 ..public.function.name($pattern)
e9280 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 .{.$this->names[].=.$pattern;..r
e92a0 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 eturn.$this;.}.............publi
e92c0 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 4e 61 6d 65 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 c.function.notName($pattern).{.$
e92e0 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 this->notNames[].=.$pattern;..re
e9300 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this;.}................pub
e9320 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 6e 29 0a lic.function.contains($pattern).
e9340 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a {.$this->contains[].=.$pattern;.
e9360 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .return.$this;.}................
e9380 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 public.function.notContains($pat
e93a0 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 tern).{.$this->notContains[].=.$
e93c0 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a pattern;..return.$this;.}.......
e93e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 74 68 28 ...........public.function.path(
e9400 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 5b 5d 20 3d 20 24 70 61 $pattern).{.$this->paths[].=.$pa
e9420 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ttern;..return.$this;.}.........
e9440 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 50 61 74 68 .........public.function.notPath
e9460 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d ($pattern).{.$this->notPaths[].=
e9480 20 24 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a .$pattern;..return.$this;.}.....
e94a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 69 7a .............public.function.siz
e94c0 65 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 69 7a 65 73 5b 5d 20 3d 20 6e 65 77 20 e($size).{.$this->sizes[].=.new.
e94e0 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 28 24 73 69 7a Comparator\NumberComparator($siz
e9500 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e);..return.$this;.}............
e9520 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 63 6c 75 64 65 28 24 64 69 72 73 29 0a .public.function.exclude($dirs).
e9540 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 {.$this->exclude.=.array_merge($
e9560 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 28 61 72 72 61 79 29 20 24 64 69 72 73 29 3b 0a 0a this->exclude,.(array).$dirs);..
e9580 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c return.$this;.}.............publ
e95a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 24 69 67 6e 6f ic.function.ignoreDotFiles($igno
e95c0 72 65 44 6f 74 46 69 6c 65 73 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 reDotFiles).{.if.($ignoreDotFile
e95e0 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 3d 20 73 74 61 74 69 63 3a 3a 49 47 s).{.$this->ignore.|=.static::IG
e9600 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e NORE_DOT_FILES;.}.else.{.$this->
e9620 69 67 6e 6f 72 65 20 26 3d 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 ignore.&=.~static::IGNORE_DOT_FI
e9640 4c 45 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a LES;.}..return.$this;.}.........
e9660 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 43 53 28 24 69 ....public.function.ignoreVCS($i
e9680 67 6e 6f 72 65 56 43 53 29 0a 7b 0a 69 66 20 28 24 69 67 6e 6f 72 65 56 43 53 29 20 7b 0a 24 74 gnoreVCS).{.if.($ignoreVCS).{.$t
e96a0 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 his->ignore.|=.static::IGNORE_VC
e96c0 53 5f 46 49 4c 45 53 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 S_FILES;.}.else.{.$this->ignore.
e96e0 26 3d 20 7e 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 3b 0a 7d 0a &=.~static::IGNORE_VCS_FILES;.}.
e9700 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
e9720 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 43 53 50 61 74 74 65 72 6e 28 24 70 static.function.addVCSPattern($p
e9740 61 74 74 65 72 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 74 attern).{.foreach.((array).$patt
e9760 65 72 6e 20 61 73 20 24 70 29 20 7b 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 5b ern.as.$p).{.self::$vcsPatterns[
e9780 5d 20 3d 20 24 70 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 ].=.$p;.}..self::$vcsPatterns.=.
e97a0 61 72 72 61 79 5f 75 6e 69 71 75 65 28 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 array_unique(self::$vcsPatterns)
e97c0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ;.}.................public.funct
e97e0 69 6f 6e 20 73 6f 72 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 ion.sort(\Closure.$closure).{.$t
e9800 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 his->sort.=.$closure;..return.$t
e9820 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 his;.}.............public.functi
e9840 6f 6e 20 73 6f 72 74 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 on.sortByName().{.$this->sort.=.
e9860 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f Iterator\SortableIterator::SORT_
e9880 42 59 5f 4e 41 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a BY_NAME;..return.$this;.}.......
e98a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 54 79 70 65 ......public.function.sortByType
e98c0 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 ().{.$this->sort.=.Iterator\Sort
e98e0 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3b 0a 0a 72 65 74 ableIterator::SORT_BY_TYPE;..ret
e9900 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this;.}...............publi
e9920 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 0a c.function.sortByAccessedTime().
e9940 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c {.$this->sort.=.Iterator\Sortabl
e9960 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 eIterator::SORT_BY_ACCESSED_TIME
e9980 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ;..return.$this;.}..............
e99a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 43 68 61 6e 67 65 64 ...public.function.sortByChanged
e99c0 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c Time().{.$this->sort.=.Iterator\
e99e0 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 SortableIterator::SORT_BY_CHANGE
e9a00 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a D_TIME;..return.$this;.}........
e9a20 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 .......public.function.sortByMod
e9a40 69 66 69 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 ifiedTime().{.$this->sort.=.Iter
e9a60 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d ator\SortableIterator::SORT_BY_M
e9a80 4f 44 49 46 49 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a ODIFIED_TIME;..return.$this;.}..
e9aa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 ..............public.function.fi
e9ac0 6c 74 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d lter(\Closure.$closure).{.$this-
e9ae0 3e 66 69 6c 74 65 72 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 >filters[].=.$closure;..return.$
e9b00 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 this;.}.........public.function.
e9b20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e followLinks().{.$this->followLin
e9b40 6b 73 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ks.=.true;..return.$this;.}.....
e9b60 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 ......public.function.ignoreUnre
e9b80 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 adableDirs($ignore.=.true).{.$th
e9ba0 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 62 6f 6f 6c is->ignoreUnreadableDirs.=.(bool
e9bc0 29 20 24 69 67 6e 6f 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ).$ignore;..return.$this;.}.....
e9be0 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 28 24 64 69 72 73 ........public.function.in($dirs
e9c00 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f ).{.$resolvedDirs.=.array();..fo
e9c20 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a reach.((array).$dirs.as.$dir).{.
e9c40 69 66 20 28 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 if.(is_dir($dir)).{.$resolvedDir
e9c60 73 5b 5d 20 3d 20 24 64 69 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 67 6c 6f 62 20 3d 20 67 6c s[].=.$dir;.}.elseif.($glob.=.gl
e9c80 6f 62 28 24 64 69 72 2c 20 47 4c 4f 42 5f 42 52 41 43 45 20 7c 20 47 4c 4f 42 5f 4f 4e 4c 59 44 ob($dir,.GLOB_BRACE.|.GLOB_ONLYD
e9ca0 49 52 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 IR)).{.$resolvedDirs.=.array_mer
e9cc0 67 65 28 24 72 65 73 6f 6c 76 65 64 44 69 72 73 2c 20 24 67 6c 6f 62 29 3b 0a 7d 20 65 6c 73 65 ge($resolvedDirs,.$glob);.}.else
e9ce0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
e9d00 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f eption(sprintf('The."%s".directo
e9d20 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a 7d ry.does.not.exist.',.$dir));.}.}
e9d40 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 ..$this->dirs.=.array_merge($thi
e9d60 73 2d 3e 64 69 72 73 2c 20 24 72 65 73 6f 6c 76 65 64 44 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e s->dirs,.$resolvedDirs);..return
e9d80 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this;.}...........public.funct
e9da0 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f ion.getIterator().{.if.(0.===.co
e9dc0 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 unt($this->dirs).&&.0.===.count(
e9de0 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c $this->iterators)).{.throw.new.\
e9e00 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 6f 6e LogicException('You.must.call.on
e9e20 65 20 6f 66 20 69 6e 28 29 20 6f 72 20 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 73 20 62 65 e.of.in().or.append().methods.be
e9e40 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 65 72 20 61 20 46 69 6e 64 65 72 2e 27 29 3b fore.iterating.over.a.Finder.');
e9e60 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 29 .}..if.(1.===.count($this->dirs)
e9e80 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 .&&.0.===.count($this->iterators
e9ea0 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 )).{.return.$this->searchInDirec
e9ec0 74 6f 72 79 28 24 74 68 69 73 2d 3e 64 69 72 73 5b 30 5d 29 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 tory($this->dirs[0]);.}..$iterat
e9ee0 6f 72 20 3d 20 6e 65 77 20 5c 41 70 70 65 6e 64 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 or.=.new.\AppendIterator();.fore
e9f00 61 63 68 20 28 24 74 68 69 73 2d 3e 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 69 74 65 ach.($this->dirs.as.$dir).{.$ite
e9f20 72 61 74 6f 72 2d 3e 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 rator->append($this->searchInDir
e9f40 65 63 74 6f 72 79 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ectory($dir));.}..foreach.($this
e9f60 2d 3e 69 74 65 72 61 74 6f 72 73 20 61 73 20 24 69 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d ->iterators.as.$it).{.$iterator-
e9f80 3e 61 70 70 65 6e 64 28 24 69 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f >append($it);.}..return.$iterato
e9fa0 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e r;.}.............public.function
e9fc0 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 69 74 65 72 61 74 .append($iterator).{.if.($iterat
e9fe0 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 or.instanceof.\IteratorAggregate
ea000 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 ).{.$this->iterators[].=.$iterat
ea020 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 or->getIterator();.}.elseif.($it
ea040 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 erator.instanceof.\Iterator).{.$
ea060 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d this->iterators[].=.$iterator;.}
ea080 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 .elseif.($iterator.instanceof.\T
ea0a0 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f 61 72 72 61 79 28 24 69 74 65 72 61 74 6f 72 raversable.||.is_array($iterator
ea0c0 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 3b )).{.$it.=.new.\ArrayIterator();
ea0e0 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a .foreach.($iterator.as.$file).{.
ea100 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 70 $it->append($file.instanceof.\Sp
ea120 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 lFileInfo.?.$file.:.new.\SplFile
ea140 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 Info($file));.}.$this->iterators
ea160 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e [].=.$it;.}.else.{.throw.new.\In
ea180 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a 3a validArgumentException('Finder::
ea1a0 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 74 append().method.wrong.argument.t
ea1c0 79 70 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a ype.');.}..return.$this;.}......
ea1e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 .public.function.count().{.retur
ea200 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 61 n.iterator_count($this->getItera
ea220 74 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 tor());.}.....private.function.s
ea240 6f 72 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 75 61 73 6f 72 74 28 24 74 68 69 73 2d 3e 61 64 ortAdapters().{.uasort($this->ad
ea260 61 70 74 65 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 2c 20 61 72 72 61 apters,.function.(array.$a,.arra
ea280 79 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 7c 7c 20 24 62 y.$b).{.if.($a['selected'].||.$b
ea2a0 5b 27 73 65 6c 65 63 74 65 64 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 5b 27 73 65 6c 65 63 ['selected']).{.return.$a['selec
ea2c0 74 65 64 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 5b 27 70 72 ted'].?.-1.:.1;.}..return.$a['pr
ea2e0 69 6f 72 69 74 79 27 5d 20 3e 20 24 62 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3f 20 2d 31 20 3a iority'].>.$b['priority'].?.-1.:
ea300 20 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .1;.});..return.$this;.}........
ea320 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 .private.function.searchInDirect
ea340 6f 72 79 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 ory($dir).{.if.(static::IGNORE_V
ea360 43 53 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 CS_FILES.===.(static::IGNORE_VCS
ea380 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 _FILES.&.$this->ignore)).{.$this
ea3a0 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 ->exclude.=.array_merge($this->e
ea3c0 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a xclude,.self::$vcsPatterns);.}..
ea3e0 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d 3d if.(static::IGNORE_DOT_FILES.===
ea400 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 68 .(static::IGNORE_DOT_FILES.&.$th
ea420 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d is->ignore)).{.$this->notPaths[]
ea440 20 3d 20 27 23 28 5e 7c 2f 29 5c 2e 2e 2b 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 .=.'#(^|/)\..+(/|$)#';.}..foreac
ea460 68 20 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 61 73 20 24 61 64 61 70 74 65 72 29 20 h.($this->adapters.as.$adapter).
ea480 7b 0a 69 66 20 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 2d 3e 69 73 53 75 70 {.if.($adapter['adapter']->isSup
ea4a0 70 6f 72 74 65 64 28 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 0a 2d ported()).{.try.{.return.$this.-
ea4c0 3e 62 75 69 6c 64 41 64 61 70 74 65 72 28 24 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 >buildAdapter($adapter['adapter'
ea4e0 5d 29 0a 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 7d 20 ]).->searchInDirectory($dir);.}.
ea500 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 20 24 65 29 20 7b 0a catch.(ExceptionInterface.$e).{.
ea520 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 }.}.}..throw.new.\RuntimeExcepti
ea540 6f 6e 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 64 20 61 64 61 70 74 65 72 20 66 6f 75 6e 64 2e 27 on('No.supported.adapter.found.'
ea560 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c );.}.......private.function.buil
ea580 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 dAdapter(AdapterInterface.$adapt
ea5a0 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 74 65 72 0a 2d 3e 73 65 74 46 6f 6c 6c 6f er).{.return.$adapter.->setFollo
ea5c0 77 4c 69 6e 6b 73 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 65 74 wLinks($this->followLinks).->set
ea5e0 44 65 70 74 68 73 28 24 74 68 69 73 2d 3e 64 65 70 74 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 65 28 Depths($this->depths).->setMode(
ea600 24 74 68 69 73 2d 3e 6d 6f 64 65 29 0a 2d 3e 73 65 74 45 78 63 6c 75 64 65 28 24 74 68 69 73 2d $this->mode).->setExclude($this-
ea620 3e 65 78 63 6c 75 64 65 29 0a 2d 3e 73 65 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 61 6d 65 >exclude).->setNames($this->name
ea640 73 29 0a 2d 3e 73 65 74 4e 6f 74 4e 61 6d 65 73 28 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 s).->setNotNames($this->notNames
ea660 29 0a 2d 3e 73 65 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 ).->setContains($this->contains)
ea680 0a 2d 3e 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 .->setNotContains($this->notCont
ea6a0 61 69 6e 73 29 0a 2d 3e 73 65 74 53 69 7a 65 73 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 0a 2d ains).->setSizes($this->sizes).-
ea6c0 3e 73 65 74 44 61 74 65 73 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 0a 2d 3e 73 65 74 46 69 6c >setDates($this->dates).->setFil
ea6e0 74 65 72 73 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 0a 2d 3e 73 65 74 53 6f 72 74 28 24 ters($this->filters).->setSort($
ea700 74 68 69 73 2d 3e 73 6f 72 74 29 0a 2d 3e 73 65 74 50 61 74 68 28 24 74 68 69 73 2d 3e 70 61 74 this->sort).->setPath($this->pat
ea720 68 73 29 0a 2d 3e 73 65 74 4e 6f 74 50 61 74 68 28 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 hs).->setNotPath($this->notPaths
ea740 29 0a 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 74 68 69 73 2d 3e ).->ignoreUnreadableDirs($this->
ea760 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 ignoreUnreadableDirs);.}.....pri
ea780 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 vate.function.resetAdapterSelect
ea7a0 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 61 79 5f ion().{.$this->adapters.=.array_
ea7c0 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 79 20 24 70 72 6f 70 65 72 74 69 65 73 29 map(function.(array.$properties)
ea7e0 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 66 61 6c .{.$properties['selected'].=.fal
ea800 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 70 65 72 74 69 65 73 3b 0a 7d 2c 20 24 74 68 69 se;..return.$properties;.},.$thi
ea820 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a s->adapters);.}.}.<?php.........
ea840 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
ea860 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a nder\Shell;.....class.Command.{.
ea880 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ...private.$parent;.....private.
ea8a0 24 62 69 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 $bits.=.array();.....private.$la
ea8c0 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 72 72 bels.=.array();.....private.$err
ea8e0 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e orHandler;.......public.function
ea900 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e .__construct(Command.$parent.=.n
ea920 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 20 3d 20 24 70 61 72 65 6e 74 3b 0a ull).{.$this->parent.=.$parent;.
ea940 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 }.......public.function.__toStri
ea960 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 3b 0a 7d 0a 0a ng().{.return.$this->join();.}..
ea980 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 .......public.static.function.cr
ea9a0 65 61 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 eate(Command.$parent.=.null).{.r
ea9c0 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 72 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a eturn.new.self($parent);.}......
ea9e0 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 ...public.static.function.escape
eaa00 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 ($input).{.return.escapeshellcmd
eaa20 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 ($input);.}.........public.stati
eaa40 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 6f 74 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 c.function.quote($input).{.retur
eaa60 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a n.escapeshellarg($input);.}.....
eaa80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 62 69 74 29 0a 7b 0a ....public.function.add($bit).{.
eaaa0 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 69 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 $this->bits[].=.$bit;..return.$t
eaac0 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 his;.}.........public.function.t
eaae0 6f 70 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e op($bit).{.array_unshift($this->
eab00 62 69 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 61 bits,.$bit);..foreach.($this->la
eab20 62 65 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 24 69 6e 64 65 78 29 20 7b 0a 24 74 68 69 bels.as.$label.=>.$index).{.$thi
eab40 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 2b 3d 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 s->labels[$label].+=.1;.}..retur
eab60 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 n.$this;.}.........public.functi
eab80 6f 6e 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 on.arg($arg).{.$this->bits[].=.s
eaba0 65 6c 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b elf::quote($arg);..return.$this;
eabc0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6d 64 28 24 .}.........public.function.cmd($
eabe0 65 73 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 65 73 63 esc).{.$this->bits[].=.self::esc
eac00 61 70 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ape($esc);..return.$this;.}.....
eac20 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 28 24 6c 61 62 65 6c ......public.function.ins($label
eac40 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 ).{.if.(isset($this->labels[$lab
eac60 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 el])).{.throw.new.\RuntimeExcept
eac80 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 ion(sprintf('Label."%s".already.
eaca0 65 78 69 73 74 73 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 69 exists.',.$label));.}..$this->bi
eacc0 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 29 3b 0a 24 74 68 69 ts[].=.self::create($this);.$thi
eace0 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d s->labels[$label].=.count($this-
ead00 3e 62 69 74 73 29 2d 31 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 >bits)-1;..return.$this->bits[$t
ead20 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a his->labels[$label]];.}.........
ead40 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6c 61 62 65 6c 29 0a 7b 0a ..public.function.get($label).{.
ead60 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d if.(!isset($this->labels[$label]
ead80 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e )).{.throw.new.\RuntimeException
eada0 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 (sprintf('Label."%s".does.not.ex
eadc0 69 73 74 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ist.',.$label));.}..return.$this
eade0 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d ->bits[$this->labels[$label]];.}
eae00 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 64 28 29 0a 7b .........public.function.end().{
eae20 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 29 20 7b 0a 74 .if.(null.===.$this->parent).{.t
eae40 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6c 6c hrow.new.\RuntimeException('Call
eae60 69 6e 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 20 63 6f 6d 6d 61 6e 64 20 64 6f 65 73 6e 5c 27 74 ing.end.on.root.command.doesn\'t
eae80 20 6d 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .make.sense.');.}..return.$this-
eaea0 3e 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e >parent;.}.......public.function
eaec0 20 6c 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e .length().{.return.count($this->
eaee0 62 69 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 bits);.}.......public.function.s
eaf00 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 5c 43 6c 6f 73 75 72 65 20 24 65 72 72 6f 72 48 61 etErrorHandler(\Closure.$errorHa
eaf20 6e 64 6c 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 20 3d 20 24 ndler).{.$this->errorHandler.=.$
eaf40 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a errorHandler;..return.$this;.}..
eaf60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 48 61 6e 64 6c ...public.function.getErrorHandl
eaf80 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 er().{.return.$this->errorHandle
eafa0 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 r;.}.........public.function.exe
eafc0 63 75 74 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 65 72 72 6f 72 48 61 6e 64 cute().{.if.(null.===.$errorHand
eafe0 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 29 20 7b 0a 65 78 65 ler.=.$this->errorHandler).{.exe
eb000 63 28 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 c($this->join(),.$output);.}.els
eb020 65 20 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 74 68 69 73 2d 3e e.{.$process.=.proc_open($this->
eb040 6a 6f 69 6e 28 29 2c 20 61 72 72 61 79 28 30 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c join(),.array(0.=>.array('pipe',
eb060 20 27 72 27 29 2c 20 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 .'r'),.1.=>.array('pipe',.'w'),.
eb080 32 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 2c 20 24 70 69 70 65 73 2.=>.array('pipe',.'w')),.$pipes
eb0a0 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7e 28 5c 72 5c 6e 7c );.$output.=.preg_split('~(\r\n|
eb0c0 5c 72 7c 5c 6e 29 7e 27 2c 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 \r|\n)~',.stream_get_contents($p
eb0e0 69 70 65 73 5b 31 5d 29 2c 20 2d 31 2c 20 50 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 ipes[1]),.-1,.PREG_SPLIT_NO_EMPT
eb100 59 29 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e Y);..if.($error.=.stream_get_con
eb120 74 65 6e 74 73 28 24 70 69 70 65 73 5b 32 5d 29 29 20 7b 0a 24 65 72 72 6f 72 48 61 6e 64 6c 65 tents($pipes[2])).{.$errorHandle
eb140 72 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 r($error);.}..proc_close($proces
eb160 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 20 3f 3a 20 61 72 72 61 79 28 29 s);.}..return.$output.?:.array()
eb180 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 69 6e 28 29 ;.}.......public.function.join()
eb1a0 0a 7b 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 66 69 6c .{.return.implode('.',.array_fil
eb1c0 74 65 72 28 0a 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 74 29 20 7b ter(.array_map(function.($bit).{
eb1e0 0a 72 65 74 75 72 6e 20 24 62 69 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 20 .return.$bit.instanceof.Command.
eb200 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e 28 29 20 3a 20 28 24 62 69 74 20 3f 3a 20 6e 75 6c 6c 29 3b ?.$bit->join().:.($bit.?:.null);
eb220 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 69 74 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 74 .},.$this->bits),.function.($bit
eb240 29 20 7b 20 72 65 74 75 72 6e 20 6e 75 6c 6c 20 21 3d 3d 20 24 62 69 74 3b 20 7d 0a 29 29 3b 0a ).{.return.null.!==.$bit;.}.));.
eb260 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 74 }..........public.function.addAt
eb280 49 6e 64 65 78 28 24 62 69 74 2c 20 24 69 6e 64 65 78 29 0a 7b 0a 61 72 72 61 79 5f 73 70 6c 69 Index($bit,.$index).{.array_spli
eb2a0 63 65 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 69 6e 64 65 78 2c 20 30 2c 20 24 62 69 74 29 ce($this->bits,.$index,.0,.$bit)
eb2c0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ;..return.$this;.}.}.<?php......
eb2e0 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
eb300 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b \Finder\Shell;.....class.Shell.{
eb320 0a 63 6f 6e 73 74 20 54 59 50 45 5f 55 4e 49 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 .const.TYPE_UNIX.=.1;.const.TYPE
eb340 5f 44 41 52 57 49 4e 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e 20 3d _DARWIN.=.2;.const.TYPE_CYGWIN.=
eb360 20 33 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f 6e 73 .3;.const.TYPE_WINDOWS.=.4;.cons
eb380 74 20 54 59 50 45 5f 42 53 44 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 79 70 t.TYPE_BSD.=.5;.....private.$typ
eb3a0 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 e;.......public.function.getType
eb3c0 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b ().{.if.(null.===.$this->type).{
eb3e0 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 65 28 .$this->type.=.$this->guessType(
eb400 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a );.}..return.$this->type;.}.....
eb420 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e 64 28 ....public.function.testCommand(
eb440 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 $command).{.if.(!function_exists
eb460 28 27 65 78 65 63 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 24 ('exec')).{.return.false;.}....$
eb480 74 65 73 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 77 68 69 63 68 20 27 3b 0a 69 66 20 28 73 65 6c 66 testCommand.=.'which.';.if.(self
eb4a0 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 ::TYPE_WINDOWS.===.$this->type).
eb4c0 7b 0a 24 74 65 73 74 43 6f 6d 6d 61 6e 64 20 3d 20 27 77 68 65 72 65 20 27 3b 0a 7d 0a 0a 24 63 {.$testCommand.=.'where.';.}..$c
eb4e0 6f 6d 6d 61 6e 64 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 24 63 6f 6d 6d 61 6e 64 ommand.=.escapeshellcmd($command
eb500 29 3b 0a 0a 65 78 65 63 28 24 74 65 73 74 43 6f 6d 6d 61 6e 64 2e 24 63 6f 6d 6d 61 6e 64 2c 20 );..exec($testCommand.$command,.
eb520 24 6f 75 74 70 75 74 2c 20 24 63 6f 64 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 $output,.$code);..return.0.===.$
eb540 63 6f 64 65 20 26 26 20 63 6f 75 6e 74 28 24 6f 75 74 70 75 74 29 20 3e 20 30 3b 0a 7d 0a 0a 0a code.&&.count($output).>.0;.}...
eb560 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 54 79 70 65 28 29 ....private.function.guessType()
eb580 0a 7b 0a 24 6f 73 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 66 .{.$os.=.strtolower(PHP_OS);..if
eb5a0 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 63 79 67 77 69 6e 27 .(false.!==.strpos($os,.'cygwin'
eb5c0 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 43 59 47 57 49 4e 3b 0a 7d )).{.return.self::TYPE_CYGWIN;.}
eb5e0 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 64 61 72 ..if.(false.!==.strpos($os,.'dar
eb600 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 44 41 52 57 49 win')).{.return.self::TYPE_DARWI
eb620 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 N;.}..if.(false.!==.strpos($os,.
eb640 27 62 73 64 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 42 53 44 3b 'bsd')).{.return.self::TYPE_BSD;
eb660 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 77 69 6e 27 29 .}..if.(0.===.strpos($os,.'win')
eb680 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 3b 0a 7d ).{.return.self::TYPE_WINDOWS;.}
eb6a0 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 55 4e 49 58 3b 0a 7d 0a 7d 0a 3c 3f ..return.self::TYPE_UNIX;.}.}.<?
eb6c0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
eb6e0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a Component\Finder\Expression;....
eb700 0a 63 6c 61 73 73 20 52 65 67 65 78 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 .class.Regex.implements.ValueInt
eb720 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 53 54 41 52 54 5f 46 4c 41 47 20 3d 20 27 5e 27 3b erface.{.const.START_FLAG.=.'^';
eb740 0a 63 6f 6e 73 74 20 45 4e 44 5f 46 4c 41 47 20 3d 20 27 24 27 3b 0a 63 6f 6e 73 74 20 42 4f 55 .const.END_FLAG.=.'$';.const.BOU
eb760 4e 44 41 52 59 20 3d 20 27 7e 27 3b 0a 63 6f 6e 73 74 20 4a 4f 4b 45 52 20 3d 20 27 2e 2a 27 3b NDARY.=.'~';.const.JOKER.=.'.*';
eb780 0a 63 6f 6e 73 74 20 45 53 43 41 50 49 4e 47 20 3d 20 27 5c 5c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 .const.ESCAPING.=.'\\';.....priv
eb7a0 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f ate.$pattern;.....private.$optio
eb7c0 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 0a 0a 0a ns;.....private.$startFlag;.....
eb7e0 70 72 69 76 61 74 65 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 private.$endFlag;.....private.$s
eb800 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6e 64 4a 6f 6b 65 72 tartJoker;.....private.$endJoker
eb820 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e ;.........public.static.function
eb840 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 .create($expr).{.if.(preg_match(
eb860 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 28 5b 69 6d 73 78 75 41 44 55 5d 2a 29 24 2f 27 2c 20 24 65 78 '/^(.{3,}?)([imsxuADU]*)$/',.$ex
eb880 70 72 2c 20 24 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d pr,.$m)).{.$start.=.substr($m[1]
eb8a0 2c 20 30 2c 20 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 ,.0,.1);.$end.=.substr($m[1],.-1
eb8c0 29 3b 0a 0a 69 66 20 28 0a 28 24 73 74 61 72 74 20 3d 3d 3d 20 24 65 6e 64 20 26 26 20 21 70 72 );..if.(.($start.===.$end.&&.!pr
eb8e0 65 67 5f 6d 61 74 63 68 28 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c eg_match('/[*?[:alnum:].\\\\]/',
eb900 20 24 73 74 61 72 74 29 29 0a 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 7b 27 20 26 26 20 .$start)).||.($start.===.'{'.&&.
eb920 24 65 6e 64 20 3d 3d 3d 20 27 7d 27 29 0a 7c 7c 20 28 24 73 74 61 72 74 20 3d 3d 3d 20 27 28 27 $end.===.'}').||.($start.===.'('
eb940 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 27 29 27 29 0a 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 .&&.$end.===.')').).{.return.new
eb960 20 73 65 6c 66 28 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 31 2c 20 2d 31 29 2c 20 24 6d 5b 32 .self(substr($m[1],.1,.-1),.$m[2
eb980 5d 2c 20 24 65 6e 64 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 ],.$end);.}.}..throw.new.\Invali
eb9a0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 47 69 76 65 6e 20 65 78 70 72 65 73 dArgumentException('Given.expres
eb9c0 73 69 6f 6e 20 69 73 20 6e 6f 74 20 61 20 72 65 67 65 78 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a sion.is.not.a.regex.');.}.......
eb9e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 public.function.__construct($pat
eba00 74 65 72 6e 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 27 27 2c 20 24 64 65 6c 69 6d 69 74 65 72 20 tern,.$options.=.'',.$delimiter.
eba20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 6c 69 6d 69 74 65 =.null).{.if.(null.!==.$delimite
eba40 72 29 20 7b 0a 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c r).{...$pattern.=.str_replace('\
eba60 5c 27 2e 24 64 65 6c 69 6d 69 74 65 72 2c 20 24 64 65 6c 69 6d 69 74 65 72 2c 20 24 70 61 74 74 \'.$delimiter,.$delimiter,.$patt
eba80 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 61 ern);.}..$this->parsePattern($pa
ebaa0 74 74 65 72 6e 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e ttern);.$this->options.=.$option
ebac0 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 s;.}.....public.function.__toStr
ebae0 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 28 29 3b 0a ing().{.return.$this->render();.
ebb00 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b }.....public.function.render().{
ebb20 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 72 .return.self::BOUNDARY..$this->r
ebb40 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e enderPattern()..self::BOUNDARY..
ebb60 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $this->options;.}.....public.fun
ebb80 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 ction.renderPattern().{.return.(
ebba0 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3f 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 $this->startFlag.?.self::START_F
ebbc0 4c 41 47 20 3a 20 27 27 29 0a 2e 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3f 20 LAG.:.'')..($this->startJoker.?.
ebbe0 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3a 20 27 27 29 0a 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 73 self::JOKER.:.'')..str_replace(s
ebc00 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 2c 20 27 5c 5c 27 2e 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 elf::BOUNDARY,.'\\'.self::BOUNDA
ebc20 52 59 2c 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 RY,.$this->pattern)..($this->end
ebc40 4a 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3a 20 27 27 29 0a 2e 28 24 74 68 69 Joker.?.self::JOKER.:.'')..($thi
ebc60 73 2d 3e 65 6e 64 46 6c 61 67 20 3f 20 73 65 6c 66 3a 3a 45 4e 44 5f 46 4c 41 47 20 3a 20 27 27 s->endFlag.?.self::END_FLAG.:.''
ebc80 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 );.}.....public.function.isCaseS
ebca0 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 68 61 73 4f ensitive().{.return.!$this->hasO
ebcc0 70 74 69 6f 6e 28 27 69 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ption('i');.}.....public.functio
ebce0 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a n.getType().{.return.Expression:
ebd00 3a 54 59 50 45 5f 52 45 47 45 58 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 :TYPE_REGEX;.}.....public.functi
ebd20 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 on.prepend($expr).{.$this->patte
ebd40 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 0a 72 65 74 75 rn.=.$expr.$this->pattern;..retu
ebd60 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rn.$this;.}.....public.function.
ebd80 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 2e append($expr).{.$this->pattern..
ebda0 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a =.$expr;..return.$this;.}.......
ebdc0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f public.function.hasOption($optio
ebde0 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 n).{.return.false.!==.strpos($th
ebe00 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 is->options,.$option);.}.......p
ebe20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e ublic.function.addOption($option
ebe40 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f ).{.if.(!$this->hasOption($optio
ebe60 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 2e 3d 20 24 6f 70 74 69 6f 6e 3b n)).{.$this->options..=.$option;
ebe80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .}..return.$this;.}.......public
ebea0 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a .function.removeOption($option).
ebec0 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 24 {.$this->options.=.str_replace($
ebee0 6f 70 74 69 6f 6e 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 0a 72 65 option,.'',.$this->options);..re
ebf00 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 turn.$this;.}.......public.funct
ebf20 69 6f 6e 20 73 65 74 53 74 61 72 74 46 6c 61 67 28 24 73 74 61 72 74 46 6c 61 67 29 0a 7b 0a 24 ion.setStartFlag($startFlag).{.$
ebf40 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3d 20 24 73 74 61 72 74 46 6c 61 67 3b 0a 0a 72 this->startFlag.=.$startFlag;..r
ebf60 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.$this;.}.....public.functi
ebf80 6f 6e 20 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on.hasStartFlag().{.return.$this
ebfa0 2d 3e 73 74 61 72 74 46 6c 61 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ->startFlag;.}.......public.func
ebfc0 74 69 6f 6e 20 73 65 74 45 6e 64 46 6c 61 67 28 24 65 6e 64 46 6c 61 67 29 0a 7b 0a 24 74 68 69 tion.setEndFlag($endFlag).{.$thi
ebfe0 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 64 46 6c 61 67 3b 0a 0a 72 s->endFlag.=.(bool).$endFlag;..r
ec000 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.$this;.}.....public.functi
ec020 6f 6e 20 68 61 73 45 6e 64 46 6c 61 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.hasEndFlag().{.return.$this->
ec040 65 6e 64 46 6c 61 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e endFlag;.}.......public.function
ec060 20 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 24 73 74 61 72 74 4a 6f 6b 65 72 29 0a 7b 0a 24 74 .setStartJoker($startJoker).{.$t
ec080 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3d 20 24 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a his->startJoker.=.$startJoker;..
ec0a0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.$this;.}.....public.funct
ec0c0 69 6f 6e 20 68 61 73 53 74 61 72 74 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 ion.hasStartJoker().{.return.$th
ec0e0 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 is->startJoker;.}.......public.f
ec100 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 64 4a 6f 6b 65 72 28 24 65 6e 64 4a 6f 6b 65 72 29 0a 7b unction.setEndJoker($endJoker).{
ec120 0a 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 64 4a 6f .$this->endJoker.=.(bool).$endJo
ec140 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ker;..return.$this;.}.....public
ec160 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 45 6e 64 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e .function.hasEndJoker().{.return
ec180 20 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$this->endJoker;.}.......public
ec1a0 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 24 72 65 70 6c 61 63 65 .function.replaceJokers($replace
ec1c0 6d 65 6e 74 29 0a 7b 0a 24 72 65 70 6c 61 63 65 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 75 ment).{.$replace.=.function.($su
ec1e0 62 6a 65 63 74 29 20 75 73 65 20 28 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 20 7b 0a 24 73 75 62 bject).use.($replacement).{.$sub
ec200 6a 65 63 74 20 3d 20 24 73 75 62 6a 65 63 74 5b 30 5d 3b 0a 24 72 65 70 6c 61 63 65 20 3d 20 30 ject.=.$subject[0];.$replace.=.0
ec220 20 3d 3d 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 73 75 62 6a 65 63 74 2c 20 27 5c 5c 27 .===.substr_count($subject,.'\\'
ec240 29 20 25 20 32 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 6c 61 63 65 20 3f 20 73 74 72 5f 72 65 ).%.2;..return.$replace.?.str_re
ec260 70 6c 61 63 65 28 27 2e 27 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 2c 20 24 73 75 62 6a 65 63 place('.',.$replacement,.$subjec
ec280 74 29 20 3a 20 24 73 75 62 6a 65 63 74 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 t).:.$subject;.};..$this->patter
ec2a0 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7e 5b 5c 5c 5c n.=.preg_replace_callback('~[\\\
ec2c0 5c 5d 2a 5c 5c 2e 7e 27 2c 20 24 72 65 70 6c 61 63 65 2c 20 24 74 68 69 73 2d 3e 70 61 74 74 65 \]*\\.~',.$replace,.$this->patte
ec2e0 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 rn);..return.$this;.}.....privat
ec300 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e e.function.parsePattern($pattern
ec320 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3d 20 73 65 6c 66 3a ).{.if.($this->startFlag.=.self:
ec340 3a 53 54 41 52 54 5f 46 4c 41 47 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c :START_FLAG.===.substr($pattern,
ec360 20 30 2c 20 31 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 .0,.1)).{.$pattern.=.substr($pat
ec380 74 65 72 6e 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b tern,.1);.}..if.($this->startJok
ec3a0 65 72 20 3d 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 er.=.self::JOKER.===.substr($pat
ec3c0 74 65 72 6e 2c 20 30 2c 20 32 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 tern,.0,.2)).{.$pattern.=.substr
ec3e0 28 24 70 61 74 74 65 72 6e 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 64 ($pattern,.2);.}..if.($this->end
ec400 46 6c 61 67 20 3d 20 28 73 65 6c 66 3a 3a 45 4e 44 5f 46 4c 41 47 20 3d 3d 3d 20 73 75 62 73 74 Flag.=.(self::END_FLAG.===.subst
ec420 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 31 29 20 26 26 20 73 65 6c 66 3a 3a 45 53 43 41 50 49 4e r($pattern,.-1).&&.self::ESCAPIN
ec440 47 20 21 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 32 2c 20 2d 31 29 29 29 G.!==.substr($pattern,.-2,.-1)))
ec460 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 .{.$pattern.=.substr($pattern,.0
ec480 2c 20 2d 31 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3d 20 ,.-1);.}..if.($this->endJoker.=.
ec4a0 28 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e (self::JOKER.===.substr($pattern
ec4c0 2c 20 2d 32 29 20 26 26 20 73 65 6c 66 3a 3a 45 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 ,.-2).&&.self::ESCAPING.!==.subs
ec4e0 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 33 2c 20 2d 32 29 29 29 20 7b 0a 24 70 61 74 74 65 72 tr($pattern,.-3,.-2))).{.$patter
ec500 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 32 29 3b 0a 7d 0a 0a n.=.substr($pattern,.0,.-2);.}..
ec520 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 7d 0a 3c $this->pattern.=.$pattern;.}.}.<
ec540 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
ec560 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a \Component\Finder\Expression;...
ec580 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 ..class.Glob.implements.ValueInt
ec5a0 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a erface.{....private.$pattern;...
ec5c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 ..public.function.__construct($p
ec5e0 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 70 61 74 74 attern).{.$this->pattern.=.$patt
ec600 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 ern;.}.....public.function.rende
ec620 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a r().{.return.$this->pattern;.}..
ec640 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e ...public.function.renderPattern
ec660 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a ().{.return.$this->pattern;.}...
ec680 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 ..public.function.getType().{.re
ec6a0 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 47 4c 4f 42 3b 0a 7d 0a 0a 0a turn.Expression::TYPE_GLOB;.}...
ec6c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 ..public.function.isCaseSensitiv
ec6e0 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 e().{.return.true;.}.....public.
ec700 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d function.prepend($expr).{.$this-
ec720 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 3b >pattern.=.$expr.$this->pattern;
ec740 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
ec760 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 ction.append($expr).{.$this->pat
ec780 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a tern..=.$expr;..return.$this;.}.
ec7a0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 78 70 61 6e 64 61 62 ......public.function.isExpandab
ec7c0 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 le().{.return.false.!==.strpos($
ec7e0 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7b 27 29 0a 26 26 20 66 61 6c 73 65 20 21 3d 3d this->pattern,.'{').&&.false.!==
ec800 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7d 27 29 3b 0a 7d 0a .strpos($this->pattern,.'}');.}.
ec820 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 .......public.function.toRegex($
ec840 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 strictLeadingDot.=.true,.$strict
ec860 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 WildcardSlash.=.true).{.$firstBy
ec880 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 te.=.true;.$escaping.=.false;.$i
ec8a0 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 nCurlies.=.0;.$regex.=.'';.$size
ec8c0 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 66 Glob.=.strlen($this->pattern);.f
ec8e0 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b or.($i.=.0;.$i.<.$sizeGlob;.$i++
ec900 29 20 7b 0a 24 63 61 72 20 3d 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 5b 24 69 5d 3b 0a 69 ).{.$car.=.$this->pattern[$i];.i
ec920 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 f.($firstByte).{.if.($strictLead
ec940 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 ingDot.&&.'.'.!==.$car).{.$regex
ec960 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d ..=.'(?=[^\.])';.}..$firstByte.=
ec980 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 .false;.}..if.('/'.===.$car).{.$
ec9a0 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d firstByte.=.true;.}..if.('.'.===
ec9c0 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d .$car.||.'('.===.$car.||.')'.===
ec9e0 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d .$car.||.'|'.===.$car.||.'+'.===
eca00 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d .$car.||.'^'.===.$car.||.'$'.===
eca20 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 .$car).{.$regex..=."\\$car";.}.e
eca40 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d lseif.('*'.===.$car).{.$regex..=
eca60 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c .$escaping.?.'\\*'.:.($strictWil
eca80 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 dcardSlash.?.'[^/]*'.:.'.*');.}.
ecaa0 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e elseif.('?'.===.$car).{.$regex..
ecac0 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 =.$escaping.?.'\\?'.:.($strictWi
ecae0 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 ldcardSlash.?.'[^/]'.:.'.');.}.e
ecb00 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d lseif.('{'.===.$car).{.$regex..=
ecb20 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 .$escaping.?.'\\{'.:.'(';.if.(!$
ecb40 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c escaping).{.++$inCurlies;.}.}.el
ecb60 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 seif.('}'.===.$car.&&.$inCurlies
ecb80 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 ).{.$regex..=.$escaping.?.'}'.:.
ecba0 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c ')';.if.(!$escaping).{.--$inCurl
ecbc0 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 ies;.}.}.elseif.(','.===.$car.&&
ecbe0 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 .$inCurlies).{.$regex..=.$escapi
ecc00 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d ng.?.','.:.'|';.}.elseif.('\\'.=
ecc20 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 ==.$car).{.if.($escaping).{.$reg
ecc40 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b ex..=.'\\\\';.$escaping.=.false;
ecc60 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 .}.else.{.$escaping.=.true;.}..c
ecc80 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 ontinue;.}.else.{.$regex..=.$car
ecca0 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ;.}.$escaping.=.false;.}..return
eccc0 20 6e 65 77 20 52 65 67 65 78 28 27 5e 27 2e 24 72 65 67 65 78 2e 27 24 27 29 3b 0a 7d 0a 7d 0a .new.Regex('^'.$regex.'$');.}.}.
ecce0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
ecd00 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a y\Component\Finder\Expression;..
ecd20 0a 0a 0a 63 6c 61 73 73 20 45 78 70 72 65 73 73 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 ...class.Expression.implements.V
ecd40 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 52 45 47 45 58 alueInterface.{.const.TYPE_REGEX
ecd60 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 47 4c 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 70 .=.1;.const.TYPE_GLOB.=.2;.....p
ecd80 72 69 76 61 74 65 20 24 76 61 6c 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 rivate.$value;.......public.stat
ecda0 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 72 65 74 75 ic.function.create($expr).{.retu
ecdc0 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 65 78 70 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.new.self($expr);.}.....public
ecde0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 65 78 70 72 29 0a 7b 0a 74 .function.__construct($expr).{.t
ece00 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3d 20 52 65 67 65 78 3a 3a 63 72 65 61 74 ry.{.$this->value.=.Regex::creat
ece20 65 28 24 65 78 70 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d e($expr);.}.catch.(\InvalidArgum
ece40 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 entException.$e).{.$this->value.
ece60 3d 20 6e 65 77 20 47 6c 6f 62 28 24 65 78 70 72 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 =.new.Glob($expr);.}.}.....publi
ece80 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.__toString().{.return
ecea0 20 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->render();.}.....public.f
ecec0 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d unction.render().{.return.$this-
ecee0 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 >value->render();.}.....public.f
ecf00 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e unction.renderPattern().{.return
ecf20 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b 0a .$this->value->renderPattern();.
ecf40 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e 73 }.....public.function.isCaseSens
ecf60 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 69 itive().{.return.$this->value->i
ecf80 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 sCaseSensitive();.}.....public.f
ecfa0 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 unction.getType().{.return.$this
ecfc0 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ->value->getType();.}.....public
ecfe0 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 .function.prepend($expr).{.$this
ed000 2d 3e 76 61 6c 75 65 2d 3e 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e ->value->prepend($expr);..return
ed020 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 .$this;.}.....public.function.ap
ed040 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 61 70 70 65 pend($expr).{.$this->value->appe
ed060 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a nd($expr);..return.$this;.}.....
ed080 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 public.function.isRegex().{.retu
ed0a0 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 rn.self::TYPE_REGEX.===.$this->v
ed0c0 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 alue->getType();.}.....public.fu
ed0e0 6e 63 74 69 6f 6e 20 69 73 47 6c 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 nction.isGlob().{.return.self::T
ed100 59 50 45 5f 47 4c 4f 42 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 YPE_GLOB.===.$this->value->getTy
ed120 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 pe();.}.......public.function.ge
ed140 74 47 6c 6f 62 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 21 3d tGlob().{.if.(self::TYPE_GLOB.!=
ed160 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 74 68 72 =.$this->value->getType()).{.thr
ed180 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 52 65 67 65 78 20 63 61 ow.new.\LogicException('Regex.ca
ed1a0 6e 5c 27 74 20 62 65 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 74 6f 20 67 6c 6f 62 2e 27 29 3b 0a n\'t.be.transformed.to.glob.');.
ed1c0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 }..return.$this->value;.}.....pu
ed1e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 blic.function.getRegex().{.retur
ed200 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 n.self::TYPE_REGEX.===.$this->va
ed220 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3f 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3a 20 lue->getType().?.$this->value.:.
ed240 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 74 6f 52 65 67 65 78 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 $this->value->toRegex();.}.}.<?p
ed260 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 hp...........namespace.Symfony\C
ed280 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a omponent\Finder\Expression;.....
ed2a0 69 6e 74 65 72 66 61 63 65 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a interface.ValueInterface.{......
ed2c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 3b 0a 0a 0a 0a 0a 0a 0a public.function.render();.......
ed2e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 3b public.function.renderPattern();
ed300 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 61 73 65 53 65 6e .......public.function.isCaseSen
ed320 73 69 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 sitive();.......public.function.
ed340 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e getType();.......public.function
ed360 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .prepend($expr);.......public.fu
ed380 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a nction.append($expr);.}.<?php...
ed3a0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ........namespace.Symfony\Compon
ed3c0 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 ent\Finder\Adapter;.....interfac
ed3e0 65 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e.AdapterInterface.{......public
ed400 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 .function.setFollowLinks($follow
ed420 4c 69 6e 6b 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 Links);.......public.function.se
ed440 74 4d 6f 64 65 28 24 6d 6f 64 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tMode($mode);.......public.funct
ed460 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 29 3b 0a ion.setExclude(array.$exclude);.
ed480 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 68 73 28 ......public.function.setDepths(
ed4a0 61 72 72 61 79 20 24 64 65 70 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e array.$depths);.......public.fun
ed4c0 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 61 6d 65 73 29 3b 0a 0a 0a ction.setNames(array.$names);...
ed4e0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 ....public.function.setNotNames(
ed500 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 array.$notNames);.......public.f
ed520 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 63 6f 6e 74 61 unction.setContains(array.$conta
ed540 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e ins);.......public.function.setN
ed560 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a otContains(array.$notContains);.
ed580 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 69 7a 65 73 28 61 ......public.function.setSizes(a
ed5a0 72 72 61 79 20 24 73 69 7a 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rray.$sizes);.......public.funct
ed5c0 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 79 20 24 64 61 74 65 73 29 3b 0a 0a 0a 0a 0a ion.setDates(array.$dates);.....
ed5e0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 ..public.function.setFilters(arr
ed600 61 79 20 24 66 69 6c 74 65 72 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ay.$filters);.......public.funct
ed620 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.setSort($sort);.......public
ed640 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 74 68 28 61 72 72 61 79 20 24 70 61 74 68 73 29 3b .function.setPath(array.$paths);
ed660 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 61 74 .......public.function.setNotPat
ed680 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 h(array.$notPaths);.......public
ed6a0 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 .function.ignoreUnreadableDirs($
ed6c0 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ignore.=.true);.......public.fun
ed6e0 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 0a ction.searchInDirectory($dir);..
ed700 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 6f 72 74 65 64 .....public.function.isSupported
ed720 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d ();.......public.function.getNam
ed740 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 e();.}.<?php...........namespace
ed760 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 .Symfony\Component\Finder\Adapte
ed780 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 r;..use.Symfony\Component\Finder
ed7a0 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e \Shell\Shell;.use.Symfony\Compon
ed7c0 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 ent\Finder\Shell\Command;.use.Sy
ed7e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c mfony\Component\Finder\Iterator\
ed800 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f SortableIterator;.use.Symfony\Co
ed820 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 mponent\Finder\Expression\Expres
ed840 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 sion;.......class.BsdFindAdapter
ed860 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 0a 7b 0a 0a .extends.AbstractFindAdapter.{..
ed880 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 ..public.function.getName().{.re
ed8a0 74 75 72 6e 20 27 62 73 64 5f 66 69 6e 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 turn.'bsd_find';.}.....protected
ed8c0 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 .function.canBeUsed().{.return.i
ed8e0 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 2c n_array($this->shell->getType(),
ed900 20 61 72 72 61 79 28 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 42 53 44 2c 20 53 68 65 6c 6c 3a 3a 54 .array(Shell::TYPE_BSD,.Shell::T
ed920 59 50 45 5f 44 41 52 57 49 4e 29 29 20 26 26 20 70 61 72 65 6e 74 3a 3a 63 61 6e 42 65 55 73 65 YPE_DARWIN)).&&.parent::canBeUse
ed940 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 d();.}.....protected.function.bu
ed960 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e ildFormatSorting(Command.$comman
ed980 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 d,.$sort).{.switch.($sort).{.cas
ed9a0 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 e.SortableIterator::SORT_BY_NAME
ed9c0 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 73 6f 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 :.$command->ins('sort')->add('|.
ed9e0 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 sort');..return;.case.SortableIt
eda00 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 erator::SORT_BY_TYPE:.$format.=.
eda20 27 25 48 54 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 '%HT';.break;.case.SortableItera
eda40 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 tor::SORT_BY_ACCESSED_TIME:.$for
eda60 6d 61 74 20 3d 20 27 25 61 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 mat.=.'%a';.break;.case.Sortable
eda80 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a Iterator::SORT_BY_CHANGED_TIME:.
edaa0 24 66 6f 72 6d 61 74 20 3d 20 27 25 63 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 $format.=.'%c';.break;.case.Sort
edac0 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 ableIterator::SORT_BY_MODIFIED_T
edae0 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 6d 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 IME:.$format.=.'%m';.break;.defa
edb00 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 ult:.throw.new.\InvalidArgumentE
edb20 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 73 6f 72 74 20 6f xception(sprintf('Unknown.sort.o
edb40 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 24 73 6f 72 74 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 ptions:.%s.',.$sort));.}..$comma
edb60 6e 64 0a 2d 3e 61 64 64 28 27 2d 70 72 69 6e 74 30 20 7c 20 78 61 72 67 73 20 2d 30 20 73 74 61 nd.->add('-print0.|.xargs.-0.sta
edb80 74 20 2d 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 25 74 25 4e 27 29 0a 2d 3e 61 t.-f').->arg($format.'%t%N').->a
edba0 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 20 2d 66 20 32 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 dd('|.sort.|.cut.-f.2');.}.....p
edbc0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 rotected.function.buildFindComma
edbe0 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 70 61 72 nd(Command.$command,.$dir).{.par
edc00 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 ent::buildFindCommand($command,.
edc20 24 64 69 72 29 2d 3e 61 64 64 41 74 49 6e 64 65 78 28 27 2d 45 27 2c 20 31 29 3b 0a 0a 72 65 74 $dir)->addAtIndex('-E',.1);..ret
edc40 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 urn.$command;.}.....protected.fu
edc60 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d nction.buildContentFiltering(Com
edc80 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 mand.$command,.array.$contains,.
edca0 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 $not.=.false).{.foreach.($contai
edcc0 6e 73 20 61 73 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 ns.as.$contain).{.$expr.=.Expres
edce0 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d sion::create($contain);....$comm
edd00 61 6e 64 0a 2d 3e 61 64 64 28 27 7c 20 67 72 65 70 20 2d 76 20 5c 27 5e 24 5c 27 27 29 0a 2d 3e and.->add('|.grep.-v.\'^$\'').->
edd20 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 67 72 65 70 20 2d 49 27 29 0a 2d 3e 61 64 add('|.xargs.-I{}.grep.-I').->ad
edd40 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 6e 75 6c d($expr->isCaseSensitive().?.nul
edd60 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 3a 20 27 2d l.:.'-i').->add($not.?.'-L'.:.'-
edd80 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e l').->add('-Ee')->arg($expr->ren
edda0 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b 7d 27 29 0a 3b 0a 7d 0a 7d 0a derPattern()).->add('{}').;.}.}.
eddc0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
edde0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 ony\Component\Finder\Adapter;..u
ede00 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c se.Symfony\Component\Finder\Shel
ede20 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 l\Shell;.use.Symfony\Component\F
ede40 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 inder\Shell\Command;.use.Symfony
ede60 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 \Component\Finder\Iterator\Sorta
ede80 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 bleIterator;.use.Symfony\Compone
edea0 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b nt\Finder\Expression\Expression;
edec0 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 .......class.GnuFindAdapter.exte
edee0 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 nds.AbstractFindAdapter.{....pub
edf00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getName().{.return.
edf20 27 67 6e 75 5f 66 69 6e 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 'gnu_find';.}.....protected.func
edf40 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 tion.buildFormatSorting(Command.
edf60 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 73 6f 72 74 $command,.$sort).{.switch.($sort
edf80 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f ).{.case.SortableIterator::SORT_
edfa0 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 73 6f 72 74 27 29 2d 3e BY_NAME:.$command->ins('sort')->
edfc0 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 73 65 20 53 6f 72 add('|.sort');..return;.case.Sor
edfe0 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3a 0a 24 66 6f tableIterator::SORT_BY_TYPE:.$fo
ee000 72 6d 61 74 20 3d 20 27 25 79 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c rmat.=.'%y';.break;.case.Sortabl
ee020 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 eIterator::SORT_BY_ACCESSED_TIME
ee040 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 41 40 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 :.$format.=.'%A@';.break;.case.S
ee060 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 ortableIterator::SORT_BY_CHANGED
ee080 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 43 40 27 3b 0a 62 72 65 61 6b 3b 0a 63 _TIME:.$format.=.'%C@';.break;.c
ee0a0 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f ase.SortableIterator::SORT_BY_MO
ee0c0 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 54 40 27 3b 0a 62 72 DIFIED_TIME:.$format.=.'%T@';.br
ee0e0 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 eak;.default:.throw.new.\Invalid
ee100 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f ArgumentException(sprintf('Unkno
ee120 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 24 73 6f 72 74 29 29 3b 0a wn.sort.options:.%s.',.$sort));.
ee140 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 67 65 74 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 28 }..$command.->get('find').->add(
ee160 27 2d 70 72 69 6e 74 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 20 25 68 2f 25 66 '-printf').->arg($format.'.%h/%f
ee180 5c 5c 6e 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 27 29 0a 2d 3e 61 72 \\n').->add('|.sort.|.cut').->ar
ee1a0 67 28 27 2d 64 20 27 29 0a 2d 3e 61 72 67 28 27 2d 66 32 2d 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 g('-d.').->arg('-f2-').;.}.....p
ee1c0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a rotected.function.canBeUsed().{.
ee1e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 70 65 28 29 20 3d return.$this->shell->getType().=
ee200 3d 3d 20 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 55 4e 49 58 20 26 26 20 70 61 72 65 6e 74 3a 3a 63 ==.Shell::TYPE_UNIX.&&.parent::c
ee220 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 anBeUsed();.}.....protected.func
ee240 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 tion.buildFindCommand(Command.$c
ee260 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 62 ommand,.$dir).{.return.parent::b
ee280 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 2d uildFindCommand($command,.$dir)-
ee2a0 3e 61 64 64 28 27 2d 72 65 67 65 78 74 79 70 65 20 70 6f 73 69 78 2d 65 78 74 65 6e 64 65 64 27 >add('-regextype.posix-extended'
ee2c0 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c );.}.....protected.function.buil
ee2e0 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 dContentFiltering(Command.$comma
ee300 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 nd,.array.$contains,.$not.=.fals
ee320 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e 74 e).{.foreach.($contains.as.$cont
ee340 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 ain).{.$expr.=.Expression::creat
ee360 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 e($contain);....$command.->add('
ee380 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 2d 72 20 67 72 65 70 20 2d 49 27 29 0a 2d 3e 61 64 64 28 |.xargs.-I{}.-r.grep.-I').->add(
ee3a0 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 6e 75 6c 6c 20 $expr->isCaseSensitive().?.null.
ee3c0 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 3a 20 27 2d 6c 27 :.'-i').->add($not.?.'-L'.:.'-l'
ee3e0 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 ).->add('-Ee')->arg($expr->rende
ee400 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b 7d 27 29 0a 3b 0a 7d 0a 7d 0a 7d 0a rPattern()).->add('{}').;.}.}.}.
ee420 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
ee440 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a y\Component\Finder\Adapter;.....
ee460 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 ..abstract.class.AbstractAdapter
ee480 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 .implements.AdapterInterface.{.p
ee4a0 72 6f 74 65 63 74 65 64 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 6c 73 65 3b 0a 70 rotected.$followLinks.=.false;.p
ee4c0 72 6f 74 65 63 74 65 64 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d rotected.$mode.=.0;.protected.$m
ee4e0 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 78 44 65 70 74 68 inDepth.=.0;.protected.$maxDepth
ee500 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 63 6c 75 .=.PHP_INT_MAX;.protected.$exclu
ee520 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 73 20 3d de.=.array();.protected.$names.=
ee540 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 4e 61 6d 65 73 20 3d 20 .array();.protected.$notNames.=.
ee560 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 74 61 69 6e 73 20 3d 20 61 array();.protected.$contains.=.a
ee580 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d rray();.protected.$notContains.=
ee5a0 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 69 7a 65 73 20 3d 20 61 72 72 .array();.protected.$sizes.=.arr
ee5c0 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 ay();.protected.$dates.=.array()
ee5e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ;.protected.$filters.=.array();.
ee600 70 72 6f 74 65 63 74 65 64 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 protected.$sort.=.false;.protect
ee620 65 64 20 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ed.$paths.=.array();.protected.$
ee640 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 notPaths.=.array();.protected.$i
ee660 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 gnoreUnreadableDirs.=.false;..pr
ee680 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 72 65 53 75 70 70 6f 72 74 65 64 20 3d 20 61 72 72 ivate.static.$areSupported.=.arr
ee6a0 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 70 ay();.....public.function.isSupp
ee6c0 6f 72 74 65 64 28 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 orted().{.$name.=.$this->getName
ee6e0 28 29 3b 0a 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6e 61 6d 65 ();..if.(!array_key_exists($name
ee700 2c 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 29 29 20 7b 0a 73 65 6c 66 3a 3a ,.self::$areSupported)).{.self::
ee720 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 63 61 $areSupported[$name].=.$this->ca
ee740 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 61 72 65 53 nBeUsed();.}..return.self::$areS
ee760 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 upported[$name];.}.....public.fu
ee780 6e 63 74 69 6f 6e 20 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c 6c 6f 77 4c 69 6e nction.setFollowLinks($followLin
ee7a0 6b 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 24 66 6f 6c 6c ks).{.$this->followLinks.=.$foll
ee7c0 6f 77 4c 69 6e 6b 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 owLinks;..return.$this;.}.....pu
ee7e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 0a 7b 0a 24 blic.function.setMode($mode).{.$
ee800 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 this->mode.=.$mode;..return.$thi
ee820 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 70 74 s;.}.....public.function.setDept
ee840 68 73 28 61 72 72 61 79 20 24 64 65 70 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 hs(array.$depths).{.$this->minDe
ee860 70 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 pth.=.0;.$this->maxDepth.=.PHP_I
ee880 4e 54 5f 4d 41 58 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 74 68 73 20 61 73 20 24 63 6f NT_MAX;..foreach.($depths.as.$co
ee8a0 6d 70 61 72 61 74 6f 72 29 20 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 61 72 61 74 6f 72 2d mparator).{.switch.($comparator-
ee8c0 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 74 68 69 >getOperator()).{.case.'>':.$thi
ee8e0 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 s->minDepth.=.$comparator->getTa
ee900 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 74 rget().+.1;.break;.case.'>=':.$t
ee920 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 his->minDepth.=.$comparator->get
ee940 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 24 74 68 69 73 Target();.break;.case.'<':.$this
ee960 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 ->maxDepth.=.$comparator->getTar
ee980 67 65 74 28 29 20 2d 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 74 68 get().-.1;.break;.case.'<=':.$th
ee9a0 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 is->maxDepth.=.$comparator->getT
ee9c0 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e arget();.break;.default:.$this->
ee9e0 6d 69 6e 44 65 70 74 68 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f minDepth.=.$this->maxDepth.=.$co
eea00 6d 70 61 72 61 74 6f 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 mparator->getTarget();.}.}..retu
eea20 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rn.$this;.}.....public.function.
eea40 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 29 0a 7b 0a 24 74 68 setExclude(array.$exclude).{.$th
eea60 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 24 65 78 63 6c 75 64 65 3b 0a 0a 72 65 74 75 72 6e 20 is->exclude.=.$exclude;..return.
eea80 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 $this;.}.....public.function.set
eeaa0 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d Names(array.$names).{.$this->nam
eeac0 65 73 20 3d 20 24 6e 61 6d 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a es.=.$names;..return.$this;.}...
eeae0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 4e 61 6d 65 73 28 61 72 ..public.function.setNotNames(ar
eeb00 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 ray.$notNames).{.$this->notNames
eeb20 20 3d 20 24 6e 6f 74 4e 61 6d 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a .=.$notNames;..return.$this;.}..
eeb40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 74 61 69 6e 73 28 61 ...public.function.setContains(a
eeb60 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e rray.$contains).{.$this->contain
eeb80 73 20 3d 20 24 63 6f 6e 74 61 69 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a s.=.$contains;..return.$this;.}.
eeba0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 ....public.function.setNotContai
eebc0 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e ns(array.$notContains).{.$this->
eebe0 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 3b 0a 0a 72 65 74 notContains.=.$notContains;..ret
eec00 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e urn.$this;.}.....public.function
eec20 20 73 65 74 53 69 7a 65 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 24 74 68 69 73 2d .setSizes(array.$sizes).{.$this-
eec40 3e 73 69 7a 65 73 20 3d 20 24 73 69 7a 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a >sizes.=.$sizes;..return.$this;.
eec60 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 }.....public.function.setDates(a
eec80 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 73 20 3d 20 24 64 rray.$dates).{.$this->dates.=.$d
eeca0 61 74 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ates;..return.$this;.}.....publi
eecc0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 79 20 24 66 69 6c c.function.setFilters(array.$fil
eece0 74 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 ters).{.$this->filters.=.$filter
eed00 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s;..return.$this;.}.....public.f
eed20 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e unction.setSort($sort).{.$this->
eed40 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a sort.=.$sort;..return.$this;.}..
eed60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 74 68 28 61 72 72 61 79 ...public.function.setPath(array
eed80 20 24 70 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 20 3d 20 24 70 61 74 68 73 .$paths).{.$this->paths.=.$paths
eeda0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ;..return.$this;.}.....public.fu
eedc0 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 nction.setNotPath(array.$notPath
eede0 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 20 3d 20 24 6e 6f 74 50 61 74 68 73 s).{.$this->notPaths.=.$notPaths
eee00 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ;..return.$this;.}.....public.fu
eee20 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 28 24 69 67 6e nction.ignoreUnreadableDirs($ign
eee40 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 ore.=.true).{.$this->ignoreUnrea
eee60 64 61 62 6c 65 44 69 72 73 20 3d 20 28 62 6f 6f 6c 29 20 24 69 67 6e 6f 72 65 3b 0a 0a 72 65 74 dableDirs.=.(bool).$ignore;..ret
eee80 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 urn.$this;.}.............abstrac
eeea0 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 t.protected.function.canBeUsed()
eeec0 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 ;.}.<?php...........namespace.Sy
eeee0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a mfony\Component\Finder\Adapter;.
eef00 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 .use.Symfony\Component\Finder\Ex
eef20 63 65 70 74 69 6f 6e 5c 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 ception\AccessDeniedException;.u
eef40 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 se.Symfony\Component\Finder\Iter
eef60 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 ator;.use.Symfony\Component\Find
eef80 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 er\Shell\Shell;.use.Symfony\Comp
eefa0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 onent\Finder\Expression\Expressi
eefc0 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 on;.use.Symfony\Component\Finder
eefe0 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 \Shell\Command;.use.Symfony\Comp
ef000 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f onent\Finder\Comparator\NumberCo
ef020 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c mparator;.use.Symfony\Component\
ef040 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 Finder\Comparator\DateComparator
ef060 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 46 ;.......abstract.class.AbstractF
ef080 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 indAdapter.extends.AbstractAdapt
ef0a0 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 68 65 6c 6c 3b 0a 0a 0a 0a 0a 70 75 er.{....protected.$shell;.....pu
ef0c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 blic.function.__construct().{.$t
ef0e0 68 69 73 2d 3e 73 68 65 6c 6c 20 3d 20 6e 65 77 20 53 68 65 6c 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a his->shell.=.new.Shell();.}.....
ef100 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 public.function.searchInDirector
ef120 79 28 24 64 69 72 29 0a 7b 0a 0a 20 24 64 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 64 69 72 y($dir).{...$dir.=.realpath($dir
ef140 29 3b 0a 0a 0a 20 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 );....if.(Iterator\FileTypeFilte
ef160 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 rIterator::ONLY_DIRECTORIES.===.
ef180 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 $this->mode.&&.($this->contains.
ef1a0 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 6e ||.$this->notContains)).{.return
ef1c0 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 .new.Iterator\FilePathsIterator(
ef1e0 61 72 72 61 79 28 29 2c 20 24 64 69 72 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 43 6f array(),.$dir);.}..$command.=.Co
ef200 6d 6d 61 6e 64 3a 3a 63 72 65 61 74 65 28 29 3b 0a 24 66 69 6e 64 20 3d 20 24 74 68 69 73 2d 3e mmand::create();.$find.=.$this->
ef220 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 buildFindCommand($command,.$dir)
ef240 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 69 ;..if.($this->followLinks).{.$fi
ef260 6e 64 2d 3e 61 64 64 28 27 2d 66 6f 6c 6c 6f 77 27 29 3b 0a 7d 0a 0a 24 66 69 6e 64 2d 3e 61 64 nd->add('-follow');.}..$find->ad
ef280 64 28 27 2d 6d 69 6e 64 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 d('-mindepth')->add($this->minDe
ef2a0 70 74 68 20 2b 20 31 29 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 21 3d 3d 20 24 pth.+.1);..if.(PHP_INT_MAX.!==.$
ef2c0 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 6d this->maxDepth).{.$find->add('-m
ef2e0 61 78 64 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 2b axdepth')->add($this->maxDepth.+
ef300 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c .1);.}..if.(Iterator\FileTypeFil
ef320 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d terIterator::ONLY_DIRECTORIES.==
ef340 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 =.$this->mode).{.$find->add('-ty
ef360 70 65 20 64 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 pe.d');.}.elseif.(Iterator\FileT
ef380 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 3d ypeFilterIterator::ONLY_FILES.==
ef3a0 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 79 =.$this->mode).{.$find->add('-ty
ef3c0 70 65 20 66 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 pe.f');.}..$this->buildNamesFilt
ef3e0 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 3b 0a 24 74 68 69 ering($find,.$this->names);.$thi
ef400 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 s->buildNamesFiltering($find,.$t
ef420 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 his->notNames,.true);.$this->bui
ef440 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 ldPathsFiltering($find,.$dir,.$t
ef460 68 69 73 2d 3e 70 61 74 68 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 69 his->paths);.$this->buildPathsFi
ef480 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 ltering($find,.$dir,.$this->notP
ef4a0 61 74 68 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 69 7a 65 73 46 69 aths,.true);.$this->buildSizesFi
ef4c0 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 24 74 ltering($find,.$this->sizes);.$t
ef4e0 68 69 73 2d 3e 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 his->buildDatesFiltering($find,.
ef500 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 0a 24 75 73 65 47 72 65 70 20 3d 20 24 74 68 69 73 $this->dates);..$useGrep.=.$this
ef520 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 67 72 65 70 27 29 20 26 26 20 ->shell->testCommand('grep').&&.
ef540 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 78 61 72 67 73 $this->shell->testCommand('xargs
ef560 27 29 3b 0a 24 75 73 65 53 6f 72 74 20 3d 20 69 73 5f 69 6e 74 28 24 74 68 69 73 2d 3e 73 6f 72 ');.$useSort.=.is_int($this->sor
ef580 74 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 t).&&.$this->shell->testCommand(
ef5a0 27 73 6f 72 74 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 'sort').&&.$this->shell->testCom
ef5c0 6d 61 6e 64 28 27 63 75 74 27 29 3b 0a 0a 69 66 20 28 24 75 73 65 47 72 65 70 20 26 26 20 28 24 mand('cut');..if.($useGrep.&&.($
ef5e0 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 this->contains.||.$this->notCont
ef600 61 69 6e 73 29 29 20 7b 0a 24 67 72 65 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 ains)).{.$grep.=.$command->ins('
ef620 67 72 65 70 27 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 grep');.$this->buildContentFilte
ef640 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 3b 0a 24 74 ring($grep,.$this->contains);.$t
ef660 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 65 70 his->buildContentFiltering($grep
ef680 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a ,.$this->notContains,.true);.}..
ef6a0 69 66 20 28 24 75 73 65 53 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 72 74 if.($useSort).{.$this->buildSort
ef6c0 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 7d 0a 0a 24 ing($command,.$this->sort);.}..$
ef6e0 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 0a 24 74 68 69 73 2d command->setErrorHandler(.$this-
ef700 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 0a 0a 20 3f 20 66 75 6e 63 74 69 >ignoreUnreadableDirs...?.functi
ef720 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 72 65 74 75 72 6e 3b 20 7d 0a 3a 20 66 75 6e 63 74 on.($stderr).{.return;.}.:.funct
ef740 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 74 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 73 ion.($stderr).{.throw.new.Access
ef760 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 28 24 73 74 64 65 72 72 29 3b 20 7d 0a 29 3b 0a 0a DeniedException($stderr);.}.);..
ef780 24 70 61 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 $paths.=.$this->shell->testComma
ef7a0 6e 64 28 27 75 6e 69 71 27 29 20 3f 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 7c 20 75 6e nd('uniq').?.$command->add('|.un
ef7c0 69 71 27 29 2d 3e 65 78 65 63 75 74 65 28 29 20 3a 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 24 iq')->execute().:.array_unique($
ef7e0 63 6f 6d 6d 61 6e 64 2d 3e 65 78 65 63 75 74 65 28 29 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d command->execute());.$iterator.=
ef800 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 28 .new.Iterator\FilePathsIterator(
ef820 24 70 61 74 68 73 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 $paths,.$dir);..if.($this->exclu
ef840 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 de).{.$iterator.=.new.Iterator\E
ef860 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 xcludeDirectoryFilterIterator($i
ef880 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 terator,.$this->exclude);.}..if.
ef8a0 28 21 24 75 73 65 47 72 65 70 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c (!$useGrep.&&.($this->contains.|
ef8c0 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 24 69 74 65 72 61 74 |.$this->notContains)).{.$iterat
ef8e0 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c or.=.new.Iterator\FilecontentFil
ef900 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f terIterator($iterator,.$this->co
ef920 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a ntains,.$this->notContains);.}..
ef940 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 if.($this->filters).{.$iterator.
ef960 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 =.new.Iterator\CustomFilterItera
ef980 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a tor($iterator,.$this->filters);.
ef9a0 7d 0a 0a 69 66 20 28 21 24 75 73 65 53 6f 72 74 20 26 26 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 }..if.(!$useSort.&&.$this->sort)
ef9c0 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 .{.$iteratorAggregate.=.new.Iter
ef9e0 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c ator\SortableIterator($iterator,
efa00 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 .$this->sort);.$iterator.=.$iter
efa20 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a atorAggregate->getIterator();.}.
efa40 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 .return.$iterator;.}.....protect
efa60 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e ed.function.canBeUsed().{.return
efa80 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 66 69 6e 64 .$this->shell->testCommand('find
efaa0 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ');.}........protected.function.
efac0 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e buildFindCommand(Command.$comman
efae0 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 69 6e 73 d,.$dir).{.return.$command.->ins
efb00 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 28 27 66 69 6e 64 20 27 29 0a 2d 3e 61 72 67 28 24 64 ('find').->add('find.').->arg($d
efb20 69 72 29 0a 2d 3e 61 64 64 28 27 2d 6e 6f 6c 65 61 66 27 29 3b 20 0a 20 7d 0a 0a 0a 0a 0a 0a 0a ir).->add('-noleaf');...}.......
efb40 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 private.function.buildNamesFilte
efb60 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6e 61 ring(Command.$command,.array.$na
efb80 6d 65 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 mes,.$not.=.false).{.if.(0.===.c
efba0 6f 75 6e 74 28 24 6e 61 6d 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d ount($names)).{.return;.}..$comm
efbc0 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e and->add($not.?.'-not'.:.null)->
efbe0 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 69 cmd('(');..foreach.($names.as.$i
efc00 20 3d 3e 20 24 6e 61 6d 65 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a .=>.$name).{.$expr.=.Expression:
efc20 3a 63 72 65 61 74 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 :create($name);....if.($expr->is
efc40 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 Glob().&&.$expr->getGlob()->isEx
efc60 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e pandable()).{.$expr.=.Expression
efc80 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 ::create($expr->getGlob()->toReg
efca0 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 24 65 78 70 72 2d 3e ex(false));.}........if.($expr->
efcc0 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 65 74 isRegex()).{.$regex.=.$expr->get
efce0 52 65 67 65 78 28 29 3b 0a 24 72 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 78 2d Regex();.$regex->prepend($regex-
efd00 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 27 2f 27 20 3a 20 27 2f 5b 5e 2f 5d 2a 27 >hasStartFlag().?.'/'.:.'/[^/]*'
efd20 29 0a 2d 3e 73 65 74 53 74 61 72 74 46 6c 61 67 28 66 61 6c 73 65 29 0a 2d 3e 73 65 74 53 74 61 ).->setStartFlag(false).->setSta
efd40 72 74 4a 6f 6b 65 72 28 74 72 75 65 29 0a 2d 3e 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 27 5b rtJoker(true).->replaceJokers('[
efd60 5e 2f 5d 27 29 3b 0a 69 66 20 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 ^/]');.if.(!$regex->hasEndFlag()
efd80 20 7c 7c 20 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 4a 6f 6b 65 72 28 29 29 20 7b 0a 24 72 65 .||.$regex->hasEndJoker()).{.$re
efda0 67 65 78 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 28 66 61 6c 73 65 29 2d 3e 61 70 70 65 6e 64 28 gex->setEndJoker(false)->append(
efdc0 27 5b 5e 2f 5d 2a 27 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 '[^/]*');.}.}..$command.->add($i
efde0 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 .>.0.?.'-or'.:.null).->add($expr
efe00 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 ->isRegex().?.($expr->isCaseSens
efe20 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 0a itive().?.'-regex'.:.'-iregex').
efe40 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d :.($expr->isCaseSensitive().?.'-
efe60 6e 61 6d 65 27 20 3a 20 27 2d 69 6e 61 6d 65 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d name'.:.'-iname').).->arg($expr-
efe80 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e >renderPattern());.}..$command->
efea0 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 cmd(')');.}........private.funct
efec0 69 6f 6e 20 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 ion.buildPathsFiltering(Command.
efee0 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 2c 20 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 6e $command,.$dir,.array.$paths,.$n
eff00 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 70 ot.=.false).{.if.(0.===.count($p
eff20 61 74 68 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 aths)).{.return;.}..$command->ad
eff40 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 27 d($not.?.'-not'.:.null)->cmd('('
eff60 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 69 20 3d 3e 20 24 70 61 );..foreach.($paths.as.$i.=>.$pa
eff80 74 68 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 th).{.$expr.=.Expression::create
effa0 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 20 ($path);....if.($expr->isGlob().
effc0 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 6c &&.$expr->getGlob()->isExpandabl
effe0 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 e()).{.$expr.=.Expression::creat
f0000 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c 73 e($expr->getGlob()->toRegex(fals
f0020 65 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 29 20 e));.}....if.($expr->isRegex()).
f0040 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 65 74 52 65 67 65 78 28 29 3b 0a 24 72 {.$regex.=.$expr->getRegex();.$r
f0060 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 46 6c egex->prepend($regex->hasStartFl
f0080 61 67 28 29 20 3f 20 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 29 2e 44 49 52 45 43 54 4f 52 ag().?.preg_quote($dir).DIRECTOR
f00a0 59 5f 53 45 50 41 52 41 54 4f 52 20 3a 20 27 2e 2a 27 29 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 Y_SEPARATOR.:.'.*')->setEndJoker
f00c0 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 29 29 3b 0a 7d 20 65 6c 73 65 20 (!$regex->hasEndFlag());.}.else.
f00e0 7b 0a 24 65 78 70 72 2d 3e 70 72 65 70 65 6e 64 28 27 2a 27 29 2d 3e 61 70 70 65 6e 64 28 27 2a {.$expr->prepend('*')->append('*
f0100 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 ');.}..$command.->add($i.>.0.?.'
f0120 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 -or'.:.null).->add($expr->isRege
f0140 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 x().?.($expr->isCaseSensitive().
f0160 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 72 ?.'-regex'.:.'-iregex').:.($expr
f0180 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 70 61 74 68 27 20 3a 20 ->isCaseSensitive().?.'-path'.:.
f01a0 27 2d 69 70 61 74 68 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 '-ipath').).->arg($expr->renderP
f01c0 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 29 attern());.}..$command->cmd(')')
f01e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 ;.}......private.function.buildS
f0200 69 7a 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 izesFiltering(Command.$command,.
f0220 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 69 7a 65 73 20 array.$sizes).{.foreach.($sizes.
f0240 61 73 20 24 69 20 3d 3e 20 24 73 69 7a 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 as.$i.=>.$size).{.$command->add(
f0260 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 73 77 69 74 63 68 $i.>.0.?.'-and'.:.null);..switch
f0280 20 28 24 73 69 7a 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 .($size->getOperator()).{.case.'
f02a0 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 28 24 73 <=':.$command->add('-size.-'.($s
f02c0 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 61 ize->getTarget().+.1).'c');.brea
f02e0 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 k;.case.'>=':.$command->add('-si
f0300 7a 65 20 2b 27 2e 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 2e 27 ze.+'.($size->getTarget().-.1).'
f0320 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e c');.break;.case.'>':.$command->
f0340 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 add('-size.+'.$size->getTarget()
f0360 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 6e .'c');.break;.case.'!=':.$comman
f0380 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 d->add('-size.-'.$size->getTarge
f03a0 74 28 29 2e 27 63 27 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b t().'c');.$command->add('-size.+
f03c0 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b '.$size->getTarget().'c');.break
f03e0 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 ;.case.'<':.default:.$command->a
f0400 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e dd('-size.-'.$size->getTarget().
f0420 27 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 'c');.}.}.}......private.functio
f0440 6e 20 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 n.buildDatesFiltering(Command.$c
f0460 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 ommand,.array.$dates).{.foreach.
f0480 28 24 64 61 74 65 73 20 61 73 20 24 69 20 3d 3e 20 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d 61 ($dates.as.$i.=>.$date).{.$comma
f04a0 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b nd->add($i.>.0.?.'-and'.:.null);
f04c0 0a 0a 24 6d 69 6e 73 20 3d 20 28 69 6e 74 29 20 72 6f 75 6e 64 28 28 74 69 6d 65 28 29 2d 24 64 ..$mins.=.(int).round((time()-$d
f04e0 61 74 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 20 ate->getTarget())./.60);..if.(0.
f0500 3e 20 24 6d 69 6e 73 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d 6d >.$mins).{...$command->add('.-mm
f0520 69 6e 20 2d 30 27 29 3b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 64 in.-0');...return;.}..switch.($d
f0540 61 74 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a ate->getOperator()).{.case.'<=':
f0560 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 28 24 6d 69 6e 73 20 .$command->add('-mmin.+'.($mins.
f0580 2d 20 31 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e -.1));.break;.case.'>=':.$comman
f05a0 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a 62 d->add('-mmin.-'.($mins.+.1));.b
f05c0 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d reak;.case.'>':.$command->add('-
f05e0 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 mmin.-'.$mins);.break;.case.'!='
f0600 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 2e :.$command->add('-mmin.+'.$mins.
f0620 27 20 2d 6f 72 20 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 '.-or.-mmin.-'.$mins);.break;.ca
f0640 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 se.'<':.default:.$command->add('
f0660 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 -mmin.+'.$mins);.}.}.}........pr
f0680 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 6f 72 74 69 6e 67 28 43 6f 6d 6d ivate.function.buildSorting(Comm
f06a0 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 and.$command,.$sort).{.$this->bu
f06c0 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 ildFormatSorting($command,.$sort
f06e0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e );.}......abstract.protected.fun
f0700 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 ction.buildFormatSorting(Command
f0720 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 .$command,.$sort);.......abstrac
f0740 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e t.protected.function.buildConten
f0760 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 tFiltering(Command.$command,.arr
f0780 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c ay.$contains,.$not.=.false);.}.<
f07a0 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 ?php...........namespace.Symfony
f07c0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 \Component\Finder\Adapter;..use.
f07e0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f Symfony\Component\Finder\Iterato
f0800 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 70 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 r;.......class.PhpAdapter.extend
f0820 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s.AbstractAdapter.{....public.fu
f0840 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a 7b nction.searchInDirectory($dir).{
f0860 0a 24 66 6c 61 67 73 20 3d 20 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 .$flags.=.\RecursiveDirectoryIte
f0880 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6f rator::SKIP_DOTS;..if.($this->fo
f08a0 6c 6c 6f 77 4c 69 6e 6b 73 29 20 7b 0a 24 66 6c 61 67 73 20 7c 3d 20 5c 52 65 63 75 72 73 69 76 llowLinks).{.$flags.|=.\Recursiv
f08c0 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 3a 3a 46 4f 4c 4c 4f 57 5f 53 59 4d 4c 49 eDirectoryIterator::FOLLOW_SYMLI
f08e0 4e 4b 53 3b 0a 7d 0a 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 NKS;.}..$iterator.=.new.\Recursi
f0900 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 0a 6e 65 77 20 49 74 65 72 61 74 6f 72 veIteratorIterator(.new.Iterator
f0920 5c 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 \RecursiveDirectoryIterator($dir
f0940 2c 20 24 66 6c 61 67 73 2c 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c ,.$flags,.$this->ignoreUnreadabl
f0960 65 44 69 72 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 eDirs),.\RecursiveIteratorIterat
f0980 6f 72 3a 3a 53 45 4c 46 5f 46 49 52 53 54 0a 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 69 or::SELF_FIRST.);..if.($this->mi
f09a0 6e 44 65 70 74 68 20 3e 20 30 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3c 20 nDepth.>.0.||.$this->maxDepth.<.
f09c0 50 48 50 5f 49 4e 54 5f 4d 41 58 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 PHP_INT_MAX).{.$iterator.=.new.I
f09e0 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 terator\DepthRangeFilterIterator
f0a00 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 2c 20 24 74 68 ($iterator,.$this->minDepth,.$th
f0a20 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f 64 is->maxDepth);.}..if.($this->mod
f0a40 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 e).{.$iterator.=.new.Iterator\Fi
f0a60 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 leTypeFilterIterator($iterator,.
f0a80 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c $this->mode);.}..if.($this->excl
f0aa0 75 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c ude).{.$iterator.=.new.Iterator\
f0ac0 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 ExcludeDirectoryFilterIterator($
f0ae0 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 iterator,.$this->exclude);.}..if
f0b00 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 .($this->names.||.$this->notName
f0b20 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 s).{.$iterator.=.new.Iterator\Fi
f0b40 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 lenameFilterIterator($iterator,.
f0b60 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a $this->names,.$this->notNames);.
f0b80 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d }..if.($this->contains.||.$this-
f0ba0 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 >notContains).{.$iterator.=.new.
f0bc0 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 Iterator\FilecontentFilterIterat
f0be0 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 or($iterator,.$this->contains,.$
f0c00 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 this->notContains);.}..if.($this
f0c20 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 ->sizes).{.$iterator.=.new.Itera
f0c40 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 tor\SizeRangeFilterIterator($ite
f0c60 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 rator,.$this->sizes);.}..if.($th
f0c80 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 is->dates).{.$iterator.=.new.Ite
f0ca0 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 rator\DateRangeFilterIterator($i
f0cc0 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 terator,.$this->dates);.}..if.($
f0ce0 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 this->filters).{.$iterator.=.new
f0d00 20 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 .Iterator\CustomFilterIterator($
f0d20 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 iterator,.$this->filters);.}..if
f0d40 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 .($this->sort).{.$iteratorAggreg
f0d60 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 ate.=.new.Iterator\SortableItera
f0d80 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 tor($iterator,.$this->sort);.$it
f0da0 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 erator.=.$iteratorAggregate->get
f0dc0 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 68 73 20 Iterator();.}..if.($this->paths.
f0de0 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 ||.$this->notPaths).{.$iterator.
f0e00 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f =.new.Iterator\PathFilterIterato
f0e20 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 73 2c 20 24 74 68 69 73 r($iterator,.$this->paths,.$this
f0e40 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 ->notPaths);.}..return.$iterator
f0e60 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 ;.}.....public.function.getName(
f0e80 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 68 70 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ).{.return.'php';.}.....protecte
f0ea0 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 d.function.canBeUsed().{.return.
f0ec0 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 true;.}.}.<?php...........namesp
f0ee0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a ace.Symfony\Component\Finder;...
f0f00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a .....................class.Glob.
f0f20 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f {..........public.static.functio
f0f40 6e 20 74 6f 52 65 67 65 78 28 24 67 6c 6f 62 2c 20 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 n.toRegex($glob,.$strictLeadingD
f0f60 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 ot.=.true,.$strictWildcardSlash.
f0f80 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 =.true).{.$firstByte.=.true;.$es
f0fa0 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a caping.=.false;.$inCurlies.=.0;.
f0fc0 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 $regex.=.'';.$sizeGlob.=.strlen(
f0fe0 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 $glob);.for.($i.=.0;.$i.<.$sizeG
f1000 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 lob;.$i++).{.$car.=.$glob[$i];.i
f1020 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 f.($firstByte).{.if.($strictLead
f1040 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 ingDot.&&.'.'.!==.$car).{.$regex
f1060 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d ..=.'(?=[^\.])';.}..$firstByte.=
f1080 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 .false;.}..if.('/'.===.$car).{.$
f10a0 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d firstByte.=.true;.}..if.('.'.===
f10c0 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d .$car.||.'('.===.$car.||.')'.===
f10e0 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d .$car.||.'|'.===.$car.||.'+'.===
f1100 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d .$car.||.'^'.===.$car.||.'$'.===
f1120 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 .$car).{.$regex..=."\\$car";.}.e
f1140 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d lseif.('*'.===.$car).{.$regex..=
f1160 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c .$escaping.?.'\\*'.:.($strictWil
f1180 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 dcardSlash.?.'[^/]*'.:.'.*');.}.
f11a0 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e elseif.('?'.===.$car).{.$regex..
f11c0 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 =.$escaping.?.'\\?'.:.($strictWi
f11e0 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 ldcardSlash.?.'[^/]'.:.'.');.}.e
f1200 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d lseif.('{'.===.$car).{.$regex..=
f1220 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 .$escaping.?.'\\{'.:.'(';.if.(!$
f1240 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c escaping).{.++$inCurlies;.}.}.el
f1260 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 seif.('}'.===.$car.&&.$inCurlies
f1280 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 ).{.$regex..=.$escaping.?.'}'.:.
f12a0 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c ')';.if.(!$escaping).{.--$inCurl
f12c0 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 ies;.}.}.elseif.(','.===.$car.&&
f12e0 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 .$inCurlies).{.$regex..=.$escapi
f1300 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d ng.?.','.:.'|';.}.elseif.('\\'.=
f1320 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 ==.$car).{.if.($escaping).{.$reg
f1340 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b ex..=.'\\\\';.$escaping.=.false;
f1360 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 .}.else.{.$escaping.=.true;.}..c
f1380 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 ontinue;.}.else.{.$regex..=.$car
f13a0 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e ;.}.$escaping.=.false;.}..return
f13c0 20 27 23 5e 27 2e 24 72 65 67 65 78 2e 27 24 23 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a .'#^'.$regex.'$#';.}.}.<?php....
f13e0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
f1400 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nt\Finder\Iterator;.......class.
f1420 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 DepthRangeFilterIterator.extends
f1440 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 .FilterIterator.{.private.$minDe
f1460 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e pth.=.0;.........public.function
f1480 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 .__construct(\RecursiveIteratorI
f14a0 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 terator.$iterator,.$minDepth.=.0
f14c0 2c 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 0a 7b 0a 24 74 68 ,.$maxDepth.=.PHP_INT_MAX).{.$th
f14e0 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 6d 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 is->minDepth.=.$minDepth;.$itera
f1500 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 74 68 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3d 3d 3d tor->setMaxDepth(PHP_INT_MAX.===
f1520 20 24 6d 61 78 44 65 70 74 68 20 3f 20 2d 31 20 3a 20 24 6d 61 78 44 65 70 74 68 29 3b 0a 0a 70 .$maxDepth.?.-1.:.$maxDepth);..p
f1540 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d arent::__construct($iterator);.}
f1560 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a .......public.function.accept().
f1580 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 {.return.$this->getInnerIterator
f15a0 28 29 2d 3e 67 65 74 44 65 70 74 68 28 29 20 3e 3d 20 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 ()->getDepth().>=.$this->minDept
f15c0 68 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 h;.}.}.<?php...........namespace
f15e0 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 .Symfony\Component\Finder\Iterat
f1600 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 or;.......class.SortableIterator
f1620 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 0a 7b .implements.\IteratorAggregate.{
f1640 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 .const.SORT_BY_NAME.=.1;.const.S
f1660 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f 41 ORT_BY_TYPE.=.2;.const.SORT_BY_A
f1680 43 43 45 53 53 45 44 5f 54 49 4d 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f CCESSED_TIME.=.3;.const.SORT_BY_
f16a0 43 48 41 4e 47 45 44 5f 54 49 4d 45 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 53 4f 52 54 5f 42 59 5f CHANGED_TIME.=.4;.const.SORT_BY_
f16c0 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 20 3d 20 35 3b 0a 0a 70 72 69 76 61 74 65 20 24 69 74 65 MODIFIED_TIME.=.5;..private.$ite
f16e0 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 24 73 6f 72 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 rator;.private.$sort;..........p
f1700 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 54 72 61 76 ublic.function.__construct(\Trav
f1720 65 72 73 61 62 6c 65 20 24 69 74 65 72 61 74 6f 72 2c 20 24 73 6f 72 74 29 0a 7b 0a 24 74 68 69 ersable.$iterator,.$sort).{.$thi
f1740 73 2d 3e 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 0a 69 66 20 28 73 65 s->iterator.=.$iterator;..if.(se
f1760 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 lf::SORT_BY_NAME.===.$sort).{.$t
f1780 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a his->sort.=.function.($a,.$b).{.
f17a0 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c return.strcmp($a->getRealpath(),
f17c0 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 .$b->getRealpath());.};.}.elseif
f17e0 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 .(self::SORT_BY_TYPE.===.$sort).
f1800 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 {.$this->sort.=.function.($a,.$b
f1820 29 20 7b 0a 69 66 20 28 24 61 2d 3e 69 73 44 69 72 28 29 20 26 26 20 24 62 2d 3e 69 73 46 69 6c ).{.if.($a->isDir().&&.$b->isFil
f1840 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 61 2d 3e e()).{.return.-1;.}.elseif.($a->
f1860 69 73 46 69 6c 65 28 29 20 26 26 20 24 62 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 65 74 75 72 isFile().&&.$b->isDir()).{.retur
f1880 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 2d 3e 67 65 74 52 65 61 n.1;.}..return.strcmp($a->getRea
f18a0 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 29 3b 0a 7d 3b 0a lpath(),.$b->getRealpath());.};.
f18c0 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 }.elseif.(self::SORT_BY_ACCESSED
f18e0 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d _TIME.===.$sort).{.$this->sort.=
f1900 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 2d .function.($a,.$b).{.return.($a-
f1920 3e 67 65 74 41 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 41 54 69 6d 65 28 29 29 3b 0a 7d >getATime().-.$b->getATime());.}
f1940 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 ;.}.elseif.(self::SORT_BY_CHANGE
f1960 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 D_TIME.===.$sort).{.$this->sort.
f1980 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 24 61 =.function.($a,.$b).{.return.($a
f19a0 2d 3e 67 65 74 43 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 43 54 69 6d 65 28 29 29 3b 0a ->getCTime().-.$b->getCTime());.
f19c0 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 };.}.elseif.(self::SORT_BY_MODIF
f19e0 49 45 44 5f 54 49 4d 45 20 3d 3d 3d 20 24 73 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 IED_TIME.===.$sort).{.$this->sor
f1a00 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 7b 0a 72 65 74 75 72 6e 20 28 t.=.function.($a,.$b).{.return.(
f1a20 24 61 2d 3e 67 65 74 4d 54 69 6d 65 28 29 20 2d 20 24 62 2d 3e 67 65 74 4d 54 69 6d 65 28 29 29 $a->getMTime().-.$b->getMTime())
f1a40 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 73 6f 72 74 ;.};.}.elseif.(is_callable($sort
f1a60 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a 7d 20 65 6c 73 65 )).{.$this->sort.=.$sort;.}.else
f1a80 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 .{.throw.new.\InvalidArgumentExc
f1aa0 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 20 74 61 6b eption('The.SortableIterator.tak
f1ac0 65 73 20 61 20 50 48 50 20 63 61 6c 6c 61 62 6c 65 20 6f 72 20 61 20 76 61 6c 69 64 20 62 75 69 es.a.PHP.callable.or.a.valid.bui
f1ae0 6c 74 2d 69 6e 20 73 6f 72 74 20 61 6c 67 6f 72 69 74 68 6d 20 61 73 20 61 6e 20 61 72 67 75 6d lt-in.sort.algorithm.as.an.argum
f1b00 65 6e 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ent.');.}.}..public.function.get
f1b20 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 61 79 20 3d 20 69 74 65 72 61 74 6f 72 5f 74 Iterator().{.$array.=.iterator_t
f1b40 6f 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 2c 20 74 72 75 65 29 3b 0a o_array($this->iterator,.true);.
f1b60 75 61 73 6f 72 74 28 24 61 72 72 61 79 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 0a 72 65 uasort($array,.$this->sort);..re
f1b80 74 75 72 6e 20 6e 65 77 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 61 72 72 61 79 29 3b turn.new.\ArrayIterator($array);
f1ba0 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 .}.}.<?php...........namespace.S
f1bc0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 ymfony\Component\Finder\Iterator
f1be0 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 6c 74 65 72 ;........class.FilecontentFilter
f1c00 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c Iterator.extends.MultiplePcreFil
f1c20 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 terIterator.{......public.functi
f1c40 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 on.accept().{.if.(!$this->matchR
f1c60 65 67 65 78 70 73 20 26 26 20 21 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 egexps.&&.!$this->noMatchRegexps
f1c80 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 ).{.return.true;.}..$fileinfo.=.
f1ca0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 66 69 6c 65 69 6e 66 6f $this->current();..if.($fileinfo
f1cc0 2d 3e 69 73 44 69 72 28 29 20 7c 7c 20 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 52 65 61 64 61 ->isDir().||.!$fileinfo->isReada
f1ce0 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 ble()).{.return.false;.}..$conte
f1d00 6e 74 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 3b 0a 69 nt.=.$fileinfo->getContents();.i
f1d20 66 20 28 21 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a f.(!$content).{.return.false;.}.
f1d40 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 ...foreach.($this->noMatchRegexp
f1d60 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 s.as.$regex).{.if.(preg_match($r
f1d80 65 67 65 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b egex,.$content)).{.return.false;
f1da0 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 .}.}....$match.=.true;.if.($this
f1dc0 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 ->matchRegexps).{.$match.=.false
f1de0 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 ;.foreach.($this->matchRegexps.a
f1e00 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 s.$regex).{.if.(preg_match($rege
f1e20 78 2c 20 24 63 6f 6e 74 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d x,.$content)).{.return.true;.}.}
f1e40 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f .}..return.$match;.}.........pro
f1e60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a tected.function.toRegex($str).{.
f1e80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 return.$this->isRegex($str).?.$s
f1ea0 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 tr.:.'/'.preg_quote($str,.'/').'
f1ec0 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 /';.}.}.<?php...........namespac
f1ee0 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 e.Symfony\Component\Finder\Itera
f1f00 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 tor;..use.Symfony\Component\Find
f1f20 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 er\SplFileInfo;.......class.File
f1f40 50 61 74 68 73 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 41 72 72 61 79 49 74 65 72 PathsIterator.extends.\ArrayIter
f1f60 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 3b 0a 0a 0a 0a 0a ator.{....private.$baseDir;.....
f1f80 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 4c 65 6e 67 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 private.$baseDirLength;.....priv
f1fa0 61 74 65 20 24 73 75 62 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 61 ate.$subPath;.....private.$subPa
f1fc0 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a thname;.....private.$current;...
f1fe0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ...public.function.__construct(a
f2000 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 62 61 73 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e rray.$paths,.$baseDir).{.$this->
f2020 62 61 73 65 44 69 72 20 3d 20 24 62 61 73 65 44 69 72 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 baseDir.=.$baseDir;.$this->baseD
f2040 69 72 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 62 61 73 65 44 69 72 29 3b 0a 0a 70 61 irLength.=.strlen($baseDir);..pa
f2060 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 68 73 29 3b 0a 7d 0a 0a 0a 0a rent::__construct($paths);.}....
f2080 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 61 6c 6c 28 24 6e 61 6d 65 ....public.function.__call($name
f20a0 2c 20 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 6c ,.array.$arguments).{.return.cal
f20c0 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 l_user_func_array(array($this->c
f20e0 75 72 72 65 6e 74 28 29 2c 20 24 6e 61 6d 65 29 2c 20 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d urrent(),.$name),.$arguments);.}
f2100 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 .......public.function.current()
f2120 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a .{.return.$this->current;.}.....
f2140 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 public.function.key().{.return.$
f2160 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 3b 0a 7d 0a this->current->getPathname();.}.
f2180 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 70 61 72 65 6e 74 .public.function.next().{.parent
f21a0 3a 3a 6e 65 78 74 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 ::next();.$this->buildProperties
f21c0 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a ();.}..public.function.rewind().
f21e0 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 {.parent::rewind();.$this->build
f2200 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 Properties();.}.....public.funct
f2220 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getSubPath().{.return.$this-
f2240 3e 73 75 62 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 >subPath;.}.....public.function.
f2260 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d getSubPathname().{.return.$this-
f2280 3e 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f >subPathname;.}..private.functio
f22a0 6e 20 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 0a 7b 0a 24 61 62 73 6f 6c 75 74 65 50 n.buildProperties().{.$absoluteP
f22c0 61 74 68 20 3d 20 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 74 ath.=.parent::current();..if.($t
f22e0 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 his->baseDir.===.substr($absolut
f2300 65 50 61 74 68 2c 20 30 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 29 ePath,.0,.$this->baseDirLength))
f2320 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 6c 74 72 69 6d 28 73 75 .{.$this->subPathname.=.ltrim(su
f2340 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 bstr($absolutePath,.$this->baseD
f2360 69 72 4c 65 6e 67 74 68 29 2c 20 27 2f 5c 5c 27 29 3b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d irLength),.'/\\');.$dir.=.dirnam
f2380 65 28 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 73 75 e($this->subPathname);.$this->su
f23a0 62 50 61 74 68 20 3d 20 27 2e 27 20 3d 3d 3d 20 24 64 69 72 20 3f 20 27 27 20 3a 20 24 64 69 72 bPath.=.'.'.===.$dir.?.''.:.$dir
f23c0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 20 3d 20 24 74 68 69 ;.}.else.{.$this->subPath.=.$thi
f23e0 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 s->subPathname.=.'';.}..$this->c
f2400 75 72 72 65 6e 74 20 3d 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a urrent.=.new.SplFileInfo(parent:
f2420 3a 63 75 72 72 65 6e 74 28 29 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 2c 20 24 74 68 69 :current(),.$this->subPath,.$thi
f2440 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a s->subPathname);.}.}.<?php......
f2460 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 .....namespace.Symfony\Component
f2480 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \Finder\Iterator;..use.Symfony\C
f24a0 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 omponent\Finder\Comparator\Numbe
f24c0 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 6e rComparator;.......class.SizeRan
f24e0 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 geFilterIterator.extends.FilterI
f2500 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d terator.{.private.$comparators.=
f2520 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .array();........public.function
f2540 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 .__construct(\Iterator.$iterator
f2560 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 ,.array.$comparators).{.$this->c
f2580 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 omparators.=.$comparators;..pare
f25a0 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a nt::__construct($iterator);.}...
f25c0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 ....public.function.accept().{.$
f25e0 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 fileinfo.=.$this->current();.if.
f2600 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 (!$fileinfo->isFile()).{.return.
f2620 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 73 69 7a 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e true;.}..$filesize.=.$fileinfo->
f2640 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 getSize();.foreach.($this->compa
f2660 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 rators.as.$compare).{.if.(!$comp
f2680 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 73 69 7a 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 are->test($filesize)).{.return.f
f26a0 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 alse;.}.}..return.true;.}.}.<?ph
f26c0 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f p...........namespace.Symfony\Co
f26e0 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 mponent\Finder\Iterator;.......c
f2700 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 lass.ExcludeDirectoryFilterItera
f2720 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 tor.extends.FilterIterator.{.pri
f2740 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a vate.$patterns.=.array();.......
f2760 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 .public.function.__construct(\It
f2780 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f erator.$iterator,.array.$directo
f27a0 72 69 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 ries).{.foreach.($directories.as
f27c0 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b 5d .$directory).{.$this->patterns[]
f27e0 20 3d 20 27 23 28 5e 7c 2f 29 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f 72 .=.'#(^|/)'.preg_quote($director
f2800 79 2c 20 27 23 27 29 2e 27 28 2f 7c 24 29 23 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 y,.'#').'(/|$)#';.}..parent::__c
f2820 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 onstruct($iterator);.}.......pub
f2840 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 70 61 74 68 20 3d 20 lic.function.accept().{.$path.=.
f2860 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 20 3f 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 $this->isDir().?.$this->current(
f2880 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 20 3a 20 24 74 68 69 73 )->getRelativePathname().:.$this
f28a0 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 3b 0a ->current()->getRelativePath();.
f28c0 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b $path.=.strtr($path,.'\\',.'/');
f28e0 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 .foreach.($this->patterns.as.$pa
f2900 74 74 65 72 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e ttern).{.if.(preg_match($pattern
f2920 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 ,.$path)).{.return.false;.}.}..r
f2940 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a eturn.true;.}.}.<?php...........
f2960 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 namespace.Symfony\Component\Find
f2980 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c er\Iterator;.........abstract.cl
f29a0 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 ass.FilterIterator.extends.\Filt
f29c0 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 erIterator.{.......public.functi
f29e0 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 3b on.rewind().{.$iterator.=.$this;
f2a00 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 4f 75 .while.($iterator.instanceof.\Ou
f2a20 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 3d 20 terIterator).{.$innerIterator.=.
f2a40 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 3b 0a 0a $iterator->getInnerIterator();..
f2a60 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 if.($innerIterator.instanceof.Re
f2a80 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 29 20 7b 0a 69 66 20 28 cursiveDirectoryIterator).{.if.(
f2aa0 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 69 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 $innerIterator->isRewindable()).
f2ac0 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 6e 6e 65 72 {.$innerIterator->next();.$inner
f2ae0 49 74 65 72 61 74 6f 72 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 Iterator->rewind();.}.}.elseif.(
f2b00 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 20 69 6e $iterator->getInnerIterator().in
f2b20 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 29 20 7b 0a stanceof.\FilesystemIterator).{.
f2b40 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 6e $iterator->getInnerIterator()->n
f2b60 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 ext();.$iterator->getInnerIterat
f2b80 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 or()->rewind();.}.$iterator.=.$i
f2ba0 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a terator->getInnerIterator();.}..
f2bc0 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a parent::rewind();.}.}.<?php.....
f2be0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
f2c00 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c t\Finder\Iterator;..use.Symfony\
f2c20 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 Component\Finder\Expression\Expr
f2c40 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c ession;.......abstract.class.Mul
f2c60 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 tiplePcreFilterIterator.extends.
f2c80 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 FilterIterator.{.protected.$matc
f2ca0 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e hRegexps.=.array();.protected.$n
f2cc0 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a oMatchRegexps.=.array();........
f2ce0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 .public.function.__construct(\It
f2d00 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 6d 61 74 63 68 50 61 erator.$iterator,.array.$matchPa
f2d20 74 74 65 72 6e 73 2c 20 61 72 72 61 79 20 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a tterns,.array.$noMatchPatterns).
f2d40 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 {.foreach.($matchPatterns.as.$pa
f2d60 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d ttern).{.$this->matchRegexps[].=
f2d80 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 66 6f .$this->toRegex($pattern);.}..fo
f2da0 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 reach.($noMatchPatterns.as.$patt
f2dc0 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 5b 5d 20 3d ern).{.$this->noMatchRegexps[].=
f2de0 20 24 74 68 69 73 2d 3e 74 6f 52 65 67 65 78 28 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 70 61 .$this->toRegex($pattern);.}..pa
f2e00 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a rent::__construct($iterator);.}.
f2e20 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 ........protected.function.isReg
f2e40 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 ex($str).{.return.Expression::cr
f2e60 65 61 74 65 28 24 73 74 72 29 2d 3e 69 73 52 65 67 65 78 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a eate($str)->isRegex();.}........
f2e80 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 .abstract.protected.function.toR
f2ea0 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 egex($str);.}.<?php...........na
f2ec0 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 mespace.Symfony\Component\Finder
f2ee0 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d \Iterator;..........class.Custom
f2f00 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 FilterIterator.extends.FilterIte
f2f20 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 rator.{.private.$filters.=.array
f2f40 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 ();..........public.function.__c
f2f60 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 onstruct(\Iterator.$iterator,.ar
f2f80 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 ray.$filters).{.foreach.($filter
f2fa0 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 s.as.$filter).{.if.(!is_callable
f2fc0 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 ($filter)).{.throw.new.\InvalidA
f2fe0 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 rgumentException('Invalid.PHP.ca
f3000 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 llback.');.}.}.$this->filters.=.
f3020 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 $filters;..parent::__construct($
f3040 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 iterator);.}.......public.functi
f3060 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d on.accept().{.$fileinfo.=.$this-
f3080 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c >current();..foreach.($this->fil
f30a0 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d ters.as.$filter).{.if.(false.===
f30c0 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e .call_user_func($filter,.$filein
f30e0 66 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e fo)).{.return.false;.}.}..return
f3100 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 .true;.}.}.<?php...........names
f3120 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 pace.Symfony\Component\Finder\It
f3140 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 erator;..use.Symfony\Component\F
f3160 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a inder\Expression\Expression;....
f3180 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 ...class.FilenameFilterIterator.
f31a0 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 extends.MultiplePcreFilterIterat
f31c0 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 or.{......public.function.accept
f31e0 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 ().{.$filename.=.$this->current(
f3200 29 2d 3e 67 65 74 46 69 6c 65 6e 61 6d 65 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 )->getFilename();....foreach.($t
f3220 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b his->noMatchRegexps.as.$regex).{
f3240 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d .if.(preg_match($regex,.$filenam
f3260 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 e)).{.return.false;.}.}....$matc
f3280 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 h.=.true;.if.($this->matchRegexp
f32a0 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 s).{.$match.=.false;.foreach.($t
f32c0 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 his->matchRegexps.as.$regex).{.i
f32e0 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 f.(preg_match($regex,.$filename)
f3300 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ).{.return.true;.}.}.}..return.$
f3320 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 match;.}............protected.fu
f3340 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 nction.toRegex($str).{.return.Ex
f3360 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d 3e 67 65 74 52 65 67 65 78 pression::create($str)->getRegex
f3380 28 29 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ()->render();.}.}.<?php.........
f33a0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 ..namespace.Symfony\Component\Fi
f33c0 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 nder\Iterator;..use.Symfony\Comp
f33e0 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 onent\Finder\Comparator\DateComp
f3400 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 61 74 65 52 61 6e 67 65 46 69 6c arator;.......class.DateRangeFil
f3420 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 terIterator.extends.FilterIterat
f3440 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 or.{.private.$comparators.=.arra
f3460 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f y();........public.function.__co
f3480 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 nstruct(\Iterator.$iterator,.arr
f34a0 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 ay.$comparators).{.$this->compar
f34c0 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f ators.=.$comparators;..parent::_
f34e0 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 _construct($iterator);.}.......p
f3500 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 69 ublic.function.accept().{.$filei
f3520 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 66 69 nfo.=.$this->current();..if.(!fi
f3540 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 le_exists($fileinfo->getRealPath
f3560 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 69 6c 65 64 61 74 ())).{.return.false;.}..$filedat
f3580 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 65 61 e.=.$fileinfo->getMTime();.forea
f35a0 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 ch.($this->comparators.as.$compa
f35c0 72 65 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 64 re).{.if.(!$compare->test($filed
f35e0 61 74 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ate)).{.return.false;.}.}..retur
f3600 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 n.true;.}.}.<?php...........name
f3620 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 space.Symfony\Component\Finder\I
f3640 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 70 65 46 69 6c terator;.......class.FileTypeFil
f3660 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 terIterator.extends.FilterIterat
f3680 6f 72 0a 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 or.{.const.ONLY_FILES.=.1;.const
f36a0 20 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 .ONLY_DIRECTORIES.=.2;..private.
f36c0 24 6d 6f 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f $mode;........public.function.__
f36e0 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 construct(\Iterator.$iterator,.$
f3700 6d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 70 61 mode).{.$this->mode.=.$mode;..pa
f3720 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a rent::__construct($iterator);.}.
f3740 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b ......public.function.accept().{
f3760 0a 24 66 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 .$fileinfo.=.$this->current();.i
f3780 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 28 73 f.(self::ONLY_DIRECTORIES.===.(s
f37a0 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 68 69 73 2d 3e 6d elf::ONLY_DIRECTORIES.&.$this->m
f37c0 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 72 ode).&&.$fileinfo->isFile()).{.r
f37e0 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c eturn.false;.}.elseif.(self::ONL
f3800 59 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 26 20 Y_FILES.===.(self::ONLY_FILES.&.
f3820 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 44 69 72 $this->mode).&&.$fileinfo->isDir
f3840 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 ()).{.return.false;.}..return.tr
f3860 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ue;.}.}.<?php...........namespac
f3880 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 e.Symfony\Component\Finder\Itera
f38a0 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 tor;..use.Symfony\Component\Find
f38c0 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 er\Exception\AccessDeniedExcepti
f38e0 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 on;.use.Symfony\Component\Finder
f3900 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 73 \SplFileInfo;.......class.Recurs
f3920 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 65 iveDirectoryIterator.extends.\Re
f3940 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 cursiveDirectoryIterator.{....pr
f3960 69 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 3b 0a 0a 0a 0a ivate.$ignoreUnreadableDirs;....
f3980 0a 70 72 69 76 61 74 65 20 24 72 65 77 69 6e 64 61 62 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .private.$rewindable;...........
f39a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 61 74 public.function.__construct($pat
f39c0 68 2c 20 24 66 6c 61 67 73 2c 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 h,.$flags,.$ignoreUnreadableDirs
f39e0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 6c 66 3a 3a .=.false).{.if.($flags.&.(self::
f3a00 43 55 52 52 45 4e 54 5f 41 53 5f 50 41 54 48 4e 41 4d 45 20 7c 20 73 65 6c 66 3a 3a 43 55 52 52 CURRENT_AS_PATHNAME.|.self::CURR
f3a20 45 4e 54 5f 41 53 5f 53 45 4c 46 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 ENT_AS_SELF)).{.throw.new.\Runti
f3a40 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 69 74 65 72 61 74 6f 72 20 6f 6e 6c 79 20 meException('This.iterator.only.
f3a60 73 75 70 70 6f 72 74 20 72 65 74 75 72 6e 69 6e 67 20 63 75 72 72 65 6e 74 20 61 73 20 66 69 6c support.returning.current.as.fil
f3a80 65 69 6e 66 6f 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 einfo.');.}..parent::__construct
f3aa0 28 24 70 61 74 68 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e ($path,.$flags);.$this->ignoreUn
f3ac0 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 readableDirs.=.$ignoreUnreadable
f3ae0 44 69 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 75 Dirs;.}.......public.function.cu
f3b00 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f rrent().{.return.new.SplFileInfo
f3b20 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 (parent::current()->getPathname(
f3b40 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e 67 ),.$this->getSubPath(),.$this->g
f3b60 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 etSubPathname());.}.......public
f3b80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a 74 72 79 20 7b 0a .function.getChildren().{.try.{.
f3ba0 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 68 69 6c 64 72 65 6e 28 $children.=.parent::getChildren(
f3bc0 29 3b 0a 0a 69 66 20 28 24 63 68 69 6c 64 72 65 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c );..if.($children.instanceof.sel
f3be0 66 29 20 7b 0a 0a 20 24 63 68 69 6c 64 72 65 6e 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 f).{...$children->ignoreUnreadab
f3c00 6c 65 44 69 72 73 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 leDirs.=.$this->ignoreUnreadable
f3c20 44 69 72 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 20 63 61 74 Dirs;.}..return.$children;.}.cat
f3c40 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 ch.(\UnexpectedValueException.$e
f3c60 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 ).{.if.($this->ignoreUnreadableD
f3c80 69 72 73 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 41 72 irs).{...return.new.\RecursiveAr
f3ca0 72 61 79 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 rayIterator(array());.}.else.{.t
f3cc0 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 28 24 hrow.new.AccessDeniedException($
f3ce0 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 e->getMessage(),.$e->getCode(),.
f3d00 24 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 $e);.}.}.}.....public.function.r
f3d20 65 77 69 6e 64 28 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 ewind().{.if.(false.===.$this->i
f3d40 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 70 61 sRewindable()).{.return;.}....pa
f3d60 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b rent::next();..parent::rewind();
f3d80 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 77 69 6e .}.......public.function.isRewin
f3da0 64 61 62 6c 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 65 dable().{.if.(null.!==.$this->re
f3dc0 77 69 6e 64 61 62 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 windable).{.return.$this->rewind
f3de0 61 62 6c 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 74 72 65 61 6d 20 3d able;.}..if.(false.!==.$stream.=
f3e00 20 40 6f 70 65 6e 64 69 72 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 28 29 29 29 20 7b 0a 24 .@opendir($this->getPath())).{.$
f3e20 69 6e 66 6f 73 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 6d 65 74 61 5f 64 61 74 61 28 24 73 74 infos.=.stream_get_meta_data($st
f3e40 72 65 61 6d 29 3b 0a 63 6c 6f 73 65 64 69 72 28 24 73 74 72 65 61 6d 29 3b 0a 0a 69 66 20 28 24 ream);.closedir($stream);..if.($
f3e60 69 6e 66 6f 73 5b 27 73 65 65 6b 61 62 6c 65 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 infos['seekable']).{.return.$thi
f3e80 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 s->rewindable.=.true;.}.}..retur
f3ea0 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d n.$this->rewindable.=.false;.}.}
f3ec0 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f .<?php...........namespace.Symfo
f3ee0 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a ny\Component\Finder\Iterator;...
f3f00 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 .....class.PathFilterIterator.ex
f3f20 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 tends.MultiplePcreFilterIterator
f3f40 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 .{......public.function.accept()
f3f60 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d .{.$filename.=.$this->current()-
f3f80 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 27 5c 5c >getRelativePathname();..if.('\\
f3fa0 27 20 3d 3d 3d 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 7b 0a 24 66 69 '.===.DIRECTORY_SEPARATOR).{.$fi
f3fc0 6c 65 6e 61 6d 65 20 3d 20 73 74 72 74 72 28 24 66 69 6c 65 6e 61 6d 65 2c 20 27 5c 5c 27 2c 20 lename.=.strtr($filename,.'\\',.
f3fe0 27 2f 27 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 '/');.}....foreach.($this->noMat
f4000 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f chRegexps.as.$regex).{.if.(preg_
f4020 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 match($regex,.$filename)).{.retu
f4040 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a rn.false;.}.}....$match.=.true;.
f4060 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 if.($this->matchRegexps).{.$matc
f4080 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 h.=.false;.foreach.($this->match
f40a0 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 Regexps.as.$regex).{.if.(preg_ma
f40c0 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e tch($regex,.$filename)).{.return
f40e0 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a .true;.}.}.}..return.$match;.}..
f4100 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ..............protected.function
f4120 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 .toRegex($str).{.return.$this->i
f4140 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 2f 27 2e 70 72 65 67 5f 71 sRegex($str).?.$str.:.'/'.preg_q
f4160 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a uote($str,.'/').'/';.}.}.<?php..
f4180 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
f41a0 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c nent\Finder\Comparator;.......cl
f41c0 61 73 73 20 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 ass.DateComparator.extends.Compa
f41e0 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f rator.{........public.function._
f4200 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 _construct($test).{.if.(!preg_ma
f4220 74 63 68 28 27 23 5e 5c 73 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 7c 61 66 74 65 72 7c 73 69 tch('#^\s*(==|!=|[<>]=?|after|si
f4240 6e 63 65 7c 62 65 66 6f 72 65 7c 75 6e 74 69 6c 29 3f 5c 73 2a 28 2e 2b 3f 29 5c 73 2a 24 23 69 nce|before|until)?\s*(.+?)\s*$#i
f4260 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ',.$test,.$matches)).{.throw.new
f4280 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e .\InvalidArgumentException(sprin
f42a0 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 tf('Don\'t.understand."%s".as.a.
f42c0 64 61 74 65 20 74 65 73 74 2e 27 2c 20 24 74 65 73 74 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 date.test.',.$test));.}..try.{.$
f42e0 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 65 73 5b 32 5d date.=.new.\DateTime($matches[2]
f4300 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b );.$target.=.$date->format('U');
f4320 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 .}.catch.(\Exception.$e).{.throw
f4340 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 .new.\InvalidArgumentException(s
f4360 70 72 69 6e 74 66 28 27 22 25 73 22 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 64 61 74 65 printf('"%s".is.not.a.valid.date
f4380 2e 27 2c 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 6f 72 20 .',.$matches[2]));.}..$operator.
f43a0 3d 20 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b =.isset($matches[1]).?.$matches[
f43c0 31 5d 20 3a 20 27 3d 3d 27 3b 0a 69 66 20 28 27 73 69 6e 63 65 27 20 3d 3d 3d 20 24 6f 70 65 72 1].:.'==';.if.('since'.===.$oper
f43e0 61 74 6f 72 20 7c 7c 20 27 61 66 74 65 72 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b ator.||.'after'.===.$operator).{
f4400 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3e 27 3b 0a 7d 0a 0a 69 66 20 28 27 75 6e 74 69 6c 27 .$operator.=.'>';.}..if.('until'
f4420 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 20 7c 7c 20 27 62 65 66 6f 72 65 27 20 3d 3d 3d 20 24 .===.$operator.||.'before'.===.$
f4440 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3c 27 3b 0a 7d 0a 0a operator).{.$operator.=.'<';.}..
f4460 24 74 68 69 73 2d 3e 73 65 74 4f 70 65 72 61 74 6f 72 28 24 6f 70 65 72 61 74 6f 72 29 3b 0a 24 $this->setOperator($operator);.$
f4480 74 68 69 73 2d 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 3c 3f this->setTarget($target);.}.}.<?
f44a0 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c php...........namespace.Symfony\
f44c0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a Component\Finder\Comparator;....
f44e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 72 43 ...................class.NumberC
f4500 6f 6d 70 61 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 0a omparator.extends.Comparator.{..
f4520 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ......public.function.__construc
f4540 74 28 24 74 65 73 74 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 t($test).{.if.(!preg_match('#^\s
f4560 2a 28 3d 3d 7c 21 3d 7c 5b 3c 3e 5d 3d 3f 29 3f 5c 73 2a 28 5b 30 2d 39 5c 2e 5d 2b 29 5c 73 2a *(==|!=|[<>]=?)?\s*([0-9\.]+)\s*
f4580 28 5b 6b 6d 67 5d 69 3f 29 3f 5c 73 2a 24 23 69 27 2c 20 24 74 65 73 74 2c 20 24 6d 61 74 63 68 ([kmg]i?)?\s*$#i',.$test,.$match
f45a0 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e es)).{.throw.new.\InvalidArgumen
f45c0 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 44 6f 6e 5c 27 74 20 75 6e 64 65 72 tException(sprintf('Don\'t.under
f45e0 73 74 61 6e 64 20 22 25 73 22 20 61 73 20 61 20 6e 75 6d 62 65 72 20 74 65 73 74 2e 27 2c 20 24 stand."%s".as.a.number.test.',.$
f4600 74 65 73 74 29 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 32 5d test));.}..$target.=.$matches[2]
f4620 3b 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 61 72 67 65 74 29 29 20 7b 0a 74 68 ;.if.(!is_numeric($target)).{.th
f4640 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f row.new.\InvalidArgumentExceptio
f4660 6e 28 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6e 75 6d 62 65 72 20 22 25 73 22 2e 27 n(sprintf('Invalid.number."%s".'
f4680 2c 20 24 74 61 72 67 65 74 29 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 ,.$target));.}.if.(isset($matche
f46a0 73 5b 33 5d 29 29 20 7b 0a 0a 20 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d s[3])).{...switch.(strtolower($m
f46c0 61 74 63 68 65 73 5b 33 5d 29 29 20 7b 0a 63 61 73 65 20 27 6b 27 3a 0a 24 74 61 72 67 65 74 20 atches[3])).{.case.'k':.$target.
f46e0 2a 3d 20 31 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6b 69 27 3a 0a 24 74 61 72 67 *=.1000;.break;.case.'ki':.$targ
f4700 65 74 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 27 3a 0a 24 74 61 et.*=.1024;.break;.case.'m':.$ta
f4720 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 6d 69 rget.*=.1000000;.break;.case.'mi
f4740 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a ':.$target.*=.1024*1024;.break;.
f4760 63 61 73 65 20 27 67 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 30 30 30 30 30 30 30 30 3b case.'g':.$target.*=.1000000000;
f4780 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 67 69 27 3a 0a 24 74 61 72 67 65 74 20 2a 3d 20 31 30 .break;.case.'gi':.$target.*=.10
f47a0 32 34 2a 31 30 32 34 2a 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 24*1024*1024;.break;.}.}..$this-
f47c0 3e 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f >setTarget($target);.$this->setO
f47e0 70 65 72 61 74 6f 72 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 20 3f 20 24 6d 61 perator(isset($matches[1]).?.$ma
f4800 74 63 68 65 73 5b 31 5d 20 3a 20 27 3d 3d 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a tches[1].:.'==');.}.}.<?php.....
f4820 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e ......namespace.Symfony\Componen
f4840 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 t\Finder\Comparator;.......class
f4860 20 43 6f 6d 70 61 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 61 72 67 65 74 3b 0a 70 .Comparator.{.private.$target;.p
f4880 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 0a 0a 0a 0a 0a 0a 70 rivate.$operator.=.'==';.......p
f48a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 74 28 29 0a 7b 0a 72 65 74 ublic.function.getTarget().{.ret
f48c0 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this->target;.}.......publi
f48e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 28 24 74 61 72 67 65 74 29 0a 7b 0a c.function.setTarget($target).{.
f4900 24 74 68 69 73 2d 3e 74 61 72 67 65 74 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a $this->target.=.$target;.}......
f4920 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 6f 72 28 29 0a 7b .public.function.getOperator().{
f4940 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->operator;.}......
f4960 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 65 72 61 74 6f 72 28 24 ...public.function.setOperator($
f4980 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 21 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f operator).{.if.(!$operator).{.$o
f49a0 70 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 perator.=.'==';.}..if.(!in_array
f49c0 28 24 6f 70 65 72 61 74 6f 72 2c 20 61 72 72 61 79 28 27 3e 27 2c 20 27 3c 27 2c 20 27 3e 3d 27 ($operator,.array('>',.'<',.'>='
f49e0 2c 20 27 3c 3d 27 2c 20 27 3d 3d 27 2c 20 27 21 3d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ,.'<=',.'==',.'!='))).{.throw.ne
f4a00 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 w.\InvalidArgumentException(spri
f4a20 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 25 73 22 2e 27 2c 20 24 6f ntf('Invalid.operator."%s".',.$o
f4a40 70 65 72 61 74 6f 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 perator));.}..$this->operator.=.
f4a60 24 6f 70 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $operator;.}.........public.func
f4a80 74 69 6f 6e 20 74 65 73 74 28 24 74 65 73 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 tion.test($test).{.switch.($this
f4aa0 2d 3e 6f 70 65 72 61 74 6f 72 29 20 7b 0a 63 61 73 65 20 27 3e 27 3a 0a 72 65 74 75 72 6e 20 24 ->operator).{.case.'>':.return.$
f4ac0 74 65 73 74 20 3e 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3e 3d 27 3a test.>.$this->target;.case.'>=':
f4ae0 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3e 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a .return.$test.>=.$this->target;.
f4b00 63 61 73 65 20 27 3c 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 3c 20 24 74 68 69 73 2d 3e case.'<':.return.$test.<.$this->
f4b20 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 72 65 74 75 72 6e 20 24 74 65 73 74 20 target;.case.'<=':.return.$test.
f4b40 3c 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 72 65 74 <=.$this->target;.case.'!=':.ret
f4b60 75 72 6e 20 24 74 65 73 74 20 21 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a 0a 72 urn.$test.!=.$this->target;.}..r
f4b80 65 74 75 72 6e 20 24 74 65 73 74 20 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 67 65 74 3b 0a 7d 0a eturn.$test.==.$this->target;.}.
f4ba0 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 }.<?php...........namespace.Symf
f4bc0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a ony\Component\Finder\Exception;.
f4be0 0a 0a 0a 0a 63 6c 61 73 73 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 20 ....class.AccessDeniedException.
f4c00 65 78 74 65 6e 64 73 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f extends.\UnexpectedValueExceptio
f4c20 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 n.{.}.<?php...........namespace.
f4c40 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 Symfony\Component\Finder\Excepti
f4c60 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 on;.....interface.ExceptionInter
f4c80 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 face.{....public.function.getAda
f4ca0 70 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 pter();.}.<?php...........namesp
f4cc0 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 ace.Symfony\Component\Finder\Exc
f4ce0 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 70 65 72 61 74 69 6f 6e 4e 6f 74 50 65 eption;.....class.OperationNotPe
f4d00 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 74 65 72 46 rmitedException.extends.AdapterF
f4d20 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ailureException.{.}.<?php.......
f4d40 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c ....namespace.Symfony\Component\
f4d60 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 Finder\Exception;..use.Symfony\C
f4d80 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 omponent\Finder\Adapter\AdapterI
f4da0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 64 61 70 74 65 72 46 61 69 nterface;.......class.AdapterFai
f4dc0 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 lureException.extends.\RuntimeEx
f4de0 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 ception.implements.ExceptionInte
f4e00 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 64 61 70 74 65 72 3b 0a 0a 0a 0a rface.{....private.$adapter;....
f4e20 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 ...public.function.__construct(A
f4e40 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 6d 65 73 73 61 dapterInterface.$adapter,.$messa
f4e60 67 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 ge.=.null,.\Exception.$previous.
f4e80 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 20 3d 20 24 61 64 61 70 =.null).{.$this->adapter.=.$adap
f4ea0 74 65 72 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 ter;.parent::__construct($messag
f4ec0 65 20 3f 3a 20 27 53 65 61 72 63 68 20 66 61 69 6c 65 64 20 77 69 74 68 20 22 27 2e 24 61 64 61 e.?:.'Search.failed.with."'.$ada
f4ee0 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 22 20 61 64 61 70 74 65 72 2e 27 2c 20 24 70 pter->getName().'".adapter.',.$p
f4f00 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 revious);.}.....public.function.
f4f20 67 65 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 61 getAdapter().{.return.$this->ada
f4f40 70 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 pter;.}.}.<?php...........namesp
f4f60 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 ace.Symfony\Component\Finder\Exc
f4f80 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 eption;..use.Symfony\Component\F
f4fa0 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a inder\Adapter\AdapterInterface;.
f4fc0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 use.Symfony\Component\Finder\She
f4fe0 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 43 6f 6d 6d 61 ll\Command;.....class.ShellComma
f5000 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 41 64 61 70 74 ndFailureException.extends.Adapt
f5020 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 erFailureException.{....private.
f5040 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $command;.......public.function.
f5060 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 __construct(AdapterInterface.$ad
f5080 61 70 74 65 72 2c 20 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 5c 45 78 63 65 70 74 apter,.Command.$command,.\Except
f50a0 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 ion.$previous.=.null).{.$this->c
f50c0 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e ommand.=.$command;.parent::__con
f50e0 73 74 72 75 63 74 28 24 61 64 61 70 74 65 72 2c 20 27 53 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 20 struct($adapter,.'Shell.command.
f5100 66 61 69 6c 65 64 3a 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 6a 6f 69 6e 28 29 2e 27 22 2e 27 failed:."'.$command->join().'".'
f5120 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ,.$previous);.}.....public.funct
f5140 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getCommand().{.return.$this-
f5160 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 34 >command;.}.}.Copyright.(c).2004
f5180 2d 32 30 31 35 20 46 61 62 69 65 6e 20 50 6f 74 65 6e 63 69 65 72 0a 0a 50 65 72 6d 69 73 73 69 -2015.Fabien.Potencier..Permissi
f51a0 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 on.is.hereby.granted,.free.of.ch
f51c0 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 arge,.to.any.person.obtaining.a.
f51e0 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 copy.of.this.software.and.associ
f5200 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 ated.documentation.files.(the."S
f5220 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 oftware"),.to.deal.in.the.Softwa
f5240 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e re.without.restriction,.includin
f5260 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a g.without.limitation.the.rights.
f5280 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 to.use,.copy,.modify,.merge,.pub
f52a0 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e lish,.distribute,.sublicense,.an
f52c0 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 d/or.sell.copies.of.the.Software
f52e0 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 ,.and.to.permit.persons.to.whom.
f5300 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 the.Software.is.furnished.to.do.
f5320 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e so,.subject.to.the.following.con
f5340 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f ditions:..The.above.copyright.no
f5360 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 tice.and.this.permission.notice.
f5380 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 shall.be.included.in.all.copies.
f53a0 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 or.substantial.portions.of.the.S
f53c0 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 oftware...THE.SOFTWARE.IS.PROVID
f53e0 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 ED."AS.IS",.WITHOUT.WARRANTY.OF.
f5400 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e ANY.KIND,.EXPRESS.OR.IMPLIED,.IN
f5420 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 CLUDING.BUT.NOT.LIMITED.TO.THE.W
f5440 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 ARRANTIES.OF.MERCHANTABILITY,.FI
f5460 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 TNESS.FOR.A.PARTICULAR.PURPOSE.A
f5480 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 ND.NONINFRINGEMENT..IN.NO.EVENT.
f54a0 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 SHALL.THE.AUTHORS.OR.COPYRIGHT.H
f54c0 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 OLDERS.BE.LIABLE.FOR.ANY.CLAIM,.
f54e0 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 DAMAGES.OR.OTHER.LIABILITY,.WHET
f5500 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f HER.IN.AN.ACTION.OF.CONTRACT,.TO
f5520 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f RT.OR.OTHERWISE,.ARISING.FROM,.O
f5540 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 UT.OF.OR.IN.CONNECTION.WITH.THE.
f5560 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 SOFTWARE.OR.THE.USE.OR.OTHER.DEA
f5580 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a LINGS.IN.THE.SOFTWARE..<?php....
f55a0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
f55c0 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 6c 46 69 6c 65 49 6e nt\Finder;.......class.SplFileIn
f55e0 66 6f 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 fo.extends.\SplFileInfo.{.privat
f5600 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 74 69 e.$relativePath;.private.$relati
f5620 76 65 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 vePathname;.........public.funct
f5640 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 65 6c 61 74 69 76 65 ion.__construct($file,.$relative
f5660 50 61 74 68 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a 7b 0a 70 61 72 65 6e Path,.$relativePathname).{.paren
f5680 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e 72 65 t::__construct($file);.$this->re
f56a0 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 24 74 68 69 lativePath.=.$relativePath;.$thi
f56c0 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 6c 61 74 69 76 65 50 s->relativePathname.=.$relativeP
f56e0 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e athname;.}.......public.function
f5700 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .getRelativePath().{.return.$thi
f5720 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->relativePath;.}.......public.
f5740 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 0a 7b function.getRelativePathname().{
f5760 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 3b .return.$this->relativePathname;
f5780 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f .}.........public.function.getCo
f57a0 6e 74 65 6e 74 73 28 29 0a 7b 0a 24 6c 65 76 65 6c 20 3d 20 65 72 72 6f 72 5f 72 65 70 6f 72 74 ntents().{.$level.=.error_report
f57c0 69 6e 67 28 30 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 ing(0);.$content.=.file_get_cont
f57e0 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 65 72 72 6f ents($this->getPathname());.erro
f5800 72 5f 72 65 70 6f 72 74 69 6e 67 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d r_reporting($level);.if.(false.=
f5820 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f 67 65 ==.$content).{.$error.=.error_ge
f5840 74 5f 6c 61 73 74 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 t_last();.throw.new.\RuntimeExce
f5860 70 74 69 6f 6e 28 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 7d 0a 0a 72 65 74 ption($error['message']);.}..ret
f5880 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 7d 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 urn.$content;.}.}.Copyright.(c).
f58a0 32 30 31 31 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 2011.Jordi.Boggiano..Permission.
f58c0 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 is.hereby.granted,.free.of.charg
f58e0 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 e,.to.any.person.obtaining.a.cop
f5900 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 y.of.this.software.and.associate
f5920 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 d.documentation.files.(the."Soft
f5940 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 ware"),.to.deal.in.the.Software.
f5960 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 without.restriction,.including.w
f5980 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 ithout.limitation.the.rights.to.
f59a0 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 use,.copy,.modify,.merge,.publis
f59c0 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f h,.distribute,.sublicense,.and/o
f59e0 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 r.sell.copies.of.the.Software,.a
f5a00 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 nd.to.permit.persons.to.whom.the
f5a20 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c .Software.is.furnished.to.do.so,
f5a40 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 .subject.to.the.following.condit
f5a60 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 ions:..The.above.copyright.notic
f5a80 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 e.and.this.permission.notice.sha
f5aa0 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 ll.be.included.in.all.copies.or.
f5ac0 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 substantial.portions.of.the.Soft
f5ae0 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 ware...THE.SOFTWARE.IS.PROVIDED.
f5b00 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 "AS.IS",.WITHOUT.WARRANTY.OF.ANY
f5b20 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 .KIND,.EXPRESS.OR.IMPLIED,.INCLU
f5b40 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 DING.BUT.NOT.LIMITED.TO.THE.WARR
f5b60 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 ANTIES.OF.MERCHANTABILITY,.FITNE
f5b80 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 SS.FOR.A.PARTICULAR.PURPOSE.AND.
f5ba0 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 NONINFRINGEMENT..IN.NO.EVENT.SHA
f5bc0 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 LL.THE.AUTHORS.OR.COPYRIGHT.HOLD
f5be0 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d ERS.BE.LIABLE.FOR.ANY.CLAIM,.DAM
f5c00 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 AGES.OR.OTHER.LIABILITY,.WHETHER
f5c20 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 .IN.AN.ACTION.OF.CONTRACT,.TORT.
f5c40 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 OR.OTHERWISE,.ARISING.FROM,.OUT.
f5c60 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 OF.OR.IN.CONNECTION.WITH.THE.SOF
f5c80 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e TWARE.OR.THE.USE.OR.OTHER.DEALIN
f5ca0 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a GS.IN.THE.SOFTWARE..<?php.......
f5cc0 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c ....namespace.Seld\JsonLint;..cl
f5ce0 61 73 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ass.Undefined.{.}.<?php.........
f5d00 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 75 73 65 20 73 ..namespace.Seld\JsonLint;.use.s
f5d20 74 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f tdClass;...............class.Jso
f5d40 6e 50 61 72 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c nParser.{.const.DETECT_KEY_CONFL
f5d60 49 43 54 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 5f ICTS.=.1;.const.ALLOW_DUPLICATE_
f5d80 4b 45 59 53 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 20 3d KEYS.=.2;.const.PARSE_TO_ASSOC.=
f5da0 20 34 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 65 78 65 72 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 .4;..private.$lexer;..private.$f
f5dc0 6c 61 67 73 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 76 lags;.private.$stack;.private.$v
f5de0 73 74 61 63 6b 3b 20 0a 20 70 72 69 76 61 74 65 20 24 6c 73 74 61 63 6b 3b 20 0a 0a 70 72 69 76 stack;...private.$lstack;...priv
f5e00 61 74 65 20 24 73 79 6d 62 6f 6c 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f 72 27 20 3d 3e ate.$symbols.=.array(.'error'.=>
f5e20 20 32 2c 0a 27 4a 53 4f 4e 53 74 72 69 6e 67 27 20 3d 3e 20 33 2c 0a 27 53 54 52 49 4e 47 27 20 .2,.'JSONString'.=>.3,.'STRING'.
f5e40 3d 3e 20 34 2c 0a 27 4a 53 4f 4e 4e 75 6d 62 65 72 27 20 3d 3e 20 35 2c 0a 27 4e 55 4d 42 45 52 =>.4,.'JSONNumber'.=>.5,.'NUMBER
f5e60 27 20 3d 3e 20 36 2c 0a 27 4a 53 4f 4e 4e 75 6c 6c 4c 69 74 65 72 61 6c 27 20 3d 3e 20 37 2c 0a '.=>.6,.'JSONNullLiteral'.=>.7,.
f5e80 27 4e 55 4c 4c 27 20 3d 3e 20 38 2c 0a 27 4a 53 4f 4e 42 6f 6f 6c 65 61 6e 4c 69 74 65 72 61 6c 'NULL'.=>.8,.'JSONBooleanLiteral
f5ea0 27 20 3d 3e 20 39 2c 0a 27 54 52 55 45 27 20 3d 3e 20 31 30 2c 0a 27 46 41 4c 53 45 27 20 3d 3e '.=>.9,.'TRUE'.=>.10,.'FALSE'.=>
f5ec0 20 31 31 2c 0a 27 4a 53 4f 4e 54 65 78 74 27 20 3d 3e 20 31 32 2c 0a 27 4a 53 4f 4e 56 61 6c 75 .11,.'JSONText'.=>.12,.'JSONValu
f5ee0 65 27 20 3d 3e 20 31 33 2c 0a 27 45 4f 46 27 20 3d 3e 20 31 34 2c 0a 27 4a 53 4f 4e 4f 62 6a 65 e'.=>.13,.'EOF'.=>.14,.'JSONObje
f5f00 63 74 27 20 3d 3e 20 31 35 2c 0a 27 4a 53 4f 4e 41 72 72 61 79 27 20 3d 3e 20 31 36 2c 0a 27 7b ct'.=>.15,.'JSONArray'.=>.16,.'{
f5f20 27 20 3d 3e 20 31 37 2c 0a 27 7d 27 20 3d 3e 20 31 38 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 4c '.=>.17,.'}'.=>.18,.'JSONMemberL
f5f40 69 73 74 27 20 3d 3e 20 31 39 2c 0a 27 4a 53 4f 4e 4d 65 6d 62 65 72 27 20 3d 3e 20 32 30 2c 0a ist'.=>.19,.'JSONMember'.=>.20,.
f5f60 27 3a 27 20 3d 3e 20 32 31 2c 0a 27 2c 27 20 3d 3e 20 32 32 2c 0a 27 5b 27 20 3d 3e 20 32 33 2c ':'.=>.21,.','.=>.22,.'['.=>.23,
f5f80 0a 27 5d 27 20 3d 3e 20 32 34 2c 0a 27 4a 53 4f 4e 45 6c 65 6d 65 6e 74 4c 69 73 74 27 20 3d 3e .']'.=>.24,.'JSONElementList'.=>
f5fa0 20 32 35 2c 0a 27 24 61 63 63 65 70 74 27 20 3d 3e 20 30 2c 0a 27 24 65 6e 64 27 20 3d 3e 20 31 .25,.'$accept'.=>.0,.'$end'.=>.1
f5fc0 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 65 72 6d 69 6e 61 6c 73 5f 20 3d 20 61 72 72 61 ,.);..private.$terminals_.=.arra
f5fe0 79 28 0a 32 20 3d 3e 20 22 65 72 72 6f 72 22 2c 0a 34 20 3d 3e 20 22 53 54 52 49 4e 47 22 2c 0a y(.2.=>."error",.4.=>."STRING",.
f6000 36 20 3d 3e 20 22 4e 55 4d 42 45 52 22 2c 0a 38 20 3d 3e 20 22 4e 55 4c 4c 22 2c 0a 31 30 20 3d 6.=>."NUMBER",.8.=>."NULL",.10.=
f6020 3e 20 22 54 52 55 45 22 2c 0a 31 31 20 3d 3e 20 22 46 41 4c 53 45 22 2c 0a 31 34 20 3d 3e 20 22 >."TRUE",.11.=>."FALSE",.14.=>."
f6040 45 4f 46 22 2c 0a 31 37 20 3d 3e 20 22 7b 22 2c 0a 31 38 20 3d 3e 20 22 7d 22 2c 0a 32 31 20 3d EOF",.17.=>."{",.18.=>."}",.21.=
f6060 3e 20 22 3a 22 2c 0a 32 32 20 3d 3e 20 22 2c 22 2c 0a 32 33 20 3d 3e 20 22 5b 22 2c 0a 32 34 20 >.":",.22.=>.",",.23.=>."[",.24.
f6080 3d 3e 20 22 5d 22 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 64 75 63 74 69 6f 6e 73 =>."]",.);..private.$productions
f60a0 5f 20 3d 20 61 72 72 61 79 28 0a 30 2c 0a 61 72 72 61 79 28 33 2c 20 31 29 2c 0a 61 72 72 61 79 _.=.array(.0,.array(3,.1),.array
f60c0 28 35 2c 20 31 29 2c 0a 61 72 72 61 79 28 37 2c 20 31 29 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 (5,.1),.array(7,.1),.array(9,.1)
f60e0 2c 0a 61 72 72 61 79 28 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 32 2c 20 32 29 2c 0a 61 72 72 ,.array(9,.1),.array(12,.2),.arr
f6100 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 ay(13,.1),.array(13,.1),.array(1
f6120 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 3,.1),.array(13,.1),.array(13,.1
f6140 29 2c 0a 61 72 72 61 79 28 31 33 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 35 2c 20 32 29 2c 0a 61 ),.array(13,.1),.array(15,.2),.a
f6160 72 72 61 79 28 31 35 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 30 2c 20 33 29 2c 0a 61 72 72 61 79 rray(15,.3),.array(20,.3),.array
f6180 28 31 39 2c 20 31 29 2c 0a 61 72 72 61 79 28 31 39 2c 20 33 29 2c 0a 61 72 72 61 79 28 31 36 2c (19,.1),.array(19,.3),.array(16,
f61a0 20 32 29 2c 0a 61 72 72 61 79 28 31 36 2c 20 33 29 2c 0a 61 72 72 61 79 28 32 35 2c 20 31 29 2c .2),.array(16,.3),.array(25,.1),
f61c0 0a 61 72 72 61 79 28 32 35 2c 20 33 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 74 61 62 6c 65 .array(25,.3).);..private.$table
f61e0 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 .=.array(array(3.=>.5,.4.=>.arra
f6200 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 y(1,12),.5.=>.6,.6.=>.array(1,13
f6220 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e ),.7.=>.3,.8.=>.array(1,9),.9.=>
f6240 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 .4,.10.=>.array(1,10),.11.=>.arr
f6260 61 79 28 31 2c 31 31 29 2c 20 31 32 20 3d 3e 20 31 2c 20 31 33 20 3d 3e 20 32 2c 20 31 35 20 3d ay(1,11),.12.=>.1,.13.=>.2,.15.=
f6280 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c >.7,.16.=>.8,.17.=>.array(1,14),
f62a0 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e .23.=>.array(1,15)),.array(.1.=>
f62c0 20 61 72 72 61 79 28 33 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 31 .array(3)),.array(.14.=>.array(1
f62e0 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 ,16)),.array(.14.=>.array(2,7),.
f6300 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 18.=>.array(2,7),.22.=>.array(2,
f6320 37 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 37 29 29 2c 20 61 72 72 61 79 28 20 31 34 7),.24.=>.array(2,7)),.array(.14
f6340 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 .=>.array(2,8),.18.=>.array(2,8)
f6360 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 ,.22.=>.array(2,8),.24.=>.array(
f6380 32 2c 38 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 2,8)),.array(.14.=>.array(2,9),.
f63a0 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 18.=>.array(2,9),.22.=>.array(2,
f63c0 39 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 39 29 29 2c 20 61 72 72 61 79 28 20 31 34 9),.24.=>.array(2,9)),.array(.14
f63e0 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 .=>.array(2,10),.18.=>.array(2,1
f6400 30 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 30 29 2c 20 32 34 20 3d 3e 20 61 72 72 0),.22.=>.array(2,10),.24.=>.arr
f6420 61 79 28 32 2c 31 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c ay(2,10)),.array(.14.=>.array(2,
f6440 31 31 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 2c 20 32 32 20 3d 3e 20 61 72 11),.18.=>.array(2,11),.22.=>.ar
f6460 72 61 79 28 32 2c 31 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 31 29 29 2c 20 61 ray(2,11),.24.=>.array(2,11)),.a
f6480 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 rray(.14.=>.array(2,12),.18.=>.a
f64a0 72 72 61 79 28 32 2c 31 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 2c 20 32 rray(2,12),.22.=>.array(2,12),.2
f64c0 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 32 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 4.=>.array(2,12)),.array(.14.=>.
f64e0 61 72 72 61 79 28 32 2c 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 32 array(2,3),.18.=>.array(2,3),.22
f6500 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 33 29 .=>.array(2,3),.24.=>.array(2,3)
f6520 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,4),.18.=
f6540 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 2c 20 >.array(2,4),.22.=>.array(2,4),.
f6560 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 34 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 24.=>.array(2,4)),.array(.14.=>.
f6580 61 72 72 61 79 28 32 2c 35 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 32 array(2,5),.18.=>.array(2,5),.22
f65a0 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 35 29 .=>.array(2,5),.24.=>.array(2,5)
f65c0 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 31 38 20 3d ),.array(.14.=>.array(2,1),.18.=
f65e0 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 >.array(2,1),.21.=>.array(2,1),.
f6600 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 22.=>.array(2,1),.24.=>.array(2,
f6620 31 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 31 38 1)),.array(.14.=>.array(2,2),.18
f6640 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 .=>.array(2,2),.22.=>.array(2,2)
f6660 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e ,.24.=>.array(2,2)),.array(.3.=>
f6680 20 32 30 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 31 38 20 3d 3e 20 61 72 72 .20,.4.=>.array(1,12),.18.=>.arr
f66a0 61 79 28 31 2c 31 37 29 2c 20 31 39 20 3d 3e 20 31 38 2c 20 32 30 20 3d 3e 20 31 39 20 29 2c 20 ay(1,17),.19.=>.18,.20.=>.19.),.
f66c0 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c array(.3.=>.5,.4.=>.array(1,12),
f66e0 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 .5.=>.6,.6.=>.array(1,13),.7.=>.
f6700 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3,.8.=>.array(1,9),.9.=>.4,.10.=
f6720 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 >.array(1,10),.11.=>.array(1,11)
f6740 2c 20 31 33 20 3d 3e 20 32 33 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 ,.13.=>.23,.15.=>.7,.16.=>.8,.17
f6760 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 .=>.array(1,14),.23.=>.array(1,1
f6780 35 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 31 29 2c 20 32 35 20 3d 3e 20 32 32 20 5),.24.=>.array(1,21),.25.=>.22.
f67a0 29 2c 20 61 72 72 61 79 28 20 31 20 3d 3e 20 61 72 72 61 79 28 32 2c 36 29 29 2c 20 61 72 72 61 ),.array(.1.=>.array(2,6)),.arra
f67c0 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 y(.14.=>.array(2,13),.18.=>.arra
f67e0 79 28 32 2c 31 33 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 33 29 2c 20 32 34 20 3d y(2,13),.22.=>.array(2,13),.24.=
f6800 3e 20 61 72 72 61 79 28 32 2c 31 33 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 >.array(2,13)),.array(.18.=>.arr
f6820 61 79 28 31 2c 32 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 35 29 29 2c 20 61 72 ay(1,24),.22.=>.array(1,25)),.ar
f6840 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 36 29 2c 20 32 32 20 3d 3e 20 61 72 ray(.18.=>.array(2,16),.22.=>.ar
f6860 72 61 79 28 32 2c 31 36 29 29 2c 20 61 72 72 61 79 28 20 32 31 20 3d 3e 20 61 72 72 61 79 28 31 ray(2,16)),.array(.21.=>.array(1
f6880 2c 32 36 29 29 2c 20 61 72 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c ,26)),.array(.14.=>.array(2,18),
f68a0 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 .18.=>.array(2,18),.22.=>.array(
f68c0 32 2c 31 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 38 29 29 2c 20 61 72 72 61 79 2,18),.24.=>.array(2,18)),.array
f68e0 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 31 2c 32 38 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 (.22.=>.array(1,28),.24.=>.array
f6900 28 31 2c 32 37 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 (1,27)),.array(.22.=>.array(2,20
f6920 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 30 29 29 2c 20 61 72 72 61 79 28 20 31 34 ),.24.=>.array(2,20)),.array(.14
f6940 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 .=>.array(2,14),.18.=>.array(2,1
f6960 34 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 34 29 2c 20 32 34 20 3d 3e 20 61 72 72 4),.22.=>.array(2,14),.24.=>.arr
f6980 61 79 28 32 2c 31 34 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 32 30 2c 20 34 20 3d 3e 20 ay(2,14)),.array(.3.=>.20,.4.=>.
f69a0 61 72 72 61 79 28 31 2c 31 32 29 2c 20 32 30 20 3d 3e 20 32 39 20 29 2c 20 61 72 72 61 79 28 20 array(1,12),.20.=>.29.),.array(.
f69c0 33 20 3d 3e 20 35 2c 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 3.=>.5,.4.=>.array(1,12),.5.=>.6
f69e0 2c 20 36 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e ,.6.=>.array(1,13),.7.=>.3,.8.=>
f6a00 20 61 72 72 61 79 28 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 .array(1,9),.9.=>.4,.10.=>.array
f6a20 28 31 2c 31 30 29 2c 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e (1,10),.11.=>.array(1,11),.13.=>
f6a40 20 33 30 2c 20 31 35 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 .30,.15.=>.7,.16.=>.8,.17.=>.arr
f6a60 61 79 28 31 2c 31 34 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 ay(1,14),.23.=>.array(1,15)),.ar
f6a80 72 61 79 28 20 31 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 31 38 20 3d 3e 20 61 72 ray(.14.=>.array(2,19),.18.=>.ar
f6aa0 72 61 79 28 32 2c 31 39 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 2c 20 32 34 ray(2,19),.22.=>.array(2,19),.24
f6ac0 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 39 29 29 2c 20 61 72 72 61 79 28 20 33 20 3d 3e 20 35 2c .=>.array(2,19)),.array(.3.=>.5,
f6ae0 20 34 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 32 29 2c 20 35 20 3d 3e 20 36 2c 20 36 20 3d 3e 20 .4.=>.array(1,12),.5.=>.6,.6.=>.
f6b00 61 72 72 61 79 28 31 2c 31 33 29 2c 20 37 20 3d 3e 20 33 2c 20 38 20 3d 3e 20 61 72 72 61 79 28 array(1,13),.7.=>.3,.8.=>.array(
f6b20 31 2c 39 29 2c 20 39 20 3d 3e 20 34 2c 20 31 30 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 30 29 2c 1,9),.9.=>.4,.10.=>.array(1,10),
f6b40 20 31 31 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 31 29 2c 20 31 33 20 3d 3e 20 33 31 2c 20 31 35 .11.=>.array(1,11),.13.=>.31,.15
f6b60 20 3d 3e 20 37 2c 20 31 36 20 3d 3e 20 38 2c 20 31 37 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 34 .=>.7,.16.=>.8,.17.=>.array(1,14
f6b80 29 2c 20 32 33 20 3d 3e 20 61 72 72 61 79 28 31 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 31 38 ),.23.=>.array(1,15)),.array(.18
f6ba0 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 37 29 2c 20 32 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 .=>.array(2,17),.22.=>.array(2,1
f6bc0 37 29 29 2c 20 61 72 72 61 79 28 20 31 38 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 2c 20 32 7)),.array(.18.=>.array(2,15),.2
f6be0 32 20 3d 3e 20 61 72 72 61 79 28 32 2c 31 35 29 29 2c 20 61 72 72 61 79 28 20 32 32 20 3d 3e 20 2.=>.array(2,15)),.array(.22.=>.
f6c00 61 72 72 61 79 28 32 2c 32 31 29 2c 20 32 34 20 3d 3e 20 61 72 72 61 79 28 32 2c 32 31 29 29 2c array(2,21),.24.=>.array(2,21)),
f6c20 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 20 3d 20 61 .);..private.$defaultActions.=.a
f6c40 72 72 61 79 28 0a 31 36 20 3d 3e 20 61 72 72 61 79 28 32 2c 20 36 29 0a 29 3b 0a 0a 0a 0a 0a 0a rray(.16.=>.array(2,.6).);......
f6c60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 6e 74 28 24 69 6e 70 75 74 29 0a 7b 0a 74 public.function.lint($input).{.t
f6c80 72 79 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 69 6e 70 75 74 29 3b 0a 7d 20 63 61 74 ry.{.$this->parse($input);.}.cat
f6ca0 63 68 20 28 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 ch.(ParsingException.$e).{.retur
f6cc0 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 n.$e;.}.}.......public.function.
f6ce0 70 61 72 73 65 28 24 69 6e 70 75 74 2c 20 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 74 68 69 parse($input,.$flags.=.0).{.$thi
f6d00 73 2d 3e 66 61 69 6c 4f 6e 42 4f 4d 28 24 69 6e 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 6c s->failOnBOM($input);..$this->fl
f6d20 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 ags.=.$flags;..$this->stack.=.ar
f6d40 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 6e 75 ray(0);.$this->vstack.=.array(nu
f6d60 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 ll);.$this->lstack.=.array();..$
f6d80 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 79 79 6c yytext.=.'';.$yylineno.=.0;.$yyl
f6da0 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 52 52 4f eng.=.0;.$recovering.=.0;.$TERRO
f6dc0 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 20 3d R.=.2;.$EOF.=.1;..$this->lexer.=
f6de0 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 65 74 49 .new.Lexer();.$this->lexer->setI
f6e00 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c nput($input);..$yyloc.=.$this->l
f6e20 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 exer->yylloc;.$this->lstack[].=.
f6e40 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 45 72 72 $yyloc;..$symbol.=.null;.$preErr
f6e60 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c 6c 3b 0a orSymbol.=.null;.$state.=.null;.
f6e80 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 20 3d 20 $action.=.null;.$a.=.null;.$r.=.
f6ea0 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 70 20 null;.$yyval.=.new.stdClass;.$p.
f6ec0 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d =.null;.$len.=.null;.$newState.=
f6ee0 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 53 74 72 .null;.$expected.=.null;.$errStr
f6f00 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 74 61 74 .=.null;..while.(true).{...$stat
f6f20 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 73 74 e.=.$this->stack[count($this->st
f6f40 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 66 ack)-1];....if.(isset($this->def
f6f60 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 20 aultActions[$state])).{.$action.
f6f80 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 3b =.$this->defaultActions[$state];
f6fa0 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c 29 20 7b .}.else.{.if.($symbol.==.null).{
f6fc0 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 24 61 63 .$symbol.=.$this->lex();.}...$ac
f6fe0 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 tion.=.isset($this->table[$state
f7000 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 ][$symbol]).?.$this->table[$stat
f7020 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 e][$symbol].:.false;.}....if.(!$
f7040 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 21 24 72 action.||.!$action[0]).{.if.(!$r
f7060 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 72 61 79 ecovering).{...$expected.=.array
f7080 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 ();.foreach.($this->table[$state
f70a0 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 ].as.$p.=>.$ignore).{.if.(isset(
f70c0 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 3e 20 32 $this->terminals_[$p]).&&.$p.>.2
f70e0 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 2d 3e 74 ).{.$expected[].=."'"...$this->t
f7100 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 20 2e 20 22 27 22 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 61 erminals_[$p]..."'";.}.}..$messa
f7120 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 22 27 53 54 52 49 4e 47 ge.=.null;.if.(in_array("'STRING
f7140 27 22 2c 20 24 65 78 70 65 63 74 65 64 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 73 75 62 73 74 '",.$expected).&&.in_array(subst
f7160 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 2c 20 61 72 r($this->lexer->match,.0,.1),.ar
f7180 72 61 79 28 27 22 27 2c 20 22 27 22 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 49 6e ray('"',."'"))).{.$message.=."In
f71a0 76 61 6c 69 64 20 73 74 72 69 6e 67 22 3b 0a 69 66 20 28 22 27 22 20 3d 3d 3d 20 73 75 62 73 74 valid.string";.if.("'".===.subst
f71c0 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 29 20 7b 0a r($this->lexer->match,.0,.1)).{.
f71e0 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 75 73 $message..=.",.it.appears.you.us
f7200 65 64 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 6f 75 62 ed.single.quotes.instead.of.doub
f7220 6c 65 20 71 75 6f 74 65 73 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 le.quotes";.}.elseif.(preg_match
f7240 28 27 7b 22 2e 2b 3f 28 5c 5c 5c 5c 5b 5e 22 62 66 6e 72 74 2f 5c 5c 5c 5c 75 5d 29 7d 27 2c 20 ('{".+?(\\\\[^"bfnrt/\\\\u])}',.
f7260 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 $this->lexer->getUpcomingInput()
f7280 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 ,.$match)).{.$message..=.",.it.a
f72a0 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 75 6e 65 73 63 61 70 65 64 20 62 61 63 ppears.you.have.an.unescaped.bac
f72c0 6b 73 6c 61 73 68 20 61 74 3a 20 22 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 69 66 kslash.at:.".$match[1];.}.elseif
f72e0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 28 3f 3a 5b 5e 22 5d 2b 7c 5c 5c 5c 5c 22 29 2a .(preg_match('{"(?:[^"]+|\\\\")*
f7300 24 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 $}m',.$this->lexer->getUpcomingI
f7320 6e 70 75 74 28 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 nput())).{.$message..=.",.it.app
f7340 65 61 72 73 20 79 6f 75 20 66 6f 72 67 6f 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 64 20 74 68 ears.you.forgot.to.terminated.th
f7360 65 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 74 74 65 6d 70 74 65 64 20 74 6f 20 77 72 69 74 65 20 e.string,.or.attempted.to.write.
f7380 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 69 73 20 69 6e 76 61 a.multiline.string.which.is.inva
f73a0 6c 69 64 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f lid";.}.}..$errStr.=.'Parse.erro
f73c0 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a r.on.line.'...($yylineno+1)...":
f73e0 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 \n";.$errStr..=.$this->lexer->sh
f7400 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 69 66 20 28 24 6d 65 73 73 61 67 owPosition()..."\n";.if.($messag
f7420 65 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 e).{.$errStr..=.$message;.}.else
f7440 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 28 63 6f 75 6e 74 28 24 65 78 70 65 63 74 65 64 29 20 .{.$errStr..=.(count($expected).
f7460 3e 20 31 29 20 3f 20 22 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 3a 20 22 45 78 >.1).?."Expected.one.of:.".:."Ex
f7480 70 65 63 74 65 64 3a 20 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 69 6d 70 6c 6f 64 65 28 27 2c pected:.";.$errStr..=.implode(',
f74a0 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b 0a 7d 0a 0a 69 66 20 28 27 2c 27 20 3d 3d 3d 20 73 .',.$expected);.}..if.(','.===.s
f74c0 75 62 73 74 72 28 74 72 69 6d 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 50 61 73 74 ubstr(trim($this->lexer->getPast
f74e0 49 6e 70 75 74 28 29 29 2c 20 2d 31 29 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 20 2d 20 Input()),.-1)).{.$errStr..=.".-.
f7500 49 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 65 78 74 72 61 20 74 72 61 It.appears.you.have.an.extra.tra
f7520 69 6c 69 6e 67 20 63 6f 6d 6d 61 22 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 iling.comma";.}..$this->parseErr
f7540 6f 72 28 24 65 72 72 53 74 72 2c 20 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 24 74 68 or($errStr,.array(.'text'.=>.$th
f7560 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 21 65 6d is->lexer->match,.'token'.=>.!em
f7580 70 74 79 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 29 20 pty($this->terminals_[$symbol]).
f75a0 3f 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 24 ?.$this->terminals_[$symbol].:.$
f75c0 73 79 6d 62 6f 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e symbol,.'line'.=>.$this->lexer->
f75e0 79 79 6c 69 6e 65 6e 6f 2c 0a 27 6c 6f 63 27 20 3d 3e 20 24 79 79 6c 6f 63 2c 0a 27 65 78 70 65 yylineno,.'loc'.=>.$yyloc,.'expe
f7600 63 74 65 64 27 20 3d 3e 20 24 65 78 70 65 63 74 65 64 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 cted'.=>.$expected,.));.}....if.
f7620 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 3d 20 33 29 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c ($recovering.==.3).{.if.($symbol
f7640 20 3d 3d 20 24 45 4f 46 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 .==.$EOF).{.throw.new.ParsingExc
f7660 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 6c 74 65 eption($errStr.?:.'Parsing.halte
f7680 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 d.');.}....$yyleng.=.$this->lexe
f76a0 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 r->yyleng;.$yytext.=.$this->lexe
f76c0 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 r->yytext;.$yylineno.=.$this->le
f76e0 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c xer->yylineno;.$yyloc.=.$this->l
f7700 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c exer->yylloc;.$symbol.=.$this->l
f7720 65 78 28 29 3b 0a 7d 0a 0a 0a 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 69 66 20 28 ex();.}....while.(true).{...if.(
f7740 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 54 45 52 52 4f 52 2c 20 24 74 68 69 73 2d array_key_exists($TERROR,.$this-
f7760 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 66 20 28 >table[$state])).{.break;.}.if.(
f7780 24 73 74 61 74 65 20 3d 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 $state.==.0).{.throw.new.Parsing
f77a0 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 20 68 61 Exception($errStr.?:.'Parsing.ha
f77c0 6c 74 65 64 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 31 29 3b 0a 24 lted.');.}.$this->popStack(1);.$
f77e0 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 state.=.$this->stack[count($this
f7800 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 7d 0a 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 ->stack)-1];.}..$preErrorSymbol.
f7820 3d 20 24 73 79 6d 62 6f 6c 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 54 45 52 52 4f 52 3b 20 =.$symbol;...$symbol.=.$TERROR;.
f7840 0a 20 24 73 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 ..$state.=.$this->stack[count($t
f7860 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 his->stack)-1];.$action.=.isset(
f7880 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 29 20 3f $this->table[$state][$TERROR]).?
f78a0 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d 20 3a .$this->table[$state][$TERROR].:
f78c0 20 66 61 6c 73 65 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 33 3b 20 0a 20 7d 0a 0a 0a 20 .false;.$recovering.=.3;...}....
f78e0 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 26 26 20 63 6f 75 6e if.(is_array($action[0]).&&.coun
f7900 74 28 24 61 63 74 69 6f 6e 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 t($action).>.1).{.throw.new.Pars
f7920 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 50 61 72 73 65 20 45 72 72 6f 72 3a 20 6d 75 6c 74 69 ingException('Parse.Error:.multi
f7940 70 6c 65 20 61 63 74 69 6f 6e 73 20 70 6f 73 73 69 62 6c 65 20 61 74 20 73 74 61 74 65 3a 20 27 ple.actions.possible.at.state:.'
f7960 20 2e 20 24 73 74 61 74 65 20 2e 20 27 2c 20 74 6f 6b 65 6e 3a 20 27 20 2e 20 24 73 79 6d 62 6f ...$state...',.token:.'...$symbo
f7980 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 63 61 73 l);.}..switch.($action[0]).{.cas
f79a0 65 20 31 3a 20 0a 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 73 79 6d 62 6f 6c 3b e.1:...$this->stack[].=.$symbol;
f79c0 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d .$this->vstack[].=.$this->lexer-
f79e0 3e 79 79 74 65 78 74 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 >yytext;.$this->lstack[].=.$this
f7a00 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 ->lexer->yylloc;.$this->stack[].
f7a20 3d 20 24 61 63 74 69 6f 6e 5b 31 5d 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a =.$action[1];...$symbol.=.null;.
f7a40 69 66 20 28 21 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 29 20 7b 20 0a 20 24 79 79 6c 65 6e if.(!$preErrorSymbol).{...$yylen
f7a60 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 g.=.$this->lexer->yyleng;.$yytex
f7a80 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e t.=.$this->lexer->yytext;.$yylin
f7aa0 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 eno.=.$this->lexer->yylineno;.$y
f7ac0 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 69 66 20 yloc.=.$this->lexer->yylloc;.if.
f7ae0 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3e 20 30 29 20 7b 0a 24 72 65 63 6f 76 65 72 69 6e 67 2d ($recovering.>.0).{.$recovering-
f7b00 2d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 70 72 65 45 72 -;.}.}.else.{...$symbol.=.$preEr
f7b20 72 6f 72 53 79 6d 62 6f 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c rorSymbol;.$preErrorSymbol.=.nul
f7b40 6c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 32 3a 20 0a 20 24 6c 65 6e 20 3d 20 24 74 l;.}.break;..case.2:...$len.=.$t
f7b60 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e 5b 31 5d 5d 5b 31 5d his->productions_[$action[1]][1]
f7b80 3b 0a 0a 0a 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 76 73 74 61 ;....$yyval->token.=.$this->vsta
f7ba0 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 29 20 2d 20 24 6c 65 6e 5d 3b ck[count($this->vstack).-.$len];
f7bc0 20 0a 20 0a 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 20 3d 20 61 72 72 61 79 28 20 0a 20 27 66 .....$yyval->store.=.array(...'f
f7be0 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e irst_line'.=>.$this->lstack[coun
f7c00 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b t($this->lstack).-.($len.?:.1)][
f7c20 27 66 69 72 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 'first_line'],.'last_line'.=>.$t
f7c40 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 his->lstack[count($this->lstack)
f7c60 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 66 69 72 73 74 5f 63 6f 6c 75 6d .-.1]['last_line'],.'first_colum
f7c80 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d n'.=>.$this->lstack[count($this-
f7ca0 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 29 5d 5b 27 66 69 72 73 74 5f 63 >lstack).-.($len.?:.1)]['first_c
f7cc0 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d olumn'],.'last_column'.=>.$this-
f7ce0 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 31 >lstack[count($this->lstack).-.1
f7d00 5d 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 29 3b 0a 24 72 20 3d 20 24 74 68 69 73 2d ]['last_column'],.);.$r.=.$this-
f7d20 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 >performAction($yyval,.$yytext,.
f7d40 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 61 63 74 69 6f 6e 5b 31 5d 2c 20 $yyleng,.$yylineno,.$action[1],.
f7d60 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 3b 0a 0a $this->vstack,.$this->lstack);..
f7d80 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 29 20 7b 0a if.(!$r.instanceof.Undefined).{.
f7da0 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 6e 29 20 7b 0a 24 74 68 69 73 2d return.$r;.}..if.($len).{.$this-
f7dc0 3e 70 6f 70 53 74 61 63 6b 28 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b >popStack($len);.}..$this->stack
f7de0 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 69 6f 6e [].=.$this->productions_[$action
f7e00 5b 31 5d 5d 5b 30 5d 3b 20 0a 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 79 79 [1]][0];...$this->vstack[].=.$yy
f7e20 76 61 6c 2d 3e 74 6f 6b 65 6e 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 79 val->token;.$this->lstack[].=.$y
f7e40 79 76 61 6c 2d 3e 73 74 6f 72 65 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e yval->store;.$newState.=.$this->
f7e60 74 61 62 6c 65 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e table[$this->stack[count($this->
f7e80 73 74 61 63 6b 29 2d 32 5d 5d 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 stack)-2]][$this->stack[count($t
f7ea0 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 5d 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 his->stack)-1]];.$this->stack[].
f7ec0 3d 20 24 6e 65 77 53 74 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 33 3a 20 0a 0a 72 =.$newState;.break;..case.3:...r
f7ee0 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a eturn.true;.}.}..return.true;.}.
f7f00 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 .protected.function.parseError($
f7f20 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 str,.$hash).{.throw.new.ParsingE
f7f40 78 63 65 70 74 69 6f 6e 28 24 73 74 72 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 xception($str,.$hash);.}........
f7f60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 73 private.function.performAction(s
f7f80 74 64 43 6c 61 73 73 20 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c 65 6e 67 tdClass.$yyval,.$yytext,.$yyleng
f7fa0 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 79 79 73 74 61 74 65 2c 20 26 24 74 6f 6b 65 6e 73 29 ,.$yylineno,.$yystate,.&$tokens)
f7fc0 0a 7b 0a 0a 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 20 2d 20 31 3b 0a .{...$len.=.count($tokens).-.1;.
f7fe0 73 77 69 74 63 68 20 28 24 79 79 73 74 61 74 65 29 20 7b 0a 63 61 73 65 20 31 3a 0a 24 79 79 74 switch.($yystate).{.case.1:.$yyt
f8000 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 3f ext.=.preg_replace_callback('{(?
f8020 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 :\\\\["bfnrt/\\\\]|\\\\u[a-fA-F0
f8040 2d 39 5d 7b 34 7d 29 7d 27 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 73 74 72 69 6e 67 49 -9]{4})}',.array($this,.'stringI
f8060 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 29 2c 20 24 79 79 74 65 78 74 29 3b 0a 24 79 79 76 61 6c nterpolation'),.$yytext);.$yyval
f8080 2d 3e 74 6f 6b 65 6e 20 3d 20 24 79 79 74 65 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 ->token.=.$yytext;.break;.case.2
f80a0 3a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 65 27 29 20 21 3d 3d 20 66 :.if.(strpos($yytext,.'e').!==.f
f80c0 61 6c 73 65 20 7c 7c 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 45 27 29 20 21 3d 3d alse.||.strpos($yytext,.'E').!==
f80e0 20 66 61 6c 73 65 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 6c 6f 61 74 76 .false).{.$yyval->token.=.floatv
f8100 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f al($yytext);.}.else.{.$yyval->to
f8120 6b 65 6e 20 3d 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 2e 27 29 20 3d 3d 3d 20 66 ken.=.strpos($yytext,.'.').===.f
f8140 61 6c 73 65 20 3f 20 69 6e 74 76 61 6c 28 24 79 79 74 65 78 74 29 20 3a 20 66 6c 6f 61 74 76 61 alse.?.intval($yytext).:.floatva
f8160 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 33 3a 0a 24 79 79 l($yytext);.}.break;.case.3:.$yy
f8180 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 34 val->token.=.null;.break;.case.4
f81a0 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 :.$yyval->token.=.true;.break;.c
f81c0 61 73 65 20 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 65 3b 0a 62 72 ase.5:.$yyval->token.=.false;.br
f81e0 65 61 6b 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 eak;.case.6:.return.$yyval->toke
f8200 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 63 61 73 65 20 31 33 3a 0a 69 66 n.=.$tokens[$len-1];.case.13:.if
f8220 20 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f 5f .($this->flags.&.self::PARSE_TO_
f8240 41 53 53 4f 43 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 ASSOC).{.$yyval->token.=.array()
f8260 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 ;.}.else.{.$yyval->token.=.new.s
f8280 74 64 43 6c 61 73 73 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 76 61 tdClass;.}.break;.case.14:.$yyva
f82a0 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 l->token.=.$tokens[$len-1];.brea
f82c0 6b 3b 0a 63 61 73 65 20 31 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 k;.case.15:.$yyval->token.=.arra
f82e0 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d y($tokens[$len-2],.$tokens[$len]
f8300 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 36 3a 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 );.break;.case.16:.$property.=.$
f8320 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 tokens[$len][0].===.''.?.'_empty
f8340 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 24 74 68 69 73 _'.:.$tokens[$len][0];.if.($this
f8360 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 29 20 ->flags.&.self::PARSE_TO_ASSOC).
f8380 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 79 79 76 61 {.$yyval->token.=.array();.$yyva
f83a0 6c 2d 3e 74 6f 6b 65 6e 5b 24 70 72 6f 70 65 72 74 79 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c l->token[$property].=.$tokens[$l
f83c0 65 6e 5d 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d en][1];.}.else.{.$yyval->token.=
f83e0 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 70 .new.stdClass;.$yyval->token->$p
f8400 72 6f 70 65 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 0a 62 72 roperty.=.$tokens[$len][1];.}.br
f8420 65 61 6b 3b 0a 63 61 73 65 20 31 37 3a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 eak;.case.17:.if.($this->flags.&
f8440 20 73 65 6c 66 3a 3a 50 41 52 53 45 5f 54 4f 5f 41 53 53 4f 43 29 20 7b 0a 24 79 79 76 61 6c 2d .self::PARSE_TO_ASSOC).{.$yyval-
f8460 3e 74 6f 6b 65 6e 20 3d 26 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 24 6b 65 79 20 >token.=&.$tokens[$len-2];.$key.
f8480 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d 3e =.$tokens[$len][0];.if.(($this->
f84a0 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 flags.&.self::DETECT_KEY_CONFLIC
f84c0 54 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b 65 TS).&&.isset($tokens[$len-2][$ke
f84e0 79 5d 29 29 20 7b 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e y])).{.$errStr.=.'Parse.error.on
f8500 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 3b .line.'...($yylineno+1)...":\n";
f8520 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 50 6f .$errStr..=.$this->lexer->showPo
f8540 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 75 70 sition()..."\n";.$errStr..=."Dup
f8560 6c 69 63 61 74 65 20 6b 65 79 3a 20 22 2e 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a licate.key:.".$tokens[$len][0];.
f8580 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 throw.new.ParsingException($errS
f85a0 74 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 tr);.}.elseif.(($this->flags.&.s
f85c0 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 73 elf::ALLOW_DUPLICATE_KEYS).&&.is
f85e0 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 64 set($tokens[$len-2][$key])).{.$d
f8600 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 61 uplicateCount.=.1;.do.{.$duplica
f8620 74 65 4b 65 79 20 3d 20 24 6b 65 79 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 43 teKey.=.$key...'.'...$duplicateC
f8640 6f 75 6e 74 2b 2b 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 ount++;.}.while.(isset($tokens[$
f8660 6c 65 6e 2d 32 5d 5b 24 64 75 70 6c 69 63 61 74 65 4b 65 79 5d 29 29 3b 0a 24 6b 65 79 20 3d 20 len-2][$duplicateKey]));.$key.=.
f8680 24 64 75 70 6c 69 63 61 74 65 4b 65 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d $duplicateKey;.}.$tokens[$len-2]
f86a0 5b 24 6b 65 79 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 20 65 6c 73 [$key].=.$tokens[$len][1];.}.els
f86c0 65 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e e.{.$yyval->token.=.$tokens[$len
f86e0 2d 32 5d 3b 0a 24 6b 65 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d 3d 3d -2];.$key.=.$tokens[$len][0].===
f8700 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b .''.?.'_empty_'.:.$tokens[$len][
f8720 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 44 45 0];.if.(($this->flags.&.self::DE
f8740 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f TECT_KEY_CONFLICTS).&&.isset($to
f8760 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 65 72 72 53 74 72 kens[$len-2]->{$key})).{.$errStr
f8780 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 .=.'Parse.error.on.line.'...($yy
f87a0 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 lineno+1)...":\n";.$errStr..=.$t
f87c0 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e his->lexer->showPosition()..."\n
f87e0 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 75 70 6c 69 63 61 74 65 20 6b 65 79 3a 20 22 2e ";.$errStr..=."Duplicate.key:.".
f8800 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 $tokens[$len][0];.throw.new.Pars
f8820 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 29 3b 0a 7d 20 65 6c 73 65 69 66 20 ingException($errStr);.}.elseif.
f8840 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 55 50 (($this->flags.&.self::ALLOW_DUP
f8860 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c LICATE_KEYS).&&.isset($tokens[$l
f8880 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e en-2]->{$key})).{.$duplicateCoun
f88a0 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 4b 65 79 20 3d 20 24 6b 65 79 t.=.1;.do.{.$duplicateKey.=.$key
f88c0 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 77 68 ...'.'...$duplicateCount++;.}.wh
f88e0 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 64 75 70 ile.(isset($tokens[$len-2]->$dup
f8900 6c 69 63 61 74 65 4b 65 79 29 29 3b 0a 24 6b 65 79 20 3d 20 24 64 75 70 6c 69 63 61 74 65 4b 65 licateKey));.$key.=.$duplicateKe
f8920 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 6b 65 79 20 3d 20 24 74 6f y;.}.$tokens[$len-2]->$key.=.$to
f8940 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 3a kens[$len][1];.}.break;.case.18:
f8960 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b 3b .$yyval->token.=.array();.break;
f8980 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e .case.19:.$yyval->token.=.$token
f89a0 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 61 s[$len-1];.break;.case.20:.$yyva
f89c0 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b l->token.=.array($tokens[$len]);
f89e0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d .break;.case.21:.$tokens[$len-2]
f8a00 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 [].=.$tokens[$len];.$yyval->toke
f8a20 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 72 n.=.$tokens[$len-2];.break;.}..r
f8a40 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 eturn.new.Undefined();.}..privat
f8a60 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 24 e.function.stringInterpolation($
f8a80 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 61 match).{.switch.($match[0]).{.ca
f8aa0 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c 22 se.'\\\\':.return.'\\';.case.'\"
f8ac0 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 6e ':.return.'"';.case.'\b':.return
f8ae0 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 31 .chr(8);.case.'\f':.return.chr(1
f8b00 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 2);.case.'\n':.return."\n";.case
f8b20 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a 72 .'\r':.return."\r";.case.'\t':.r
f8b40 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 2f eturn."\t";.case.'\/':.return."/
f8b60 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f 64 ";.default:.return.html_entity_d
f8b80 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b ecode('&#x'.ltrim(substr($match[
f8ba0 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a 7d 0],.2),.'0').';',.0,.'UTF-8');.}
f8bc0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 6e .}..private.function.popStack($n
f8be0 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 ).{.$this->stack.=.array_slice($
f8c00 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 68 this->stack,.0,.-.(2.*.$n));.$th
f8c20 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e is->vstack.=.array_slice($this->
f8c40 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 vstack,.0,.-.$n);.$this->lstack.
f8c60 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c 20 =.array_slice($this->lstack,.0,.
f8c80 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 -.$n);.}..private.function.lex()
f8ca0 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 20 .{.$token.=.$this->lexer->lex().
f8cc0 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 6e ?:.1;.....if.(!is_numeric($token
f8ce0 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 6f )).{.$token.=.isset($this->symbo
f8d00 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f ls[$token]).?.$this->symbols[$to
f8d20 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b ken].:.$token;.}..return.$token;
f8d40 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 61 69 6c 4f 6e 42 4f 4d 28 24 .}..private.function.failOnBOM($
f8d60 69 6e 70 75 74 29 0a 7b 0a 0a 20 24 62 6f 6d 20 3d 20 22 5c 78 45 46 5c 78 42 42 5c 78 42 46 22 input).{...$bom.=."\xEF\xBB\xBF"
f8d80 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c 20 30 2c 20 33 29 20 3d 3d 3d 20 ;..if.(substr($input,.0,.3).===.
f8da0 24 62 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 22 42 4f 4d 20 64 $bom).{.$this->parseError("BOM.d
f8dc0 65 74 65 63 74 65 64 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 72 20 69 6e 70 75 74 20 64 6f etected,.make.sure.your.input.do
f8de0 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 20 55 6e 69 63 6f 64 65 20 42 79 74 65 2d 4f 72 es.not.include.a.Unicode.Byte-Or
f8e00 64 65 72 2d 4d 61 72 6b 22 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 der-Mark",.array());.}.}.}.<?php
f8e20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 ...........namespace.Seld\JsonLi
f8e40 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 nt;.......class.Lexer.{.private.
f8e60 24 45 4f 46 20 3d 20 31 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 $EOF.=.1;.private.$rules.=.array
f8e80 28 0a 30 20 3d 3e 20 27 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 27 2f 5e 2d 3f 28 5b 30 2d 39 (.0.=>.'/^\s+/',.1.=>.'/^-?([0-9
f8ea0 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 28 5b 65 45 5d 5b 2b ]|[1-9][0-9]+)(\.[0-9]+)?([eE][+
f8ec0 2d 5d 3f 5b 30 2d 39 5d 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 27 7b 5e 22 28 3f 3a 5c 5c 5c -]?[0-9]+)?\b/',.2.=>.'{^"(?:\\\
f8ee0 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d 7b \["bfnrt/\\\\]|\\\\u[a-fA-F0-9]{
f8f00 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 2b 29 2a 22 7d 4}|[^\0-\x09\x0a-\x1f\\\\"]+)*"}
f8f20 27 2c 0a 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d 2f 27 2c 0a 35 ',.3.=>.'/^\{/',.4.=>.'/^\}/',.5
f8f40 20 3d 3e 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a 37 20 3d 3e 20 .=>.'/^\[/',.6.=>.'/^\]/',.7.=>.
f8f60 27 2f 5e 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 2f 5e 74 72 75 '/^,/',.8.=>.'/^:/',.9.=>.'/^tru
f8f80 65 5c 62 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a 31 31 20 3d 3e e\b/',.10.=>.'/^false\b/',.11.=>
f8fa0 20 27 2f 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 0a 31 33 20 3d .'/^null\b/',.12.=>.'/^$/',.13.=
f8fc0 3e 20 27 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e >.'/^./',.);..private.$condition
f8fe0 73 20 3d 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 61 79 28 0a 22 s.=.array(."INITIAL".=>.array(."
f9000 72 75 6c 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c rules".=>.array(0,1,2,3,4,5,6,7,
f9020 38 2c 39 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 65 22 20 3d 3e 8,9,10,11,12,13),."inclusive".=>
f9040 20 74 72 75 65 2c 0a 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e .true,.),.);..private.$condition
f9060 53 74 61 63 6b 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 Stack;.private.$input;.private.$
f9080 6d 6f 72 65 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 more;.private.$done;.private.$ma
f90a0 74 63 68 65 64 3b 0a 0a 70 75 62 6c 69 63 20 24 6d 61 74 63 68 3b 0a 70 75 62 6c 69 63 20 24 79 tched;..public.$match;.public.$y
f90c0 79 6c 69 6e 65 6e 6f 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 65 6e 67 3b 0a 70 75 62 6c 69 63 20 ylineno;.public.$yyleng;.public.
f90e0 24 79 79 74 65 78 74 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 6c 6f 63 3b 0a 0a 70 75 62 6c 69 63 $yytext;.public.$yylloc;..public
f9100 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 0a 7b 0a 24 72 20 3d 20 24 74 68 69 73 2d 3e 6e 65 .function.lex().{.$r.=.$this->ne
f9120 78 74 28 29 3b 0a 69 66 20 28 21 24 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e xt();.if.(!$r.instanceof.Undefin
f9140 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ed).{.return.$r;.}..return.$this
f9160 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 ->lex();.}..public.function.setI
f9180 6e 70 75 74 28 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 nput($input).{.$this->input.=.$i
f91a0 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 nput;.$this->more.=.false;.$this
f91c0 2d 3e 64 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 ->done.=.false;.$this->yylineno.
f91e0 3d 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 =.$this->yyleng.=.0;.$this->yyte
f9200 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 xt.=.$this->matched.=.$this->mat
f9220 63 68 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 20 3d ch.=.'';.$this->conditionStack.=
f9240 20 61 72 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 .array('INITIAL');.$this->yylloc
f9260 20 3d 20 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 66 69 72 .=.array('first_line'.=>.1,.'fir
f9280 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 st_column'.=>.0,.'last_line'.=>.
f92a0 31 2c 20 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 75 72 6e 20 1,.'last_column'.=>.0);..return.
f92c0 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 50 6f $this;.}..public.function.showPo
f92e0 73 69 74 69 6f 6e 28 29 0a 7b 0a 24 70 72 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c sition().{.$pre.=.str_replace("\
f9300 6e 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 29 3b 0a n",.'',.$this->getPastInput());.
f9320 24 63 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 6d 61 78 28 30 2c 20 73 74 72 6c $c.=.str_repeat('-',.max(0,.strl
f9340 65 6e 28 24 70 72 65 29 20 2d 20 31 29 29 3b 20 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 20 2e 20 en($pre).-.1));...return.$pre...
f9360 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 str_replace("\n",.'',.$this->get
f9380 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 22 UpcomingInput())..."\n"...$c..."
f93a0 5e 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 74 49 6e ^";.}..public.function.getPastIn
f93c0 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d 61 put().{.$past.=.substr($this->ma
f93e0 74 63 68 65 64 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 29 tched,.0,.strlen($this->matched)
f9400 20 2d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 29 29 3b 0a 0a 72 65 74 75 72 .-.strlen($this->match));..retur
f9420 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 n.(strlen($past).>.20.?.'...'.:.
f9440 27 27 29 20 2e 20 73 75 62 73 74 72 28 24 70 61 73 74 2c 20 2d 32 30 29 3b 0a 7d 0a 0a 70 75 62 '')...substr($past,.-20);.}..pub
f9460 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 0a lic.function.getUpcomingInput().
f9480 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 6c {.$next.=.$this->match;.if.(strl
f94a0 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 20 7b 0a 24 6e 65 78 74 20 2e 3d 20 73 75 62 73 74 en($next).<.20).{.$next..=.subst
f94c0 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 24 r($this->input,.0,.20.-.strlen($
f94e0 6e 65 78 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 6e 65 78 74 2c 20 next));.}..return.substr($next,.
f9500 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3e 20 32 30 20 3f 20 27 0,.20)...(strlen($next).>.20.?.'
f9520 2e 2e 2e 27 20 3a 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ...'.:.'');.}..protected.functio
f9540 6e 20 70 61 72 73 65 45 72 72 6f 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f n.parseError($str,.$hash).{.thro
f9560 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 29 3b 0a 7d 0a 0a 70 72 69 76 61 w.new.\Exception($str);.}..priva
f9580 74 65 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e te.function.next().{.if.($this->
f95a0 64 6f 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 20 done).{.return.$this->EOF;.}.if.
f95c0 28 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 6e 65 20 3d 20 (!$this->input).{.$this->done.=.
f95e0 74 72 75 65 3b 0a 7d 0a 0a 24 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6d 61 74 63 68 20 3d true;.}..$token.=.null;.$match.=
f9600 20 6e 75 6c 6c 3b 0a 24 63 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 69 6e 65 73 20 3d 20 6e 75 6c .null;.$col.=.null;.$lines.=.nul
f9620 6c 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 6f 72 65 29 20 7b 0a 24 74 68 69 73 2d 3e 79 l;..if.(!$this->more).{.$this->y
f9640 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 3d 20 27 27 3b 0a 7d ytext.=.'';.$this->match.=.'';.}
f9660 0a 0a 24 72 75 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 52 75 6c 65 ..$rules.=.$this->getCurrentRule
f9680 73 28 29 3b 0a 24 72 75 6c 65 73 4c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 73 29 3b 0a s();.$rulesLen.=.count($rules);.
f96a0 0a 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 20 3c 20 24 72 75 6c 65 73 4c 65 6e 3b 20 24 69 2b 2b .for.($i=0;.$i.<.$rulesLen;.$i++
f96c0 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b ).{.if.(preg_match($this->rules[
f96e0 24 72 75 6c 65 73 5b 24 69 5d 5d 2c 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 6d 61 74 63 $rules[$i]],.$this->input,.$matc
f9700 68 29 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 2f 5c 6e 2e 2a 2f 27 2c 20 24 h)).{.preg_match_all('/\n.*/',.$
f9720 6d 61 74 63 68 5b 30 5d 2c 20 24 6c 69 6e 65 73 29 3b 0a 24 6c 69 6e 65 73 20 3d 20 24 6c 69 6e match[0],.$lines);.$lines.=.$lin
f9740 65 73 5b 30 5d 3b 0a 69 66 20 28 24 6c 69 6e 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 es[0];.if.($lines).{.$this->yyli
f9760 6e 65 6e 6f 20 2b 3d 20 63 6f 75 6e 74 28 24 6c 69 6e 65 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d neno.+=.count($lines);.}..$this-
f9780 3e 79 79 6c 6c 6f 63 20 3d 20 61 72 72 61 79 28 0a 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e >yylloc.=.array(.'first_line'.=>
f97a0 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 6c 61 .$this->yylloc['last_line'],.'la
f97c0 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 2c 0a 27 st_line'.=>.$this->yylineno+1,.'
f97e0 66 69 72 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 first_column'.=>.$this->yylloc['
f9800 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 last_column'],.'last_column'.=>.
f9820 24 6c 69 6e 65 73 20 3f 20 73 74 72 6c 65 6e 28 24 6c 69 6e 65 73 5b 63 6f 75 6e 74 28 24 6c 69 $lines.?.strlen($lines[count($li
f9840 6e 65 73 29 20 2d 20 31 5d 29 20 2d 20 31 20 3a 20 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 5b 27 nes).-.1]).-.1.:.$this->yylloc['
f9860 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 20 2b 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d last_column'].+.strlen($match[0]
f9880 29 2c 0a 29 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d ),.);.$this->yytext..=.$match[0]
f98a0 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 68 ;.$this->match..=.$match[0];.$th
f98c0 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 79 79 74 65 78 is->yyleng.=.strlen($this->yytex
f98e0 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e t);.$this->more.=.false;.$this->
f9900 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 73 74 72 input.=.substr($this->input,.str
f9920 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 len($match[0]));.$this->matched.
f9940 2e 3d 20 24 6d 61 74 63 68 5b 30 5d 3b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 70 65 .=.$match[0];.$token.=.$this->pe
f9960 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 72 75 6c 65 73 5b 24 69 5d 2c 20 24 74 68 69 73 2d 3e 63 rformAction($rules[$i],.$this->c
f9980 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 64 69 onditionStack[count($this->condi
f99a0 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 29 3b 0a 69 66 20 28 24 74 6f 6b 65 6e 29 20 7b 0a 72 65 tionStack)-1]);.if.($token).{.re
f99c0 74 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 turn.$token;.}..return.new.Undef
f99e0 69 6e 65 64 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 3d ined();.}.}..if.($this->input.==
f9a00 3d 20 22 22 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 0a 24 74 =."").{.return.$this->EOF;.}..$t
f9a20 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 0a 27 4c 65 78 69 63 61 6c 20 65 72 72 6f 72 20 his->parseError(.'Lexical.error.
f9a40 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 on.line.'...($this->yylineno+1).
f9a60 2e 20 22 2e 20 55 6e 72 65 63 6f 67 6e 69 7a 65 64 20 74 65 78 74 2e 5c 6e 22 20 2e 20 24 74 68 .."..Unrecognized.text.\n"...$th
f9a80 69 73 2d 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 2c 0a 61 72 72 61 79 28 0a 27 74 65 78 74 is->showPosition(),.array(.'text
f9aa0 27 20 3d 3e 20 22 22 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 6c 69 6e 65 27 '.=>."",.'token'.=>.null,.'line'
f9ac0 20 3d 3e 20 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 29 0a 29 3b 0a 7d 0a 0a 70 72 69 .=>.$this->yylineno,.).);.}..pri
f9ae0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 52 75 6c 65 73 28 29 0a vate.function.getCurrentRules().
f9b00 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 73 5b 24 74 68 69 73 {.return.$this->conditions[$this
f9b20 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f ->conditionStack[count($this->co
f9b40 6e 64 69 74 69 6f 6e 53 74 61 63 6b 29 2d 31 5d 5d 5b 27 72 75 6c 65 73 27 5d 3b 0a 7d 0a 0a 70 nditionStack)-1]]['rules'];.}..p
f9b60 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 61 rivate.function.performAction($a
f9b80 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c 6c 69 73 69 6f 6e 73 2c 20 24 59 59 5f 53 54 41 voiding_name_collisions,.$YY_STA
f9ba0 52 54 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 61 76 6f 69 64 69 6e 67 5f 6e 61 6d 65 5f 63 6f 6c RT).{.switch.($avoiding_name_col
f9bc0 6c 69 73 69 6f 6e 73 29 20 7b 0a 63 61 73 65 20 30 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 lisions).{.case.0:.break;.case.1
f9be0 3a 0a 72 65 74 75 72 6e 20 36 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 3a 0a 24 74 68 69 73 :.return.6;.break;.case.2:.$this
f9c00 2d 3e 79 79 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 79 79 74 65 78 74 2c ->yytext.=.substr($this->yytext,
f9c20 20 31 2c 20 24 74 68 69 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 34 3b .1,.$this->yyleng-2);..return.4;
f9c40 0a 63 61 73 65 20 33 3a 0a 72 65 74 75 72 6e 20 31 37 3b 0a 63 61 73 65 20 34 3a 0a 72 65 74 75 .case.3:.return.17;.case.4:.retu
f9c60 72 6e 20 31 38 3b 0a 63 61 73 65 20 35 3a 0a 72 65 74 75 72 6e 20 32 33 3b 0a 63 61 73 65 20 36 rn.18;.case.5:.return.23;.case.6
f9c80 3a 0a 72 65 74 75 72 6e 20 32 34 3b 0a 63 61 73 65 20 37 3a 0a 72 65 74 75 72 6e 20 32 32 3b 0a :.return.24;.case.7:.return.22;.
f9ca0 63 61 73 65 20 38 3a 0a 72 65 74 75 72 6e 20 32 31 3b 0a 63 61 73 65 20 39 3a 0a 72 65 74 75 72 case.8:.return.21;.case.9:.retur
f9cc0 6e 20 31 30 3b 0a 63 61 73 65 20 31 30 3a 0a 72 65 74 75 72 6e 20 31 31 3b 0a 63 61 73 65 20 31 n.10;.case.10:.return.11;.case.1
f9ce0 31 3a 0a 72 65 74 75 72 6e 20 38 3b 0a 63 61 73 65 20 31 32 3a 0a 72 65 74 75 72 6e 20 31 34 3b 1:.return.8;.case.12:.return.14;
f9d00 0a 63 61 73 65 20 31 33 3a 0a 72 65 74 75 72 6e 20 27 49 4e 56 41 4c 49 44 27 3b 0a 7d 0a 7d 0a .case.13:.return.'INVALID';.}.}.
f9d20 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 }.<?php...........namespace.Seld
f9d40 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c 61 73 73 20 50 61 72 73 69 6e 67 45 78 63 65 70 74 69 \JsonLint;..class.ParsingExcepti
f9d60 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 on.extends.\Exception.{.protecte
f9d80 64 20 24 64 65 74 61 69 6c 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 d.$details;..public.function.__c
f9da0 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 64 65 74 61 69 6c 73 20 3d 20 61 72 onstruct($message,.$details.=.ar
f9dc0 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 20 3d 20 24 64 65 74 61 69 ray()).{.$this->details.=.$detai
f9de0 6c 73 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 ls;.parent::__construct($message
f9e00 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 74 61 69 6c 73 );.}..public.function.getDetails
f9e20 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a 7d 0a ().{.return.$this->details;.}.}.
f9e40 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 30 38 2c 20 47 72 61 64 75 61 20 4e 65 74 77 6f Copyright.(c).2008,.Gradua.Netwo
f9e60 72 6b 73 0a 41 75 74 68 6f 72 3a 20 42 72 75 6e 6f 20 50 72 69 65 74 6f 20 52 65 69 73 0a 41 6c rks.Author:.Bruno.Prieto.Reis.Al
f9e80 6c 20 72 69 67 68 74 73 20 72 65 73 65 72 76 65 64 2e 0a 0a 0a 52 65 64 69 73 74 72 69 62 75 74 l.rights.reserved....Redistribut
f9ea0 69 6f 6e 20 61 6e 64 20 75 73 65 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 62 69 6e 61 72 79 ion.and.use.in.source.and.binary
f9ec0 20 66 6f 72 6d 73 2c 20 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 6d 6f 64 69 66 69 63 61 .forms,.with.or.without.modifica
f9ee0 74 69 6f 6e 2c 20 61 72 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 61 tion,.are.permitted.provided.tha
f9f00 74 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 20 6d t.the.following.conditions.are.m
f9f20 65 74 3a 0a 0a 20 2a 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f 75 72 63 et:...*.Redistributions.of.sourc
f9f40 65 20 63 6f 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 e.code.must.retain.the.above.cop
f9f60 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 20 74 68 69 73 0a 20 20 20 6c 69 73 74 20 6f 66 20 63 yright.notice,.this....list.of.c
f9f80 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 onditions.and.the.following.disc
f9fa0 6c 61 69 6d 65 72 2e 0a 0a 20 2a 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e 20 62 laimer....*.Redistributions.in.b
f9fc0 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 61 62 inary.form.must.reproduce.the.ab
f9fe0 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 2c 0a 20 20 20 74 68 69 73 20 6c 69 ove.copyright.notice,....this.li
fa000 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 st.of.conditions.and.the.followi
fa020 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 20 69 6e 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 ng.disclaimer.in.the.documentati
fa040 6f 6e 0a 20 20 20 61 6e 64 2f 6f 72 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 6c 73 20 70 72 6f on....and/or.other.materials.pro
fa060 76 69 64 65 64 20 77 69 74 68 20 74 68 65 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e 0a 0a 20 2a vided.with.the.distribution....*
fa080 20 4e 65 69 74 68 65 72 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 47 72 61 64 75 61 20 .Neither.the.name.of.the.Gradua.
fa0a0 4e 65 74 77 6f 72 6b 73 20 6e 6f 72 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 69 74 73 20 63 6f Networks.nor.the.names.of.its.co
fa0c0 6e 74 72 69 62 75 74 6f 72 73 0a 20 20 20 6d 61 79 20 62 65 20 75 73 65 64 20 74 6f 20 65 6e 64 ntributors....may.be.used.to.end
fa0e0 6f 72 73 65 20 6f 72 20 70 72 6f 6d 6f 74 65 20 70 72 6f 64 75 63 74 73 20 64 65 72 69 76 65 64 orse.or.promote.products.derived
fa100 20 66 72 6f 6d 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 0a 20 20 20 77 69 74 68 6f 75 74 20 73 .from.this.software....without.s
fa120 70 65 63 69 66 69 63 20 70 72 69 6f 72 20 77 72 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 6f 6e pecific.prior.written.permission
fa140 2e 0a 0a 54 48 49 53 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 20 ...THIS.SOFTWARE.IS.PROVIDED.BY.
fa160 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 43 4f 4e 54 52 49 THE.COPYRIGHT.HOLDERS.AND.CONTRI
fa180 42 55 54 4f 52 53 20 22 41 53 20 49 53 22 0a 41 4e 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 4f BUTORS."AS.IS".AND.ANY.EXPRESS.O
fa1a0 52 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c R.IMPLIED.WARRANTIES,.INCLUDING,
fa1c0 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 0a 49 4d 50 4c 49 45 44 .BUT.NOT.LIMITED.TO,.THE.IMPLIED
fa1e0 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 .WARRANTIES.OF.MERCHANTABILITY.A
fa200 4e 44 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 ND.FITNESS.FOR.A.PARTICULAR.PURP
fa220 4f 53 45 20 41 52 45 0a 44 49 53 43 4c 41 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 OSE.ARE.DISCLAIMED..IN.NO.EVENT.
fa240 53 48 41 4c 4c 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 20 4f 52 20 43 4f SHALL.THE.COPYRIGHT.HOLDER.OR.CO
fa260 4e 54 52 49 42 55 54 4f 52 53 20 42 45 20 4c 49 41 42 4c 45 0a 46 4f 52 20 41 4e 59 20 44 49 52 NTRIBUTORS.BE.LIABLE.FOR.ANY.DIR
fa280 45 43 54 2c 20 49 4e 44 49 52 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 49 ECT,.INDIRECT,.INCIDENTAL,.SPECI
fa2a0 41 4c 2c 20 45 58 45 4d 50 4c 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 0a AL,.EXEMPLARY,.OR.CONSEQUENTIAL.
fa2c0 44 41 4d 41 47 45 53 20 28 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 DAMAGES.(INCLUDING,.BUT.NOT.LIMI
fa2e0 54 45 44 20 54 4f 2c 20 50 52 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 TED.TO,.PROCUREMENT.OF.SUBSTITUT
fa300 45 20 47 4f 4f 44 53 20 4f 52 0a 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 E.GOODS.OR.SERVICES;.LOSS.OF.USE
fa320 2c 20 44 41 54 41 2c 20 4f 52 20 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 53 20 ,.DATA,.OR.PROFITS;.OR.BUSINESS.
fa340 49 4e 54 45 52 52 55 50 54 49 4f 4e 29 20 48 4f 57 45 56 45 52 0a 43 41 55 53 45 44 20 41 4e 44 INTERRUPTION).HOWEVER.CAUSED.AND
fa360 20 4f 4e 20 41 4e 59 20 54 48 45 4f 52 59 20 4f 46 20 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 .ON.ANY.THEORY.OF.LIABILITY,.WHE
fa380 54 48 45 52 20 49 4e 20 43 4f 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c 49 THER.IN.CONTRACT,.STRICT.LIABILI
fa3a0 54 59 2c 0a 4f 52 20 54 4f 52 54 20 28 49 4e 43 4c 55 44 49 4e 47 20 4e 45 47 4c 49 47 45 4e 43 TY,.OR.TORT.(INCLUDING.NEGLIGENC
fa3c0 45 20 4f 52 20 4f 54 48 45 52 57 49 53 45 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 20 57 E.OR.OTHERWISE).ARISING.IN.ANY.W
fa3e0 41 59 20 4f 55 54 20 4f 46 20 54 48 45 20 55 53 45 0a 4f 46 20 54 48 49 53 20 53 4f 46 54 57 41 AY.OUT.OF.THE.USE.OF.THIS.SOFTWA
fa400 52 45 2c 20 45 56 45 4e 20 49 46 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 4f 53 53 49 RE,.EVEN.IF.ADVISED.OF.THE.POSSI
fa420 42 49 4c 49 54 59 20 4f 46 20 53 55 43 48 20 44 41 4d 41 47 45 2e 0a 3c 3f 70 68 70 0a 0a 0a 0a BILITY.OF.SUCH.DAMAGE..<?php....
fa440 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 .....namespace.JsonSchema;..use.
fa460 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 JsonSchema\Uri\Retrievers\UriRet
fa480 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c rieverInterface;.use.JsonSchema\
fa4a0 55 72 69 5c 55 72 69 52 65 74 72 69 65 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 Uri\UriRetriever;........class.R
fa4c0 65 66 52 65 73 6f 6c 76 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 efResolver.{........protected.st
fa4e0 61 74 69 63 20 24 64 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 atic.$depth.=.0;......public.sta
fa500 74 69 63 20 24 6d 61 78 44 65 70 74 68 20 3d 20 37 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 tic.$maxDepth.=.7;.....protected
fa520 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 .$uriRetriever.=.null;.....publi
fa540 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 65 74 72 69 65 76 65 c.function.__construct($retrieve
fa560 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 r.=.null).{.$this->uriRetriever.
fa580 3d 20 24 72 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 =.$retriever;.}.........public.f
fa5a0 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 52 65 66 28 24 72 65 66 2c 20 24 73 6f 75 72 63 65 55 72 unction.fetchRef($ref,.$sourceUr
fa5c0 69 29 0a 7b 0a 24 72 65 74 72 69 65 76 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 52 i).{.$retriever.=.$this->getUriR
fa5e0 65 74 72 69 65 76 65 72 28 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 72 65 74 72 69 etriever();.$jsonSchema.=.$retri
fa600 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 72 65 66 2c 20 24 73 6f 75 72 63 65 55 72 69 29 ever->retrieve($ref,.$sourceUri)
fa620 3b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 24 6a 73 6f 6e 53 63 68 65 6d 61 29 3b 0a 0a ;.$this->resolve($jsonSchema);..
fa640 72 65 74 75 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 return.$jsonSchema;.}........pub
fa660 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a 7b lic.function.getUriRetriever().{
fa680 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 .if.(is_null($this->uriRetriever
fa6a0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 )).{.$this->setUriRetriever(new.
fa6c0 55 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e UriRetriever);.}..return.$this->
fa6e0 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 uriRetriever;.}................p
fa700 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 28 24 73 63 68 65 6d 61 2c 20 ublic.function.resolve($schema,.
fa720 24 73 6f 75 72 63 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 24 $sourceUri.=.null).{.if.(self::$
fa740 64 65 70 74 68 20 3e 20 73 65 6c 66 3a 3a 24 6d 61 78 44 65 70 74 68 29 20 7b 0a 72 65 74 75 72 depth.>.self::$maxDepth).{.retur
fa760 6e 3b 0a 7d 0a 2b 2b 73 65 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 0a 69 66 20 28 21 20 69 73 5f 6f n;.}.++self::$depth;..if.(!.is_o
fa780 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 2d 2d 73 65 6c 66 3a 3a 24 64 65 70 74 68 bject($schema)).{.--self::$depth
fa7a0 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 6f 75 72 63 ;.return;.}..if.(null.===.$sourc
fa7c0 65 55 72 69 20 26 26 20 21 20 65 6d 70 74 79 28 24 73 63 68 65 6d 61 2d 3e 69 64 29 29 20 7b 0a eUri.&&.!.empty($schema->id)).{.
fa7e0 24 73 6f 75 72 63 65 55 72 69 20 3d 20 24 73 63 68 65 6d 61 2d 3e 69 64 3b 0a 7d 0a 0a 0a 20 24 $sourceUri.=.$schema->id;.}....$
fa800 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 52 65 66 28 24 73 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 this->resolveRef($schema,.$sourc
fa820 65 55 72 69 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 61 64 64 69 eUri);......foreach.(array('addi
fa840 74 69 6f 6e 61 6c 49 74 65 6d 73 27 2c 20 27 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 tionalItems',.'additionalPropert
fa860 69 65 73 27 2c 20 27 65 78 74 65 6e 64 73 27 2c 20 27 69 74 65 6d 73 27 29 20 61 73 20 24 70 72 ies',.'extends',.'items').as.$pr
fa880 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 50 72 6f 70 opertyName).{.$this->resolveProp
fa8a0 65 72 74 79 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f erty($schema,.$propertyName,.$so
fa8c0 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 urceUri);.}........foreach.(arra
fa8e0 79 28 27 64 69 73 61 6c 6c 6f 77 27 2c 20 27 65 78 74 65 6e 64 73 27 2c 20 27 69 74 65 6d 73 27 y('disallow',.'extends',.'items'
fa900 2c 20 27 74 79 70 65 27 2c 20 27 61 6c 6c 4f 66 27 2c 20 27 61 6e 79 4f 66 27 2c 20 27 6f 6e 65 ,.'type',.'allOf',.'anyOf',.'one
fa920 4f 66 27 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e Of').as.$propertyName).{.$this->
fa940 72 65 73 6f 6c 76 65 41 72 72 61 79 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 resolveArrayOfSchemas($schema,.$
fa960 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 0a 20 propertyName,.$sourceUri);.}....
fa980 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 27 foreach.(array('dependencies',.'
fa9a0 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 27 2c 20 27 70 72 6f 70 65 72 74 69 65 73 27 patternProperties',.'properties'
fa9c0 29 20 61 73 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 ).as.$propertyName).{.$this->res
fa9e0 6f 6c 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 70 72 olveObjectOfSchemas($schema,.$pr
faa00 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a 0a 2d 2d 73 65 opertyName,.$sourceUri);.}..--se
faa20 6c 66 3a 3a 24 64 65 70 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 lf::$depth;.}..........public.fu
faa40 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 41 72 72 61 79 4f 66 53 63 68 65 6d 61 73 28 24 73 63 nction.resolveArrayOfSchemas($sc
faa60 68 65 6d 61 2c 20 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 hema,.$propertyName,.$sourceUri)
faa80 0a 7b 0a 69 66 20 28 21 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 .{.if.(!.isset($schema->$propert
faaa0 79 4e 61 6d 65 29 20 7c 7c 20 21 20 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 24 70 yName).||.!.is_array($schema->$p
faac0 72 6f 70 65 72 74 79 4e 61 6d 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 ropertyName)).{.return;.}..forea
faae0 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 20 61 73 20 24 70 ch.($schema->$propertyName.as.$p
fab00 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 ossiblySchema).{.$this->resolve(
fab20 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a $possiblySchema,.$sourceUri);.}.
fab40 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c }..........public.function.resol
fab60 76 65 4f 62 6a 65 63 74 4f 66 53 63 68 65 6d 61 73 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f 70 veObjectOfSchemas($schema,.$prop
fab80 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 69 66 20 28 21 20 69 73 ertyName,.$sourceUri).{.if.(!.is
faba0 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 20 7c 7c 20 21 set($schema->$propertyName).||.!
fabc0 20 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d .is_object($schema->$propertyNam
fabe0 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 67 65 74 5f 6f 62 e)).{.return;.}..foreach.(get_ob
fac00 6a 65 63 74 5f 76 61 72 73 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 ject_vars($schema->$propertyName
fac20 29 20 61 73 20 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 ).as.$possiblySchema).{.$this->r
fac40 65 73 6f 6c 76 65 28 24 70 6f 73 73 69 62 6c 79 53 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 esolve($possiblySchema,.$sourceU
fac60 72 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ri);.}.}..........public.functio
fac80 6e 20 72 65 73 6f 6c 76 65 50 72 6f 70 65 72 74 79 28 24 73 63 68 65 6d 61 2c 20 24 70 72 6f 70 n.resolveProperty($schema,.$prop
faca0 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 69 66 20 28 21 20 69 73 ertyName,.$sourceUri).{.if.(!.is
facc0 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 29 29 20 7b 0a 72 set($schema->$propertyName)).{.r
face0 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 28 24 73 63 68 65 6d 61 eturn;.}..$this->resolve($schema
fad00 2d 3e 24 70 72 6f 70 65 72 74 79 4e 61 6d 65 2c 20 24 73 6f 75 72 63 65 55 72 69 29 3b 0a 7d 0a ->$propertyName,.$sourceUri);.}.
fad20 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 .........public.function.resolve
fad40 52 65 66 28 24 73 63 68 65 6d 61 2c 20 24 73 6f 75 72 63 65 55 72 69 29 0a 7b 0a 24 72 65 66 20 Ref($schema,.$sourceUri).{.$ref.
fad60 3d 20 27 24 72 65 66 27 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 63 68 65 6d 61 2d 3e 24 72 =.'$ref';..if.(empty($schema->$r
fad80 65 66 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 66 53 63 68 65 6d 61 20 3d 20 24 ef)).{.return;.}..$refSchema.=.$
fada0 74 68 69 73 2d 3e 66 65 74 63 68 52 65 66 28 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 2c 20 24 73 this->fetchRef($schema->$ref,.$s
fadc0 6f 75 72 63 65 55 72 69 29 3b 0a 75 6e 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 24 72 65 66 29 3b ourceUri);.unset($schema->$ref);
fade0 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 28 24 72 65 ....foreach.(get_object_vars($re
fae00 66 53 63 68 65 6d 61 29 20 61 73 20 24 70 72 6f 70 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 fSchema).as.$prop.=>.$value).{.$
fae20 73 63 68 65 6d 61 2d 3e 24 70 72 6f 70 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a schema->$prop.=.$value;.}.}.....
fae40 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 72 69 52 65 74 72 69 65 76 ...public.function.setUriRetriev
fae60 65 72 28 55 72 69 52 65 74 72 69 65 76 65 72 20 24 72 65 74 72 69 65 76 65 72 29 0a 7b 0a 24 74 er(UriRetriever.$retriever).{.$t
fae80 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 72 65 74 72 69 65 76 65 72 3b 0a his->uriRetriever.=.$retriever;.
faea0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a .return.$this;.}.}.<?php........
faec0 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 .namespace.JsonSchema\Constraint
faee0 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 s;..use.JsonSchema\Exception\Inv
faf00 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 alidArgumentException;.use.JsonS
faf20 63 68 65 6d 61 5c 55 72 69 5c 55 72 69 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c chema\Uri\UriResolver;........cl
faf40 61 73 73 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 ass.UndefinedConstraint.extends.
faf60 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Constraint.{....public.function.
faf80 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 check($value,.$schema.=.null,.$p
fafa0 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f ath.=.null,.$i.=.null).{.if.(is_
fafc0 6e 75 6c 6c 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 null($schema)).{.return;.}..if.(
fafe0 21 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 !is_object($schema)).{.throw.new
fb000 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 47 69 76 65 .InvalidArgumentException(.'Give
fb020 6e 20 73 63 68 65 6d 61 20 6d 75 73 74 20 62 65 20 61 6e 20 6f 62 6a 65 63 74 20 69 6e 20 27 20 n.schema.must.be.an.object.in.'.
fb040 2e 20 24 70 61 74 68 0a 2e 20 27 20 62 75 74 20 69 73 20 61 20 27 20 2e 20 67 65 74 74 79 70 65 ..$path...'.but.is.a.'...gettype
fb060 28 24 73 63 68 65 6d 61 29 0a 29 3b 0a 7d 0a 0a 24 69 20 3d 20 69 73 5f 6e 75 6c 6c 28 24 69 29 ($schema).);.}..$i.=.is_null($i)
fb080 20 3f 20 22 22 20 3a 20 24 69 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 .?."".:.$i;.$path.=.$this->incre
fb0a0 6d 65 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 mentPath($path,.$i);....$this->v
fb0c0 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 alidateCommonProperties($value,.
fb0e0 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 $schema,.$path);....$this->valid
fb100 61 74 65 4f 66 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c ateOfProperties($value,.$schema,
fb120 20 24 70 61 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 73 .$path);....$this->validateTypes
fb140 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a ($value,.$schema,.$path,.$i);.}.
fb160 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 .........public.function.validat
fb180 65 54 79 70 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 eTypes($value,.$schema.=.null,.$
fb1a0 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 path.=.null,.$i.=.null).{...if.(
fb1c0 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b is_array($value)).{.$this->check
fb1e0 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 Array($value,.$schema,.$path,.$i
fb200 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 26 26 );.}....if.(is_object($value).&&
fb220 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 7c 7c 20 .(isset($schema->properties).||.
fb240 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 isset($schema->patternProperties
fb260 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4f 62 6a 65 63 74 28 0a 24 76 61 6c 75 65 ))).{.$this->checkObject(.$value
fb280 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 ,.isset($schema->properties).?.$
fb2a0 73 63 68 65 6d 61 2d 3e 70 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 2c 0a 24 70 61 74 68 schema->properties.:.null,.$path
fb2c0 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 ,.isset($schema->additionalPrope
fb2e0 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 rties).?.$schema->additionalProp
fb300 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 2c 0a 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 erties.:.null,.isset($schema->pa
fb320 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 tternProperties).?.$schema->patt
fb340 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 3a 20 6e 75 6c 6c 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ernProperties.:.null.);.}....if.
fb360 28 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 (is_string($value)).{.$this->che
fb380 63 6b 53 74 72 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c ckString($value,.$schema,.$path,
fb3a0 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 .$i);.}....if.(is_numeric($value
fb3c0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4e 75 6d 62 65 72 28 24 76 61 6c 75 65 2c 20 )).{.$this->checkNumber($value,.
fb3e0 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 $schema,.$path,.$i);.}....if.(is
fb400 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 set($schema->enum)).{.$this->che
fb420 63 6b 45 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 ckEnum($value,.$schema,.$path,.$
fb440 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 i);.}.}..........protected.funct
fb460 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6d 6d 6f 6e 50 72 6f 70 65 72 74 69 65 73 28 24 76 61 ion.validateCommonProperties($va
fb480 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c lue,.$schema.=.null,.$path.=.nul
fb4a0 6c 2c 20 24 69 20 3d 20 22 22 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d l,.$i.=."").{...if.(isset($schem
fb4c0 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 73 63 a->extends)).{.if.(is_string($sc
fb4e0 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e hema->extends)).{.$schema->exten
fb500 64 73 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 69 28 24 73 63 68 65 6d 61 2c ds.=.$this->validateUri($schema,
fb520 20 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 3b 0a 7d 0a 69 66 20 28 69 73 5f 61 72 72 .$schema->extends);.}.if.(is_arr
fb540 61 79 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 ay($schema->extends)).{.foreach.
fb560 28 24 73 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 20 61 73 20 24 65 78 74 65 6e 64 73 29 20 7b ($schema->extends.as.$extends).{
fb580 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 .$this->checkUndefined($value,.$
fb5a0 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a extends,.$path,.$i);.}.}.else.{.
fb5c0 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 $this->checkUndefined($value,.$s
fb5e0 63 68 65 6d 61 2d 3e 65 78 74 65 6e 64 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a chema->extends,.$path,.$i);.}.}.
fb600 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 0a 69 66 20 ...if.(is_object($value)).{..if.
fb620 28 21 28 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 43 6f (!($value.instanceof.UndefinedCo
fb640 6e 73 74 72 61 69 6e 74 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 nstraint).&&.isset($schema->requ
fb660 69 72 65 64 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 ired).&&.is_array($schema->requi
fb680 72 65 64 29 20 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 red).).{...foreach.($schema->req
fb6a0 75 69 72 65 64 20 61 73 20 24 72 65 71 75 69 72 65 64 29 20 7b 0a 69 66 20 28 21 70 72 6f 70 65 uired.as.$required).{.if.(!prope
fb6c0 72 74 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 24 72 65 71 75 69 72 65 64 29 29 20 7b rty_exists($value,.$required)).{
fb6e0 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 6f .$this->addError($path,."the.pro
fb700 70 65 72 74 79 20 22 20 2e 20 24 72 65 71 75 69 72 65 64 20 2e 20 22 20 69 73 20 72 65 71 75 69 perty."...$required...".is.requi
fb720 72 65 64 22 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 red");.}.}.}.else.if.(isset($sch
fb740 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 73 63 68 ema->required).&&.!is_array($sch
fb760 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 29 20 7b 0a 0a 20 69 66 20 28 20 24 73 63 68 65 6d 61 ema->required)).{...if.(.$schema
fb780 2d 3e 72 65 71 75 69 72 65 64 20 26 26 20 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 ->required.&&.$value.instanceof.
fb7a0 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 UndefinedConstraint).{.$this->ad
fb7c0 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6d 69 73 73 69 6e 67 20 61 6e 64 20 69 74 dError($path,."is.missing.and.it
fb7e0 20 69 73 20 72 65 71 75 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 28 24 .is.required");.}.}.}....if.(!($
fb800 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 value.instanceof.UndefinedConstr
fb820 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 aint)).{.$this->checkType($value
fb840 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 ,.$schema,.$path);.}....if.(isse
fb860 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 t($schema->disallow)).{.$initErr
fb880 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 79 70 65 ors.=.$this->getErrors();..$type
fb8a0 53 63 68 65 6d 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 3b 0a 24 74 79 70 65 53 Schema.=.new.\stdClass();.$typeS
fb8c0 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 73 63 68 65 6d 61 2d 3e 64 69 73 61 6c 6c 6f 77 3b chema->type.=.$schema->disallow;
fb8e0 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 53 .$this->checkType($value,.$typeS
fb900 63 68 65 6d 61 2c 20 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 chema,.$path);....if.(count($thi
fb920 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 s->getErrors()).==.count($initEr
fb940 72 6f 72 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 rors)).{.$this->addError($path,.
fb960 22 64 69 73 61 6c 6c 6f 77 65 64 20 76 61 6c 75 65 20 77 61 73 20 6d 61 74 63 68 65 64 22 29 3b "disallowed.value.was.matched");
fb980 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 .}.else.{.$this->errors.=.$initE
fb9a0 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6e rrors;.}.}..if.(isset($schema->n
fb9c0 6f 74 29 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 ot)).{.$initErrors.=.$this->getE
fb9e0 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 rrors();.$this->checkUndefined($
fba00 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 6e 6f 74 2c 20 24 70 61 74 68 2c 20 24 69 29 3b value,.$schema->not,.$path,.$i);
fba20 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 ....if.(count($this->getErrors()
fba40 29 20 3d 3d 20 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 20 7b 0a 24 74 68 69 73 ).==.count($initErrors)).{.$this
fba60 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 61 74 63 68 65 64 20 61 20 73 63 68 ->addError($path,."matched.a.sch
fba80 65 6d 61 20 77 68 69 63 68 20 69 74 20 73 68 6f 75 6c 64 20 6e 6f 74 22 29 3b 0a 7d 20 65 6c 73 ema.which.it.should.not");.}.els
fbaa0 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 69 6e 69 74 45 72 72 6f 72 73 3b e.{.$this->errors.=.$initErrors;
fbac0 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 29 20 7b .}.}....if.(is_object($value)).{
fbae0 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 65 .if.(isset($schema->minPropertie
fbb00 73 29 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 67 65 74 5f 6f 62 6a 65 63 74 5f 76 61 72 73 28 s)).{.if.(count(get_object_vars(
fbb20 24 76 61 6c 75 65 29 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 65 $value)).<.$schema->minPropertie
fbb40 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 s).{.$this->addError($path,."mus
fbb60 74 20 63 6f 6e 74 61 69 6e 20 61 20 6d 69 6e 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 t.contain.a.minimum.of."...$sche
fbb80 6d 61 2d 3e 6d 69 6e 50 72 6f 70 65 72 74 69 65 73 20 2e 20 22 20 70 72 6f 70 65 72 74 69 65 73 ma->minProperties...".properties
fbba0 22 29 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 72 ");.}.}.if.(isset($schema->maxPr
fbbc0 6f 70 65 72 74 69 65 73 29 29 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 67 65 74 5f 6f 62 6a 65 63 operties)).{.if.(count(get_objec
fbbe0 74 5f 76 61 72 73 28 24 76 61 6c 75 65 29 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 72 t_vars($value)).>.$schema->maxPr
fbc00 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 operties).{.$this->addError($pat
fbc20 68 2c 20 22 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 6e 6f 20 6d 6f 72 65 20 74 68 61 6e 20 22 20 h,."must.contain.no.more.than.".
fbc40 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 50 72 6f 70 65 72 74 69 65 73 20 2e 20 22 20 70 72 6f ..$schema->maxProperties...".pro
fbc60 70 65 72 74 69 65 73 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 perties");.}.}.}....if.(is_objec
fbc80 74 28 24 76 61 6c 75 65 29 20 26 26 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 65 70 65 t($value).&&.isset($schema->depe
fbca0 6e 64 65 6e 63 69 65 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 65 70 65 ndencies)).{.$this->validateDepe
fbcc0 6e 64 65 6e 63 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2d 3e 64 65 70 65 6e 64 ndencies($value,.$schema->depend
fbce0 65 6e 63 69 65 73 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f encies,.$path);.}.}..........pro
fbd00 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 4f 66 50 72 6f 70 65 72 tected.function.validateOfProper
fbd20 74 69 65 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 20 ties($value,.$schema,.$path,.$i.
fbd40 3d 20 22 22 29 0a 7b 0a 0a 20 69 66 20 28 24 76 61 6c 75 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 =."").{...if.($value.instanceof.
fbd60 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d UndefinedConstraint).{.return;.}
fbd80 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 6c 6c 4f 66 29 29 20 7b 0a 24 ..if.(isset($schema->allOf)).{.$
fbda0 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 isValid.=.true;.foreach.($schema
fbdc0 2d 3e 61 6c 6c 4f 66 20 61 73 20 24 61 6c 6c 4f 66 29 20 7b 0a 24 69 6e 69 74 45 72 72 6f 72 73 ->allOf.as.$allOf).{.$initErrors
fbde0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 73 2d 3e 63 68 .=.$this->getErrors();.$this->ch
fbe00 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 6c 6c 4f 66 2c 20 24 70 61 eckUndefined($value,.$allOf,.$pa
fbe20 74 68 2c 20 24 69 29 3b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 69 73 56 61 6c 69 64 20 26 26 20 th,.$i);.$isValid.=.$isValid.&&.
fbe40 28 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f (count($this->getErrors()).==.co
fbe60 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 29 3b 0a 7d 0a 69 66 20 28 21 24 69 73 56 61 6c unt($initErrors));.}.if.(!$isVal
fbe80 69 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 66 61 id).{.$this->addError($path,."fa
fbea0 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 20 61 6c 6c 20 73 63 68 65 6d 61 73 22 29 3b 0a 7d 0a 7d iled.to.match.all.schemas");.}.}
fbec0 0a 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 61 6e 79 4f 66 29 29 20 7b 0a 24 ..if.(isset($schema->anyOf)).{.$
fbee0 69 73 56 61 6c 69 64 20 3d 20 66 61 6c 73 65 3b 0a 24 73 74 61 72 74 45 72 72 6f 72 73 20 3d 20 isValid.=.false;.$startErrors.=.
fbf00 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 $this->getErrors();.foreach.($sc
fbf20 68 65 6d 61 2d 3e 61 6e 79 4f 66 20 61 73 20 24 61 6e 79 4f 66 29 20 7b 0a 24 69 6e 69 74 45 72 hema->anyOf.as.$anyOf).{.$initEr
fbf40 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 24 74 68 69 73 rors.=.$this->getErrors();.$this
fbf60 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 61 6e 79 4f 66 2c ->checkUndefined($value,.$anyOf,
fbf80 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 69 66 20 28 24 69 73 56 61 6c 69 64 20 3d 20 28 63 6f 75 .$path,.$i);.if.($isValid.=.(cou
fbfa0 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 63 6f 75 6e 74 28 nt($this->getErrors()).==.count(
fbfc0 24 69 6e 69 74 45 72 72 6f 72 73 29 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 $initErrors))).{.break;.}.}.if.(
fbfe0 21 24 69 73 56 61 6c 69 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 !$isValid).{.$this->addError($pa
fc000 74 68 2c 20 22 66 61 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 20 61 74 20 6c 65 61 73 74 20 6f 6e th,."failed.to.match.at.least.on
fc020 65 20 73 63 68 65 6d 61 22 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f e.schema");.}.else.{.$this->erro
fc040 72 73 20 3d 20 24 73 74 61 72 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 rs.=.$startErrors;.}.}..if.(isse
fc060 74 28 24 73 63 68 65 6d 61 2d 3e 6f 6e 65 4f 66 29 29 20 7b 0a 24 61 6c 6c 45 72 72 6f 72 73 20 t($schema->oneOf)).{.$allErrors.
fc080 3d 20 61 72 72 61 79 28 29 3b 0a 24 6d 61 74 63 68 65 64 53 63 68 65 6d 61 73 20 3d 20 30 3b 0a =.array();.$matchedSchemas.=.0;.
fc0a0 24 73 74 61 72 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 $startErrors.=.$this->getErrors(
fc0c0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 73 63 68 65 6d 61 2d 3e 6f 6e 65 4f 66 20 61 73 20 24 6f );.foreach.($schema->oneOf.as.$o
fc0e0 6e 65 4f 66 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b neOf).{.$this->errors.=.array();
fc100 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 .$this->checkUndefined($value,.$
fc120 6f 6e 65 4f 66 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 68 oneOf,.$path,.$i);.if.(count($th
fc140 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 3d 3d 20 30 29 20 7b 0a 24 6d 61 74 63 68 65 is->getErrors()).==.0).{.$matche
fc160 64 53 63 68 65 6d 61 73 2b 2b 3b 0a 7d 0a 24 61 6c 6c 45 72 72 6f 72 73 20 3d 20 61 72 72 61 79 dSchemas++;.}.$allErrors.=.array
fc180 5f 6d 65 72 67 65 28 24 61 6c 6c 45 72 72 6f 72 73 2c 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 _merge($allErrors,.array_values(
fc1a0 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 3b 0a 7d 0a 69 66 20 28 24 6d 61 74 $this->getErrors()));.}.if.($mat
fc1c0 63 68 65 64 53 63 68 65 6d 61 73 20 21 3d 3d 20 31 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 chedSchemas.!==.1).{.$this->addE
fc1e0 72 72 6f 72 73 28 0a 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 61 6c 6c 45 72 72 6f 72 73 2c 0a rrors(.array_merge(.$allErrors,.
fc200 61 72 72 61 79 28 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 3d 3e 20 24 70 61 74 68 array(array(.'property'.=>.$path
fc220 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 22 66 61 69 6c 65 64 20 74 6f 20 6d 61 74 63 68 20 ,.'message'.=>."failed.to.match.
fc240 65 78 61 63 74 6c 79 20 6f 6e 65 20 73 63 68 65 6d 61 22 0a 29 2c 29 2c 0a 24 73 74 61 72 74 45 exactly.one.schema".),),.$startE
fc260 72 72 6f 72 73 0a 29 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 rrors.).);.}.else.{.$this->error
fc280 73 20 3d 20 24 73 74 61 72 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a s.=.$startErrors;.}.}.}.........
fc2a0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 65 70 65 .protected.function.validateDepe
fc2c0 6e 64 65 6e 63 69 65 73 28 24 76 61 6c 75 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 ndencies($value,.$dependencies,.
fc2e0 24 70 61 74 68 2c 20 24 69 20 3d 20 22 22 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 65 $path,.$i.=."").{.foreach.($depe
fc300 6e 64 65 6e 63 69 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 79 29 ndencies.as.$key.=>.$dependency)
fc320 20 7b 0a 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 24 .{.if.(property_exists($value,.$
fc340 6b 65 79 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 70 65 6e 64 65 6e 63 key)).{.if.(is_string($dependenc
fc360 79 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 76 61 y)).{...if.(!property_exists($va
fc380 6c 75 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 lue,.$dependency)).{.$this->addE
fc3a0 72 72 6f 72 28 24 70 61 74 68 2c 20 22 24 6b 65 79 20 64 65 70 65 6e 64 73 20 6f 6e 20 24 64 65 rror($path,."$key.depends.on.$de
fc3c0 70 65 6e 64 65 6e 63 79 20 61 6e 64 20 24 64 65 70 65 6e 64 65 6e 63 79 20 69 73 20 6d 69 73 73 pendency.and.$dependency.is.miss
fc3e0 69 6e 67 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 65 ing");.}.}.else.if.(is_array($de
fc400 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 64 65 70 65 6e 64 65 pendency)).{...foreach.($depende
fc420 6e 63 79 20 61 73 20 24 64 29 20 7b 0a 69 66 20 28 21 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 ncy.as.$d).{.if.(!property_exist
fc440 73 28 24 76 61 6c 75 65 2c 20 24 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 s($value,.$d)).{.$this->addError
fc460 28 24 70 61 74 68 2c 20 22 24 6b 65 79 20 64 65 70 65 6e 64 73 20 6f 6e 20 24 64 20 61 6e 64 20 ($path,."$key.depends.on.$d.and.
fc480 24 64 20 69 73 20 6d 69 73 73 69 6e 67 22 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 $d.is.missing");.}.}.}.else.if.(
fc4a0 69 73 5f 6f 62 6a 65 63 74 28 24 64 65 70 65 6e 64 65 6e 63 79 29 29 20 7b 0a 0a 20 24 74 68 69 is_object($dependency)).{...$thi
fc4c0 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 64 65 70 65 6e s->checkUndefined($value,.$depen
fc4e0 64 65 6e 63 79 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 dency,.$path,.$i);.}.}.}.}..prot
fc500 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 55 72 69 28 24 73 63 68 65 ected.function.validateUri($sche
fc520 6d 61 2c 20 24 73 63 68 65 6d 61 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 73 6f 6c 76 ma,.$schemaUri.=.null).{.$resolv
fc540 65 72 20 3d 20 6e 65 77 20 55 72 69 52 65 73 6f 6c 76 65 72 28 29 3b 0a 24 72 65 74 72 69 65 76 er.=.new.UriResolver();.$retriev
fc560 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 3b 0a 0a er.=.$this->getUriRetriever();..
fc580 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 73 6f 6c 76 65 $jsonSchema.=.null;.if.($resolve
fc5a0 72 2d 3e 69 73 56 61 6c 69 64 28 24 73 63 68 65 6d 61 55 72 69 29 29 20 7b 0a 24 73 63 68 65 6d r->isValid($schemaUri)).{.$schem
fc5c0 61 49 64 20 3d 20 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 73 63 68 65 6d 61 2c 20 27 aId.=.property_exists($schema,.'
fc5e0 69 64 27 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 69 64 20 3a 20 6e 75 6c 6c 3b 0a 24 6a 73 6f 6e id').?.$schema->id.:.null;.$json
fc600 53 63 68 65 6d 61 20 3d 20 24 72 65 74 72 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 73 Schema.=.$retriever->retrieve($s
fc620 63 68 65 6d 61 49 64 2c 20 24 73 63 68 65 6d 61 55 72 69 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 chemaId,.$schemaUri);.}..return.
fc640 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e $jsonSchema;.}.}.<?php.........n
fc660 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b amespace.JsonSchema\Constraints;
fc680 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 43 6f 6e 73 74 72 61 69 6e 74 20 65 ........class.StringConstraint.e
fc6a0 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 xtends.Constraint.{....public.fu
fc6c0 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d nction.check($element,.$schema.=
fc6e0 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a .null,.$path.=.null,.$i.=.null).
fc700 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 {...if.(isset($schema->maxLength
fc720 29 20 26 26 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 65 6c 65 6d 65 6e 74 29 20 3e 20 24 ).&&.$this->strlen($element).>.$
fc740 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 schema->maxLength).{.$this->addE
fc760 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 74 20 6d 6f 73 74 20 22 20 2e rror($path,."must.be.at.most."..
fc780 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 4c 65 6e 67 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 .$schema->maxLength...".characte
fc7a0 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d rs.long");.}....if.(isset($schem
fc7c0 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 26 26 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 a->minLength).&&.$this->strlen($
fc7e0 65 6c 65 6d 65 6e 74 29 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 29 20 7b element).<.$schema->minLength).{
fc800 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 .$this->addError($path,."must.be
fc820 20 61 74 20 6c 65 61 73 74 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 4c 65 6e 67 74 68 .at.least."...$schema->minLength
fc840 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ...".characters.long");.}....if.
fc860 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 26 26 20 21 70 72 65 (isset($schema->pattern).&&.!pre
fc880 67 5f 6d 61 74 63 68 28 27 23 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 23 27 2c 20 27 g_match('#'...str_replace('#',.'
fc8a0 5c 5c 23 27 2c 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 20 2e 20 27 23 27 2c 20 24 \\#',.$schema->pattern)...'#',.$
fc8c0 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 element)).{.$this->addError($pat
fc8e0 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 72 65 67 65 78 20 70 61 74 h,."does.not.match.the.regex.pat
fc900 74 65 72 6e 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 tern."...$schema->pattern);.}..$
fc920 74 68 69 73 2d 3e 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 this->checkFormat($element,.$sch
fc940 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 ema,.$path,.$i);.}..private.func
fc960 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a 69 66 20 28 65 78 74 65 6e tion.strlen($string).{.if.(exten
fc980 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6d 62 73 74 72 69 6e 67 27 29 29 20 7b 0a 72 65 74 75 72 sion_loaded('mbstring')).{.retur
fc9a0 6e 20 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 6d 62 5f 64 65 74 65 63 74 5f 65 n.mb_strlen($string,.mb_detect_e
fc9c0 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 ncoding($string));.}.else.{.retu
fc9e0 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a rn.strlen($string);.}.}.}.<?php.
fca00 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e ........namespace.JsonSchema\Con
fca20 73 74 72 61 69 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 straints;..use.JsonSchema\Except
fca40 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a ion\InvalidArgumentException;...
fca60 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 .....class.SchemaConstraint.exte
fca80 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 nds.Constraint.{....public.funct
fcaa0 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 ion.check($element,.$schema.=.nu
fcac0 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 ll,.$path.=.null,.$i.=.null).{.i
fcae0 66 20 28 24 73 63 68 65 6d 61 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e f.($schema.!==.null).{...$this->
fcb00 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 checkUndefined($element,.$schema
fcb20 2c 20 27 27 2c 20 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 78 ,.'',.'');.}.elseif.(property_ex
fcb40 69 73 74 73 28 24 65 6c 65 6d 65 6e 74 2c 20 24 74 68 69 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 ists($element,.$this->inlineSche
fcb60 6d 61 50 72 6f 70 65 72 74 79 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 maProperty)).{...$this->checkUnd
fcb80 65 66 69 6e 65 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 65 6c 65 6d 65 6e 74 2d 3e 7b 24 74 68 69 efined($element,.$element->{$thi
fcba0 73 2d 3e 69 6e 6c 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 7d 2c 20 27 27 2c 20 27 27 s->inlineSchemaProperty},.'',.''
fcbc0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 );.}.else.{.throw.new.InvalidArg
fcbe0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 6e 6f 20 73 63 68 65 6d 61 20 66 6f 75 6e 64 20 umentException('no.schema.found.
fcc00 74 6f 20 76 65 72 69 66 79 20 61 67 61 69 6e 73 74 27 29 3b 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a to.verify.against');.}.}.}<?php.
fcc20 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e ........namespace.JsonSchema\Con
fcc40 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6c 6c 65 63 74 69 6f straints;........class.Collectio
fcc60 6e 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b nConstraint.extends.Constraint.{
fcc80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 ....public.function.check($value
fcca0 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 ,.$schema.=.null,.$path.=.null,.
fccc0 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 $i.=.null).{...if.(isset($schema
fcce0 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3c 20 24 ->minItems).&&.count($value).<.$
fcd00 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 schema->minItems).{.$this->addEr
fcd20 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 20 61 20 6d 69 6e 69 ror($path,."There.must.be.a.mini
fcd40 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 49 74 65 6d 73 20 2e 20 22 mum.of."...$schema->minItems..."
fcd60 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 .in.the.array");.}....if.(isset(
fcd80 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c $schema->maxItems).&&.count($val
fcda0 75 65 29 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 65 6d 73 29 20 7b 0a 24 74 68 69 73 ue).>.$schema->maxItems).{.$this
fcdc0 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 6d 75 73 74 20 62 65 ->addError($path,."There.must.be
fcde0 20 61 20 6d 61 78 69 6d 75 6d 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 49 74 .a.maximum.of."...$schema->maxIt
fce00 65 6d 73 20 2e 20 22 20 69 6e 20 74 68 65 20 61 72 72 61 79 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 ems...".in.the.array");.}....if.
fce20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 75 6e 69 71 75 65 49 74 65 6d 73 29 29 20 7b 0a (isset($schema->uniqueItems)).{.
fce40 24 75 6e 69 71 75 65 20 3d 20 24 76 61 6c 75 65 3b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 $unique.=.$value;.if.(is_array($
fce60 76 61 6c 75 65 29 20 26 26 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 75 6e 69 71 value).&&.count($value)).{.$uniq
fce80 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 28 24 65 29 20 7b 20 72 65 ue.=.array_map(function($e).{.re
fcea0 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 65 2c 20 74 72 75 65 29 3b 20 7d 2c 20 24 76 turn.var_export($e,.true);.},.$v
fcec0 61 6c 75 65 29 3b 0a 7d 0a 69 66 20 28 63 6f 75 6e 74 28 61 72 72 61 79 5f 75 6e 69 71 75 65 28 alue);.}.if.(count(array_unique(
fcee0 24 75 6e 69 71 75 65 29 29 20 21 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 74 $unique)).!=.count($value)).{.$t
fcf00 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 72 65 20 61 72 65 20 his->addError($path,."There.are.
fcf20 6e 6f 20 64 75 70 6c 69 63 61 74 65 73 20 61 6c 6c 6f 77 65 64 20 69 6e 20 74 68 65 20 61 72 72 no.duplicates.allowed.in.the.arr
fcf40 61 79 22 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e ay");.}.}....if.(isset($schema->
fcf60 69 74 65 6d 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 49 74 65 6d 73 28 24 items)).{.$this->validateItems($
fcf80 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a value,.$schema,.$path,.$i);.}.}.
fcfa0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 .........protected.function.vali
fcfc0 64 61 74 65 49 74 65 6d 73 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c dateItems($value,.$schema.=.null
fcfe0 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 ,.$path.=.null,.$i.=.null).{.if.
fd000 28 69 73 5f 6f 62 6a 65 63 74 28 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 29 29 20 7b 0a 0a 20 (is_object($schema->items)).{...
fd020 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 24 foreach.($value.as.$k.=>.$v).{.$
fd040 69 6e 69 74 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b initErrors.=.$this->getErrors();
fd060 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 ....$this->checkUndefined($v,.$s
fd080 63 68 65 6d 61 2d 3e 69 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 0a 0a 20 69 66 20 chema->items,.$path,.$k);....if.
fd0a0 28 63 6f 75 6e 74 28 24 69 6e 69 74 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e 74 28 24 74 68 69 (count($initErrors).<.count($thi
fd0c0 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 20 26 26 20 28 69 73 73 65 74 28 24 73 63 68 65 6d s->getErrors()).&&.(isset($schem
fd0e0 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 29 20 26 26 20 24 73 63 68 65 6d 61 2d 3e a->additionalItems).&&.$schema->
fd100 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 73 additionalItems.!==.false)).{.$s
fd120 65 63 6f 6e 64 45 72 72 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 econdErrors.=.$this->getErrors()
fd140 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 ;.$this->checkUndefined($v,.$sch
fd160 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 ema->additionalItems,.$path,.$k)
fd180 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 ;.}....if.(isset($secondErrors).
fd1a0 26 26 20 63 6f 75 6e 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3c 20 63 6f 75 6e 74 28 &&.count($secondErrors).<.count(
fd1c0 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 $this->getErrors())).{.$this->er
fd1e0 72 6f 72 73 20 3d 20 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 3b 0a 7d 20 65 6c 73 65 20 69 66 20 rors.=.$secondErrors;.}.else.if.
fd200 28 69 73 73 65 74 28 24 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 26 26 20 63 6f 75 6e 74 28 24 (isset($secondErrors).&&.count($
fd220 73 65 63 6f 6e 64 45 72 72 6f 72 73 29 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 67 secondErrors).===.count($this->g
fd240 65 74 45 72 72 6f 72 73 28 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 24 etErrors())).{.$this->errors.=.$
fd260 69 6e 69 74 45 72 72 6f 72 73 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 66 6f 72 65 61 initErrors;.}.}.}.else.{...forea
fd280 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 61 72 ch.($value.as.$k.=>.$v).{.if.(ar
fd2a0 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d ray_key_exists($k,.$schema->item
fd2c0 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 s)).{.$this->checkUndefined($v,.
fd2e0 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a $schema->items[$k],.$path,.$k);.
fd300 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 70 72 6f 70 65 72 74 79 5f 65 78 69 73 74 73 28 24 }.else.{...if.(property_exists($
fd320 73 63 68 65 6d 61 2c 20 27 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 27 29 29 20 7b 0a 69 66 schema,.'additionalItems')).{.if
fd340 20 28 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 20 21 3d 3d 20 66 .($schema->additionalItems.!==.f
fd360 61 6c 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 alse).{.$this->checkUndefined($v
fd380 2c 20 24 73 63 68 65 6d 61 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 ,.$schema->additionalItems,.$pat
fd3a0 68 2c 20 24 6b 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 h,.$k);.}.else.{.$this->addError
fd3c0 28 0a 24 70 61 74 68 2c 20 27 54 68 65 20 69 74 65 6d 20 27 20 2e 20 24 69 20 2e 20 27 5b 27 20 (.$path,.'The.item.'...$i...'['.
fd3e0 2e 20 24 6b 20 2e 20 27 5d 20 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 ..$k...'].is.not.defined.and.the
fd400 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 6f 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 .definition.does.not.allow.addit
fd420 69 6f 6e 61 6c 20 69 74 65 6d 73 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 ional.items');.}.}.else.{...$thi
fd440 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 6e 65 77 20 5c 73 74 64 43 6c s->checkUndefined($v,.new.\stdCl
fd460 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 28 63 ass(),.$path,.$k);.}.}.}....if(c
fd480 6f 75 6e 74 28 24 76 61 6c 75 65 29 20 3e 20 30 29 20 7b 0a 66 6f 72 20 28 24 6b 20 3d 20 63 6f ount($value).>.0).{.for.($k.=.co
fd4a0 75 6e 74 28 24 76 61 6c 75 65 29 3b 20 24 6b 20 3c 20 63 6f 75 6e 74 28 24 73 63 68 65 6d 61 2d unt($value);.$k.<.count($schema-
fd4c0 3e 69 74 65 6d 73 29 3b 20 24 6b 2b 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 >items);.$k++).{.$this->checkUnd
fd4e0 65 66 69 6e 65 64 28 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 29 efined(new.UndefinedConstraint()
fd500 2c 20 24 73 63 68 65 6d 61 2d 3e 69 74 65 6d 73 5b 24 6b 5d 2c 20 24 70 61 74 68 2c 20 24 6b 29 ,.$schema->items[$k],.$path,.$k)
fd520 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ;.}.}.}.}.}<?php.........namespa
fd540 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a ce.JsonSchema\Constraints;......
fd560 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b .interface.ConstraintInterface.{
fd580 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 ......public.function.getErrors(
fd5a0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f );.......public.function.addErro
fd5c0 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rs(array.$errors);........public
fd5e0 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 .function.addError($path,.$messa
fd600 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c ge);.......public.function.isVal
fd620 69 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 id();...........public.function.
fd640 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 check($value,.$schema.=.null,.$p
fd660 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 3b 0a 7d 3c 3f 70 68 70 0a 0a ath.=.null,.$i.=.null);.}<?php..
fd680 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 .......namespace.JsonSchema\Cons
fd6a0 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 6e 75 6d 43 6f 6e 73 74 72 traints;........class.EnumConstr
fd6c0 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 aint.extends.Constraint.{....pub
fd6e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 lic.function.check($element,.$sc
fd700 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 hema.=.null,.$path.=.null,.$i.=.
fd720 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f null).{...if.($element.instanceo
fd740 66 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 20 26 26 20 28 21 69 73 73 65 74 f.UndefinedConstraint.&&.(!isset
fd760 28 24 73 63 68 65 6d 61 2d 3e 72 65 71 75 69 72 65 64 29 20 7c 7c 20 21 24 73 63 68 65 6d 61 2d ($schema->required).||.!$schema-
fd780 3e 72 65 71 75 69 72 65 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 >required)).{.return;.}..foreach
fd7a0 20 28 24 73 63 68 65 6d 61 2d 3e 65 6e 75 6d 20 61 73 20 24 65 6e 75 6d 29 20 7b 0a 69 66 20 28 .($schema->enum.as.$enum).{.if.(
fd7c0 28 67 65 74 74 79 70 65 28 24 65 6c 65 6d 65 6e 74 29 20 3d 3d 3d 20 67 65 74 74 79 70 65 28 24 (gettype($element).===.gettype($
fd7e0 65 6e 75 6d 29 29 20 26 26 20 28 24 65 6c 65 6d 65 6e 74 20 3d 3d 20 24 65 6e 75 6d 29 29 20 7b enum)).&&.($element.==.$enum)).{
fd800 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 .return;.}.}..$this->addError($p
fd820 61 74 68 2c 20 22 64 6f 65 73 20 6e 6f 74 20 68 61 76 65 20 61 20 76 61 6c 75 65 20 69 6e 20 74 ath,."does.not.have.a.value.in.t
fd840 68 65 20 65 6e 75 6d 65 72 61 74 69 6f 6e 20 22 20 2e 20 70 72 69 6e 74 5f 72 28 24 73 63 68 65 he.enumeration."...print_r($sche
fd860 6d 61 2d 3e 65 6e 75 6d 2c 20 74 72 75 65 29 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a ma->enum,.true));.}.}<?php......
fd880 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 ...namespace.JsonSchema\Constrai
fd8a0 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 55 72 69 52 65 74 72 nts;..use.JsonSchema\Uri\UriRetr
fd8c0 69 65 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6e iever;........abstract.class.Con
fd8e0 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 straint.implements.ConstraintInt
fd900 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 68 65 63 6b 4d 6f 64 65 20 3d 20 erface.{.protected.$checkMode.=.
fd920 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 3b 0a 70 72 6f 74 65 63 74 self::CHECK_MODE_NORMAL;.protect
fd940 65 64 20 24 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 72 72 ed.$uriRetriever;.protected.$err
fd960 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 6c 69 6e 65 ors.=.array();.protected.$inline
fd980 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 3d 20 27 24 73 63 68 65 6d 61 27 3b 0a 0a 63 6f 6e SchemaProperty.=.'$schema';..con
fd9a0 73 74 20 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 st.CHECK_MODE_NORMAL.=.1;.const.
fd9c0 43 48 45 43 4b 5f 4d 4f 44 45 5f 54 59 50 45 5f 43 41 53 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 CHECK_MODE_TYPE_CAST.=.2;......p
fd9e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 68 65 63 ublic.function.__construct($chec
fda00 6b 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 43 48 45 43 4b 5f 4d 4f 44 45 5f 4e 4f 52 4d 41 4c 2c kMode.=.self::CHECK_MODE_NORMAL,
fda20 20 55 72 69 52 65 74 72 69 65 76 65 72 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 .UriRetriever.$uriRetriever.=.nu
fda40 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 20 3d 20 24 63 68 65 63 6b 4d ll).{.$this->checkMode.=.$checkM
fda60 6f 64 65 3b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 52 ode;.$this->uriRetriever.=.$uriR
fda80 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 etriever;.}.....public.function.
fdaa0 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a 7b 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 getUriRetriever().{.if.(is_null(
fdac0 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 $this->uriRetriever)).{.$this->s
fdae0 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 55 72 69 52 65 74 72 69 65 76 65 72 29 etUriRetriever(new.UriRetriever)
fdb00 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 3b ;.}..return.$this->uriRetriever;
fdb20 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 72 69 52 65 74 .}.....public.function.setUriRet
fdb40 72 69 65 76 65 72 28 55 72 69 52 65 74 72 69 65 76 65 72 20 24 75 72 69 52 65 74 72 69 65 76 65 riever(UriRetriever.$uriRetrieve
fdb60 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 52 r).{.$this->uriRetriever.=.$uriR
fdb80 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 etriever;.}.....public.function.
fdba0 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 74 68 69 addError($path,.$message).{.$thi
fdbc0 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 72 6f 70 65 72 74 79 27 20 s->errors[].=.array(.'property'.
fdbe0 3d 3e 20 24 70 61 74 68 2c 0a 27 6d 65 73 73 61 67 65 27 20 3d 3e 20 24 6d 65 73 73 61 67 65 0a =>.$path,.'message'.=>.$message.
fdc00 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 72 72 6f );.}.....public.function.addErro
fdc20 72 73 28 61 72 72 61 79 20 24 65 72 72 6f 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 rs(array.$errors).{.$this->error
fdc40 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 s.=.array_merge($this->errors,.$
fdc60 65 72 72 6f 72 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 errors);.}.....public.function.g
fdc80 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 etErrors().{.return.$this->error
fdca0 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 s;.}.....public.function.isValid
fdcc0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b ().{.return.!$this->getErrors();
fdce0 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 28 29 0a .}......public.function.reset().
fdd00 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a {.$this->errors.=.array();.}....
fdd20 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 63 72 65 6d 65 ......protected.function.increme
fdd40 6e 74 50 61 74 68 28 24 70 61 74 68 2c 20 24 69 29 0a 7b 0a 69 66 20 28 24 70 61 74 68 20 21 3d ntPath($path,.$i).{.if.($path.!=
fdd60 3d 20 27 27 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 69 29 29 20 7b 0a 24 70 61 74 68 20 =.'').{.if.(is_int($i)).{.$path.
fdd80 2e 3d 20 27 5b 27 20 2e 20 24 69 20 2e 20 27 5d 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 20 .=.'['...$i...']';.}.elseif.($i.
fdda0 3d 3d 20 27 27 29 20 7b 0a 24 70 61 74 68 20 2e 3d 20 27 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ==.'').{.$path..=.'';.}.else.{.$
fddc0 70 61 74 68 20 2e 3d 20 27 2e 27 20 2e 20 24 69 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 path..=.'.'...$i;.}.}.else.{.$pa
fdde0 74 68 20 3d 20 24 69 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a th.=.$i;.}..return.$path;.}.....
fde00 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 41 72 72 .....protected.function.checkArr
fde20 61 79 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 ay($value,.$schema.=.null,.$path
fde40 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 .=.null,.$i.=.null).{.$validator
fde60 20 3d 20 6e 65 77 20 43 6f 6c 6c 65 63 74 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 .=.new.CollectionConstraint($thi
fde80 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 s->checkMode,.$this->uriRetrieve
fdea0 72 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 r);.$validator->check($value,.$s
fdec0 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 chema,.$path,.$i);..$this->addEr
fdee0 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d rors($validator->getErrors());.}
fdf00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 ...........protected.function.ch
fdf20 65 63 6b 4f 62 6a 65 63 74 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c eckObject($value,.$schema.=.null
fdf40 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 74 ,.$path.=.null,.$i.=.null,.$patt
fdf60 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 ernProperties.=.null).{.$validat
fdf80 6f 72 20 3d 20 6e 65 77 20 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d or.=.new.ObjectConstraint($this-
fdfa0 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 >checkMode,.$this->uriRetriever)
fdfc0 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 ;.$validator->check($value,.$sch
fdfe0 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 ema,.$path,.$i,.$patternProperti
fe000 65 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f es);..$this->addErrors($validato
fe020 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 r->getErrors());.}..........prot
fe040 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 54 79 70 65 28 24 76 61 6c 75 65 2c ected.function.checkType($value,
fe060 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 .$schema.=.null,.$path.=.null,.$
fe080 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 54 79 70 i.=.null).{.$validator.=.new.Typ
fe0a0 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 eConstraint($this->checkMode,.$t
fe0c0 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e his->uriRetriever);.$validator->
fe0e0 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 check($value,.$schema,.$path,.$i
fe100 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d );..$this->addErrors($validator-
fe120 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 >getErrors());.}..........protec
fe140 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c ted.function.checkUndefined($val
fe160 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c ue,.$schema.=.null,.$path.=.null
fe180 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 ,.$i.=.null).{.$validator.=.new.
fe1a0 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b UndefinedConstraint($this->check
fe1c0 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c Mode,.$this->uriRetriever);.$val
fe1e0 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 idator->check($value,.$schema,.$
fe200 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 path,.$i);..$this->addErrors($va
fe220 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a lidator->getErrors());.}........
fe240 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 74 72 69 6e 67 ..protected.function.checkString
fe260 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d ($value,.$schema.=.null,.$path.=
fe280 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d .null,.$i.=.null).{.$validator.=
fe2a0 20 6e 65 77 20 53 74 72 69 6e 67 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 .new.StringConstraint($this->che
fe2c0 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 ckMode,.$this->uriRetriever);.$v
fe2e0 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c alidator->check($value,.$schema,
fe300 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 .$path,.$i);..$this->addErrors($
fe320 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a validator->getErrors());.}......
fe340 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4e 75 6d 62 ....protected.function.checkNumb
fe360 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 er($value,.$schema.=.null,.$path
fe380 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 .=.null,.$i.=.null).{.$validator
fe3a0 20 3d 20 6e 65 77 20 4e 75 6d 62 65 72 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 .=.new.NumberConstraint($this->c
fe3c0 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a heckMode,.$this->uriRetriever);.
fe3e0 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d $validator->check($value,.$schem
fe400 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 a,.$path,.$i);..$this->addErrors
fe420 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a ($validator->getErrors());.}....
fe440 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 6e ......protected.function.checkEn
fe460 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 um($value,.$schema.=.null,.$path
fe480 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 .=.null,.$i.=.null).{.$validator
fe4a0 20 3d 20 6e 65 77 20 45 6e 75 6d 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 .=.new.EnumConstraint($this->che
fe4c0 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 ckMode,.$this->uriRetriever);.$v
fe4e0 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c alidator->check($value,.$schema,
fe500 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 .$path,.$i);..$this->addErrors($
fe520 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 70 72 6f 74 validator->getErrors());.}..prot
fe540 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 76 61 6c 75 ected.function.checkFormat($valu
fe560 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c e,.$schema.=.null,.$path.=.null,
fe580 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 46 .$i.=.null).{.$validator.=.new.F
fe5a0 6f 72 6d 61 74 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 ormatConstraint($this->checkMode
fe5c0 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 74 ,.$this->uriRetriever);.$validat
fe5e0 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 or->check($value,.$schema,.$path
fe600 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 ,.$i);..$this->addErrors($valida
fe620 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 tor->getErrors());.}......protec
fe640 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 55 72 69 28 24 75 72 69 29 0a 7b ted.function.retrieveUri($uri).{
fe660 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 .if.(null.===.$this->uriRetrieve
fe680 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 r).{.$this->setUriRetriever(new.
fe6a0 55 72 69 52 65 74 72 69 65 76 65 72 29 3b 0a 7d 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 UriRetriever);.}.$jsonSchema.=.$
fe6c0 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e 72 65 74 72 69 65 76 65 28 24 75 72 this->uriRetriever->retrieve($ur
fe6e0 69 29 3b 0a 0a 20 72 65 74 75 72 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 7d 0a 3c 3f i);...return.$jsonSchema;.}.}.<?
fe700 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 php.........namespace.JsonSchema
fe720 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6d 62 65 \Constraints;........class.Numbe
fe740 72 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b rConstraint.extends.Constraint.{
fe760 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 ....public.function.check($eleme
fe780 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c nt,.$schema.=.null,.$path.=.null
fe7a0 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 ,.$i.=.null).{...if.(isset($sche
fe7c0 6d 61 2d 3e 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 69 73 73 ma->exclusiveMinimum)).{.if.(iss
fe7e0 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 24 73 63 68 et($schema->minimum)).{.if.($sch
fe800 65 6d 61 2d 3e 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 20 26 26 20 24 65 6c 65 6d 65 6e ema->exclusiveMinimum.&&.$elemen
fe820 74 20 3d 3d 3d 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d t.===.$schema->minimum).{.$this-
fe840 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 >addError($path,."must.have.a.mi
fe860 6e 69 6d 75 6d 20 76 61 6c 75 65 20 67 72 65 61 74 65 72 20 74 68 61 6e 20 62 6f 75 6e 64 61 72 nimum.value.greater.than.boundar
fe880 79 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 y.value.of."...$schema->minimum)
fe8a0 3b 0a 7d 20 65 6c 73 65 20 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 3c 20 24 73 63 68 65 6d 61 2d ;.}.else.if.($element.<.$schema-
fe8c0 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 >minimum).{.$this->addError($pat
fe8e0 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 h,."must.have.a.minimum.value.of
fe900 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 ."...$schema->minimum);.}.}.else
fe920 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 75 73 65 20 6f .{.$this->addError($path,."use.o
fe940 66 20 65 78 63 6c 75 73 69 76 65 4d 69 6e 69 6d 75 6d 20 72 65 71 75 69 72 65 73 20 70 72 65 73 f.exclusiveMinimum.requires.pres
fe960 65 6e 63 65 20 6f 66 20 6d 69 6e 69 6d 75 6d 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 ence.of.minimum");.}.}.else.if.(
fe980 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d isset($schema->minimum).&&.$elem
fe9a0 65 6e 74 20 3c 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d ent.<.$schema->minimum).{.$this-
fe9c0 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 69 >addError($path,."must.have.a.mi
fe9e0 6e 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 69 6e 69 nimum.value.of."...$schema->mini
fea00 6d 75 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 65 78 mum);.}....if.(isset($schema->ex
fea20 63 6c 75 73 69 76 65 4d 61 78 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 63 clusiveMaximum)).{.if.(isset($sc
fea40 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 29 20 7b 0a 69 66 20 28 24 73 63 68 65 6d 61 2d 3e 65 hema->maximum)).{.if.($schema->e
fea60 78 63 6c 75 73 69 76 65 4d 61 78 69 6d 75 6d 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3d 3d 3d 20 xclusiveMaximum.&&.$element.===.
fea80 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 $schema->maximum).{.$this->addEr
feaa0 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 ror($path,."must.have.a.maximum.
feac0 76 61 6c 75 65 20 6c 65 73 73 20 74 68 61 6e 20 62 6f 75 6e 64 61 72 79 20 76 61 6c 75 65 20 6f value.less.than.boundary.value.o
feae0 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 20 65 6c 73 65 20 f."...$schema->maximum);.}.else.
feb00 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 if.($element.>.$schema->maximum)
feb20 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 .{.$this->addError($path,."must.
feb40 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 have.a.maximum.value.of."...$sch
feb60 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d ema->maximum);.}.}.else.{.$this-
feb80 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 75 73 65 20 6f 66 20 65 78 63 6c 75 73 69 >addError($path,."use.of.exclusi
feba0 76 65 4d 61 78 69 6d 75 6d 20 72 65 71 75 69 72 65 73 20 70 72 65 73 65 6e 63 65 20 6f 66 20 6d veMaximum.requires.presence.of.m
febc0 61 78 69 6d 75 6d 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 69 66 20 28 69 73 73 65 74 28 24 73 63 aximum");.}.}.else.if.(isset($sc
febe0 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 26 26 20 24 65 6c 65 6d 65 6e 74 20 3e 20 24 73 63 hema->maximum).&&.$element.>.$sc
fec00 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 hema->maximum).{.$this->addError
fec20 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 68 61 76 65 20 61 20 6d 61 78 69 6d 75 6d 20 76 61 6c ($path,."must.have.a.maximum.val
fec40 75 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 6d 75 6d 29 3b 0a 7d 0a 0a ue.of."...$schema->maximum);.}..
fec60 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 ..if.(isset($schema->divisibleBy
fec80 29 20 26 26 20 24 74 68 69 73 2d 3e 66 6d 6f 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 ).&&.$this->fmod($element,.$sche
feca0 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e ma->divisibleBy).!=.0).{.$this->
fecc0 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 69 73 20 6e 6f 74 20 64 69 76 69 73 69 62 6c addError($path,."is.not.divisibl
fece0 65 20 62 79 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 64 69 76 69 73 69 62 6c 65 42 79 29 3b 0a e.by."...$schema->divisibleBy);.
fed00 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 75 6c 74 69 70 6c 65 }....if.(isset($schema->multiple
fed20 4f 66 29 20 26 26 20 24 74 68 69 73 2d 3e 66 6d 6f 64 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 Of).&&.$this->fmod($element,.$sc
fed40 68 65 6d 61 2d 3e 6d 75 6c 74 69 70 6c 65 4f 66 29 20 21 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d hema->multipleOf).!=.0).{.$this-
fed60 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 20 62 65 20 61 20 6d 75 6c 74 >addError($path,."must.be.a.mult
fed80 69 70 6c 65 20 6f 66 20 22 20 2e 20 24 73 63 68 65 6d 61 2d 3e 6d 75 6c 74 69 70 6c 65 4f 66 29 iple.of."...$schema->multipleOf)
feda0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 46 6f 72 6d 61 74 28 24 65 6c 65 6d 65 6e 74 ;.}..$this->checkFormat($element
fedc0 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 ,.$schema,.$path,.$i);.}..privat
fede0 65 20 66 75 6e 63 74 69 6f 6e 20 66 6d 6f 64 28 24 6e 75 6d 62 65 72 31 2c 20 24 6e 75 6d 62 65 e.function.fmod($number1,.$numbe
fee00 72 32 29 0a 7b 0a 24 6d 6f 64 75 6c 75 73 20 3d 20 66 6d 6f 64 28 24 6e 75 6d 62 65 72 31 2c 20 r2).{.$modulus.=.fmod($number1,.
fee20 24 6e 75 6d 62 65 72 32 29 3b 0a 24 70 72 65 63 69 73 69 6f 6e 20 3d 20 61 62 73 28 30 2e 30 30 $number2);.$precision.=.abs(0.00
fee40 30 30 30 30 30 30 30 31 29 3b 0a 24 64 69 66 66 20 3d 20 28 66 6c 6f 61 74 29 28 24 6d 6f 64 75 00000001);.$diff.=.(float)($modu
fee60 6c 75 73 20 2d 20 24 6e 75 6d 62 65 72 32 29 3b 0a 0a 69 66 20 28 2d 24 70 72 65 63 69 73 69 6f lus.-.$number2);..if.(-$precisio
fee80 6e 20 3c 20 24 64 69 66 66 20 26 26 20 24 64 69 66 66 20 3c 20 24 70 72 65 63 69 73 69 6f 6e 29 n.<.$diff.&&.$diff.<.$precision)
feea0 20 7b 0a 72 65 74 75 72 6e 20 30 2e 30 3b 0a 7d 0a 0a 24 64 65 63 69 6d 61 6c 73 31 20 3d 20 6d .{.return.0.0;.}..$decimals1.=.m
feec0 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 72 31 2c 20 22 2e 22 29 20 3f 20 6d 62 5f 73 74 72 b_strpos($number1,.".").?.mb_str
feee0 6c 65 6e 28 24 6e 75 6d 62 65 72 31 29 20 2d 20 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 len($number1).-.mb_strpos($numbe
fef00 72 31 2c 20 22 2e 22 29 20 2d 20 31 20 3a 20 30 3b 0a 24 64 65 63 69 6d 61 6c 73 32 20 3d 20 6d r1,.".").-.1.:.0;.$decimals2.=.m
fef20 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 72 32 2c 20 22 2e 22 29 20 3f 20 6d 62 5f 73 74 72 b_strpos($number2,.".").?.mb_str
fef40 6c 65 6e 28 24 6e 75 6d 62 65 72 32 29 20 2d 20 6d 62 5f 73 74 72 70 6f 73 28 24 6e 75 6d 62 65 len($number2).-.mb_strpos($numbe
fef60 72 32 2c 20 22 2e 22 29 20 2d 20 31 20 3a 20 30 3b 0a 0a 72 65 74 75 72 6e 20 28 66 6c 6f 61 74 r2,.".").-.1.:.0;..return.(float
fef80 29 72 6f 75 6e 64 28 24 6d 6f 64 75 6c 75 73 2c 20 6d 61 78 28 24 64 65 63 69 6d 61 6c 73 31 2c )round($modulus,.max($decimals1,
fefa0 20 24 64 65 63 69 6d 61 6c 73 32 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a .$decimals2));.}.}.<?php........
fefc0 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 .namespace.JsonSchema\Constraint
fefe0 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 62 6a 65 63 74 43 6f 6e 73 74 72 61 69 6e 74 s;........class.ObjectConstraint
ff000 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 66 75 6e 63 74 69 6f .extends.Constraint.{....functio
ff020 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 n.check($element,.$definition.=.
ff040 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 null,.$path.=.null,.$additionalP
ff060 72 6f 70 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 3d rop.=.null,.$patternProperties.=
ff080 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 65 6c 65 6d 65 6e 74 20 69 6e 73 74 61 6e 63 65 6f 66 .null).{.if.($element.instanceof
ff0a0 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a .UndefinedConstraint).{.return;.
ff0c0 7d 0a 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 70 61 74 74 }..$matches.=.array();.if.($patt
ff0e0 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 74 68 69 ernProperties).{.$matches.=.$thi
ff100 73 2d 3e 76 61 6c 69 64 61 74 65 50 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 28 24 65 6c s->validatePatternProperties($el
ff120 65 6d 65 6e 74 2c 20 24 70 61 74 68 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 ement,.$path,.$patternProperties
ff140 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 0a 20 24 74 68 69 73 );.}..if.($definition).{...$this
ff160 2d 3e 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 ->validateDefinition($element,.$
ff180 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e definition,.$path);.}....$this->
ff1a0 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6d 61 74 63 68 validateElement($element,.$match
ff1c0 65 73 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 24 70 61 74 68 2c 20 24 61 64 64 69 74 69 6f es,.$definition,.$path,.$additio
ff1e0 6e 61 6c 50 72 6f 70 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c nalProp);.}..public.function.val
ff200 69 64 61 74 65 50 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 28 24 65 6c 65 6d 65 6e 74 2c idatePatternProperties($element,
ff220 20 24 70 61 74 68 2c 20 24 70 61 74 74 65 72 6e 50 72 6f 70 65 72 74 69 65 73 29 0a 7b 0a 24 6d .$path,.$patternProperties).{.$m
ff240 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 74 atches.=.array();.foreach.($patt
ff260 65 72 6e 50 72 6f 70 65 72 74 69 65 73 20 61 73 20 24 70 72 65 67 65 78 20 3d 3e 20 24 73 63 68 ernProperties.as.$pregex.=>.$sch
ff280 65 6d 61 29 20 7b 0a 0a 20 69 66 20 28 40 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 20 24 70 ema).{...if.(@preg_match('/'..$p
ff2a0 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 27 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 74 regex...'/',.'').===.false).{.$t
ff2c0 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 27 54 68 65 20 70 61 74 74 65 72 his->addError($path,.'The.patter
ff2e0 6e 20 22 27 20 2e 20 24 70 72 65 67 65 78 20 2e 20 27 22 20 69 73 20 69 6e 76 61 6c 69 64 27 29 n."'...$pregex...'".is.invalid')
ff300 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e 74 20 ;.continue;.}.foreach.($element.
ff320 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 as.$i.=>.$value).{.if.(preg_matc
ff340 68 28 27 2f 27 20 2e 20 24 70 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 24 69 29 29 20 7b 0a 24 6d h('/'...$pregex...'/',.$i)).{.$m
ff360 61 74 63 68 65 73 5b 5d 20 3d 20 24 69 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 atches[].=.$i;.$this->checkUndef
ff380 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3f 20 3a 20 6e 65 77 20 5c 73 74 ined($value,.$schema.?.:.new.\st
ff3a0 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 7d 0a 72 65 74 75 dClass(),.$path,.$i);.}.}.}.retu
ff3c0 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rn.$matches;.}...........public.
ff3e0 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 45 6c 65 6d 65 6e 74 28 24 65 6c 65 6d 65 6e function.validateElement($elemen
ff400 74 2c 20 24 6d 61 74 63 68 65 73 2c 20 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d t,.$matches,.$objectDefinition.=
ff420 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c .null,.$path.=.null,.$additional
ff440 50 72 6f 70 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 6c 65 6d 65 6e 74 Prop.=.null).{.foreach.($element
ff460 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 0a 24 70 72 6f 70 65 72 74 79 20 3d .as.$i.=>.$value).{..$property.=
ff480 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 .$this->getProperty($element,.$i
ff4a0 2c 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 64 ,.new.UndefinedConstraint());.$d
ff4c0 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 efinition.=.$this->getProperty($
ff4e0 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 0a 0a 20 69 66 20 28 21 69 objectDefinition,.$i);....if.(!i
ff500 6e 5f 61 72 72 61 79 28 24 69 2c 20 24 6d 61 74 63 68 65 73 29 20 26 26 20 24 61 64 64 69 74 69 n_array($i,.$matches).&&.$additi
ff520 6f 6e 61 6c 50 72 6f 70 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6e 6c onalProp.===.false.&&.$this->inl
ff540 69 6e 65 53 63 68 65 6d 61 50 72 6f 70 65 72 74 79 20 21 3d 3d 20 24 69 20 26 26 20 21 24 64 65 ineSchemaProperty.!==.$i.&&.!$de
ff560 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 finition).{.$this->addError($pat
ff580 68 2c 20 22 54 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 69 73 20 6e h,."The.property."...$i...".is.n
ff5a0 6f 74 20 64 65 66 69 6e 65 64 20 61 6e 64 20 74 68 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 64 6f ot.defined.and.the.definition.do
ff5c0 65 73 20 6e 6f 74 20 61 6c 6c 6f 77 20 61 64 64 69 74 69 6f 6e 61 6c 20 70 72 6f 70 65 72 74 69 es.not.allow.additional.properti
ff5e0 65 73 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 69 2c 20 24 6d 61 es");.}....if.(!in_array($i,.$ma
ff600 74 63 68 65 73 29 20 26 26 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 20 26 26 20 21 24 64 tches).&&.$additionalProp.&&.!$d
ff620 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 69 66 20 28 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 efinition).{.if.($additionalProp
ff640 20 3d 3d 3d 20 74 72 75 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e .===.true).{.$this->checkUndefin
ff660 65 64 28 24 76 61 6c 75 65 2c 20 6e 75 6c 6c 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 20 65 ed($value,.null,.$path,.$i);.}.e
ff680 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c lse.{.$this->checkUndefined($val
ff6a0 75 65 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 2c 20 24 70 61 74 68 2c 20 24 69 29 3b ue,.$additionalProp,.$path,.$i);
ff6c0 0a 7d 0a 7d 0a 0a 0a 20 24 72 65 71 75 69 72 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f .}.}....$require.=.$this->getPro
ff6e0 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 72 65 73 27 29 3b 0a perty($definition,.'requires');.
ff700 69 66 20 28 24 72 65 71 75 69 72 65 20 26 26 20 21 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 if.($require.&&.!$this->getPrope
ff720 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 65 71 75 69 72 65 29 29 20 7b 0a 24 74 68 69 73 rty($element,.$require)).{.$this
ff740 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 74 68 65 20 70 72 65 73 65 6e 63 65 20 ->addError($path,."the.presence.
ff760 6f 66 20 74 68 65 20 70 72 6f 70 65 72 74 79 20 22 20 2e 20 24 69 20 2e 20 22 20 72 65 71 75 69 of.the.property."...$i...".requi
ff780 72 65 73 20 74 68 61 74 20 22 20 2e 20 24 72 65 71 75 69 72 65 20 2e 20 22 20 61 6c 73 6f 20 62 res.that."...$require...".also.b
ff7a0 65 20 70 72 65 73 65 6e 74 22 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 64 65 66 69 6e 69 74 69 6f 6e e.present");.}..if.(!$definition
ff7c0 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c ).{...$this->checkUndefined($val
ff7e0 75 65 2c 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 2c 20 24 70 61 74 68 2c 20 24 69 29 3b ue,.new.\stdClass(),.$path,.$i);
ff800 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 .}.}.}.........public.function.v
ff820 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 6f 62 6a alidateDefinition($element,.$obj
ff840 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 ectDefinition.=.null,.$path.=.nu
ff860 6c 6c 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e ll).{.foreach.($objectDefinition
ff880 20 61 73 20 24 69 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 .as.$i.=>.$value).{.$property.=.
ff8a0 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 69 2c $this->getProperty($element,.$i,
ff8c0 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 24 64 65 .new.UndefinedConstraint());.$de
ff8e0 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 6f finition.=.$this->getProperty($o
ff900 62 6a 65 63 74 44 65 66 69 6e 69 74 69 6f 6e 2c 20 24 69 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 bjectDefinition,.$i);.$this->che
ff920 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 70 72 6f 70 65 72 74 79 2c 20 24 64 65 66 69 6e 69 74 69 ckUndefined($property,.$definiti
ff940 6f 6e 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 on,.$path,.$i);.}.}...........pr
ff960 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c otected.function.getProperty($el
ff980 65 6d 65 6e 74 2c 20 24 70 72 6f 70 65 72 74 79 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 ement,.$property,.$fallback.=.nu
ff9a0 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 65 6c 65 6d 65 6e 74 29 20 29 20 7b ll).{.if.(is_array($element).).{
ff9c0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 70 72 6f 70 65 72 .return.array_key_exists($proper
ff9e0 74 79 2c 20 24 65 6c 65 6d 65 6e 74 29 20 3f 20 24 65 6c 65 6d 65 6e 74 5b 24 70 72 6f 70 65 72 ty,.$element).?.$element[$proper
ffa00 74 79 5d 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 6f 62 ty].:.$fallback;.}.elseif.(is_ob
ffa20 6a 65 63 74 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 6f 70 65 72 74 ject($element)).{.return.propert
ffa40 79 5f 65 78 69 73 74 73 28 24 65 6c 65 6d 65 6e 74 2c 20 24 70 72 6f 70 65 72 74 79 29 20 3f 20 y_exists($element,.$property).?.
ffa60 24 65 6c 65 6d 65 6e 74 2d 3e 24 70 72 6f 70 65 72 74 79 20 3a 20 24 66 61 6c 6c 62 61 63 6b 3b $element->$property.:.$fallback;
ffa80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 66 61 6c 6c 62 61 63 6b 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a .}..return.$fallback;.}.}<?php..
ffaa0 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 .......namespace.JsonSchema\Cons
ffac0 74 72 61 69 6e 74 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 traints;..use.JsonSchema\Excepti
ffae0 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 on\InvalidArgumentException;.use
ffb00 20 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 61 73 20 53 74 61 .UnexpectedValueException.as.Sta
ffb20 6e 64 61 72 64 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a ndardUnexpectedValueException;..
ffb40 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 20 65 78 74 65 6e ......class.TypeConstraint.exten
ffb60 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 73 74 61 74 69 63 20 24 77 6f 72 64 69 ds.Constraint.{....static.$wordi
ffb80 6e 67 20 3d 20 61 72 72 61 79 28 0a 27 69 6e 74 65 67 65 72 27 20 3d 3e 20 27 61 6e 20 69 6e 74 ng.=.array(.'integer'.=>.'an.int
ffba0 65 67 65 72 27 2c 0a 27 6e 75 6d 62 65 72 27 20 3d 3e 20 27 61 20 6e 75 6d 62 65 72 27 2c 0a 27 eger',.'number'.=>.'a.number',.'
ffbc0 62 6f 6f 6c 65 61 6e 27 20 3d 3e 20 27 61 20 62 6f 6f 6c 65 61 6e 27 2c 0a 27 6f 62 6a 65 63 74 boolean'.=>.'a.boolean',.'object
ffbe0 27 20 3d 3e 20 27 61 6e 20 6f 62 6a 65 63 74 27 2c 0a 27 61 72 72 61 79 27 20 3d 3e 20 27 61 6e '.=>.'an.object',.'array'.=>.'an
ffc00 20 61 72 72 61 79 27 2c 0a 27 73 74 72 69 6e 67 27 20 3d 3e 20 27 61 20 73 74 72 69 6e 67 27 2c .array',.'string'.=>.'a.string',
ffc20 0a 27 6e 75 6c 6c 27 20 3d 3e 20 27 61 20 6e 75 6c 6c 27 2c 0a 27 61 6e 79 27 20 3d 3e 20 4e 55 .'null'.=>.'a.null',.'any'.=>.NU
ffc40 4c 4c 2c 20 0a 20 30 20 3d 3e 20 4e 55 4c 4c 2c 20 0a 20 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 LL,...0.=>.NULL,...);.....public
ffc60 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 2c 20 24 .function.check($value.=.null,.$
ffc80 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 schema.=.null,.$path.=.null,.$i.
ffca0 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d =.null).{.$type.=.isset($schema-
ffcc0 3e 74 79 70 65 29 20 3f 20 24 73 63 68 65 6d 61 2d 3e 74 79 70 65 20 3a 20 6e 75 6c 6c 3b 0a 24 >type).?.$schema->type.:.null;.$
ffce0 69 73 56 61 6c 69 64 20 3d 20 74 72 75 65 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 74 isValid.=.true;..if.(is_array($t
ffd00 79 70 65 29 29 20 7b 0a 0a 20 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 66 61 ype)).{...$validatedOneType.=.fa
ffd20 6c 73 65 3b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 lse;.$errors.=.array();.foreach.
ffd40 28 24 74 79 70 65 20 61 73 20 24 74 70 29 20 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 ($type.as.$tp).{.$validator.=.ne
ffd60 77 20 54 79 70 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 w.TypeConstraint($this->checkMod
ffd80 65 29 3b 0a 24 73 75 62 53 63 68 65 6d 61 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 28 29 e);.$subSchema.=.new.\stdClass()
ffda0 3b 0a 24 73 75 62 53 63 68 65 6d 61 2d 3e 74 79 70 65 20 3d 20 24 74 70 3b 0a 24 76 61 6c 69 64 ;.$subSchema->type.=.$tp;.$valid
ffdc0 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 75 62 53 63 68 65 6d 61 2c 20 ator->check($value,.$subSchema,.
ffde0 24 70 61 74 68 2c 20 6e 75 6c 6c 29 3b 0a 24 65 72 72 6f 72 20 3d 20 24 76 61 6c 69 64 61 74 6f $path,.null);.$error.=.$validato
ffe00 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 63 6f 75 6e 74 28 24 65 72 72 r->getErrors();..if.(!count($err
ffe20 6f 72 29 29 20 7b 0a 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 20 3d 20 74 72 75 65 3b or)).{.$validatedOneType.=.true;
ffe40 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 65 72 72 6f 72 73 20 3d 20 24 65 72 72 6f 72 3b 0a 7d 0a 0a .break;.}..$errors.=.$error;.}..
ffe60 69 66 20 28 21 24 76 61 6c 69 64 61 74 65 64 4f 6e 65 54 79 70 65 29 20 7b 0a 72 65 74 75 72 6e if.(!$validatedOneType).{.return
ffe80 20 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 65 72 72 6f 72 73 29 3b 0a 7d 0a 7d 20 .$this->addErrors($errors);.}.}.
ffea0 65 6c 73 65 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 74 79 70 65 29 29 20 7b 0a 24 74 68 69 elseif.(is_object($type)).{.$thi
ffec0 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 2c s->checkUndefined($value,.$type,
ffee0 20 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 73 56 61 6c 69 64 20 3d 20 24 74 68 .$path);.}.else.{.$isValid.=.$th
fff00 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 74 79 70 65 29 3b is->validateType($value,.$type);
fff20 0a 7d 0a 0a 69 66 20 28 24 69 73 56 61 6c 69 64 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 69 66 .}..if.($isValid.===.false).{.if
fff40 20 28 21 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 5b 24 74 79 70 65 5d 29 29 .(!isset(self::$wording[$type]))
fff60 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 53 74 61 6e 64 61 72 64 55 6e 65 78 70 65 63 74 65 64 56 .{.throw.new.StandardUnexpectedV
fff80 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 73 70 72 69 6e 74 66 28 0a 22 4e 6f 20 77 6f 72 64 alueException(.sprintf(."No.word
fffa0 69 6e 67 20 66 6f 72 20 25 73 20 61 76 61 69 6c 61 62 6c 65 2c 20 65 78 70 65 63 74 65 64 20 77 ing.for.%s.available,.expected.w
fffc0 6f 72 64 69 6e 67 73 20 61 72 65 3a 20 5b 25 73 5d 22 2c 0a 76 61 72 5f 65 78 70 6f 72 74 28 24 ordings.are:.[%s]",.var_export($
fffe0 74 79 70 65 2c 20 74 72 75 65 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 type,.true),.implode(',.',.array
100000 5f 66 69 6c 74 65 72 28 73 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 29 29 29 0a 29 3b 0a 7d 0a 24 _filter(self::$wording))).);.}.$
100020 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 67 65 74 74 79 70 65 28 24 76 this->addError($path,.gettype($v
100040 61 6c 75 65 29 20 2e 20 22 20 76 61 6c 75 65 20 66 6f 75 6e 64 2c 20 62 75 74 20 22 20 2e 20 73 alue)...".value.found,.but."...s
100060 65 6c 66 3a 3a 24 77 6f 72 64 69 6e 67 5b 24 74 79 70 65 5d 20 2e 20 22 20 69 73 20 72 65 71 75 elf::$wording[$type]...".is.requ
100080 69 72 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ired");.}.}............protected
1000a0 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 54 79 70 65 28 24 76 61 6c 75 65 2c 20 24 .function.validateType($value,.$
1000c0 74 79 70 65 29 0a 7b 0a 0a 20 69 66 20 28 21 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 type).{...if.(!$type).{.return.t
1000e0 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 69 6e 74 65 67 65 72 27 20 3d 3d 3d 20 24 74 79 70 65 29 rue;.}..if.('integer'.===.$type)
100100 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 69 6e 74 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 .{.return.is_int($value);.}..if.
100120 28 27 6e 75 6d 62 65 72 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 ('number'.===.$type).{.return.is
100140 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 _numeric($value).&&.!is_string($
100160 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 62 6f 6f 6c 65 61 6e 27 20 3d 3d 3d 20 24 74 79 value);.}..if.('boolean'.===.$ty
100180 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 3b 0a 7d 0a pe).{.return.is_bool($value);.}.
1001a0 0a 69 66 20 28 27 6f 62 6a 65 63 74 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 .if.('object'.===.$type).{.retur
1001c0 6e 20 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 3b 0a 0a 20 7d 0a 0a 69 66 20 28 27 61 n.is_object($value);...}..if.('a
1001e0 72 72 61 79 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 61 72 72 rray'.===.$type).{.return.is_arr
100200 61 79 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 73 74 72 69 6e 67 27 20 3d 3d 3d 20 ay($value);.}..if.('string'.===.
100220 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 $type).{.return.is_string($value
100240 29 3b 0a 7d 0a 0a 69 66 20 28 27 6e 75 6c 6c 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 );.}..if.('null'.===.$type).{.re
100260 74 75 72 6e 20 69 73 5f 6e 75 6c 6c 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 27 61 6e turn.is_null($value);.}..if.('an
100280 79 27 20 3d 3d 3d 20 24 74 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a y'.===.$type).{.return.true;.}..
1002a0 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 throw.new.InvalidArgumentExcepti
1002c0 6f 6e 28 28 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 20 3f 20 27 6f 62 6a 65 63 74 27 on((is_object($value).?.'object'
1002e0 20 3a 20 24 76 61 6c 75 65 29 20 2e 20 27 20 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 74 79 70 .:.$value)...'.is.an.invalid.typ
100300 65 20 66 6f 72 20 27 20 2e 20 24 74 79 70 65 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a e.for.'...$type);.}.}<?php......
100320 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 ...namespace.JsonSchema\Constrai
100340 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 43 6f 6e 73 74 72 61 69 nts;........class.FormatConstrai
100360 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 nt.extends.Constraint.{....publi
100380 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 c.function.check($element,.$sche
1003a0 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 ma.=.null,.$path.=.null,.$i.=.nu
1003c0 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 66 6f 72 6d 61 74 ll).{.if.(!isset($schema->format
1003e0 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 73 63 68 65 6d 61 2d )).{.return;.}..switch.($schema-
100400 3e 66 6f 72 6d 61 74 29 20 7b 0a 63 61 73 65 20 27 64 61 74 65 27 3a 0a 69 66 20 28 21 24 64 61 >format).{.case.'date':.if.(!$da
100420 74 65 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c te.=.$this->validateDateTime($el
100440 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 ement,.'Y-m-d')).{.$this->addErr
100460 6f 72 28 24 70 61 74 68 2c 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 64 61 74 65 20 or($path,.sprintf('Invalid.date.
100480 25 73 2c 20 65 78 70 65 63 74 65 64 20 66 6f 72 6d 61 74 20 59 59 59 59 2d 4d 4d 2d 44 44 27 2c %s,.expected.format.YYYY-MM-DD',
1004a0 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 29 29 29 3b 0a 7d 0a 62 72 65 61 .json_encode($element)));.}.brea
1004c0 6b 3b 0a 0a 63 61 73 65 20 27 74 69 6d 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c k;..case.'time':.if.(!$this->val
1004e0 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 48 3a 69 3a 73 27 29 idateDateTime($element,.'H:i:s')
100500 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 73 70 72 69 6e ).{.$this->addError($path,.sprin
100520 74 66 28 27 49 6e 76 61 6c 69 64 20 74 69 6d 65 20 25 73 2c 20 65 78 70 65 63 74 65 64 20 66 6f tf('Invalid.time.%s,.expected.fo
100540 72 6d 61 74 20 68 68 3a 6d 6d 3a 73 73 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 rmat.hh:mm:ss',.json_encode($ele
100560 6d 65 6e 74 29 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 64 61 74 65 2d 74 69 ment)));.}.break;..case.'date-ti
100580 6d 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d me':.if.(!$this->validateDateTim
1005a0 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a 69 3a 73 5c 5a 27 29 20 26 26 e($element,.'Y-m-d\TH:i:s\Z').&&
1005c0 0a 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 .!$this->validateDateTime($eleme
1005e0 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a 69 3a 73 2e 75 5c 5a 27 29 20 26 26 0a 21 24 74 68 69 nt,.'Y-m-d\TH:i:s.u\Z').&&.!$thi
100600 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 59 s->validateDateTime($element,.'Y
100620 2d 6d 2d 64 5c 54 48 3a 69 3a 73 50 27 29 20 26 26 0a 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 -m-d\TH:i:sP').&&.!$this->valida
100640 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e 74 2c 20 27 59 2d 6d 2d 64 5c 54 48 3a 69 teDateTime($element,.'Y-m-d\TH:i
100660 3a 73 4f 27 29 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c :sO').).{.$this->addError($path,
100680 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 64 61 74 65 2d 74 69 6d 65 20 25 73 2c 20 .sprintf('Invalid.date-time.%s,.
1006a0 65 78 70 65 63 74 65 64 20 66 6f 72 6d 61 74 20 59 59 59 59 2d 4d 4d 2d 44 44 54 68 68 3a 6d 6d expected.format.YYYY-MM-DDThh:mm
1006c0 3a 73 73 5a 20 6f 72 20 59 59 59 59 2d 4d 4d 2d 44 44 54 68 68 3a 6d 6d 3a 73 73 2b 68 68 3a 6d :ssZ.or.YYYY-MM-DDThh:mm:ss+hh:m
1006e0 6d 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 29 29 29 3b 0a 7d 0a 62 m',.json_encode($element)));.}.b
100700 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 74 63 2d 6d 69 6c 6c 69 73 65 63 27 3a 0a 69 66 20 28 reak;..case.'utc-millisec':.if.(
100720 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 65 6c 65 6d 65 6e !$this->validateDateTime($elemen
100740 74 2c 20 27 55 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 t,.'U')).{.$this->addError($path
100760 2c 20 73 70 72 69 6e 74 66 28 27 49 6e 76 61 6c 69 64 20 74 69 6d 65 20 25 73 2c 20 65 78 70 65 ,.sprintf('Invalid.time.%s,.expe
100780 63 74 65 64 20 69 6e 74 65 67 65 72 20 6f 66 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 20 73 69 6e cted.integer.of.milliseconds.sin
1007a0 63 65 20 45 70 6f 63 68 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 65 6c 65 6d 65 6e 74 29 ce.Epoch',.json_encode($element)
1007c0 29 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 72 65 67 65 78 27 3a 0a 69 66 20 28 ));.}.break;..case.'regex':.if.(
1007e0 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 65 6c 65 6d 65 6e 74 29 29 !$this->validateRegex($element))
100800 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 27 49 6e 76 61 6c .{.$this->addError($path,.'Inval
100820 69 64 20 72 65 67 65 78 20 66 6f 72 6d 61 74 20 27 20 2e 20 24 65 6c 65 6d 65 6e 74 29 3b 0a 7d id.regex.format.'...$element);.}
100840 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 6f 6c 6f 72 27 3a 0a 69 66 20 28 21 24 74 68 69 .break;..case.'color':.if.(!$thi
100860 73 2d 3e 76 61 6c 69 64 61 74 65 43 6f 6c 6f 72 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 s->validateColor($element)).{.$t
100880 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 63 6f his->addError($path,."Invalid.co
1008a0 6c 6f 72 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 74 79 6c 65 27 3a 0a 69 lor");.}.break;..case.'style':.i
1008c0 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 79 6c 65 28 24 65 6c 65 6d 65 6e f.(!$this->validateStyle($elemen
1008e0 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e t)).{.$this->addError($path,."In
100900 76 61 6c 69 64 20 73 74 79 6c 65 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 valid.style");.}.break;..case.'p
100920 68 6f 6e 65 27 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 50 68 6f 6e 65 hone':.if.(!$this->validatePhone
100940 28 24 65 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 ($element)).{.$this->addError($p
100960 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 70 68 6f 6e 65 20 6e 75 6d 62 65 72 22 29 3b 0a 7d 0a ath,."Invalid.phone.number");.}.
100980 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 72 69 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d break;..case.'uri':.if.(null.===
1009a0 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 4c .filter_var($element,.FILTER_VAL
1009c0 49 44 41 54 45 5f 55 52 4c 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 52 IDATE_URL,.FILTER_NULL_ON_FAILUR
1009e0 45 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e E)).{.$this->addError($path,."In
100a00 76 61 6c 69 64 20 55 52 4c 20 66 6f 72 6d 61 74 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 valid.URL.format");.}.break;..ca
100a20 73 65 20 27 65 6d 61 69 6c 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 66 69 6c 74 65 72 5f se.'email':.if.(null.===.filter_
100a40 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d var($element,.FILTER_VALIDATE_EM
100a60 41 49 4c 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 52 45 29 29 20 7b 0a AIL,.FILTER_NULL_ON_FAILURE)).{.
100a80 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 $this->addError($path,."Invalid.
100aa0 65 6d 61 69 6c 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 70 2d 61 64 64 72 email");.}.break;..case.'ip-addr
100ac0 65 73 73 27 3a 0a 63 61 73 65 20 27 69 70 76 34 27 3a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 ess':.case.'ipv4':.if.(null.===.
100ae0 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 filter_var($element,.FILTER_VALI
100b00 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e 5f 46 41 49 4c 55 52 45 20 DATE_IP,.FILTER_NULL_ON_FAILURE.
100b20 7c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 |.FILTER_FLAG_IPV4)).{.$this->ad
100b40 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 49 50 20 61 64 64 72 65 73 dError($path,."Invalid.IP.addres
100b60 73 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 70 76 36 27 3a 0a 69 66 20 28 s");.}.break;..case.'ipv6':.if.(
100b80 6e 75 6c 6c 20 3d 3d 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6c 65 6d 65 6e 74 2c 20 46 49 null.===.filter_var($element,.FI
100ba0 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 4e 55 4c 4c 5f 4f 4e LTER_VALIDATE_IP,.FILTER_NULL_ON
100bc0 5f 46 41 49 4c 55 52 45 20 7c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 36 29 29 20 7b 0a _FAILURE.|.FILTER_FLAG_IPV6)).{.
100be0 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 61 6c 69 64 20 $this->addError($path,."Invalid.
100c00 49 50 20 61 64 64 72 65 73 73 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 68 6f IP.address");.}.break;..case.'ho
100c20 73 74 2d 6e 61 6d 65 27 3a 0a 63 61 73 65 20 27 68 6f 73 74 6e 61 6d 65 27 3a 0a 69 66 20 28 21 st-name':.case.'hostname':.if.(!
100c40 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 48 6f 73 74 6e 61 6d 65 28 24 65 6c 65 6d 65 6e 74 $this->validateHostname($element
100c60 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 49 6e 76 )).{.$this->addError($path,."Inv
100c80 61 6c 69 64 20 68 6f 73 74 6e 61 6d 65 22 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 alid.hostname");.}.break;..defau
100ca0 6c 74 3a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 55 6e 6b 6e lt:.$this->addError($path,."Unkn
100cc0 6f 77 6e 20 66 6f 72 6d 61 74 3a 20 22 20 2e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 73 63 68 own.format:."...json_encode($sch
100ce0 65 6d 61 2d 3e 66 6f 72 6d 61 74 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 ema->format));.break;.}.}..prote
100d00 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 44 61 74 65 54 69 6d 65 28 24 cted.function.validateDateTime($
100d20 64 61 74 65 74 69 6d 65 2c 20 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 64 74 20 3d 20 5c 44 61 74 65 datetime,.$format).{.$dt.=.\Date
100d40 54 69 6d 65 3a 3a 63 72 65 61 74 65 46 72 6f 6d 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 2c 20 Time::createFromFormat($format,.
100d60 24 64 61 74 65 74 69 6d 65 29 3b 0a 0a 69 66 20 28 21 24 64 74 29 20 7b 0a 72 65 74 75 72 6e 20 $datetime);..if.(!$dt).{.return.
100d80 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3d 3d 3d 20 24 false;.}..return.$datetime.===.$
100da0 64 74 2d 3e 66 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 dt->format($format);.}..protecte
100dc0 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 72 65 67 65 78 29 d.function.validateRegex($regex)
100de0 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 40 70 72 65 67 5f 6d 61 74 63 68 28 .{.return.false.!==.@preg_match(
100e00 27 2f 27 20 2e 20 24 72 65 67 65 78 20 2e 20 27 2f 27 2c 20 27 27 29 3b 0a 7d 0a 0a 70 72 6f 74 '/'...$regex...'/',.'');.}..prot
100e20 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 43 6f 6c 6f 72 28 24 63 6f ected.function.validateColor($co
100e40 6c 6f 72 29 0a 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 lor).{.if.(in_array(strtolower($
100e60 63 6f 6c 6f 72 29 2c 20 61 72 72 61 79 28 27 61 71 75 61 27 2c 20 27 62 6c 61 63 6b 27 2c 20 27 color),.array('aqua',.'black',.'
100e80 62 6c 75 65 27 2c 20 27 66 75 63 68 73 69 61 27 2c 0a 27 67 72 61 79 27 2c 20 27 67 72 65 65 6e blue',.'fuchsia',.'gray',.'green
100ea0 27 2c 20 27 6c 69 6d 65 27 2c 20 27 6d 61 72 6f 6f 6e 27 2c 20 27 6e 61 76 79 27 2c 20 27 6f 6c ',.'lime',.'maroon',.'navy',.'ol
100ec0 69 76 65 27 2c 20 27 6f 72 61 6e 67 65 27 2c 20 27 70 75 72 70 6c 65 27 2c 0a 27 72 65 64 27 2c ive',.'orange',.'purple',.'red',
100ee0 20 27 73 69 6c 76 65 72 27 2c 20 27 74 65 61 6c 27 2c 20 27 77 68 69 74 65 27 2c 20 27 79 65 6c .'silver',.'teal',.'white',.'yel
100f00 6c 6f 77 27 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e low'))).{.return.true;.}..return
100f20 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 23 28 5b 61 2d 66 30 2d 39 5d 7b 33 7d 7c 5b 61 2d .preg_match('/^#([a-f0-9]{3}|[a-
100f40 66 30 2d 39 5d 7b 36 7d 29 24 2f 69 27 2c 20 24 63 6f 6c 6f 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 f0-9]{6})$/i',.$color);.}..prote
100f60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 79 6c 65 28 24 73 74 79 cted.function.validateStyle($sty
100f80 6c 65 29 0a 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3b 27 2c le).{.$properties.=.explode(';',
100fa0 20 72 74 72 69 6d 28 24 73 74 79 6c 65 2c 20 27 3b 27 29 29 3b 0a 24 69 6e 76 61 6c 69 64 45 6e .rtrim($style,.';'));.$invalidEn
100fc0 74 72 69 65 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 27 2f 5e 5c 73 2a 5b 2d 61 2d 7a 5d 2b 5c tries.=.preg_grep('/^\s*[-a-z]+\
100fe0 73 2a 3a 5c 73 2a 2e 2b 24 2f 69 27 2c 20 24 70 72 6f 70 65 72 74 69 65 73 2c 20 50 52 45 47 5f s*:\s*.+$/i',.$properties,.PREG_
101000 47 52 45 50 5f 49 4e 56 45 52 54 29 3b 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 69 6e 76 GREP_INVERT);..return.empty($inv
101020 61 6c 69 64 45 6e 74 72 69 65 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 alidEntries);.}..protected.funct
101040 69 6f 6e 20 76 61 6c 69 64 61 74 65 50 68 6f 6e 65 28 24 70 68 6f 6e 65 29 0a 7b 0a 72 65 74 75 ion.validatePhone($phone).{.retu
101060 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 2b 3f 28 5c 28 5c 64 7b 33 7d 5c 29 7c 5c rn.preg_match('/^\+?(\(\d{3}\)|\
101080 64 7b 33 7d 29 20 5c 64 7b 33 7d 20 5c 64 7b 34 7d 24 2f 27 2c 20 24 70 68 6f 6e 65 29 3b 0a 7d d{3}).\d{3}.\d{4}$/',.$phone);.}
1010a0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 48 6f 73 ..protected.function.validateHos
1010c0 74 6e 61 6d 65 28 24 68 6f 73 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 tname($host).{.return.preg_match
1010e0 28 27 2f 5e 5b 5f 61 2d 7a 5d 2b 5c 2e 28 5b 5f 61 2d 7a 5d 2b 5c 2e 3f 29 2b 24 2f 69 27 2c 20 ('/^[_a-z]+\.([_a-z]+\.?)+$/i',.
101100 24 68 6f 73 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 $host);.}.}.<?php.........namesp
101120 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c ace.JsonSchema\Exception;.....cl
101140 61 73 73 20 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 ass.UriResolverException.extends
101160 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a .\RuntimeException.{.}<?php.....
101180 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 ....namespace.JsonSchema\Excepti
1011a0 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 on;.....class.ResourceNotFoundEx
1011c0 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f ception.extends.\RuntimeExceptio
1011e0 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f n.{.}<?php.........namespace.Jso
101200 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 nSchema\Exception;.....class.Inv
101220 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 alidSchemaMediaTypeException.ext
101240 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 20 0a 7d 3c 3f 70 68 70 ends.\RuntimeException.{..}<?php
101260 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 .........namespace.JsonSchema\Ex
101280 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 53 6f 75 72 63 65 ception;.....class.InvalidSource
1012a0 55 72 69 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 49 6e 76 61 6c 69 64 41 72 67 75 UriException.extends.InvalidArgu
1012c0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a mentException.{.}.<?php.........
1012e0 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a namespace.JsonSchema\Exception;.
101300 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 20 ....class.JsonDecodingException.
101320 65 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 75 62 6c extends.\RuntimeException.{.publ
101340 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 64 65 20 3d 20 ic.function.__construct($code.=.
101360 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e 45 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 JSON_ERROR_NONE,.\Exception.$pre
101380 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 64 65 29 20 7b vious.=.null).{.switch.($code).{
1013a0 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 44 45 50 54 48 3a 0a 24 6d 65 73 73 61 67 65 .case.JSON_ERROR_DEPTH:.$message
1013c0 20 3d 20 27 54 68 65 20 6d 61 78 69 6d 75 6d 20 73 74 61 63 6b 20 64 65 70 74 68 20 68 61 73 20 .=.'The.maximum.stack.depth.has.
1013e0 62 65 65 6e 20 65 78 63 65 65 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e been.exceeded';.break;.case.JSON
101400 5f 45 52 52 4f 52 5f 53 54 41 54 45 5f 4d 49 53 4d 41 54 43 48 3a 0a 24 6d 65 73 73 61 67 65 20 _ERROR_STATE_MISMATCH:.$message.
101420 3d 20 27 49 6e 76 61 6c 69 64 20 6f 72 20 6d 61 6c 66 6f 72 6d 65 64 20 4a 53 4f 4e 27 3b 0a 62 =.'Invalid.or.malformed.JSON';.b
101440 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 43 54 52 4c 5f 43 48 41 52 3a reak;.case.JSON_ERROR_CTRL_CHAR:
101460 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 6e 74 72 6f 6c 20 63 68 61 72 61 63 74 65 72 20 65 .$message.=.'Control.character.e
101480 72 72 6f 72 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 65 6e 63 6f 64 rror,.possibly.incorrectly.encod
1014a0 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f 55 54 46 38 ed';.break;.case.JSON_ERROR_UTF8
1014c0 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 4d 61 6c 66 6f 72 6d 65 64 20 55 54 46 2d 38 20 63 68 :.$message.=.'Malformed.UTF-8.ch
1014e0 61 72 61 63 74 65 72 73 2c 20 70 6f 73 73 69 62 6c 79 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 65 aracters,.possibly.incorrectly.e
101500 6e 63 6f 64 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4a 53 4f 4e 5f 45 52 52 4f 52 5f ncoded';.break;.case.JSON_ERROR_
101520 53 59 4e 54 41 58 3a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 4a 53 4f 4e 20 73 79 6e 74 61 78 20 SYNTAX:.$message.=.'JSON.syntax.
101540 69 73 20 6d 61 6c 66 6f 72 6d 65 64 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 is.malformed';.break;.default:.$
101560 6d 65 73 73 61 67 65 20 3d 20 27 53 79 6e 74 61 78 20 65 72 72 6f 72 27 3b 0a 7d 0a 70 61 72 65 message.=.'Syntax.error';.}.pare
101580 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 2c nt::__construct($message,.$code,
1015a0 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 .$previous);.}.}<?php.........na
1015c0 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a mespace.JsonSchema\Exception;...
1015e0 0a 0a 63 6c 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e ..class.InvalidArgumentException
101600 20 65 78 74 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 .extends.\InvalidArgumentExcepti
101620 6f 6e 0a 7b 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 on.{.}<?php.........namespace.Js
101640 6f 6e 53 63 68 65 6d 61 5c 55 72 69 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 onSchema\Uri;..use.JsonSchema\Ex
101660 63 65 70 74 69 6f 6e 5c 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a ception\UriResolverException;...
101680 0a 0a 0a 0a 63 6c 61 73 73 20 55 72 69 52 65 73 6f 6c 76 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 ....class.UriResolver.{.......pu
1016a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 75 72 69 29 0a 7b 0a 70 72 65 67 blic.function.parse($uri).{.preg
1016c0 5f 6d 61 74 63 68 28 27 7c 5e 28 28 5b 5e 3a 2f 3f 23 5d 2b 29 3a 29 3f 28 2f 2f 28 5b 5e 2f 3f _match('|^(([^:/?#]+):)?(//([^/?
1016e0 23 5d 2a 29 29 3f 28 5b 5e 3f 23 5d 2a 29 28 5c 3f 28 5b 5e 23 5d 2a 29 29 3f 28 23 28 2e 2a 29 #]*))?([^?#]*)(\?([^#]*))?(#(.*)
101700 29 3f 7c 27 2c 20 24 75 72 69 2c 20 24 6d 61 74 63 68 29 3b 0a 0a 24 63 6f 6d 70 6f 6e 65 6e 74 )?|',.$uri,.$match);..$component
101720 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 35 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 s.=.array();.if.(5.<.count($matc
101740 68 29 29 20 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 68 65 h)).{.$components.=.array(.'sche
101760 6d 65 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 75 74 68 6f 72 69 74 79 27 20 3d 3e me'.=>.$match[2],.'authority'.=>
101780 20 24 6d 61 74 63 68 5b 34 5d 2c 0a 27 70 61 74 68 27 20 3d 3e 20 24 6d 61 74 63 68 5b 35 5d 0a .$match[4],.'path'.=>.$match[5].
1017a0 29 3b 0a 7d 20 0a 69 66 20 28 37 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 );.}..if.(7.<.count($match)).{.$
1017c0 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 20 3d 20 24 6d 61 74 63 68 5b 37 5d 3b components['query'].=.$match[7];
1017e0 0a 7d 0a 69 66 20 28 39 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6d .}.if.(9.<.count($match)).{.$com
101800 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 6d 61 74 63 68 5b 39 5d 3b ponents['fragment'].=.$match[9];
101820 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .}..return.$components;.}.......
101840 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 61 72 72 61 79 20 .public.function.generate(array.
101860 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 0a 7b 0a 24 75 72 69 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 $components).{.$uri.=.$component
101880 73 5b 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e s['scheme']...'://'....$componen
1018a0 74 73 5b 27 61 75 74 68 6f 72 69 74 79 27 5d 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 ts['authority']...$components['p
1018c0 61 74 68 27 5d 3b 0a 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 71 75 ath'];..if.(array_key_exists('qu
1018e0 65 72 79 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 63 ery',.$components)).{.$uri..=.$c
101900 6f 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 3b 0a 7d 0a 69 66 20 28 61 72 72 61 79 5f omponents['query'];.}.if.(array_
101920 6b 65 79 5f 65 78 69 73 74 73 28 27 66 72 61 67 6d 65 6e 74 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e key_exists('fragment',.$componen
101940 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 27 23 27 20 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 ts)).{.$uri..=.'#'...$components
101960 5b 27 66 72 61 67 6d 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a ['fragment'];.}..return.$uri;.}.
101980 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 28 ........public.function.resolve(
1019a0 24 75 72 69 2c 20 24 62 61 73 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 75 72 $uri,.$baseUri.=.null).{.if.($ur
1019c0 69 20 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 73 65 55 72 69 3b 0a 7d 0a 0a 24 i.==.'').{.return.$baseUri;.}..$
1019e0 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b components.=.$this->parse($uri);
101a00 0a 24 70 61 74 68 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 3b 0a 0a 69 .$path.=.$components['path'];..i
101a20 66 20 28 21 20 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 73 63 68 65 6d 65 27 5d f.(!.empty($components['scheme']
101a40 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 24 62 61 73 65 43 6f 6d 70 6f 6e 65 )).{.return.$uri;.}.$baseCompone
101a60 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 62 61 73 65 55 72 69 29 3b 0a 24 62 nts.=.$this->parse($baseUri);.$b
101a80 61 73 65 50 61 74 68 20 3d 20 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 asePath.=.$baseComponents['path'
101aa0 5d 3b 0a 0a 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 20 3d 20 73 65 ];..$baseComponents['path'].=.se
101ac0 6c 66 3a 3a 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 42 61 73 65 50 lf::combineRelativePathWithBaseP
101ae0 61 74 68 28 24 70 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 3b 0a 69 66 20 28 69 73 73 65 74 ath($path,.$basePath);.if.(isset
101b00 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 24 62 61 ($components['fragment'])).{.$ba
101b20 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 63 6f 6d 70 seComponents['fragment'].=.$comp
101b40 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 onents['fragment'];.}..return.$t
101b60 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a his->generate($baseComponents);.
101b80 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f }..........public.static.functio
101ba0 6e 20 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 42 61 73 65 50 61 74 n.combineRelativePathWithBasePat
101bc0 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 0a 7b 0a 24 72 h($relativePath,.$basePath).{.$r
101be0 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 elativePath.=.self::normalizePat
101c00 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 69 66 20 28 24 72 65 6c 61 74 69 76 65 50 h($relativePath);.if.($relativeP
101c20 61 74 68 20 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 61 73 65 50 61 74 68 3b 0a 7d ath.==.'').{.return.$basePath;.}
101c40 0a 69 66 20 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 7b 30 7d 20 3d 3d 20 27 2f 27 29 20 7b 0a .if.($relativePath{0}.==.'/').{.
101c60 72 65 74 75 72 6e 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 24 62 61 73 65 50 61 return.$relativePath;.}..$basePa
101c80 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 73 65 6c 66 3a 3a 67 65 74 50 61 74 68 53 65 67 6d 65 6e thSegments.=.self::getPathSegmen
101ca0 74 73 28 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7c 5e 2f 3f ts($basePath);..preg_match('|^/?
101cc0 28 5c 2e 5c 2e 2f 28 3f 3a 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 (\.\./(?:\./)*)*|',.$relativePat
101ce0 68 2c 20 24 6d 61 74 63 68 29 3b 0a 24 6e 75 6d 4c 65 76 65 6c 55 70 20 3d 20 73 74 72 6c 65 6e h,.$match);.$numLevelUp.=.strlen
101d00 28 24 6d 61 74 63 68 5b 30 5d 29 20 2f 33 20 2b 20 31 3b 0a 69 66 20 28 24 6e 75 6d 4c 65 76 65 ($match[0])./3.+.1;.if.($numLeve
101d20 6c 55 70 20 3e 3d 20 63 6f 75 6e 74 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 29 lUp.>=.count($basePathSegments))
101d40 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f .{.throw.new.UriResolverExceptio
101d60 6e 28 73 70 72 69 6e 74 66 28 22 55 6e 61 62 6c 65 20 74 6f 20 72 65 73 6f 6c 76 65 20 55 52 49 n(sprintf("Unable.to.resolve.URI
101d80 20 27 25 73 27 20 66 72 6f 6d 20 62 61 73 65 20 27 25 73 27 22 2c 20 24 72 65 6c 61 74 69 76 65 .'%s'.from.base.'%s'",.$relative
101da0 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 29 3b 0a 7d 0a 24 62 61 73 65 50 61 74 68 53 65 Path,.$basePath));.}.$basePathSe
101dc0 67 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 62 61 73 65 50 61 74 68 53 65 gments.=.array_slice($basePathSe
101de0 67 6d 65 6e 74 73 2c 20 30 2c 20 2d 24 6e 75 6d 4c 65 76 65 6c 55 70 29 3b 0a 24 70 61 74 68 20 gments,.0,.-$numLevelUp);.$path.
101e00 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 5e 2f 3f 28 5c 2e 5c 2e 2f 28 5c 2e 2f 29 2a =.preg_replace('|^/?(\.\./(\./)*
101e20 29 2a 7c 27 2c 20 27 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 72 )*|',.'',.$relativePath);..retur
101e40 6e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 n.implode('/',.$basePathSegments
101e60 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 )...'/'...$path;.}........privat
101e80 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 e.static.function.normalizePath(
101ea0 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c $path).{.$path.=.preg_replace('|
101ec0 28 28 3f 3c 21 5c 2e 29 5c 2e 2f 29 2a 7c 27 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 24 70 61 ((?<!\.)\./)*|',.'',.$path);.$pa
101ee0 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 2f 2f 7c 27 2c 20 27 2f 27 2c 20 24 th.=.preg_replace('|//|',.'/',.$
101f00 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 path);..return.$path;.}.....priv
101f20 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 53 65 67 6d 65 ate.static.function.getPathSegme
101f40 6e 74 73 28 24 70 61 74 68 29 20 7b 0a 0a 72 65 74 75 72 6e 20 65 78 70 6c 6f 64 65 28 27 2f 27 nts($path).{..return.explode('/'
101f60 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ,.$path);.}......public.function
101f80 20 69 73 56 61 6c 69 64 28 24 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 .isValid($uri).{.$components.=.$
101fa0 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 this->parse($uri);..return.!empt
101fc0 79 28 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a y($components);.}.}.<?php.......
101fe0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 3b 0a 0a 75 73 65 ..namespace.JsonSchema\Uri;..use
102000 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 46 69 6c 65 47 .JsonSchema\Uri\Retrievers\FileG
102020 65 74 43 6f 6e 74 65 6e 74 73 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 etContents;.use.JsonSchema\Uri\R
102040 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 3b etrievers\UriRetrieverInterface;
102060 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 4a .use.JsonSchema\Validator;.use.J
102080 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 53 63 68 65 6d sonSchema\Exception\InvalidSchem
1020a0 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 aMediaTypeException;.use.JsonSch
1020c0 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 ema\Exception\JsonDecodingExcept
1020e0 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 72 69 52 65 74 72 69 65 76 65 72 0a 7b 0a ion;.......class.UriRetriever.{.
102100 70 72 6f 74 65 63 74 65 64 20 24 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a protected.$uriRetriever.=.null;.
102120 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 72 6d 4d 65 64 ......public.function.confirmMed
102140 69 61 54 79 70 65 28 24 75 72 69 52 65 74 72 69 65 76 65 72 2c 20 24 75 72 69 29 0a 7b 0a 24 63 iaType($uriRetriever,.$uri).{.$c
102160 6f 6e 74 65 6e 74 54 79 70 65 20 3d 20 24 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e 67 65 74 43 ontentType.=.$uriRetriever->getC
102180 6f 6e 74 65 6e 74 54 79 70 65 28 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6c 6c 28 24 63 6f 6e 74 ontentType();..if.(is_null($cont
1021a0 65 6e 74 54 79 70 65 29 29 20 7b 0a 0a 20 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 56 61 6c entType)).{...return;.}..if.(Val
1021c0 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 20 3d 3d 3d 20 24 63 idator::SCHEMA_MEDIA_TYPE.===.$c
1021e0 6f 6e 74 65 6e 74 54 79 70 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 73 75 62 ontentType).{.return;.}..if.(sub
102200 73 74 72 28 24 75 72 69 2c 20 30 2c 20 32 33 29 20 3d 3d 20 27 68 74 74 70 3a 2f 2f 6a 73 6f 6e str($uri,.0,.23).==.'http://json
102220 2d 73 63 68 65 6d 61 2e 6f 72 67 2f 27 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a -schema.org/').{...return.true;.
102240 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 }..throw.new.InvalidSchemaMediaT
102260 79 70 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 65 64 69 61 20 74 79 70 65 ypeException(sprintf('Media.type
102280 20 25 73 20 65 78 70 65 63 74 65 64 27 2c 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 .%s.expected',.Validator::SCHEMA
1022a0 5f 4d 45 44 49 41 5f 54 59 50 45 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 _MEDIA_TYPE));.}..........public
1022c0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 0a 7b 0a 69 66 .function.getUriRetriever().{.if
1022e0 20 28 69 73 5f 6e 75 6c 6c 28 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 29 29 20 .(is_null($this->uriRetriever)).
102300 7b 0a 24 74 68 69 73 2d 3e 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 6e 65 77 20 46 69 6c {.$this->setUriRetriever(new.Fil
102320 65 47 65 74 43 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e eGetContents);.}..return.$this->
102340 75 72 69 52 65 74 72 69 65 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 uriRetriever;.}...............pu
102360 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 50 6f 69 6e 74 65 72 28 24 6a 73 blic.function.resolvePointer($js
102380 6f 6e 53 63 68 65 6d 61 2c 20 24 75 72 69 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 72 20 3d 20 6e 65 onSchema,.$uri).{.$resolver.=.ne
1023a0 77 20 55 72 69 52 65 73 6f 6c 76 65 72 28 29 3b 0a 24 70 61 72 73 65 64 20 3d 20 24 72 65 73 6f w.UriResolver();.$parsed.=.$reso
1023c0 6c 76 65 72 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 lver->parse($uri);.if.(empty($pa
1023e0 72 73 65 64 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6a 73 6f rsed['fragment'])).{.return.$jso
102400 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c nSchema;.}..$path.=.explode('/',
102420 20 24 70 61 72 73 65 64 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 3b 0a 77 68 69 6c 65 20 28 24 70 .$parsed['fragment']);.while.($p
102440 61 74 68 29 20 7b 0a 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 3d 20 61 72 72 61 79 5f 73 68 69 66 ath).{.$pathElement.=.array_shif
102460 74 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 24 70 61 74 68 45 6c 65 6d 65 t($path);.if.(!.empty($pathEleme
102480 6e 74 29 29 20 7b 0a 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 nt)).{.$pathElement.=.str_replac
1024a0 65 28 27 7e 31 27 2c 20 27 2f 27 2c 20 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 3b 0a 24 70 61 74 e('~1',.'/',.$pathElement);.$pat
1024c0 68 45 6c 65 6d 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 7e 30 27 2c 20 27 7e 27 hElement.=.str_replace('~0',.'~'
1024e0 2c 20 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 24 6a 73 ,.$pathElement);.if.(!.empty($js
102500 6f 6e 53 63 68 65 6d 61 2d 3e 24 70 61 74 68 45 6c 65 6d 65 6e 74 29 29 20 7b 0a 24 6a 73 6f 6e onSchema->$pathElement)).{.$json
102520 53 63 68 65 6d 61 20 3d 20 24 6a 73 6f 6e 53 63 68 65 6d 61 2d 3e 24 70 61 74 68 45 6c 65 6d 65 Schema.=.$jsonSchema->$pathEleme
102540 6e 74 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 65 nt;.}.else.{.throw.new.\JsonSche
102560 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 ma\Exception\ResourceNotFoundExc
102580 65 70 74 69 6f 6e 28 0a 27 46 72 61 67 6d 65 6e 74 20 22 27 20 2e 20 24 70 61 72 73 65 64 5b 27 eption(.'Fragment."'...$parsed['
1025a0 66 72 61 67 6d 65 6e 74 27 5d 20 2e 20 27 22 20 6e 6f 74 20 66 6f 75 6e 64 27 0a 2e 20 27 20 69 fragment']...'".not.found'...'.i
1025c0 6e 20 27 20 2e 20 24 75 72 69 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 20 69 73 5f 6f 62 6a 65 63 74 n.'...$uri.);.}..if.(!.is_object
1025e0 28 24 6a 73 6f 6e 53 63 68 65 6d 61 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e ($jsonSchema)).{.throw.new.\Json
102600 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e Schema\Exception\ResourceNotFoun
102620 64 45 78 63 65 70 74 69 6f 6e 28 0a 27 46 72 61 67 6d 65 6e 74 20 70 61 72 74 20 22 27 20 2e 20 dException(.'Fragment.part."'...
102640 24 70 61 74 68 45 6c 65 6d 65 6e 74 20 2e 20 27 22 20 69 73 20 6e 6f 20 6f 62 6a 65 63 74 20 27 $pathElement...'".is.no.object.'
102660 0a 2e 20 27 20 69 6e 20 27 20 2e 20 24 75 72 69 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ...'.in.'...$uri.);.}.}.}..retur
102680 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 n.$jsonSchema;.}.........public.
1026a0 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 2c 20 24 62 61 73 65 55 72 69 function.retrieve($uri,.$baseUri
1026c0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 72 65 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 55 72 69 52 65 .=.null).{.$resolver.=.new.UriRe
1026e0 73 6f 6c 76 65 72 28 29 3b 0a 24 72 65 73 6f 6c 76 65 64 55 72 69 20 3d 20 24 66 65 74 63 68 55 solver();.$resolvedUri.=.$fetchU
102700 72 69 20 3d 20 24 72 65 73 6f 6c 76 65 72 2d 3e 72 65 73 6f 6c 76 65 28 24 75 72 69 2c 20 24 62 ri.=.$resolver->resolve($uri,.$b
102720 61 73 65 55 72 69 29 3b 0a 0a 0a 20 24 61 72 50 61 72 74 73 20 3d 20 24 72 65 73 6f 6c 76 65 72 aseUri);....$arParts.=.$resolver
102740 2d 3e 70 61 72 73 65 28 24 72 65 73 6f 6c 76 65 64 55 72 69 29 3b 0a 69 66 20 28 69 73 73 65 74 ->parse($resolvedUri);.if.(isset
102760 28 24 61 72 50 61 72 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 ($arParts['fragment'])).{.unset(
102780 24 61 72 50 61 72 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 29 3b 0a 24 66 65 74 63 68 55 72 69 $arParts['fragment']);.$fetchUri
1027a0 20 3d 20 24 72 65 73 6f 6c 76 65 72 2d 3e 67 65 6e 65 72 61 74 65 28 24 61 72 50 61 72 74 73 29 .=.$resolver->generate($arParts)
1027c0 3b 0a 7d 0a 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 53 63 ;.}..$jsonSchema.=.$this->loadSc
1027e0 68 65 6d 61 28 24 66 65 74 63 68 55 72 69 29 3b 0a 0a 0a 20 24 6a 73 6f 6e 53 63 68 65 6d 61 20 hema($fetchUri);....$jsonSchema.
102800 3d 20 24 74 68 69 73 2d 3e 72 65 73 6f 6c 76 65 50 6f 69 6e 74 65 72 28 24 6a 73 6f 6e 53 63 68 =.$this->resolvePointer($jsonSch
102820 65 6d 61 2c 20 24 72 65 73 6f 6c 76 65 64 55 72 69 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 2d ema,.$resolvedUri);.$jsonSchema-
102840 3e 69 64 20 3d 20 24 72 65 73 6f 6c 76 65 64 55 72 69 3b 0a 0a 72 65 74 75 72 6e 20 24 6a 73 6f >id.=.$resolvedUri;..return.$jso
102860 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 nSchema;.}..........protected.fu
102880 6e 63 74 69 6f 6e 20 6c 6f 61 64 53 63 68 65 6d 61 28 24 66 65 74 63 68 55 72 69 29 0a 7b 0a 69 nction.loadSchema($fetchUri).{.i
1028a0 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 43 61 63 68 65 5b 24 66 65 74 f.(isset($this->schemaCache[$fet
1028c0 63 68 55 72 69 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 43 chUri])).{.return.$this->schemaC
1028e0 61 63 68 65 5b 24 66 65 74 63 68 55 72 69 5d 3b 0a 7d 0a 0a 24 75 72 69 52 65 74 72 69 65 76 65 ache[$fetchUri];.}..$uriRetrieve
102900 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 29 3b 0a 24 63 r.=.$this->getUriRetriever();.$c
102920 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 2d 3e 72 ontents.=.$this->uriRetriever->r
102940 65 74 72 69 65 76 65 28 24 66 65 74 63 68 55 72 69 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 etrieve($fetchUri);.$this->confi
102960 72 6d 4d 65 64 69 61 54 79 70 65 28 24 75 72 69 52 65 74 72 69 65 76 65 72 2c 20 24 66 65 74 63 rmMediaType($uriRetriever,.$fetc
102980 68 55 72 69 29 3b 0a 24 6a 73 6f 6e 53 63 68 65 6d 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 hUri);.$jsonSchema.=.json_decode
1029a0 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 69 66 20 28 4a 53 4f 4e 5f 45 52 52 4f 52 5f 4e 4f 4e ($contents);..if.(JSON_ERROR_NON
1029c0 45 20 3c 20 24 65 72 72 6f 72 20 3d 20 6a 73 6f 6e 5f 6c 61 73 74 5f 65 72 72 6f 72 28 29 29 20 E.<.$error.=.json_last_error()).
1029e0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f {.throw.new.JsonDecodingExceptio
102a00 6e 28 24 65 72 72 6f 72 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 43 61 63 68 65 n($error);.}..$this->schemaCache
102a20 5b 24 66 65 74 63 68 55 72 69 5d 20 3d 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 72 65 74 75 72 [$fetchUri].=.$jsonSchema;.retur
102a40 6e 20 24 6a 73 6f 6e 53 63 68 65 6d 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 n.$jsonSchema;.}........public.f
102a60 75 6e 63 74 69 6f 6e 20 73 65 74 55 72 69 52 65 74 72 69 65 76 65 72 28 55 72 69 52 65 74 72 69 unction.setUriRetriever(UriRetri
102a80 65 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 75 72 69 52 65 74 72 69 65 76 65 72 29 0a 7b 0a 24 everInterface.$uriRetriever).{.$
102aa0 74 68 69 73 2d 3e 75 72 69 52 65 74 72 69 65 76 65 72 20 3d 20 24 75 72 69 52 65 74 72 69 65 76 this->uriRetriever.=.$uriRetriev
102ac0 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c er;..return.$this;.}........publ
102ae0 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 75 72 69 29 0a 7b 0a 70 72 65 67 5f 6d ic.function.parse($uri).{.preg_m
102b00 61 74 63 68 28 27 7c 5e 28 28 5b 5e 3a 2f 3f 23 5d 2b 29 3a 29 3f 28 2f 2f 28 5b 5e 2f 3f 23 5d atch('|^(([^:/?#]+):)?(//([^/?#]
102b20 2a 29 29 3f 28 5b 5e 3f 23 5d 2a 29 28 5c 3f 28 5b 5e 23 5d 2a 29 29 3f 28 23 28 2e 2a 29 29 3f *))?([^?#]*)(\?([^#]*))?(#(.*))?
102b40 7c 27 2c 20 24 75 72 69 2c 20 24 6d 61 74 63 68 29 3b 0a 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 |',.$uri,.$match);..$components.
102b60 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 35 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 =.array();.if.(5.<.count($match)
102b80 29 20 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 61 72 72 61 79 28 0a 27 73 63 68 65 6d 65 ).{.$components.=.array(.'scheme
102ba0 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d 2c 0a 27 61 75 74 68 6f 72 69 74 79 27 20 3d 3e 20 24 '.=>.$match[2],.'authority'.=>.$
102bc0 6d 61 74 63 68 5b 34 5d 2c 0a 27 70 61 74 68 27 20 3d 3e 20 24 6d 61 74 63 68 5b 35 5d 0a 29 3b match[4],.'path'.=>.$match[5].);
102be0 0a 7d 0a 0a 69 66 20 28 37 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f .}..if.(7.<.count($match)).{.$co
102c00 6d 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 20 3d 20 24 6d 61 74 63 68 5b 37 5d 3b 0a 7d mponents['query'].=.$match[7];.}
102c20 0a 0a 69 66 20 28 39 20 3c 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6d 70 ..if.(9.<.count($match)).{.$comp
102c40 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d 65 6e 74 27 5d 20 3d 20 24 6d 61 74 63 68 5b 39 5d 3b 0a onents['fragment'].=.$match[9];.
102c60 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a }..return.$components;.}........
102c80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 28 61 72 72 61 79 20 24 public.function.generate(array.$
102ca0 63 6f 6d 70 6f 6e 65 6e 74 73 29 0a 7b 0a 24 75 72 69 20 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 components).{.$uri.=.$components
102cc0 5b 27 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 ['scheme']...'://'...$components
102ce0 5b 27 61 75 74 68 6f 72 69 74 79 27 5d 0a 2e 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 ['authority']...$components['pat
102d00 68 27 5d 3b 0a 0a 69 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 71 75 65 72 h'];..if.(array_key_exists('quer
102d20 79 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 63 6f 6d y',.$components)).{.$uri..=.$com
102d40 70 6f 6e 65 6e 74 73 5b 27 71 75 65 72 79 27 5d 3b 0a 7d 0a 0a 69 66 20 28 61 72 72 61 79 5f 6b ponents['query'];.}..if.(array_k
102d60 65 79 5f 65 78 69 73 74 73 28 27 66 72 61 67 6d 65 6e 74 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 ey_exists('fragment',.$component
102d80 73 29 29 20 7b 0a 24 75 72 69 20 2e 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 66 72 61 67 6d s)).{.$uri..=.$components['fragm
102da0 65 6e 74 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ent'];.}..return.$uri;.}........
102dc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 6f 6c 76 65 28 24 75 72 69 2c 20 24 .public.function.resolve($uri,.$
102de0 62 61 73 65 55 72 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 baseUri.=.null).{.$components.=.
102e00 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 75 72 69 29 3b 0a 24 70 61 74 68 20 3d 20 24 63 6f 6d $this->parse($uri);.$path.=.$com
102e20 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d 3b 0a 0a 69 66 20 28 28 61 72 72 61 79 5f 6b 65 79 ponents['path'];..if.((array_key
102e40 5f 65 78 69 73 74 73 28 27 73 63 68 65 6d 65 27 2c 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 29 29 20 _exists('scheme',.$components)).
102e60 26 26 20 28 27 68 74 74 70 27 20 3d 3d 3d 20 24 63 6f 6d 70 6f 6e 65 6e 74 73 5b 27 73 63 68 65 &&.('http'.===.$components['sche
102e80 6d 65 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 75 72 69 3b 0a 7d 0a 0a 24 62 61 73 65 43 6f me'])).{.return.$uri;.}..$baseCo
102ea0 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 28 24 62 61 73 65 55 72 69 mponents.=.$this->parse($baseUri
102ec0 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 );.$basePath.=.$baseComponents['
102ee0 70 61 74 68 27 5d 3b 0a 0a 24 62 61 73 65 43 6f 6d 70 6f 6e 65 6e 74 73 5b 27 70 61 74 68 27 5d path'];..$baseComponents['path']
102f00 20 3d 20 73 65 6c 66 3a 3a 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 .=.self::combineRelativePathWith
102f20 42 61 73 65 50 61 74 68 28 24 70 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 72 65 74 BasePath($path,.$basePath);..ret
102f40 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 62 61 73 65 43 6f 6d 70 6f 6e 65 urn.$this->generate($baseCompone
102f60 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 nts);.}..........private.static.
102f80 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 62 69 6e 65 52 65 6c 61 74 69 76 65 50 61 74 68 57 69 74 68 function.combineRelativePathWith
102fa0 42 61 73 65 50 61 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 73 65 50 61 74 BasePath($relativePath,.$basePat
102fc0 68 29 0a 7b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 73 65 6c 66 3a 3a 6e 6f 72 6d 61 h).{.$relativePath.=.self::norma
102fe0 6c 69 7a 65 50 61 74 68 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 24 62 61 73 65 50 61 lizePath($relativePath);.$basePa
103000 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 73 65 6c 66 3a 3a 67 65 74 50 61 74 68 53 65 67 6d 65 6e thSegments.=.self::getPathSegmen
103020 74 73 28 24 62 61 73 65 50 61 74 68 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7c 5e 2f 3f ts($basePath);..preg_match('|^/?
103040 28 5c 2e 5c 2e 2f 28 3f 3a 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 (\.\./(?:\./)*)*|',.$relativePat
103060 68 2c 20 24 6d 61 74 63 68 29 3b 0a 24 6e 75 6d 4c 65 76 65 6c 55 70 20 3d 20 73 74 72 6c 65 6e h,.$match);.$numLevelUp.=.strlen
103080 28 24 6d 61 74 63 68 5b 30 5d 29 20 2f 33 20 2b 20 31 3b 0a 69 66 20 28 24 6e 75 6d 4c 65 76 65 ($match[0])./3.+.1;.if.($numLeve
1030a0 6c 55 70 20 3e 3d 20 63 6f 75 6e 74 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 29 lUp.>=.count($basePathSegments))
1030c0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 .{.throw.new.\JsonSchema\Excepti
1030e0 6f 6e 5c 55 72 69 52 65 73 6f 6c 76 65 72 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 on\UriResolverException(sprintf(
103100 22 55 6e 61 62 6c 65 20 74 6f 20 72 65 73 6f 6c 76 65 20 55 52 49 20 27 25 73 27 20 66 72 6f 6d "Unable.to.resolve.URI.'%s'.from
103120 20 62 61 73 65 20 27 25 73 27 22 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 62 61 73 .base.'%s'",.$relativePath,.$bas
103140 65 50 61 74 68 29 29 3b 0a 7d 0a 0a 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 20 3d 20 ePath));.}..$basePathSegments.=.
103160 61 72 72 61 79 5f 73 6c 69 63 65 28 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 2c 20 30 array_slice($basePathSegments,.0
103180 2c 20 2d 24 6e 75 6d 4c 65 76 65 6c 55 70 29 3b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 ,.-$numLevelUp);.$path.=.preg_re
1031a0 70 6c 61 63 65 28 27 7c 5e 2f 3f 28 5c 2e 5c 2e 2f 28 5c 2e 2f 29 2a 29 2a 7c 27 2c 20 27 27 2c place('|^/?(\.\./(\./)*)*|',.'',
1031c0 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 .$relativePath);..return.implode
1031e0 28 27 2f 27 2c 20 24 62 61 73 65 50 61 74 68 53 65 67 6d 65 6e 74 73 29 20 2e 20 27 2f 27 20 2e ('/',.$basePathSegments)...'/'..
103200 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 .$path;.}........private.static.
103220 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b 0a function.normalizePath($path).{.
103240 24 70 61 74 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7c 28 28 3f 3c 21 5c 2e 29 5c $path.=.preg_replace('|((?<!\.)\
103260 2e 2f 29 2a 7c 27 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 24 70 61 74 68 20 3d 20 70 72 65 67 ./)*|',.'',.$path);.$path.=.preg
103280 5f 72 65 70 6c 61 63 65 28 27 7c 2f 2f 7c 27 2c 20 27 2f 27 2c 20 24 70 61 74 68 29 3b 0a 0a 72 _replace('|//|',.'/',.$path);..r
1032a0 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 eturn.$path;.}.....private.stati
1032c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 53 65 67 6d 65 6e 74 73 28 24 70 61 74 68 c.function.getPathSegments($path
1032e0 29 0a 7b 0a 72 65 74 75 72 6e 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 3b 0a ).{.return.explode('/',.$path);.
103300 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 28 24 }......public.function.isValid($
103320 75 72 69 29 0a 7b 0a 24 63 6f 6d 70 6f 6e 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 uri).{.$components.=.$this->pars
103340 65 28 24 75 72 69 29 3b 0a 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 63 6f 6d 70 6f 6e 65 e($uri);..return.!empty($compone
103360 6e 74 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 nts);.}.}.<?php.....namespace.Js
103380 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 61 onSchema\Uri\Retrievers;.......a
1033a0 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 20 bstract.class.AbstractRetriever.
1033c0 69 6d 70 6c 65 6d 65 6e 74 73 20 55 72 69 52 65 74 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 implements.UriRetrieverInterface
1033e0 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 74 65 6e 74 54 79 70 65 3b 0a 0a .{.....protected.$contentType;..
103400 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 ....public.function.getContentTy
103420 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 pe().{.return.$this->contentType
103440 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 ;.}.}.<?php.........namespace.Js
103460 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 75 73 65 20 4a 73 onSchema\Uri\Retrievers;..use.Js
103480 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f onSchema\Exception\ResourceNotFo
1034a0 75 6e 64 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c undException;.use.JsonSchema\Val
1034c0 69 64 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 47 65 74 43 6f 6e 74 65 idator;.......class.FileGetConte
1034e0 6e 74 73 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a nts.extends.AbstractRetriever.{.
103500 70 72 6f 74 65 63 74 65 64 20 24 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 0a 0a 0a 0a 0a 70 75 62 protected.$messageBody;......pub
103520 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 24 63 lic.function.retrieve($uri).{.$c
103540 6f 6e 74 65 78 74 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 65 61 74 65 28 61 ontext.=.stream_context_create(a
103560 72 72 61 79 28 0a 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 rray(.'http'.=>.array(.'method'.
103580 3d 3e 20 27 47 45 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 22 41 63 63 65 70 74 3a 20 22 =>.'GET',.'header'.=>."Accept:."
1035a0 20 2e 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 0a ...Validator::SCHEMA_MEDIA_TYPE.
1035c0 29 29 29 3b 0a 0a 24 72 65 73 70 6f 6e 73 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 )));..$response.=.file_get_conte
1035e0 6e 74 73 28 24 75 72 69 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 70 6f 6e nts($uri);.if.(false.===.$respon
103600 73 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e 64 se).{.throw.new.ResourceNotFound
103620 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e 6f 74 20 66 6f 75 6e 64 Exception('JSON.schema.not.found
103640 20 61 74 20 27 20 2e 20 24 75 72 69 29 3b 0a 7d 0a 69 66 20 28 24 72 65 73 70 6f 6e 73 65 20 3d .at.'...$uri);.}.if.($response.=
103660 3d 20 27 27 0a 26 26 20 73 75 62 73 74 72 28 24 75 72 69 2c 20 30 2c 20 37 29 20 3d 3d 20 27 66 =.''.&&.substr($uri,.0,.7).==.'f
103680 69 6c 65 3a 2f 2f 27 20 26 26 20 73 75 62 73 74 72 28 24 75 72 69 2c 20 2d 31 29 20 3d 3d 20 27 ile://'.&&.substr($uri,.-1).==.'
1036a0 2f 27 0a 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 65 73 6f 75 72 63 65 4e 6f 74 46 6f 75 6e /'.).{.throw.new.ResourceNotFoun
1036c0 64 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e 6f 74 20 66 6f 75 6e dException('JSON.schema.not.foun
1036e0 64 20 61 74 20 27 20 2e 20 24 75 72 69 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 d.at.'...$uri);.}..$this->messag
103700 65 42 6f 64 79 20 3d 20 24 72 65 73 70 6f 6e 73 65 3b 0a 69 66 20 28 21 20 65 6d 70 74 79 28 24 eBody.=.$response;.if.(!.empty($
103720 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e http_response_header)).{.$this->
103740 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f fetchContentType($http_response_
103760 68 65 61 64 65 72 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 header);.}.else.{...$this->conte
103780 6e 74 54 79 70 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ntType.=.null;.}..return.$this->
1037a0 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 messageBody;.}......private.func
1037c0 74 69 6f 6e 20 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 61 72 72 61 79 20 24 68 65 61 tion.fetchContentType(array.$hea
1037e0 64 65 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 ders).{.foreach.($headers.as.$he
103800 61 64 65 72 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d ader).{.if.($this->contentType.=
103820 20 73 65 6c 66 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 4d 61 74 63 68 49 6e 48 65 61 64 .self::getContentTypeMatchInHead
103840 65 72 28 24 68 65 61 64 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a er($header)).{.return.true;.}.}.
103860 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 .return.false;.}......protected.
103880 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 4d 61 static.function.getContentTypeMa
1038a0 74 63 68 49 6e 48 65 61 64 65 72 28 24 68 65 61 64 65 72 29 0a 7b 0a 69 66 20 28 30 20 3c 20 70 tchInHeader($header).{.if.(0.<.p
1038c0 72 65 67 5f 6d 61 74 63 68 28 22 2f 43 6f 6e 74 65 6e 74 2d 54 79 70 65 3a 28 5c 56 2a 29 2f 69 reg_match("/Content-Type:(\V*)/i
1038e0 6d 73 22 2c 20 24 68 65 61 64 65 72 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 ms",.$header,.$match)).{.return.
103900 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a trim($match[1]);.}.}.}.<?php....
103920 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 .....namespace.JsonSchema\Uri\Re
103940 74 72 69 65 76 65 72 73 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 55 72 69 52 65 74 trievers;.......interface.UriRet
103960 72 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 rieverInterface.{.......public.f
103980 75 6e 63 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 unction.retrieve($uri);......pub
1039a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 54 79 70 65 28 29 3b 0a 7d lic.function.getContentType();.}
1039c0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 <?php.........namespace.JsonSche
1039e0 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 ma\Uri\Retrievers;..use.JsonSche
103a00 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 75 72 6c 20 65 ma\Validator;.......class.Curl.e
103a20 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a 70 72 6f 74 65 xtends.AbstractRetriever.{.prote
103a40 63 74 65 64 20 24 6d 65 73 73 61 67 65 42 6f 64 79 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cted.$messageBody;..public.funct
103a60 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f ion.__construct().{.if.(!functio
103a80 6e 5f 65 78 69 73 74 73 28 27 63 75 72 6c 5f 69 6e 69 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e n_exists('curl_init')).{.throw.n
103aa0 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 63 55 52 4c 20 6e 6f 74 20 69 ew.\RuntimeException("cURL.not.i
103ac0 6e 73 74 61 6c 6c 65 64 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 nstalled");.}.}......public.func
103ae0 74 69 6f 6e 20 72 65 74 72 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 24 63 68 20 3d 20 63 75 72 6c tion.retrieve($uri).{.$ch.=.curl
103b00 5f 69 6e 69 74 28 29 3b 0a 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c 20 43 55 52 4c 4f _init();..curl_setopt($ch,.CURLO
103b20 50 54 5f 55 52 4c 2c 20 24 75 72 69 29 3b 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c 20 PT_URL,.$uri);.curl_setopt($ch,.
103b40 43 55 52 4c 4f 50 54 5f 48 45 41 44 45 52 2c 20 74 72 75 65 29 3b 0a 63 75 72 6c 5f 73 65 74 6f CURLOPT_HEADER,.true);.curl_seto
103b60 70 74 28 24 63 68 2c 20 43 55 52 4c 4f 50 54 5f 52 45 54 55 52 4e 54 52 41 4e 53 46 45 52 2c 20 pt($ch,.CURLOPT_RETURNTRANSFER,.
103b80 74 72 75 65 29 3b 0a 63 75 72 6c 5f 73 65 74 6f 70 74 28 24 63 68 2c 20 43 55 52 4c 4f 50 54 5f true);.curl_setopt($ch,.CURLOPT_
103ba0 48 54 54 50 48 45 41 44 45 52 2c 20 61 72 72 61 79 28 27 41 63 63 65 70 74 3a 20 27 20 2e 20 56 HTTPHEADER,.array('Accept:.'...V
103bc0 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 29 29 3b 0a 0a alidator::SCHEMA_MEDIA_TYPE));..
103be0 24 72 65 73 70 6f 6e 73 65 20 3d 20 63 75 72 6c 5f 65 78 65 63 28 24 63 68 29 3b 0a 69 66 20 28 $response.=.curl_exec($ch);.if.(
103c00 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 73 70 6f 6e 73 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 false.===.$response).{.throw.new
103c20 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f 75 72 63 65 4e .\JsonSchema\Exception\ResourceN
103c40 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 28 27 4a 53 4f 4e 20 73 63 68 65 6d 61 20 6e 6f otFoundException('JSON.schema.no
103c60 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 4d 65 73 73 61 67 t.found');.}..$this->fetchMessag
103c80 65 42 6f 64 79 28 24 72 65 73 70 6f 6e 73 65 29 3b 0a 24 74 68 69 73 2d 3e 66 65 74 63 68 43 6f eBody($response);.$this->fetchCo
103ca0 6e 74 65 6e 74 54 79 70 65 28 24 72 65 73 70 6f 6e 73 65 29 3b 0a 0a 63 75 72 6c 5f 63 6c 6f 73 ntentType($response);..curl_clos
103cc0 65 28 24 63 68 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 42 6f e($ch);..return.$this->messageBo
103ce0 64 79 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 dy;.}.....private.function.fetch
103d00 4d 65 73 73 61 67 65 42 6f 64 79 28 24 72 65 73 70 6f 6e 73 65 29 0a 7b 0a 70 72 65 67 5f 6d 61 MessageBody($response).{.preg_ma
103d20 74 63 68 28 22 2f 28 3f 3a 5c 72 5c 6e 29 7b 32 7d 28 2e 2a 29 24 2f 6d 73 22 2c 20 24 72 65 73 tch("/(?:\r\n){2}(.*)$/ms",.$res
103d40 70 6f 6e 73 65 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 42 6f ponse,.$match);.$this->messageBo
103d60 64 79 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 dy.=.$match[1];.}......protected
103d80 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 43 6f 6e 74 65 6e 74 54 79 70 65 28 24 72 65 73 70 .function.fetchContentType($resp
103da0 6f 6e 73 65 29 0a 7b 0a 69 66 20 28 30 20 3c 20 70 72 65 67 5f 6d 61 74 63 68 28 22 2f 43 6f 6e onse).{.if.(0.<.preg_match("/Con
103dc0 74 65 6e 74 2d 54 79 70 65 3a 28 5c 56 2a 29 2f 69 6d 73 22 2c 20 24 72 65 73 70 6f 6e 73 65 2c tent-Type:(\V*)/ims",.$response,
103de0 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d .$match)).{.$this->contentType.=
103e00 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a .trim($match[1]);..return.true;.
103e20 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 }..return.false;.}.}<?php..names
103e40 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 3b 0a pace.JsonSchema\Uri\Retrievers;.
103e60 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 4a .use.JsonSchema\Validator;.use.J
103e80 73 6f 6e 53 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 72 sonSchema\Uri\Retrievers\UriRetr
103ea0 69 65 76 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ieverInterface;..............cla
103ec0 73 73 20 50 72 65 64 65 66 69 6e 65 64 41 72 72 61 79 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 ss.PredefinedArray.extends.Abstr
103ee0 61 63 74 52 65 74 72 69 65 76 65 72 0a 7b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 63 68 65 actRetriever.{.....private.$sche
103f00 6d 61 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f mas;........public.function.__co
103f20 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 73 63 68 65 6d 61 73 2c 20 24 63 6f 6e 74 65 6e 74 nstruct(array.$schemas,.$content
103f40 54 79 70 65 20 3d 20 56 61 6c 69 64 61 74 6f 72 3a 3a 53 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 Type.=.Validator::SCHEMA_MEDIA_T
103f60 59 50 45 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 73 20 3d 20 24 73 63 68 65 6d 61 73 YPE).{.$this->schemas.=.$schemas
103f80 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 54 79 70 65 20 3d 20 24 63 6f 6e 74 65 6e 74 54 ;.$this->contentType.=.$contentT
103fa0 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 72 ype;.}......public.function.retr
103fc0 69 65 76 65 28 24 75 72 69 29 0a 7b 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 ieve($uri).{.if.(!array_key_exis
103fe0 74 73 28 24 75 72 69 2c 20 24 74 68 69 73 2d 3e 73 63 68 65 6d 61 73 29 29 20 7b 0a 74 68 72 6f ts($uri,.$this->schemas)).{.thro
104000 77 20 6e 65 77 20 5c 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 52 65 73 6f w.new.\JsonSchema\Exception\Reso
104020 75 72 63 65 4e 6f 74 46 6f 75 6e 64 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 urceNotFoundException(sprintf(.'
104040 54 68 65 20 4a 53 4f 4e 20 73 63 68 65 6d 61 20 22 25 73 22 20 77 61 73 20 6e 6f 74 20 66 6f 75 The.JSON.schema."%s".was.not.fou
104060 6e 64 2e 27 2c 0a 24 75 72 69 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e nd.',.$uri.));.}..return.$this->
104080 73 63 68 65 6d 61 73 5b 24 75 72 69 5d 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a schemas[$uri];.}.}<?php.........
1040a0 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 namespace.JsonSchema;..use.JsonS
1040c0 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 chema\Constraints\SchemaConstrai
1040e0 6e 74 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 5c 43 nt;.use.JsonSchema\Constraints\C
104100 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 onstraint;..use.JsonSchema\Excep
104120 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 53 63 68 65 6d 61 4d 65 64 69 61 54 79 70 65 45 78 63 65 70 tion\InvalidSchemaMediaTypeExcep
104140 74 69 6f 6e 3b 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 45 78 63 65 70 74 69 6f 6e 5c 4a tion;.use.JsonSchema\Exception\J
104160 73 6f 6e 44 65 63 6f 64 69 6e 67 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 sonDecodingException;..use.JsonS
104180 63 68 65 6d 61 5c 55 72 69 5c 52 65 74 72 69 65 76 65 72 73 5c 55 72 69 52 65 74 72 69 65 76 65 chema\Uri\Retrievers\UriRetrieve
1041a0 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 rInterface;.........class.Valida
1041c0 74 6f 72 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 63 6f 6e 73 74 20 53 tor.extends.Constraint.{.const.S
1041e0 43 48 45 4d 41 5f 4d 45 44 49 41 5f 54 59 50 45 20 3d 20 27 61 70 70 6c 69 63 61 74 69 6f 6e 2f CHEMA_MEDIA_TYPE.=.'application/
104200 73 63 68 65 6d 61 2b 6a 73 6f 6e 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e schema+json';.........public.fun
104220 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 ction.check($value,.$schema.=.nu
104240 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 ll,.$path.=.null,.$i.=.null).{.$
104260 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 63 68 65 6d 61 43 6f 6e 73 74 72 61 69 6e 74 validator.=.new.SchemaConstraint
104280 28 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 2c 20 24 74 68 69 73 2d 3e 75 72 69 52 65 74 ($this->checkMode,.$this->uriRet
1042a0 72 69 65 76 65 72 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 riever);.$validator->check($valu
1042c0 65 2c 20 24 73 63 68 65 6d 61 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 61 e,.$schema);..$this->addErrors(a
1042e0 72 72 61 79 5f 75 6e 69 71 75 65 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 rray_unique($validator->getError
104300 73 28 29 2c 20 53 4f 52 54 5f 52 45 47 55 4c 41 52 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a s(),.SORT_REGULAR));.}.}.<?php..
104320 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f ..require_once.__DIR__...'/compo
104340 73 65 72 27 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 ser'...'/autoload_real.php';..re
104360 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 66 34 30 36 37 turn.ComposerAutoloaderInitf4067
104380 30 65 32 37 61 34 64 64 32 31 37 39 33 32 36 35 38 30 37 63 61 66 61 38 30 37 35 3a 3a 67 65 74 0e27a4dd21793265807cafa8075::get
1043a0 4c 6f 61 64 65 72 28 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 Loader();.<?php....$vendorDir.=.
1043c0 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 dirname(dirname(__FILE__));.$bas
1043e0 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 eDir.=.dirname($vendorDir);..ret
104400 75 72 6e 20 61 72 72 61 79 28 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c urn.array(.'Symfony\\Component\\
104420 50 72 6f 63 65 73 73 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e Process\\'.=>.array($vendorDir..
104440 20 27 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c .'/symfony/process'),.'Symfony\\
104460 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 46 69 6e 64 65 72 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 Component\\Finder\\'.=>.array($v
104480 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 27 29 2c 0a 27 endorDir...'/symfony/finder'),.'
1044a0 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d Symfony\\Component\\Console\\'.=
1044c0 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 63 >.array($vendorDir...'/symfony/c
1044e0 6f 6e 73 6f 6c 65 27 29 2c 0a 27 4a 73 6f 6e 53 63 68 65 6d 61 27 20 3d 3e 20 61 72 72 61 79 28 onsole'),.'JsonSchema'.=>.array(
104500 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f $vendorDir...'/justinrainbow/jso
104520 6e 2d 73 63 68 65 6d 61 2f 73 72 63 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 61 72 n-schema/src'),.'Composer'.=>.ar
104540 72 61 79 28 24 62 61 73 65 44 69 72 20 2e 20 27 2f 73 72 63 27 29 2c 0a 29 3b 0a 3c 3f 70 68 70 ray($baseDir...'/src'),.);.<?php
104560 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 ....$vendorDir.=.dirname(dirname
104580 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 (__FILE__));.$baseDir.=.dirname(
1045a0 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 53 65 6c $vendorDir);..return.array(.'Sel
1045c0 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 d\\JsonLint\\'.=>.array($vendorD
1045e0 69 72 20 2e 20 27 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 ir...'/seld/jsonlint/src/Seld/Js
104600 6f 6e 4c 69 6e 74 27 29 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 onLint'),.);.<?php....$vendorDir
104620 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 .=.dirname(dirname(__FILE__));.$
104640 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a baseDir.=.dirname($vendorDir);..
104660 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 63 6c 61 73 73 20 return.array(.);.<?php....class.
104680 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 66 34 30 36 37 30 65 32 37 61 ComposerAutoloaderInitf40670e27a
1046a0 34 64 64 32 31 37 39 33 32 36 35 38 30 37 63 61 66 61 38 30 37 35 0a 7b 0a 70 72 69 76 61 74 65 4dd21793265807cafa8075.{.private
1046c0 20 73 74 61 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 .static.$loader;..public.static.
1046e0 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 28 24 63 6c 61 73 73 29 function.loadClassLoader($class)
104700 0a 7b 0a 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 43 6c 61 73 73 4c .{.if.('Composer\Autoload\ClassL
104720 6f 61 64 65 72 27 20 3d 3d 3d 20 24 63 6c 61 73 73 29 20 7b 0a 72 65 71 75 69 72 65 20 5f 5f 44 oader'.===.$class).{.require.__D
104740 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a 7d 0a 7d 0a 0a IR__...'/ClassLoader.php';.}.}..
104760 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 public.static.function.getLoader
104780 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 29 ().{.if.(null.!==.self::$loader)
1047a0 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 73 70 6c 5f .{.return.self::$loader;.}..spl_
1047c0 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 autoload_register(array('Compose
1047e0 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 66 34 30 36 37 30 65 32 37 61 34 64 64 32 31 37 39 rAutoloaderInitf40670e27a4dd2179
104800 33 32 36 35 38 30 37 63 61 66 61 38 30 37 35 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 3265807cafa8075',.'loadClassLoad
104820 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 er'),.true,.true);.self::$loader
104840 20 3d 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c .=.$loader.=.new.\Composer\Autol
104860 6f 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f oad\ClassLoader();.spl_autoload_
104880 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f unregister(array('ComposerAutolo
1048a0 61 64 65 72 49 6e 69 74 66 34 30 36 37 30 65 32 37 61 34 64 64 32 31 37 39 33 32 36 35 38 30 37 aderInitf40670e27a4dd21793265807
1048c0 63 61 66 61 38 30 37 35 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a cafa8075',.'loadClassLoader'));.
1048e0 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 44 49 52 5f 5f 29 3b 0a .$vendorDir.=.dirname(__DIR__);.
104900 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a $baseDir.=.dirname($vendorDir);.
104920 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f .$map.=.require.__DIR__...'/auto
104940 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 load_namespaces.php';.foreach.($
104960 6d 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c map.as.$namespace.=>.$path).{.$l
104980 6f 61 64 65 72 2d 3e 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d oader->set($namespace,.$path);.}
1049a0 0a 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 ..$map.=.require.__DIR__...'/aut
1049c0 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 70 20 61 oload_psr4.php';.foreach.($map.a
1049e0 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 s.$namespace.=>.$path).{.$loader
104a00 2d 3e 73 65 74 50 73 72 34 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a ->setPsr4($namespace,.$path);.}.
104a20 0a 24 63 6c 61 73 73 4d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 .$classMap.=.require.__DIR__...'
104a40 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 27 3b 0a 69 66 20 28 24 63 6c /autoload_classmap.php';.if.($cl
104a60 61 73 73 4d 61 70 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 73 73 4d 61 70 28 24 assMap).{.$loader->addClassMap($
104a80 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 classMap);.}..$loader->register(
104aa0 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 true);..return.$loader;.}.}.<?ph
104ac0 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d p....$vendorDir.=.dirname(dirnam
104ae0 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 e(__FILE__));.$baseDir.=.dirname
104b00 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 76 65 ($vendorDir);..return.array(.$ve
104b20 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b ndorDir...'/phpunit/phpunit-mock
104b40 2d 6f 62 6a 65 63 74 73 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 -objects',.$vendorDir...'/phpuni
104b60 74 2f 70 68 70 2d 74 69 6d 65 72 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 t/php-timer',.$vendorDir...'/php
104b80 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 27 2c 0a 24 76 65 6e 64 6f 72 44 unit/php-token-stream',.$vendorD
104ba0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 ir...'/phpunit/php-file-iterator
104bc0 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 65 ',.$vendorDir...'/phpunit/php-te
104be0 78 74 2d 74 65 6d 70 6c 61 74 65 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 xt-template',.$vendorDir...'/php
104c00 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 27 2c 0a 24 76 65 6e 64 6f 72 unit/php-code-coverage',.$vendor
104c20 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 27 2c 0a 24 76 65 6e 64 6f Dir...'/phpunit/phpunit',.$vendo
104c40 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 27 2c 0a 29 3b 0a 3c 3f 70 68 70 rDir...'/symfony/yaml',.);.<?php
104c60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 41 ............namespace.Composer\A
104c80 75 74 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a utoload;........................
104ca0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a 7b 0a 0a 20 70 72 69 76 ......class.ClassLoader.{...priv
104cc0 61 74 65 20 24 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 ate.$prefixLengthsPsr4.=.array()
104ce0 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 ;.private.$prefixDirsPsr4.=.arra
104d00 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d y();.private.$fallbackDirsPsr4.=
104d20 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 65 73 50 73 .array();....private.$prefixesPs
104d40 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 r0.=.array();.private.$fallbackD
104d60 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 75 73 65 irsPsr0.=.array();..private.$use
104d80 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6c IncludePath.=.false;.private.$cl
104da0 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 assMap.=.array();..public.functi
104dc0 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 on.getPrefixes().{.return.call_u
104de0 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 74 ser_func_array('array_merge',.$t
104e00 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 his->prefixesPsr0);.}..public.fu
104e20 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 50 73 72 34 28 29 0a 7b 0a 72 65 74 75 72 nction.getPrefixesPsr4().{.retur
104e40 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 3b 0a 7d 0a 0a 70 75 62 6c n.$this->prefixDirsPsr4;.}..publ
104e60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 28 29 0a 7b 0a ic.function.getFallbackDirs().{.
104e80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 3b 0a return.$this->fallbackDirsPsr0;.
104ea0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 }..public.function.getFallbackDi
104ec0 72 73 50 73 72 34 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 rsPsr4().{.return.$this->fallbac
104ee0 6b 44 69 72 73 50 73 72 34 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 kDirsPsr4;.}..public.function.ge
104f00 74 43 6c 61 73 73 4d 61 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 tClassMap().{.return.$this->clas
104f20 73 4d 61 70 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 sMap;.}.....public.function.addC
104f40 6c 61 73 73 4d 61 70 28 61 72 72 61 79 20 24 63 6c 61 73 73 4d 61 70 29 0a 7b 0a 69 66 20 28 24 lassMap(array.$classMap).{.if.($
104f60 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 this->classMap).{.$this->classMa
104f80 70 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 2c p.=.array_merge($this->classMap,
104fa0 20 24 63 6c 61 73 73 4d 61 70 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 61 .$classMap);.}.else.{.$this->cla
104fc0 73 73 4d 61 70 20 3d 20 24 63 6c 61 73 73 4d 61 70 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ssMap.=.$classMap;.}.}..........
104fe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 public.function.add($prefix,.$pa
105000 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 70 ths,.$prepend.=.false).{.if.(!$p
105020 72 65 66 69 78 29 20 7b 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e refix).{.if.($prepend).{.$this->
105040 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a fallbackDirsPsr0.=.array_merge(.
105060 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 (array).$paths,.$this->fallbackD
105080 69 72 73 50 73 72 30 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 irsPsr0.);.}.else.{.$this->fallb
1050a0 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 ackDirsPsr0.=.array_merge(.$this
1050c0 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 ->fallbackDirsPsr0,.(array).$pat
1050e0 68 73 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 66 69 72 73 74 20 3d 20 24 70 72 hs.);.}..return;.}..$first.=.$pr
105100 65 66 69 78 5b 30 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 efix[0];.if.(!isset($this->prefi
105120 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 24 74 68 xesPsr0[$first][$prefix])).{.$th
105140 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 is->prefixesPsr0[$first][$prefix
105160 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 ].=.(array).$paths;..return;.}.i
105180 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 f.($prepend).{.$this->prefixesPs
1051a0 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 r0[$first][$prefix].=.array_merg
1051c0 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 e(.(array).$paths,.$this->prefix
1051e0 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 0a 29 3b 0a 7d 20 65 6c 73 esPsr0[$first][$prefix].);.}.els
105200 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b e.{.$this->prefixesPsr0[$first][
105220 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 70 $prefix].=.array_merge(.$this->p
105240 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 refixesPsr0[$first][$prefix],.(a
105260 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 rray).$paths.);.}.}..........pub
105280 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 70 lic.function.addPsr4($prefix,.$p
1052a0 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 aths,.$prepend.=.false).{.if.(!$
1052c0 70 72 65 66 69 78 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 69 prefix).{...if.($prepend).{.$thi
1052e0 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 s->fallbackDirsPsr4.=.array_merg
105300 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 e(.(array).$paths,.$this->fallba
105320 63 6b 44 69 72 73 50 73 72 34 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 ckDirsPsr4.);.}.else.{.$this->fa
105340 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 llbackDirsPsr4.=.array_merge(.$t
105360 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 2c 0a 28 61 72 72 61 79 29 20 24 his->fallbackDirsPsr4,.(array).$
105380 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 paths.);.}.}.elseif.(!isset($thi
1053a0 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 0a s->prefixDirsPsr4[$prefix])).{..
1053c0 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 69 66 20 28 .$length.=.strlen($prefix);.if.(
1053e0 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 20 7b '\\'.!==.$prefix[$length.-.1]).{
105400 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
105420 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 20 6d tion("A.non-empty.PSR-4.prefix.m
105440 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 ust.end.with.a.namespace.separat
105460 6f 72 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 or.");.}.$this->prefixLengthsPsr
105480 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 24 6c 65 6e 67 74 68 4[$prefix[0]][$prefix].=.$length
1054a0 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d ;.$this->prefixDirsPsr4[$prefix]
1054c0 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 .=.(array).$paths;.}.elseif.($pr
1054e0 65 70 65 6e 64 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 epend).{...$this->prefixDirsPsr4
105500 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 28 61 72 72 61 79 29 [$prefix].=.array_merge(.(array)
105520 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 .$paths,.$this->prefixDirsPsr4[$
105540 70 72 65 66 69 78 5d 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 65 prefix].);.}.else.{...$this->pre
105560 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 fixDirsPsr4[$prefix].=.array_mer
105580 67 65 28 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 ge(.$this->prefixDirsPsr4[$prefi
1055a0 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a x],.(array).$paths.);.}.}.......
1055c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 65 66 69 78 2c 20 24 ..public.function.set($prefix,.$
1055e0 70 61 74 68 73 29 0a 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e paths).{.if.(!$prefix).{.$this->
105600 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 fallbackDirsPsr0.=.(array).$path
105620 73 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b s;.}.else.{.$this->prefixesPsr0[
105640 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 $prefix[0]][$prefix].=.(array).$
105660 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 paths;.}.}.........public.functi
105680 6f 6e 20 73 65 74 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 20 7b 0a 69 66 on.setPsr4($prefix,.$paths).{.if
1056a0 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 .(!$prefix).{.$this->fallbackDir
1056c0 73 50 73 72 34 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 20 65 6c 73 65 20 7b sPsr4.=.(array).$paths;.}.else.{
1056e0 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 69 66 20 28 .$length.=.strlen($prefix);.if.(
105700 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 20 7b '\\'.!==.$prefix[$length.-.1]).{
105720 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 .throw.new.\InvalidArgumentExcep
105740 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 20 6d tion("A.non-empty.PSR-4.prefix.m
105760 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 ust.end.with.a.namespace.separat
105780 6f 72 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 or.");.}.$this->prefixLengthsPsr
1057a0 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 24 6c 65 6e 67 74 68 4[$prefix[0]][$prefix].=.$length
1057c0 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d ;.$this->prefixDirsPsr4[$prefix]
1057e0 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .=.(array).$paths;.}.}.......pub
105800 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 lic.function.setUseIncludePath($
105820 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c useIncludePath).{.$this->useIncl
105840 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a udePath.=.$useIncludePath;.}....
105860 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 ....public.function.getUseInclud
105880 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 ePath().{.return.$this->useInclu
1058a0 64 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 dePath;.}.......public.function.
1058c0 72 65 67 69 73 74 65 72 28 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 70 6c register($prepend.=.false).{.spl
1058e0 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 _autoload_register(array($this,.
105900 27 6c 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 7d 'loadClass'),.true,.$prepend);.}
105920 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 72 65 67 69 73 74 65 72 28 .....public.function.unregister(
105940 29 0a 7b 0a 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 ).{.spl_autoload_unregister(arra
105960 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 43 6c 61 73 73 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a y($this,.'loadClass'));.}.......
105980 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 28 24 63 6c 61 73 .public.function.loadClass($clas
1059a0 73 29 0a 7b 0a 69 66 20 28 24 66 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 46 69 6c 65 s).{.if.($file.=.$this->findFile
1059c0 28 24 63 6c 61 73 73 29 29 20 7b 0a 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 3b 0a 0a 72 65 74 75 ($class)).{.include.$file;..retu
1059e0 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.true;.}.}.........public.func
105a00 74 69 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 0a 7b 0a 0a 20 69 66 20 28 27 5c tion.findFile($class).{...if.('\
105a20 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 73 20 3d 20 73 75 62 73 \'.==.$class[0]).{.$class.=.subs
105a40 74 72 28 24 63 6c 61 73 73 2c 20 31 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 tr($class,.1);.}....if.(isset($t
105a60 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 72 65 74 75 72 6e his->classMap[$class])).{.return
105a80 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 7d 0a 0a 0a 20 24 .$this->classMap[$class];.}....$
105aa0 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 20 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 2c 20 logicalPathPsr4.=.strtr($class,.
105ac0 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 27 2e 70 '\\',.DIRECTORY_SEPARATOR)...'.p
105ae0 68 70 27 3b 0a 0a 24 66 69 72 73 74 20 3d 20 24 63 6c 61 73 73 5b 30 5d 3b 0a 69 66 20 28 69 73 hp';..$first.=.$class[0];.if.(is
105b00 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 set($this->prefixLengthsPsr4[$fi
105b20 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c rst])).{.foreach.($this->prefixL
105b40 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e engthsPsr4[$first].as.$prefix.=>
105b60 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c .$length).{.if.(0.===.strpos($cl
105b80 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d ass,.$prefix)).{.foreach.($this-
105ba0 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 61 73 20 24 64 69 72 >prefixDirsPsr4[$prefix].as.$dir
105bc0 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 ).{.if.(file_exists($file.=.$dir
105be0 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 73 75 62 73 74 72 28 ...DIRECTORY_SEPARATOR...substr(
105c00 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 7b 0a 72 $logicalPathPsr4,.$length))).{.r
105c20 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 eturn.$file;.}.}.}.}.}....foreac
105c40 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 61 73 20 24 64 h.($this->fallbackDirsPsr4.as.$d
105c60 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 ir).{.if.(file_exists($file.=.$d
105c80 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 ir...DIRECTORY_SEPARATOR...$logi
105ca0 63 61 6c 50 61 74 68 50 73 72 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a calPathPsr4)).{.return.$file;.}.
105cc0 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f }....if.(false.!==.$pos.=.strrpo
105ce0 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 6c 6f 67 69 63 61 6c 50 61 74 s($class,.'\\')).{...$logicalPat
105d00 68 50 73 72 30 20 3d 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c hPsr0.=.substr($logicalPathPsr4,
105d20 20 30 2c 20 24 70 6f 73 20 2b 20 31 29 0a 2e 20 73 74 72 74 72 28 73 75 62 73 74 72 28 24 6c 6f .0,.$pos.+.1)...strtr(substr($lo
105d40 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f 73 20 2b 20 31 29 2c 20 27 5f 27 2c 20 44 gicalPathPsr4,.$pos.+.1),.'_',.D
105d60 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 IRECTORY_SEPARATOR);.}.else.{...
105d80 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 2c $logicalPathPsr0.=.strtr($class,
105da0 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 27 2e 70 .'_',.DIRECTORY_SEPARATOR)...'.p
105dc0 68 70 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 hp';.}..if.(isset($this->prefixe
105de0 73 50 73 72 30 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 sPsr0[$first])).{.foreach.($this
105e00 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 ->prefixesPsr0[$first].as.$prefi
105e20 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 x.=>.$dirs).{.if.(0.===.strpos($
105e40 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 class,.$prefix)).{.foreach.($dir
105e60 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 s.as.$dir).{.if.(file_exists($fi
105e80 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 le.=.$dir...DIRECTORY_SEPARATOR.
105ea0 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 ..$logicalPathPsr0)).{.return.$f
105ec0 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ile;.}.}.}.}.}....foreach.($this
105ee0 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 ->fallbackDirsPsr0.as.$dir).{.if
105f00 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 .(file_exists($file.=.$dir...DIR
105f20 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 ECTORY_SEPARATOR...$logicalPathP
105f40 73 72 30 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 sr0)).{.return.$file;.}.}....if.
105f60 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 6c 65 20 ($this->useIncludePath.&&.$file.
105f80 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 24 6c =.stream_resolve_include_path($l
105fa0 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b ogicalPathPsr0)).{.return.$file;
105fc0 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c .}....return.$this->classMap[$cl
105fe0 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 69 66 20 28 50 48 50 ass].=.false;.}.}.<?php..if.(PHP
106000 5f 53 41 50 49 20 21 3d 3d 20 27 63 6c 69 27 29 20 7b 0a 20 20 20 20 65 63 68 6f 20 27 57 61 72 _SAPI.!==.'cli').{.....echo.'War
106020 6e 69 6e 67 3a 20 43 6f 6d 70 6f 73 65 72 20 73 68 6f 75 6c 64 20 62 65 20 69 6e 76 6f 6b 65 64 ning:.Composer.should.be.invoked
106040 20 76 69 61 20 74 68 65 20 43 4c 49 20 76 65 72 73 69 6f 6e 20 6f 66 20 50 48 50 2c 20 6e 6f 74 .via.the.CLI.version.of.PHP,.not
106060 20 74 68 65 20 27 2e 50 48 50 5f 53 41 50 49 2e 27 20 53 41 50 49 27 2e 50 48 50 5f 45 4f 4c 3b .the.'.PHP_SAPI.'.SAPI'.PHP_EOL;
106080 0a 7d 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 73 72 63 2f 62 6f 6f .}..require.__DIR__.'/../src/boo
1060a0 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f tstrap.php';..use.Composer\Conso
1060c0 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 le\Application;..error_reporting
1060e0 28 2d 31 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 69 6e 69 5f (-1);..if.(function_exists('ini_
106100 73 65 74 27 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 69 73 70 6c 61 79 5f 65 set')).{.....@ini_set('display_e
106120 72 72 6f 72 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 20 rrors',.1);......$memoryInBytes.
106140 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 75 =.function.($value).{.........$u
106160 6e 69 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 nit.=.strtolower(substr($value,.
106180 2d 31 2c 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 3d 20 28 69 6e 74 29 20 -1,.1));.........$value.=.(int).
1061a0 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 75 6e 69 74 29 20 7b 0a $value;.........switch($unit).{.
1061c0 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 20 20 20 20 20 20 20 20 ............case.'g':...........
1061e0 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 ......$value.*=.1024;...........
106200 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d 75 ......//.no.break.(cumulative.mu
106220 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6d 27 3a 0a ltiplier).............case.'m':.
106240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a ................$value.*=.1024;.
106260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d ................//.no.break.(cum
106280 75 6c 61 74 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ulative.multiplier).............
1062a0 63 61 73 65 20 27 6b 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 case.'k':.................$value
1062c0 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 72 65 74 .*=.1024;.........}..........ret
1062e0 75 72 6e 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 4c urn.$value;.....};......$memoryL
106300 69 6d 69 74 20 3d 20 74 72 69 6d 28 69 6e 69 5f 67 65 74 28 27 6d 65 6d 6f 72 79 5f 6c 69 6d 69 imit.=.trim(ini_get('memory_limi
106320 74 27 29 29 3b 0a 20 20 20 20 2f 2f 20 49 6e 63 72 65 61 73 65 20 6d 65 6d 6f 72 79 5f 6c 69 6d t'));.....//.Increase.memory_lim
106340 69 74 20 69 66 20 69 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 31 47 42 0a 20 20 20 20 69 it.if.it.is.lower.than.1GB.....i
106360 66 20 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 26 20 24 6d 65 6d 6f 72 79 f.($memoryLimit.!=.-1.&&.$memory
106380 49 6e 42 79 74 65 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c 20 31 30 32 34 20 2a 20 31 InBytes($memoryLimit).<.1024.*.1
1063a0 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 20 20 20 20 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 024.*.1024).{.........@ini_set('
1063c0 6d 65 6d 6f 72 79 5f 6c 69 6d 69 74 27 2c 20 27 31 47 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 memory_limit',.'1G');.....}.....
1063e0 75 6e 73 65 74 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 24 6d 65 6d 6f 72 79 4c 69 6d unset($memoryInBytes,.$memoryLim
106400 69 74 29 3b 0a 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 61 70 70 6c 69 it);.}..//.run.the.command.appli
106420 63 61 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 cation.$application.=.new.Applic
106440 61 74 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 29 3b 0a 0a 43 ation();.$application->run();..C
106460 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 20 41 64 65 72 6d 61 6e 6e 2c opyright.(c).2011.Nils.Adermann,
106480 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 73 73 69 6f 6e 20 69 73 20 68 .Jordi.Boggiano..Permission.is.h
1064a0 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 20 63 68 61 72 67 65 2c 20 74 ereby.granted,.free.of.charge,.t
1064c0 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 20 61 20 63 6f 70 79 0a 6f 66 o.any.person.obtaining.a.copy.of
1064e0 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 6f 63 69 61 74 65 64 20 64 6f .this.software.and.associated.do
106500 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 20 22 53 6f 66 74 77 61 72 65 cumentation.files.(the."Software
106520 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 77 69 74 68 "),.to.deal.in.the.Software.with
106540 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 64 69 6e 67 20 77 69 74 68 6f out.restriction,.including.witho
106560 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 74 73 0a 74 6f 20 75 73 65 2c ut.limitation.the.rights.to.use,
106580 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 70 75 62 6c 69 73 68 2c 20 64 .copy,.modify,.merge,.publish,.d
1065a0 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c 20 61 6e 64 2f 6f 72 20 73 65 istribute,.sublicense,.and/or.se
1065c0 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 2c 20 61 6e 64 20 74 ll.copies.of.the.Software,.and.t
1065e0 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 6f 6d 20 74 68 65 20 53 6f 66 o.permit.persons.to.whom.the.Sof
106600 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 64 6f 20 73 6f 2c 20 73 75 62 tware.is.furnished.to.do.so,.sub
106620 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 ject.to.the.following.conditions
106640 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 20 6e 6f 74 69 63 65 20 61 6e :..The.above.copyright.notice.an
106660 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 63 65 20 73 68 61 6c 6c 20 62 d.this.permission.notice.shall.b
106680 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 65 73 20 6f 72 20 73 75 62 73 e.included.in.all.copies.or.subs
1066a0 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 61 72 65 tantial.portions.of.the.Software
1066c0 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 22 41 53 20 ...THE.SOFTWARE.IS.PROVIDED."AS.
1066e0 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 4f 46 20 41 4e 59 20 4b 49 4e IS",.WITHOUT.WARRANTY.OF.ANY.KIN
106700 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c 20 49 4e 43 4c 55 44 49 4e 47 D,.EXPRESS.OR.IMPLIED,.INCLUDING
106720 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 45 20 57 41 52 52 41 4e 54 49 .BUT.NOT.LIMITED.TO.THE.WARRANTI
106740 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c 0a 46 49 54 4e 45 53 53 20 46 ES.OF.MERCHANTABILITY,.FITNESS.F
106760 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 4e 44 20 4e 4f 4e 49 OR.A.PARTICULAR.PURPOSE.AND.NONI
106780 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 NFRINGEMENT..IN.NO.EVENT.SHALL.T
1067a0 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 54 20 48 4f 4c 44 45 52 53 20 HE.AUTHORS.OR.COPYRIGHT.HOLDERS.
1067c0 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 4d 2c 20 44 41 4d 41 47 45 53 BE.LIABLE.FOR.ANY.CLAIM,.DAMAGES
1067e0 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 .OR.OTHER.LIABILITY,.WHETHER.IN.
106800 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c 20 54 4f 52 54 20 4f 52 20 4f AN.ACTION.OF.CONTRACT,.TORT.OR.O
106820 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d 2c 0a 4f 55 54 20 4f 46 20 4f THERWISE,.ARISING.FROM,.OUT.OF.O
106840 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 48 45 20 53 4f 46 54 57 41 52 R.IN.CONNECTION.WITH.THE.SOFTWAR
106860 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 44 45 41 4c 49 4e 47 53 20 49 E.OR.THE.USE.OR.OTHER.DEALINGS.I
106880 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 5d 2f d0 ee f7 91 0b 92 fc ef bc c5 d1 a3 a2 N.THE.SOFTWARE...]/.............
1068a0 f2 4d 02 d4 a5 02 00 00 00 47 42 4d 42 .M.......GBMB