From george.colpitts at gmail.com Sun Jul 1 18:39:41 2018 From: george.colpitts at gmail.com (George Colpitts) Date: Sun, 1 Jul 2018 15:39:41 -0300 Subject: [ANNOUNCE] GHC 8.6.1-alpha1 available In-Reply-To: <87fu14ufsp.fsf@smart-cactus.org> References: <87fu14ufsp.fsf@smart-cactus.org> Message-ID: I don't see an apple/darwin binary. Not sure if that is an oversight or was planned. On Sat, Jun 30, 2018 at 6:26 PM Ben Gamari wrote: > > The GHC development team is pleased to announce the first > alpha release leading up to GHC 8.6.1. The usual release artifacts > are available from > > https://downloads.haskell.org/~ghc/8.6.1-alpha1 > > This is the first release (partially) generated using our new CI > infrastructure. One known issue is that the haddock documentation is > currently unavailable. This will be fixed in the next alpha release. Do > let us know if you spot anything else amiss. > > As always, do let us know if you encounter any trouble in the course of > testing. Thanks for your help! > > Cheers, > > - Ben > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -------------- next part -------------- An HTML attachment was scrubbed... URL: From david at well-typed.com Sun Jul 1 20:14:36 2018 From: david at well-typed.com (David Feuer) Date: Sun, 01 Jul 2018 16:14:36 -0400 Subject: Should we have primitive fill-once variables? In-Reply-To: <1792862.fH3rJv34vH@squirrel> References: <7467676.ftxV8Eecj6@squirrel> <1792862.fH3rJv34vH@squirrel> Message-ID: <1572761.6SWcOZBGgD@squirrel> Thinking this through some more, I see real trade-offs between the two approaches. The names I've assigned them are for reference only, and not intended to claim or assign any credit. Approach 1 (Feuer style) The IVar is pretty much just a stripped-down MVar. Features: * Should be pretty simple to implement. * We get object identity (equality, stable names, weak pointers) without any fuss. * We can have mutation if we want it (i.e., QVar rather than true IVar). * We can unsafeCoerce our way into sticking a QVar# directly into a QVar# if that's useful. Downside: * An IVar is always an indirection. Approach 2 (Breitner/Van Laarhoven style) Writing to an IVar turns it into an indirection to its value. Feature: * Long-lived filled IVars are compacted, removing indirections. Downsides: * Mutation isn't an option at all. * Object identity looks quite tricky. Options: - Don't have object identity for IVars. - Require values to be forced to WHNF before being written to IVars and pull some trickery. - Make thunks noDuplicate# when they're written to IVars and pull some trickery. * We'll have to make sure the garbage collector doesn't goof things up. In particular, if a value has been written to an IVar, but the waiting threads haven't been woken up yet, we need to be sure not to lose the threads. Do we already have some similar logic for threads waiting on blackholes? * We can't ever stick an IVar# directly inside an IVar#, because there's then no way for tryReadIVar to tell whether it's at the right nesting depth. I doubt this is the biggest deal, but I figured I should mention it. All in all, I'm leaning toward proposing the Feuer style because of its relative simplicity. Someone familiar enough with GHC internals could probably implement it in a day or two, while the Breitner/Van Laarhoven approach would take much more serious thinking. But perhaps the indirection-removal is worth the price; I dunno. From simonpj at microsoft.com Mon Jul 2 08:50:30 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Mon, 2 Jul 2018 08:50:30 +0000 Subject: Phab is unhealthy Message-ID: I'm getting the stuff below from Phabricator, e.g. https://phabricator.haskell.org/D4909 What should I do? Simon Error 503 Backend is unhealthy Backend is unhealthy Guru Mediation: Details: cache-lcy19226-LCY 1530521354 1115923518 ________________________________ Varnish cache server -------------- next part -------------- An HTML attachment was scrubbed... URL: From mgsloan at gmail.com Mon Jul 2 10:34:01 2018 From: mgsloan at gmail.com (Michael Sloan) Date: Mon, 2 Jul 2018 03:34:01 -0700 Subject: Phab is unhealthy In-Reply-To: References: Message-ID: I asked about this on #ghc IRC and bgamari said that he's going to be working on it tomorrow. I'm guessing that his comment of "man, mariadb's treatment of full disks is abysmal" is related to the problem. I've been writing down the actions I'll take once it's back up. On Mon, Jul 2, 2018 at 1:50 AM Simon Peyton Jones via ghc-devs wrote: > > I’m getting the stuff below from Phabricator, e.g. https://phabricator.haskell.org/D4909 > > What should I do? > > Simon > > > > Error 503 Backend is unhealthy > > Backend is unhealthy > > Guru Mediation: > > Details: cache-lcy19226-LCY 1530521354 1115923518 > > ________________________________ > > Varnish cache server > > > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From ben at well-typed.com Mon Jul 2 13:58:22 2018 From: ben at well-typed.com (Ben Gamari) Date: Mon, 02 Jul 2018 09:58:22 -0400 Subject: Phabricator post-mortem Message-ID: <877emdvix2.fsf@smart-cactus.org> Hi everyone, As you may have noticed, Phabricator was down briefly on Thursday and for much of yesterday. The reason for both outages was a full root volume. My response to Thursday outage was to free enough space to buy time for a transition away from Rackspace (which would need to happen in the next few months anyways). Unfortunately, the database grew faster than I could put the Rackspace transition into action so we again ran out of space on Sunday when I was away on a hike. This morning I provisioned a new volume and moved the database to it. This should hold us over until we have an opportunity to move away from Rackspace. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at well-typed.com Mon Jul 2 16:55:10 2018 From: ben at well-typed.com (Ben Gamari) Date: Mon, 02 Jul 2018 12:55:10 -0400 Subject: [ANNOUNCE] GHC 8.6.1-alpha1 available In-Reply-To: References: <87fu14ufsp.fsf@smart-cactus.org> Message-ID: <874lhhvaqd.fsf@smart-cactus.org> George Colpitts writes: > I don't see an apple/darwin binary. Not sure if that is an oversight or was > planned. > Yikes! Thank you for mentioning this. This is indeed a mistake. I'm uploading the Darwin distribution right now; it will be done within 20 minutes. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at smart-cactus.org Mon Jul 2 19:46:43 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Mon, 02 Jul 2018 15:46:43 -0400 Subject: Booting ghc with system-wide installed Cabal? In-Reply-To: References: Message-ID: <87r2klto81.fsf@smart-cactus.org> Ömer Sinan Ağacan writes: > Currently we have to build Cabal from scratch after every make clean. Ideally I > should be able to skip this step by installing the correct versions of Cabal > and cabal-install system-wide, but as far as I can see we currently doesn't > support this. Any ideas on how to make this work? > Indeed we currently don't support this since ghc-pkg uses the Cabal API which changes from release to release. I suspect you could hack Hadrian to make this work (assuming you guaranteed that the system Cabal is compatible with the in-tree version), but I'm not sure it's something that we really want to encourage users to do. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at smart-cactus.org Mon Jul 2 19:48:58 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Mon, 02 Jul 2018 15:48:58 -0400 Subject: Booting ghc with system-wide installed Cabal? In-Reply-To: References: Message-ID: <87o9fpto47.fsf@smart-cactus.org> Niklas Larsson writes: > Installing stuff system-wide without doing ‘make install’ would break > my expectations for how the build works. Also, how would one return to > a pristine state if it was done that way? > Hmm, I was assuming it would be up to the user to ensure that a compatible Cabal is already registered in the user's package database. Regardless, as I said in my other message, it's not clear to me that this is something that we really want to introduce complexity to support. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at smart-cactus.org Mon Jul 2 20:26:54 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Mon, 02 Jul 2018 16:26:54 -0400 Subject: req_interp tests In-Reply-To: References: Message-ID: <87bmbptmd3.fsf@smart-cactus.org> Ömer Sinan Ağacan writes: > Hi, > ... > So I'd like to make req_interp skip the test instead of expecting it to fail. > Any objections to this? > Sounds reasonable to me. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From omeragacan at gmail.com Tue Jul 3 07:16:42 2018 From: omeragacan at gmail.com (=?UTF-8?Q?=C3=96mer_Sinan_A=C4=9Facan?=) Date: Tue, 3 Jul 2018 10:16:42 +0300 Subject: Not possible to build debug + prof, oversight or expected? Message-ID: I just realized GHC 8.4.2 doesn't ship a debug + prof RTS, and HEAD doesn't build it with release build (no build.mk) or with prof flavor. It seems to me that this is a bug, because some debug files in RTS (e.g. Printer.c) actually check PROFILING macro in a few places and print different stuff depending on that. Anyone know if this is intentional? It's really inconvenient that I can't use debug runtime to debug profiling build issues.. (I also realized that we dont' generate .sos for some ways, which means -dynamic is also don't combine with e.g. -prof) Thanks Ömer From luispedro at big-data-biology.org Tue Jul 3 20:29:34 2018 From: luispedro at big-data-biology.org (Luis Pedro Coelho) Date: Tue, 03 Jul 2018 22:29:34 +0200 Subject: Issues with the large address space allocator and HPC systems with resource limits Message-ID: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> Dear GHC devs, I hope this is the right forum to bring this up. I am the lead developer of NGLess (https://github.com/ngless-toolkit/ngless a bioinformatics tool, written in Haskell). Several users have complained about not being able to easily use NGLess in an academic cluster environment due to the fact that it allocates 1TB of address space (e.g., https://groups.google.com/forum/#!topic/ngless/9su2E0EdeCc and I have also gotten several private emails on this issue). In particular, many systems are set up with a limit on the address space so that if the job allocates more than the given limit, it is immediately killed. This appears to be the default way to set up SGE, the most widely used batch system. Users are dependent on their sysadmins and lack the permissions to change these settings easily (and may not always be cognizant of the difference between "allocating address space" and "allocating memory"). Using ulimit seem to make the issue disappear on most, but not all, user setups. I have now built NGLess with a version of GHC that was compiled without the large address allocator (using ./configure --disable-large-address-space). At least locally, this seems to run correctly and solve the issue. I assume that there are performance or other reasons to use the large address space allocator as the default, but, right now, for the problem space I am working in, disabling it seems to be a better trade-off. In principle, the RTS that is used for GHC and the one that is used for the programme being linked do not need to be the same. Is there any possibility of making this choice when a programme is linked and not when GHC is compiled? Thank you for all your effort! Luis -- Luis Pedro Coelho | Fudan University | http://luispedro.org PI of Big Data Biology Lab at Fudan University (start mid-2018) http://big-data-biology.org From mgsloan at gmail.com Wed Jul 4 07:10:21 2018 From: mgsloan at gmail.com (Michael Sloan) Date: Wed, 4 Jul 2018 00:10:21 -0700 Subject: Loading GHC into GHCi (and ghcid) In-Reply-To: References: Message-ID: Here is the diff adding ghci scripts and some related code changes: https://phabricator.haskell.org/D4904 This has made development iterations drastically quicker for me, which for me really lowers the friction to contribution. All of my diffs in the past week were developed by using ghc-in-ghci. -Michael On Wed, Jun 27, 2018 at 10:48 PM Michael Sloan wrote: > > Wow! This is an absolute game changer for me with regards to ghc > development. My usual workflow on large haskell projects is to use > GHCI as much as possible for quick iterations. I'm really glad > Csongor figured this out and that you sent an email about it. > > I've been messing with this for a bit today, and after a few code > changes, I can to load GHCI into GHCI!! For example, I can modify > "ghciWelcomeMessage", reload, and enter into the nested ghci: > > λ :r > [491 of 492] Compiling GHCi.UI ( ../ghc/GHCi/UI.hs, tmp/GHCi/UI.o ) > Ok, 492 modules loaded. > λ :main -ignore-dot-ghci --interactive > GHCi inception, version 8.7.20180627: http://www.haskell.org/ghc/ :? for help > Prelude> unwords ["it", "works!"] > "it works!" > Prelude> :q > Leaving GHCi. > λ Prelude.unwords ["now,", "in", "outer", "GHCi"] > "now, in outer GHCi" > > I will be opening up a PR soon that makes this convenient, once I've > polished it up. > > -Michael > On Wed, May 30, 2018 at 1:43 PM Matthew Pickering > wrote: > > > > Hi all, > > > > Csongor has informed me that he has worked out how to load GHC into > > GHCi which can then be used with ghcid for a more interactive > > development experience. > > > > 1. Put this .ghci file in compiler/ > > > > https://gist.github.com/mpickering/73749e7783f40cc762fec171b879704c > > > > 2. Run "../inplace/bin/ghc-stage2 --interactive -odir tmp -hidir tmp" > > from inside compiler/ > > > > It may take a while and require a little bit of memory but in the end > > all 500 or so modules will be loaded. > > > > It can also be used with ghcid. > > > > ghcid -c "../inplace/bin/ghc-stage2 --interactive -odir tmp -hidir tmp" > > > > Hopefully someone who has more RAM than I. > > > > Can anyone suggest the suitable place on the wiki for this information? > > > > Cheers, > > > > Matt > > _______________________________________________ > > ghc-devs mailing list > > ghc-devs at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From gale at sefer.org Wed Jul 4 12:06:57 2018 From: gale at sefer.org (Yitzchak Gale) Date: Wed, 4 Jul 2018 15:06:57 +0300 Subject: Issues with the large address space allocator and HPC systems with resource limits In-Reply-To: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> References: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> Message-ID: Pre-allocation of large memory also causes trouble on Windows Subsystem for Linux. In that case also, compiling with --disable-large-address-space solves the problem. If your OS happens to be Ubuntu, there is an unofficial PPA for GHC which includes versions of GHC and cabal-install that were compiled without the pre-allocation, and which compile executables that do not do the pre-allocation. The PPA is here: https://launchpad.net/~hvr/+archive/ubuntu/ghc-wsl Yitz On Tue, Jul 3, 2018 at 11:29 PM, Luis Pedro Coelho wrote: > Dear GHC devs, > > I hope this is the right forum to bring this up. > > I am the lead developer of NGLess (https://github.com/ngless-toolkit/ngless a bioinformatics tool, written in Haskell). Several users have complained about not being able to easily use NGLess in an academic cluster environment due to the fact that it allocates 1TB of address space (e.g., https://groups.google.com/forum/#!topic/ngless/9su2E0EdeCc and I have also gotten several private emails on this issue). > > In particular, many systems are set up with a limit on the address space so that if the job allocates more than the given limit, it is immediately killed. > > This appears to be the default way to set up SGE, the most widely used batch system. Users are dependent on their sysadmins and lack the permissions to change these settings easily (and may not always be cognizant of the difference between "allocating address space" and "allocating memory"). Using ulimit seem to make the issue disappear on most, but not all, user setups. > > I have now built NGLess with a version of GHC that was compiled without the large address allocator (using ./configure --disable-large-address-space). At least locally, this seems to run correctly and solve the issue. > > I assume that there are performance or other reasons to use the large address space allocator as the default, but, right now, for the problem space I am working in, disabling it seems to be a better trade-off. In principle, the RTS that is used for GHC and the one that is used for the programme being linked do not need to be the same. Is there any possibility of making this choice when a programme is linked and not when GHC is compiled? > > Thank you for all your effort! > > Luis > > -- > Luis Pedro Coelho | Fudan University | http://luispedro.org > > PI of Big Data Biology Lab at Fudan University (start mid-2018) > http://big-data-biology.org > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From ben at well-typed.com Wed Jul 4 14:49:11 2018 From: ben at well-typed.com (Ben Gamari) Date: Wed, 04 Jul 2018 10:49:11 -0400 Subject: Issues with the large address space allocator and HPC systems with resource limits In-Reply-To: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> References: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> Message-ID: <87o9fnrr8d.fsf@smart-cactus.org> Luis Pedro Coelho writes: > Dear GHC devs, > > I hope this is the right forum to bring this up. > Absolutely, thanks for bringing this up. > I am the lead developer of NGLess > (https://github.com/ngless-toolkit/ngless a bioinformatics tool, > written in Haskell). Several users have complained about not being > able to easily use NGLess in an academic cluster environment due to > the fact that it allocates 1TB of address space (e.g., > https://groups.google.com/forum/#!topic/ngless/9su2E0EdeCc and I have > also gotten several private emails on this issue). > > In particular, many systems are set up with a limit on the address > space so that if the job allocates more than the given limit, it is > immediately killed. > > This appears to be the default way to set up SGE, the most widely used > batch system. Users are dependent on their sysadmins and lack the > permissions to change these settings easily (and may not always be > cognizant of the difference between "allocating address space" and > "allocating memory"). Using ulimit seem to make the issue disappear on > most, but not all, user setups. > Indeed as someone who has had to run on a shared cluster in the past, I can sympathize. These sorts of restrictions are common and quite annoying. Are these address space limits advertised via getrlimit(2)? If so, have you tried GHC 8.6.1-alpha1? While fixing #14492 I taught GHC to respect rlimits when allocating its heap, so this might work now. > I have now built NGLess with a version of GHC that was compiled > without the large address allocator (using ./configure > --disable-large-address-space). At least locally, this seems to run > correctly and solve the issue. > > I assume that there are performance or other reasons to use the large > address space allocator as the default, but, right now, for the > problem space I am working in, disabling it seems to be a better > trade-off. In principle, the RTS that is used for GHC and the one that > is used for the programme being linked do not need to be the same. Is > there any possibility of making this choice when a programme is linked > and not when GHC is compiled? > Indeed you will take a bit of performance hit by using the one-step allocator since the check of whether an object resides in the heap (which is very hot during GC) is a fair bit more complex. As far as I know the choice of allocator has no effect on code generation so in principle it should be possible to link the same code against either RTS. However, the build system looks to be built around the assumption that the choice is made at configure-time. I'm sure this could be fixed, but it's not immediately obvious how. I suppose you could make the two allocators different RTS ways (e.g. like the distinction between event-logged, debugging, profiled and vanilla RTSs), but that would double the already large number of ways. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From ben at well-typed.com Wed Jul 4 14:54:30 2018 From: ben at well-typed.com (Ben Gamari) Date: Wed, 04 Jul 2018 10:54:30 -0400 Subject: Not possible to build debug + prof, oversight or expected? In-Reply-To: References: Message-ID: <87k1qbrqzf.fsf@smart-cactus.org> Ömer Sinan Ağacan writes: > I just realized GHC 8.4.2 doesn't ship a debug + prof RTS, and HEAD doesn't > build it with release build (no build.mk) or with prof flavor. It seems to me > that this is a bug, because some debug files in RTS (e.g. Printer.c) actually > check PROFILING macro in a few places and print different stuff depending on > that. > > Anyone know if this is intentional? It's really inconvenient that I can't use > debug runtime to debug profiling build issues.. > Hmm, it sounds like a bug. I see debug_p in mk/ways.mk. It looks like it's missing from GhcRTSWays, however (defined in mk/config.mk). Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From luispedro at big-data-biology.org Thu Jul 5 12:35:44 2018 From: luispedro at big-data-biology.org (Luis Pedro Coelho) Date: Thu, 05 Jul 2018 14:35:44 +0200 Subject: Issues with the large address space allocator and HPC systems with resource limits In-Reply-To: <87o9fnrr8d.fsf@smart-cactus.org> References: <1530649774.2823073.1429048392.242D7D51@webmail.messagingengine.com> <87o9fnrr8d.fsf@smart-cactus.org> Message-ID: <1530794144.1533814.1430809744.3F580837@webmail.messagingengine.com> Thanks for your feedback. > > I am the lead developer of NGLess > > (https://github.com/ngless-toolkit/ngless a bioinformatics tool, > > written in Haskell). Several users have complained about not being > > able to easily use NGLess in an academic cluster environment due to > > the fact that it allocates 1TB of address space (e.g., > > https://groups.google.com/forum/#!topic/ngless/9su2E0EdeCc and I have > > also gotten several private emails on this issue). > > > > In particular, many systems are set up with a limit on the address > > space so that if the job allocates more than the given limit, it is > > immediately killed. > [snip] > Are these address space limits advertised via getrlimit(2)? If so, have > you tried GHC 8.6.1-alpha1? While fixing #14492 I taught GHC to respect > rlimits when allocating its heap, so this might work now. Thanks for fixing #14492 (that was us reporting it too, btw)! Some well configured systems do advertise the limits correctly and things work. For unrelated reasons, I have access to an AWS virtual private cloud, which was setup using SGE with default settings (and I think it should be fairly up-to-date). I took the opportunity to test and indeed NGLess runs without a glitch even pre-#14492 fix (just that memory is somewhat wasted). However, it seems that some users are running on misconfigured systems so that NGLess (and Haskell) end up getting blamed for the situation (furthermore, not all sysadmins are as helpful as they could be). > Indeed you will take a bit of performance hit by using the one-step > allocator since the check of whether an object resides in the heap > (which is very hot during GC) is a fair bit more complex. I expected that. As I said, for now, I prefer that trade-off: we are already orders of magnitude faster than our competition, so I can afford a slowdown to support all these old-school HPC systems (which, for better or for worse, are still used by many of our target users). > As far as I know the choice of allocator has no effect on code > generation so in principle it should be possible to link the same code > against either RTS. However, the build system looks to be built around > the assumption that the choice is made at configure-time. > > I'm sure this could be fixed, but it's not immediately obvious how. I > suppose you could make the two allocators different RTS ways (e.g. like > the distinction between event-logged, debugging, profiled and vanilla > RTSs), but that would double the already large number of ways. I see. This becomes a distribution issue then. I currently distribute the binaries through bioconda, and stack is used for compilation. I will try to see if I can convince conda/stack to recompile ghc with the right flags for me. Thank you, Luis From ggreif at gmail.com Thu Jul 5 13:36:27 2018 From: ggreif at gmail.com (Gabor Greif) Date: Thu, 5 Jul 2018 15:36:27 +0200 Subject: Diagonally in Data.Bimap Message-ID: Hi! Just searched for a `bimap` variant that simultaneously transforms both components with the same morphism: ``` haskell diag :: Bifunctor p => (a -> b) -> p a a -> p b b diag f = bimap f f ``` I did not find any. Would it make sense to add it? Cheers, Gabor PS: same for profunctors: ``` haskell xmap :: Profunctor p => (a -> b) -> p b a -> p a b ``` PPS: I would have sent this to libraries at haskell.org but it seem to be closed group. From mail at joachim-breitner.de Thu Jul 5 15:10:19 2018 From: mail at joachim-breitner.de (Joachim Breitner) Date: Thu, 05 Jul 2018 11:10:19 -0400 Subject: Diagonally in Data.Bimap In-Reply-To: References: Message-ID: <6a62e007b2ed9dffcc2e6782ca8c4810579eb3db.camel@joachim-breitner.de> Hi Am Donnerstag, den 05.07.2018, 15:36 +0200 schrieb Gabor Greif: > Hi! > > Just searched for a `bimap` variant that simultaneously transforms > both components with the same morphism: > > ``` haskell > diag :: Bifunctor p => (a -> b) -> p a a -> p b b > diag f = bimap f f > ``` > > I did not find any. Would it make sense to add it? possibly, I have wanted it too before. Bikeshedding: I’d have expected the name “both”. It also has precedence here: http://hackage.haskell.org/package/extra/docs/Data-Tuple-Extra.html#v:both http://hackage.haskell.org/package/concatenative/docs/Control-Concatenative.html#v:both http://hackage.haskell.org/package/MissingK/docs/Control-Arrow-Extra.html#v:both http://hackage.haskell.org/package/lens-family/docs/Lens-Family2-Stock.html#v:both http://hackage.haskell.org/package/lens/docs/Control-Lens-Traversal.html#v:both Diagonally sounds more like something of type `a -> (a,a)` or similar. > PPS: I would have sent this to libraries at haskell.org but it seem to be > closed group. It should not. Maybe only open to subscribers? (A common crude anti- spam measurement.) Cheers, Joachim -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From takenobu.hs at gmail.com Sat Jul 7 03:09:50 2018 From: takenobu.hs at gmail.com (Takenobu Tani) Date: Sat, 7 Jul 2018 12:09:50 +0900 Subject: How to use ghc-heap-view of ghc-8.6 Message-ID: Dear devs, I'm interested in ghc-heap-view of ghc-8.6. [1] Is there a document on how to use the ghc-heap-view of ghc-8.6? [1]: https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.6.1#Landedinmasterbranch Regards, Takenobu -------------- next part -------------- An HTML attachment was scrubbed... URL: From patrick.doc at ameritech.net Sat Jul 7 04:05:18 2018 From: patrick.doc at ameritech.net (Patrick Dougherty) Date: Sat, 7 Jul 2018 04:05:18 +0000 (UTC) Subject: How to use ghc-heap-view of ghc-8.6 References: <487430367.375400.1530936318245.ref@mail.yahoo.com> Message-ID: <487430367.375400.1530936318245@mail.yahoo.com> Hello, This effort mostly just brought the core of this [1] library into GHC. The main function you will want to try is `getClosureData`,which takes any value and returns the heap representation. There are some tricky aspects about evaluation, but I will refer you to the comments about `Box`s in [1]. As a shameless self-plug, I also wrote a bit about it. The first page is a brief intro to the heap, and the second is an example demonstrating how to track down a leaky accumulator. I also link to a few posts that sent me down this path. This doesn't implement all of the functionality of [1], but it pulls in enough that hopefully it should be a little more stable between GHC versions. Also, you should be able to recreate many of the functions by looking at the source of [1] on hackage. [1] http://hackage.haskell.org/package/ghc-heap-view-0.5.10/docs/GHC-HeapView.html [2] https://patrickdoc.github.io/heap-view.html Best,Patrick P.S. Sorry about using [1] so many times. Both libraries are called heap-view which makes it a little difficult to distinguish. On Friday, July 6, 2018 10:10 PM, Takenobu Tani wrote: Dear devs, I'm interested in ghc-heap-view of ghc-8.6. [1] Is there a document on how to use the ghc-heap-view of ghc-8.6? [1]: https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.6.1#Landedinmasterbranch Regards, Takenobu _______________________________________________ ghc-devs mailing list ghc-devs at haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs -------------- next part -------------- An HTML attachment was scrubbed... URL: From takenobu.hs at gmail.com Sat Jul 7 05:34:20 2018 From: takenobu.hs at gmail.com (Takenobu Tani) Date: Sat, 7 Jul 2018 14:34:20 +0900 Subject: How to use ghc-heap-view of ghc-8.6 In-Reply-To: <487430367.375400.1530936318245@mail.yahoo.com> References: <487430367.375400.1530936318245.ref@mail.yahoo.com> <487430367.375400.1530936318245@mail.yahoo.com> Message-ID: Hi Patrick, thanks. I'll start digging from your great resource. I'll try using ghc-heap-view on GHCi. Interactive usage is also useful. Thank you for your kind explanation, Takenobu 2018-07-07 13:05 GMT+09:00 Patrick Dougherty : > Hello, > > This effort mostly just brought the core of this [1] library into GHC. The > main function you will want to try is `getClosureData`, > which takes any value and returns the heap representation. There are some > tricky aspects about evaluation, but I will refer you to the comments about > `Box`s in [1]. > > As a shameless self-plug, I also wrote a bit about it. The first page is a > brief intro to the heap, and the second is an example demonstrating how to > track down a leaky accumulator. I also link to a few posts that sent me > down this path. > > This doesn't implement all of the functionality of [1], but it pulls in > enough that hopefully it should be a little more stable between GHC > versions. Also, you should be able to recreate many of the functions by > looking at the source of [1] on hackage. > > [1] http://hackage.haskell.org/package/ghc-heap-view-0.5.10/ > docs/GHC-HeapView.html > [2] https://patrickdoc.github.io/heap-view.html > > Best, > Patrick > > P.S. Sorry about using [1] so many times. Both libraries are called > heap-view which makes it a little difficult to distinguish. > > On Friday, July 6, 2018 10:10 PM, Takenobu Tani > wrote: > > > Dear devs, > > I'm interested in ghc-heap-view of ghc-8.6. [1] > Is there a document on how to use the ghc-heap-view of ghc-8.6? > > [1]: https://ghc.haskell.org/trac/ghc/wiki/Status/GHC-8.6.1# > Landedinmasterbranch > > Regards, > Takenobu > > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at joachim-breitner.de Sat Jul 7 13:35:30 2018 From: mail at joachim-breitner.de (Joachim Breitner) Date: Sat, 07 Jul 2018 09:35:30 -0400 Subject: How to use ghc-heap-view of ghc-8.6 In-Reply-To: <487430367.375400.1530936318245@mail.yahoo.com> References: <487430367.375400.1530936318245.ref@mail.yahoo.com> <487430367.375400.1530936318245@mail.yahoo.com> Message-ID: <7579f7724f32cb21fd4c4476a33bf7534761e722.camel@joachim-breitner.de> Hi, Am Samstag, den 07.07.2018, 04:05 +0000 schrieb Patrick Dougherty: > P.S. Sorry about using [1] so many times. Both libraries are called > heap-view which makes it a little difficult to distinguish. it seems that my hack on hackage is called ghc-heap-view, and the thing landed in GHC just ghc-heap :-) Cheers, Joachim -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From takenobu.hs at gmail.com Sat Jul 7 15:04:27 2018 From: takenobu.hs at gmail.com (Takenobu Tani) Date: Sun, 8 Jul 2018 00:04:27 +0900 Subject: How to use ghc-heap-view of ghc-8.6 In-Reply-To: <7579f7724f32cb21fd4c4476a33bf7534761e722.camel@joachim-breitner.de> References: <487430367.375400.1530936318245.ref@mail.yahoo.com> <487430367.375400.1530936318245@mail.yahoo.com> <7579f7724f32cb21fd4c4476a33bf7534761e722.camel@joachim-breitner.de> Message-ID: Hi, Oh, it's clear to me, ghc-heap and ghc-heap-view. I've misunderstood. Thank you very much, Takenobu 2018-07-07 22:35 GMT+09:00 Joachim Breitner : > Hi, > > Am Samstag, den 07.07.2018, 04:05 +0000 schrieb Patrick Dougherty: > > P.S. Sorry about using [1] so many times. Both libraries are called > > heap-view which makes it a little difficult to distinguish. > > it seems that my hack on hackage is called ghc-heap-view, and the thing > landed in GHC just ghc-heap :-) > > Cheers, > Joachim > > -- > Joachim Breitner > mail at joachim-breitner.de > http://www.joachim-breitner.de/ > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From juhpetersen at gmail.com Mon Jul 9 13:25:22 2018 From: juhpetersen at gmail.com (Jens Petersen) Date: Mon, 9 Jul 2018 15:25:22 +0200 Subject: [ANNOUNCE] GHC 8.6.1-alpha1 available In-Reply-To: <87fu14ufsp.fsf@smart-cactus.org> References: <87fu14ufsp.fsf@smart-cactus.org> Message-ID: On 1 July 2018 at 06:26, Ben Gamari wrote: > The GHC development team is pleased to announce the first > alpha release leading up to GHC 8.6.1. I built it for Fedora in a Copr repo: https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.6.1/ I see that xhtml library seems to have been downgraded from xhtml-3000.2.2.1 to xhtml-3000.2.2? Jens From ben at well-typed.com Wed Jul 11 00:19:11 2018 From: ben at well-typed.com (Ben Gamari) Date: Tue, 10 Jul 2018 20:19:11 -0400 Subject: [ANNOUNCE] GHC 8.6.1-alpha1 available In-Reply-To: References: <87fu14ufsp.fsf@smart-cactus.org> Message-ID: <87sh4qpqte.fsf@smart-cactus.org> Jens Petersen writes: > On 1 July 2018 at 06:26, Ben Gamari wrote: >> The GHC development team is pleased to announce the first >> alpha release leading up to GHC 8.6.1. > > I built it for Fedora in a Copr repo: > https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.6.1/ > > I see that xhtml library seems to have been downgraded from > xhtml-3000.2.2.1 to xhtml-3000.2.2? This will be fixed in the next alpha. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From simonpj at microsoft.com Wed Jul 11 11:47:24 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Wed, 11 Jul 2018 11:47:24 +0000 Subject: : Can a TC plugin create new skolem vars when simplifying Givens? Message-ID: Nick writes Here's a small indicative example. In the "simplify Givens" step, the plugin receives [G] (p `Union` Singleton A) ~ (q `Union` Singleton B) and I would ideally simplify that to [G] p ~ (x `Union` Singleton B) [G] q ~ (x `Union` Singleton A) If we think of Union as a type-level function (which it is?), then the step you outline above is similar to what happens during “flattening” of the Givens. We get this: [G] fsk1 ~ p `Union` Singleton B (CFunEqCan) [G] fsk2 ~ q `Union` Singleton A (CFunEqCan) [G] fsk1 ~ fsk2 (CTyEqCan) * The newly generated skolems are called “flatten-skolems” or fsks for short. * The new skolems are kept in the `inert_fsks` field of the `InertSet`. * A new one is created by `TcSMonad.newFlattenSkolem` * All fsks are eliminated by TsSMonad.unflattenGivens Returning to your point, you are exploiting a property of sets that allows you to say that if p U X = q U Y Then suppose r = p • q then p = r U Y, q = r U X And now we can eliminate all uses of p, q in favour of r. But if you do this in a type system, we have a problem: where is ‘r’ bound? E.g. if you have f :: forall p q. (p `Union` A) ~ (q `Union` B) => blah Then p, q are bound by the forall, but r is not. To put it another way, what well-typed Core program would you like to generate? You could do this: [G] fsk1 ~ p `Union` Singleton B (CFunEqCan) [G] fsk2 ~ q `Union` Singleton A (CFunEqCan) [G] fsk3 ~ p `Intersect` q (CFunEqCan) [G] fsk4 ~ fsk3 `Union` Singleton B (CFunEqCan) [G] fsk5 ~ fsk3 `Union` Singleton A (CFunEqCan) [G] fsk1 ~ fsk2 (CTyEqCan) [G] p ~ fks4 (CTyEqCan) [G] q ~ fsk5 (CTyEqCan) The ‘r’ is just fsk3. It’ll be eliminated by unflattenGivens, so there is no problem with scoping. I have no idea whether that’ll help you prove the things you want to prove! Simon From: ghc-devs > On Behalf Of Nicolas Frisby Sent: 24 June 2018 19:01 To: ghc-devs at haskell.org Subject: Can a TC plugin create new skolem vars when simplifying Givens? I'm still spending the occasional weekend working on a type checker plugin for row types (actually "set" types at first, but I haven't thought of a less ambiguous term for that). One point of complexity in the plugin has to do with creating fresh variables when simplifying Givens. Some constraints are traditionally simplified by introducing a fresh variable. For Wanted constraints, that's easy (newFlexiTyVar). For Givens, though, I haven't figured out how to do it. This email is just to ask these two questions: 1) Is there a function to add a new skolem variable when simplifying Givens? 2) Assuming not, is there a strong reason for there to never be such a function? Here's a small indicative example. In the "simplify Givens" step, the plugin receives [G] (p `Union` Singleton A) ~ (q `Union` Singleton B) and I would ideally simplify that to [G] p ~ (x `Union` Singleton B) [G] q ~ (x `Union` Singleton A) for some fresh skolem variable x. But I don't see how to properly create a fresh skolem variable in the Givens. If these were Wanteds, I would just use newFlexiTyVar. I think this is analogous to a hypothetical type checker plugin that eta expands tuples. If we were to simplify [G] ... (x :: (k1,k2)) ... to [G] ... '(x1 :: k1,x2 :: k2) ... we'd have to generate x1 and x2 somehow. The only method I'm aware of for that is to use Fst x and Snd x instead (ie type families). That might be acceptable for the tuple expansion example, but I'm very reticent to use something like that for the set types plugin. I have a plan to get by without creating these variables when simplifying Givens, but it's not simple. I'd be delighted if it were possible to create them. Hence my two questions listed above. Thank you for your time. -Nick -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Fri Jul 13 09:58:09 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Fri, 13 Jul 2018 09:58:09 +0000 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: Abhiroop Did anyone reply? My instinct is this. You want to use the same register (say Xmm reg 3) in different ways. We already have this for ‘VanillaReg’: data GlobalReg = VanillaReg -- pointers, unboxed ints and chars Int -- its number VGcPtr | … data VGcPtr = VGcPtr | VNonGcPtr We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is register 3 used as a non-pointer. And notice that globalRegType looks at this field to decide what type to return. I think you can do exactly the same: add a field to Xmm that explains how you are gong to divide it up. Would that work? Simon From: ghc-devs On Behalf Of Abhiroop Sarkar Sent: 27 June 2018 22:32 To: ghc-devs at haskell.org Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? Hello all, I am currently working on adding support for SIMD operations to the native code generator. One of the roadblocks I faced recently was the definition of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The `globalRegType` function maps the STG registers to the respective `CmmType` datatype. For Xmm, Ymm, Zmm registers the function defines globalRegType like this: https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 Consider the case for an Xmm register, the above definition limits an Xmm register to hold only vectors of size 4. However we can store 2 64-bit Doubles or 16 Int8s or 8 Int16s and so on The function `globalRegType` is internally called by the function `cmmRegType` (https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275) which is itself used in a number of places in the x86 code generator. In fact depending on the result of the `cmmRegType` function is another important function `cmmTypeFormat` defined in Format.hs whose result is used to print the actual assembly instruction. I have extended all the other Format types to include VectorFormats, however this definition of the `globalRegType` seems incorrect to me. Looking at the signature of the function itself: `globalRegType :: DynFlags -> GlobalReg -> CmmType` its actually difficult to predict the CmmType by just looking at the GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how do I go about solving this. Should I modify the GlobalReg type to contain more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow pass the length and width information to the globalRegType function? Thanks Abhiroop Sakar -------------- next part -------------- An HTML attachment was scrubbed... URL: From asiamgenius at gmail.com Fri Jul 13 13:07:24 2018 From: asiamgenius at gmail.com (Abhiroop Sarkar) Date: Fri, 13 Jul 2018 14:07:24 +0100 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: Hello Simon, Thanks for your response. I had written a patch[1] for this and the approach I took was quite similar to what you pointed out. data GlobalReg = ... | XmmReg (Maybe (Length, Width)) (Maybe GlobalVecRegTy) data GlobalVecRegTy = Integer | Float -- Width and Length are already defined data Width = W8 | W16 | W32 ..... type Length = Int I wrapped the types inside a `Maybe` because when initializing a GlobalReg (in the `activeStgRegs`[2] function), I was not sure what value to initialize the register with, so I used a `Nothing` when initializing. I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` constructor: VanillaReg 1 VGcPtr etc I think I should modify my patch as well to remove the Maybe and initialize with some default Length, Width and GlobalRegTy. Thanks for the help. Abhiroop [1] https://phabricator.haskell.org/D4922 [2] https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones wrote: > Abhiroop > > > > Did anyone reply? > > > > My instinct is this. You want to use the same register (say Xmm reg 3) in > different ways. We already have this for ‘VanillaReg’: > > data GlobalReg > > = VanillaReg -- pointers, unboxed ints and chars > > Int -- its number > > VGcPtr > > | … > > > > data VGcPtr = VGcPtr | VNonGcPtr > > > > We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 > VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is > register 3 used as a non-pointer. And notice that globalRegType looks at > this field to decide what type to return. > > > > I think you can do exactly the same: add a field to Xmm that explains how > you are gong to divide it up. Would that work? > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Abhiroop > Sarkar > *Sent:* 27 June 2018 22:32 > *To:* ghc-devs at haskell.org > *Subject:* Is it possible to enhance the vector STG registers(Xmm, Ymm, > Zmm) with more information? > > > > Hello all, > > > > I am currently working on adding support for SIMD operations to the native > code generator. One of the roadblocks I faced recently was the definition > of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The > `globalRegType` function maps the STG registers to the respective `CmmType` > datatype. > > > > For Xmm, Ymm, Zmm registers the function defines globalRegType like this: > https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 > > > > > Consider the case for an Xmm register, the above definition limits an Xmm > register to hold only vectors of size 4. However we can store 2 64-bit > Doubles or 16 Int8s or 8 Int16s and so on > > > > The function `globalRegType` is internally called by the function > `cmmRegType` ( > https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275 > ) > which is itself used in a number of places in the x86 code generator. > > > > In fact depending on the result of the `cmmRegType` function is another > important function `cmmTypeFormat` defined in Format.hs whose result is > used to print the actual assembly instruction. > > > > I have extended all the other Format types to include VectorFormats, > however this definition of the `globalRegType` seems incorrect to me. > Looking at the signature of the function itself: > > > > `globalRegType :: DynFlags -> GlobalReg -> CmmType` > > its actually difficult to predict the CmmType by just looking at the > GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how > do I go about solving this. Should I modify the GlobalReg type to contain > more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow > pass the length and width information to the globalRegType function? > > > > Thanks > > Abhiroop Sakar > -- Kloona - Coming Soon! -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Fri Jul 13 15:12:46 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Fri, 13 Jul 2018 15:12:46 +0000 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: What is the GlobalVecRegTy field doing? Don’t you need an Int for the register number, like all the rest? Generally, sounds good though S From: Abhiroop Sarkar Sent: 13 July 2018 14:07 To: Simon Peyton Jones Cc: ghc-devs at haskell.org Subject: Re: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? Hello Simon, Thanks for your response. I had written a patch[1] for this and the approach I took was quite similar to what you pointed out. data GlobalReg = ... | XmmReg (Maybe (Length, Width)) (Maybe GlobalVecRegTy) data GlobalVecRegTy = Integer | Float -- Width and Length are already defined data Width = W8 | W16 | W32 ..... type Length = Int I wrapped the types inside a `Maybe` because when initializing a GlobalReg (in the `activeStgRegs`[2] function), I was not sure what value to initialize the register with, so I used a `Nothing` when initializing. I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` constructor: VanillaReg 1 VGcPtr etc I think I should modify my patch as well to remove the Maybe and initialize with some default Length, Width and GlobalRegTy. Thanks for the help. Abhiroop [1] https://phabricator.haskell.org/D4922 [2] https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones > wrote: Abhiroop Did anyone reply? My instinct is this. You want to use the same register (say Xmm reg 3) in different ways. We already have this for ‘VanillaReg’: data GlobalReg = VanillaReg -- pointers, unboxed ints and chars Int -- its number VGcPtr | … data VGcPtr = VGcPtr | VNonGcPtr We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is register 3 used as a non-pointer. And notice that globalRegType looks at this field to decide what type to return. I think you can do exactly the same: add a field to Xmm that explains how you are gong to divide it up. Would that work? Simon From: ghc-devs > On Behalf Of Abhiroop Sarkar Sent: 27 June 2018 22:32 To: ghc-devs at haskell.org Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? Hello all, I am currently working on adding support for SIMD operations to the native code generator. One of the roadblocks I faced recently was the definition of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The `globalRegType` function maps the STG registers to the respective `CmmType` datatype. For Xmm, Ymm, Zmm registers the function defines globalRegType like this: https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 Consider the case for an Xmm register, the above definition limits an Xmm register to hold only vectors of size 4. However we can store 2 64-bit Doubles or 16 Int8s or 8 Int16s and so on The function `globalRegType` is internally called by the function `cmmRegType` (https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275) which is itself used in a number of places in the x86 code generator. In fact depending on the result of the `cmmRegType` function is another important function `cmmTypeFormat` defined in Format.hs whose result is used to print the actual assembly instruction. I have extended all the other Format types to include VectorFormats, however this definition of the `globalRegType` seems incorrect to me. Looking at the signature of the function itself: `globalRegType :: DynFlags -> GlobalReg -> CmmType` its actually difficult to predict the CmmType by just looking at the GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how do I go about solving this. Should I modify the GlobalReg type to contain more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow pass the length and width information to the globalRegType function? Thanks Abhiroop Sakar -- Kloona - Coming Soon! -------------- next part -------------- An HTML attachment was scrubbed... URL: From asiamgenius at gmail.com Fri Jul 13 15:26:28 2018 From: asiamgenius at gmail.com (Abhiroop Sarkar) Date: Fri, 13 Jul 2018 16:26:28 +0100 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: Sorry I mistyped and forgot to include the register number in the mail but it is present in the patch. So it is: data GlobalReg = ... | XmmReg !Int (Maybe (Length, Width)) (Maybe GlobalVecRegTy) The purpose of the GlobalVecRegTy field is to rewrite this function definition : https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) and rewrite it to : globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m -- a random default value of 2 and W64 chosen in case fromMaybe Float ty of Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thanks, Abhiroop On Fri, Jul 13, 2018 at 4:12 PM Simon Peyton Jones wrote: > What is the GlobalVecRegTy field doing? > > Don’t you need an Int for the register number, like all the rest? > > > > Generally, sounds good though > > > > S > > > > *From:* Abhiroop Sarkar > *Sent:* 13 July 2018 14:07 > *To:* Simon Peyton Jones > *Cc:* ghc-devs at haskell.org > *Subject:* Re: Is it possible to enhance the vector STG registers(Xmm, > Ymm, Zmm) with more information? > > > > Hello Simon, > > > > Thanks for your response. I had written a patch[1] for this and the > approach I took was quite similar to what you pointed out. > > > > data GlobalReg = ... > | XmmReg > > (Maybe (Length, Width)) > > (Maybe GlobalVecRegTy) > > > > data GlobalVecRegTy = Integer | Float > > > > -- Width and Length are already defined > > data Width = W8 | W16 | W32 ..... > > type Length = Int > > > > > > I wrapped the types inside a `Maybe` because when initializing a GlobalReg > (in the `activeStgRegs`[2] function), I was not sure what value to > initialize the register with, so I used a `Nothing` when initializing. > > > > I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` > constructor: VanillaReg 1 VGcPtr etc > > > > I think I should modify my patch as well to remove the Maybe and > initialize with some default Length, Width and GlobalRegTy. Thanks for the > help. > > > > Abhiroop > > > > > > [1] https://phabricator.haskell.org/D4922 > > [2] > https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 > > > > > On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones > wrote: > > Abhiroop > > > > Did anyone reply? > > > > My instinct is this. You want to use the same register (say Xmm reg 3) in > different ways. We already have this for ‘VanillaReg’: > > data GlobalReg > > = VanillaReg -- pointers, unboxed ints and chars > > Int -- its number > > VGcPtr > > | … > > > > data VGcPtr = VGcPtr | VNonGcPtr > > > > We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 > VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is > register 3 used as a non-pointer. And notice that globalRegType looks at > this field to decide what type to return. > > > > I think you can do exactly the same: add a field to Xmm that explains how > you are gong to divide it up. Would that work? > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Abhiroop > Sarkar > *Sent:* 27 June 2018 22:32 > *To:* ghc-devs at haskell.org > *Subject:* Is it possible to enhance the vector STG registers(Xmm, Ymm, > Zmm) with more information? > > > > Hello all, > > > > I am currently working on adding support for SIMD operations to the native > code generator. One of the roadblocks I faced recently was the definition > of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The > `globalRegType` function maps the STG registers to the respective `CmmType` > datatype. > > > > For Xmm, Ymm, Zmm registers the function defines globalRegType like this: > https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 > > > > > Consider the case for an Xmm register, the above definition limits an Xmm > register to hold only vectors of size 4. However we can store 2 64-bit > Doubles or 16 Int8s or 8 Int16s and so on > > > > The function `globalRegType` is internally called by the function > `cmmRegType` ( > https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275 > ) > which is itself used in a number of places in the x86 code generator. > > > > In fact depending on the result of the `cmmRegType` function is another > important function `cmmTypeFormat` defined in Format.hs whose result is > used to print the actual assembly instruction. > > > > I have extended all the other Format types to include VectorFormats, > however this definition of the `globalRegType` seems incorrect to me. > Looking at the signature of the function itself: > > > > `globalRegType :: DynFlags -> GlobalReg -> CmmType` > > its actually difficult to predict the CmmType by just looking at the > GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how > do I go about solving this. Should I modify the GlobalReg type to contain > more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow > pass the length and width information to the globalRegType function? > > > > Thanks > > Abhiroop Sakar > > > > > -- > > Kloona - Coming Soon! > -- Kloona - Coming Soon! -------------- next part -------------- An HTML attachment was scrubbed... URL: From asiamgenius at gmail.com Fri Jul 13 15:32:03 2018 From: asiamgenius at gmail.com (Abhiroop Sarkar) Date: Fri, 13 Jul 2018 16:32:03 +0100 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: The formatting of the function[1] got spoilt in the last mail. It is modified from: globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) to globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m in case fromMaybe Float ty of Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thank, Abhiroop [1] https://github.com/Abhiroop/ghc-1/blob/wip/simd-ncg-support/compiler/cmm/CmmExpr.hs#L596 On Fri, Jul 13, 2018 at 4:26 PM Abhiroop Sarkar wrote: > Sorry I mistyped and forgot to include the register number in the mail but > it is present in the patch. So it is: > > data GlobalReg = ... > | XmmReg !Int > (Maybe (Length, Width)) > (Maybe GlobalVecRegTy) > > The purpose of the GlobalVecRegTy field is to rewrite this function > definition : > https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 > > globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) > > and rewrite it to : > > globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m -- a > random default value of 2 and W64 chosen in case fromMaybe Float ty of > Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thanks, > Abhiroop > > > On Fri, Jul 13, 2018 at 4:12 PM Simon Peyton Jones > wrote: > >> What is the GlobalVecRegTy field doing? >> >> Don’t you need an Int for the register number, like all the rest? >> >> >> >> Generally, sounds good though >> >> >> >> S >> >> >> >> *From:* Abhiroop Sarkar >> *Sent:* 13 July 2018 14:07 >> *To:* Simon Peyton Jones >> *Cc:* ghc-devs at haskell.org >> *Subject:* Re: Is it possible to enhance the vector STG registers(Xmm, >> Ymm, Zmm) with more information? >> >> >> >> Hello Simon, >> >> >> >> Thanks for your response. I had written a patch[1] for this and the >> approach I took was quite similar to what you pointed out. >> >> >> >> data GlobalReg = ... >> | XmmReg >> >> (Maybe (Length, Width)) >> >> (Maybe GlobalVecRegTy) >> >> >> >> data GlobalVecRegTy = Integer | Float >> >> >> >> -- Width and Length are already defined >> >> data Width = W8 | W16 | W32 ..... >> >> type Length = Int >> >> >> >> >> >> I wrapped the types inside a `Maybe` because when initializing a >> GlobalReg (in the `activeStgRegs`[2] function), I was not sure what value >> to initialize the register with, so I used a `Nothing` when initializing. >> >> >> >> I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` >> constructor: VanillaReg 1 VGcPtr etc >> >> >> >> I think I should modify my patch as well to remove the Maybe and >> initialize with some default Length, Width and GlobalRegTy. Thanks for the >> help. >> >> >> >> Abhiroop >> >> >> >> >> >> [1] https://phabricator.haskell.org/D4922 >> >> [2] >> https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 >> >> >> >> >> On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones < >> simonpj at microsoft.com> wrote: >> >> Abhiroop >> >> >> >> Did anyone reply? >> >> >> >> My instinct is this. You want to use the same register (say Xmm reg 3) in >> different ways. We already have this for ‘VanillaReg’: >> >> data GlobalReg >> >> = VanillaReg -- pointers, unboxed ints and chars >> >> Int -- its number >> >> VGcPtr >> >> | … >> >> >> >> data VGcPtr = VGcPtr | VNonGcPtr >> >> >> >> We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 >> VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is >> register 3 used as a non-pointer. And notice that globalRegType looks at >> this field to decide what type to return. >> >> >> >> I think you can do exactly the same: add a field to Xmm that explains how >> you are gong to divide it up. Would that work? >> >> >> >> Simon >> >> >> >> *From:* ghc-devs *On Behalf Of *Abhiroop >> Sarkar >> *Sent:* 27 June 2018 22:32 >> *To:* ghc-devs at haskell.org >> *Subject:* Is it possible to enhance the vector STG registers(Xmm, Ymm, >> Zmm) with more information? >> >> >> >> Hello all, >> >> >> >> I am currently working on adding support for SIMD operations to the >> native code generator. One of the roadblocks I faced recently was the >> definition of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". >> The `globalRegType` function maps the STG registers to the respective >> `CmmType` datatype. >> >> >> >> For Xmm, Ymm, Zmm registers the function defines globalRegType like this: >> https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 >> >> >> >> >> Consider the case for an Xmm register, the above definition limits an Xmm >> register to hold only vectors of size 4. However we can store 2 64-bit >> Doubles or 16 Int8s or 8 Int16s and so on >> >> >> >> The function `globalRegType` is internally called by the function >> `cmmRegType` ( >> https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275 >> ) >> which is itself used in a number of places in the x86 code generator. >> >> >> >> In fact depending on the result of the `cmmRegType` function is another >> important function `cmmTypeFormat` defined in Format.hs whose result is >> used to print the actual assembly instruction. >> >> >> >> I have extended all the other Format types to include VectorFormats, >> however this definition of the `globalRegType` seems incorrect to me. >> Looking at the signature of the function itself: >> >> >> >> `globalRegType :: DynFlags -> GlobalReg -> CmmType` >> >> its actually difficult to predict the CmmType by just looking at the >> GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how >> do I go about solving this. Should I modify the GlobalReg type to contain >> more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow >> pass the length and width information to the globalRegType function? >> >> >> >> Thanks >> >> Abhiroop Sakar >> >> >> >> >> -- >> >> Kloona - Coming Soon! >> > > > -- > Kloona - Coming Soon! > -- Kloona - Coming Soon! -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Fri Jul 13 22:22:36 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Fri, 13 Jul 2018 22:22:36 +0000 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: Typesetting is really strange here. Hard to read. Yes, let’s get rid of those Maybes if poss. What does Nothing mean??? Does this mean that Xmm regs really can contain multiple integers or multiple floats? I did not know that. the general direction looks right. Thanks Simon From: Abhiroop Sarkar Sent: 13 July 2018 16:32 To: Simon Peyton Jones Cc: ghc-devs at haskell.org Subject: Re: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? The formatting of the function[1] got spoilt in the last mail. It is modified from: globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) to globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m in case fromMaybe Float ty of Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thank, Abhiroop [1] https://github.com/Abhiroop/ghc-1/blob/wip/simd-ncg-support/compiler/cmm/CmmExpr.hs#L596 On Fri, Jul 13, 2018 at 4:26 PM Abhiroop Sarkar > wrote: Sorry I mistyped and forgot to include the register number in the mail but it is present in the patch. So it is: data GlobalReg = ... | XmmReg !Int (Maybe (Length, Width)) (Maybe GlobalVecRegTy) The purpose of the GlobalVecRegTy field is to rewrite this function definition : https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) and rewrite it to : globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m -- a random default value of 2 and W64 chosen in case fromMaybe Float ty of Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thanks, Abhiroop On Fri, Jul 13, 2018 at 4:12 PM Simon Peyton Jones > wrote: What is the GlobalVecRegTy field doing? Don’t you need an Int for the register number, like all the rest? Generally, sounds good though S From: Abhiroop Sarkar > Sent: 13 July 2018 14:07 To: Simon Peyton Jones > Cc: ghc-devs at haskell.org Subject: Re: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? Hello Simon, Thanks for your response. I had written a patch[1] for this and the approach I took was quite similar to what you pointed out. data GlobalReg = ... | XmmReg (Maybe (Length, Width)) (Maybe GlobalVecRegTy) data GlobalVecRegTy = Integer | Float -- Width and Length are already defined data Width = W8 | W16 | W32 ..... type Length = Int I wrapped the types inside a `Maybe` because when initializing a GlobalReg (in the `activeStgRegs`[2] function), I was not sure what value to initialize the register with, so I used a `Nothing` when initializing. I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` constructor: VanillaReg 1 VGcPtr etc I think I should modify my patch as well to remove the Maybe and initialize with some default Length, Width and GlobalRegTy. Thanks for the help. Abhiroop [1] https://phabricator.haskell.org/D4922 [2] https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones > wrote: Abhiroop Did anyone reply? My instinct is this. You want to use the same register (say Xmm reg 3) in different ways. We already have this for ‘VanillaReg’: data GlobalReg = VanillaReg -- pointers, unboxed ints and chars Int -- its number VGcPtr | … data VGcPtr = VGcPtr | VNonGcPtr We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is register 3 used as a non-pointer. And notice that globalRegType looks at this field to decide what type to return. I think you can do exactly the same: add a field to Xmm that explains how you are gong to divide it up. Would that work? Simon From: ghc-devs > On Behalf Of Abhiroop Sarkar Sent: 27 June 2018 22:32 To: ghc-devs at haskell.org Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? Hello all, I am currently working on adding support for SIMD operations to the native code generator. One of the roadblocks I faced recently was the definition of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The `globalRegType` function maps the STG registers to the respective `CmmType` datatype. For Xmm, Ymm, Zmm registers the function defines globalRegType like this: https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 Consider the case for an Xmm register, the above definition limits an Xmm register to hold only vectors of size 4. However we can store 2 64-bit Doubles or 16 Int8s or 8 Int16s and so on The function `globalRegType` is internally called by the function `cmmRegType` (https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275) which is itself used in a number of places in the x86 code generator. In fact depending on the result of the `cmmRegType` function is another important function `cmmTypeFormat` defined in Format.hs whose result is used to print the actual assembly instruction. I have extended all the other Format types to include VectorFormats, however this definition of the `globalRegType` seems incorrect to me. Looking at the signature of the function itself: `globalRegType :: DynFlags -> GlobalReg -> CmmType` its actually difficult to predict the CmmType by just looking at the GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how do I go about solving this. Should I modify the GlobalReg type to contain more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow pass the length and width information to the globalRegType function? Thanks Abhiroop Sakar -- Kloona - Coming Soon! -- Kloona - Coming Soon! -- Kloona - Coming Soon! -------------- next part -------------- An HTML attachment was scrubbed... URL: From mail at joachim-breitner.de Sat Jul 14 19:03:41 2018 From: mail at joachim-breitner.de (Joachim Breitner) Date: Sat, 14 Jul 2018 15:03:41 -0400 Subject: Request for Nominations to the GHC Steering Committee Message-ID: <4fcd78fed019414a0b90884c4b72f42aa09aa6ea.camel@joachim-breitner.de> Dear Haskell community, the GHC Steering committee is seeking nominations for a new member. The committee scrutinizes, nitpicks, improves, weights and eventually accepts or rejects proposals that extend or change the language supported by GHC and other (public-facing) aspects of GHC. Our processes are described at https://github.com/ghc-proposals/ghc-proposals which is also the GitHub repository where proposals are proposed. We are looking for a member who has the ability * to understand such language extension proposals, * to find holes and missing corner cases in the specifications, * foresee the interaction with other language features and specifications, * comment constructively and improve the proposals, * judge the cost/benefit ratio and * finally come to a justifiable conclusion. We look for committee members who have some of these properties: * have substantial experience in writing Haskell applications or libraries, which they can use to inform judgements about the utility or otherwise of proposed features, * have made active contributions to the Haskell community, for some time, * have expertise in language design and implementation, in either Haskell or related languages, which they can share with us. The committee’s work requires a small, but non-trivial amount of time, especially when you are assigned a proposal for shepherding. We estimate the workload to be around 2 hours per week, and our process works best if members usually respond to technical emails within 1-2 weeks (within days is even better). Please keep that in mind if your email inbox is already overflowing. The GHC developers themselves are already well represented already. We seek Haskell _users_ more than GHC hackers. There is no shortage of people who are very eager to get fancy new features into the language, both in the committee and the wider community. But each new feature imposes a cost, to implement, to learn, (particularly) through its unexpected interaction with other features. We need to strike a balance, one that encourages innovation (as GHC always has) while still making Haskell attractive for real-world production use and for teaching. We therefore explicitly invite “conservative” members of the community to join the committee. To make a nomination, please send an email to me (as the committee secretary) at mail at joachim-breitner.de until July 23th. I will distribute the nominations among the committee, and we will keep the nominations and our deliberations private. We explicitly encourage self-nominations. You can nominate others, but please obtain their explicit consent to do so. (We don’t want to choose someone who turns out to be unable to serve.) On behalf of the committee, Joachim Breitner -- Joachim Breitner mail at joachim-breitner.de http://www.joachim-breitner.de/ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: This is a digitally signed message part URL: From simonpj at microsoft.com Sun Jul 15 14:26:18 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Sun, 15 Jul 2018 14:26:18 +0000 Subject: [commit: ghc] master: Remove ASSERTion about increasing TcLevels (a754a42) In-Reply-To: <20180715012749.EECFB3A8E4@ghc.haskell.org> References: <20180715012749.EECFB3A8E4@ghc.haskell.org> Message-ID: Richard, weren't you going to open a ticket to track this? It ought to hold! Simon | -----Original Message----- | From: ghc-commits On Behalf Of | git at git.haskell.org | Sent: 15 July 2018 02:28 | To: ghc-commits at haskell.org | Subject: [commit: ghc] master: Remove ASSERTion about increasing TcLevels | (a754a42) | | Repository : ssh://git at git.haskell.org/ghc | | On branch : master | Link : | https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fghc.haske | ll.org%2Ftrac%2Fghc%2Fchangeset%2Fa754a420b53cd2210ef60dcd695bf3334af2e40 | 0%2Fghc&data=02%7C01%7Csimonpj%40microsoft.com%7C9b543b1c10fd4fcae84c | 08d5e9f2325b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636672148791196 | 487&sdata=o8HfV%2FQqEfk0wKuW1XStZXzkn%2FkyDbw8DsfBIpTnzpw%3D&rese | rved=0 | | >--------------------------------------------------------------- | | commit a754a420b53cd2210ef60dcd695bf3334af2e400 | Author: Richard Eisenberg | Date: Thu Jul 12 16:10:34 2018 -0400 | | Remove ASSERTion about increasing TcLevels | | This removes an ASSERTion that TcLevels should increase by | exactly one in every implication. While this is a sensible | goal, it's not true today, and we should not be crippling | DEBUG for everyone while debugging this. | | The ASSERT was added in 261dd83cacec71edd551e9c581d05285c9ea3226 | | | >--------------------------------------------------------------- | | a754a420b53cd2210ef60dcd695bf3334af2e400 | compiler/typecheck/TcSimplify.hs | 8 +++++++- | 1 file changed, 7 insertions(+), 1 deletion(-) | | diff --git a/compiler/typecheck/TcSimplify.hs | b/compiler/typecheck/TcSimplify.hs | index 13a3f73..c57ef56 100644 | --- a/compiler/typecheck/TcSimplify.hs | +++ b/compiler/typecheck/TcSimplify.hs | @@ -1495,7 +1495,8 @@ solveImplication imp@(Implic { ic_tclvl = tclvl | = do { inerts <- getTcSInerts | ; traceTcS "solveImplication {" (ppr imp $$ text "Inerts" <+> ppr | inerts) | | - ; when debugIsOn check_tc_level | + -- commented out; see `where` clause below | + -- ; when debugIsOn check_tc_level | | -- Solve the nested constraints | ; (no_given_eqs, given_insols, residual_wanted) | @@ -1544,10 +1545,15 @@ solveImplication imp@(Implic { ic_tclvl = tclvl | -- TcLevels must be strictly increasing (see (ImplicInv) in | -- Note [TcLevel and untouchable type variables] in TcType), | -- and in fact I thinkthey should always increase one level at a | time. | + | + -- Though sensible, this check causes lots of testsuite failures. It | is | + -- remaining commented out for now. | + {- | check_tc_level = do { cur_lvl <- TcS.getTcLevel | ; MASSERT2( tclvl == pushTcLevel cur_lvl | , text "Cur lvl =" <+> ppr cur_lvl $$ | text "Imp lvl =" <+> ppr tclvl ) } | + -} | | ---------------------- | setImplicationStatus :: Implication -> TcS (Maybe Implication) | | _______________________________________________ | ghc-commits mailing list | ghc-commits at haskell.org | https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.hask | ell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc- | commits&data=02%7C01%7Csimonpj%40microsoft.com%7C9b543b1c10fd4fcae84c | 08d5e9f2325b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C1%7C636672148791196 | 487&sdata=V1pVxb4Crgjv04p9ZCGx7BDis0eXSV2fV9MDOPZXZEA%3D&reserved | =0 From ben at well-typed.com Mon Jul 16 01:07:15 2018 From: ben at well-typed.com (Ben Gamari) Date: Sun, 15 Jul 2018 21:07:15 -0400 Subject: [ANNOUNCE] GHC 8.6.1-alpha2 available Message-ID: <87fu0kng3l.fsf@smart-cactus.org> The GHC development team is pleased to announce the second alpha release leading up to GHC 8.6.1. The usual release artifacts are available from https://downloads.haskell.org/~ghc/8.6.1-alpha2 This alpha fixes many of the bugs reported in the first alpha and brings many of the core libraries to their (hopefully) final release versions. Unfortunately, the documentation troubles affecting the first alpha haven't quite been resolved in this release. Consequently you will again find there is no documentation uploaded. However, let us know if anything else is amiss. Thanks for your help! Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From carter.schonwald at gmail.com Tue Jul 17 03:07:26 2018 From: carter.schonwald at gmail.com (Carter Schonwald) Date: Mon, 16 Jul 2018 23:07:26 -0400 Subject: Is it possible to enhance the vector STG registers(Xmm, Ymm, Zmm) with more information? In-Reply-To: References: Message-ID: Indeed xmm registers can hold richer structures than just scalar floats and doubles. They can do 4 32 bit floats or 32bit ints or words or 2 64 bit doubles or 64bit ints or words. Or scalar 32/64bit ints or words! (Distinct from the gpr registers!) Xmm registers are the lower half of ymm/ lower quarter of zmm simd registers (when they exist on newer x86-64 cpus ) Agreed, the maybes are definitely going to be removed before end of summer. Though Andreas and I may try to go over things a tad closely in our code reviews On Fri, Jul 13, 2018 at 6:22 PM Simon Peyton Jones via ghc-devs < ghc-devs at haskell.org> wrote: > Typesetting is really strange here. Hard to read. > > > > Yes, let’s get rid of those Maybes if poss. What does Nothing mean??? > > > > Does this mean that Xmm regs really can contain multiple integers or > multiple floats? I did not know that. > > > > the general direction looks right. > > > > Thanks > > > > Simon > > > > *From:* Abhiroop Sarkar > *Sent:* 13 July 2018 16:32 > > > *To:* Simon Peyton Jones > *Cc:* ghc-devs at haskell.org > *Subject:* Re: Is it possible to enhance the vector STG registers(Xmm, > Ymm, Zmm) with more information? > > > > The formatting of the function[1] got spoilt in the last mail. It is > modified from: > > > > globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) > > > > > > to > > > > > > globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m > > in case fromMaybe Float ty of > > Integer -> cmmVec l > (cmmBits w) > > Float -> cmmVec l > (cmmFloat w) > > > > Thank, > > Abhiroop > > > > [1] > https://github.com/Abhiroop/ghc-1/blob/wip/simd-ncg-support/compiler/cmm/CmmExpr.hs#L596 > > > > > On Fri, Jul 13, 2018 at 4:26 PM Abhiroop Sarkar > wrote: > > Sorry I mistyped and forgot to include the register number in the mail but > it is present in the patch. So it is: > > > > data GlobalReg = ... > | XmmReg !Int > > (Maybe (Length, Width)) > > (Maybe GlobalVecRegTy) > > The purpose of the GlobalVecRegTy field is to rewrite this function > definition : > https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 > > > globalRegType _ (XmmReg _) = cmmVec 4 (cmmBits W32) > > > > and rewrite it to : > > > > globalRegType _ (XmmReg _ m ty) = let (l,w) = fromMaybe (2, W64) m -- a > random default value of 2 and W64 chosen in case fromMaybe Float ty of > Integer -> cmmVec l (cmmBits w) Float -> cmmVec l (cmmFloat w) Thanks, > Abhiroop > > > > > > On Fri, Jul 13, 2018 at 4:12 PM Simon Peyton Jones > wrote: > > What is the GlobalVecRegTy field doing? > > Don’t you need an Int for the register number, like all the rest? > > > > Generally, sounds good though > > > > S > > > > *From:* Abhiroop Sarkar > *Sent:* 13 July 2018 14:07 > *To:* Simon Peyton Jones > *Cc:* ghc-devs at haskell.org > *Subject:* Re: Is it possible to enhance the vector STG registers(Xmm, > Ymm, Zmm) with more information? > > > > Hello Simon, > > > > Thanks for your response. I had written a patch[1] for this and the > approach I took was quite similar to what you pointed out. > > > > data GlobalReg = ... > | XmmReg > > (Maybe (Length, Width)) > > (Maybe GlobalVecRegTy) > > > > data GlobalVecRegTy = Integer | Float > > > > -- Width and Length are already defined > > data Width = W8 | W16 | W32 ..... > > type Length = Int > > > > > > I wrapped the types inside a `Maybe` because when initializing a GlobalReg > (in the `activeStgRegs`[2] function), I was not sure what value to > initialize the register with, so I used a `Nothing` when initializing. > > > > I see now in the case of `VanillaReg` it is initialized with the `VGcPtr` > constructor: VanillaReg 1 VGcPtr etc > > > > I think I should modify my patch as well to remove the Maybe and > initialize with some default Length, Width and GlobalRegTy. Thanks for the > help. > > > > Abhiroop > > > > > > [1] https://phabricator.haskell.org/D4922 > > [2] > https://github.com/ghc/ghc/blob/master/includes/CodeGen.Platform.hs#L450-L623 > > > > > On Fri, Jul 13, 2018 at 10:58 AM Simon Peyton Jones > wrote: > > Abhiroop > > > > Did anyone reply? > > > > My instinct is this. You want to use the same register (say Xmm reg 3) in > different ways. We already have this for ‘VanillaReg’: > > data GlobalReg > > = VanillaReg -- pointers, unboxed ints and chars > > Int -- its number > > VGcPtr > > | … > > > > data VGcPtr = VGcPtr | VNonGcPtr > > > > We use VanillaReg for both pointers and non-pointers, so (VanillaReg 3 > VGcPtr) is register 3 used as a pointer, and (VanillaReg 3 VNonGcPtr) is > register 3 used as a non-pointer. And notice that globalRegType looks at > this field to decide what type to return. > > > > I think you can do exactly the same: add a field to Xmm that explains how > you are gong to divide it up. Would that work? > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Abhiroop > Sarkar > *Sent:* 27 June 2018 22:32 > *To:* ghc-devs at haskell.org > *Subject:* Is it possible to enhance the vector STG registers(Xmm, Ymm, > Zmm) with more information? > > > > Hello all, > > > > I am currently working on adding support for SIMD operations to the native > code generator. One of the roadblocks I faced recently was the definition > of the `globalRegType` function in "compiler/cmm/CmmExpr.hs". The > `globalRegType` function maps the STG registers to the respective `CmmType` > datatype. > > > > For Xmm, Ymm, Zmm registers the function defines globalRegType like this: > https://github.com/ghc/ghc/blob/master/compiler/cmm/CmmExpr.hs#L585-L587 > > > > > Consider the case for an Xmm register, the above definition limits an Xmm > register to hold only vectors of size 4. However we can store 2 64-bit > Doubles or 16 Int8s or 8 Int16s and so on > > > > The function `globalRegType` is internally called by the function > `cmmRegType` ( > https://github.com/ghc/ghc/blob/838b69032566ce6ab3918d70e8d5e098d0bcee02/compiler/cmm/CmmExpr.hs#L275 > ) > which is itself used in a number of places in the x86 code generator. > > > > In fact depending on the result of the `cmmRegType` function is another > important function `cmmTypeFormat` defined in Format.hs whose result is > used to print the actual assembly instruction. > > > > I have extended all the other Format types to include VectorFormats, > however this definition of the `globalRegType` seems incorrect to me. > Looking at the signature of the function itself: > > > > `globalRegType :: DynFlags -> GlobalReg -> CmmType` > > its actually difficult to predict the CmmType by just looking at the > GlobalReg in case of Xmm, Ymm, Zmm. So thats why my original question how > do I go about solving this. Should I modify the GlobalReg type to contain > more information like Width and Length(for Xmm, Ymm, Zmm) or do I somehow > pass the length and width information to the globalRegType function? > > > > Thanks > > Abhiroop Sakar > > > > > -- > > Kloona - Coming Soon! > > > > > -- > > Kloona - Coming Soon! > > > > > -- > > Kloona - Coming Soon! > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chessai1996 at gmail.com Tue Jul 17 03:20:22 2018 From: chessai1996 at gmail.com (Daniel Cartwright) Date: Mon, 16 Jul 2018 23:20:22 -0400 Subject: Cmm learning tools Message-ID: Hello all, I've recently become interested in learning Cmm, but cannot seem to find any concrete learning resources or extensive papers. It doesn't help that the web seems to contain a lot of useless information for a newcomer to Cmm. If anyone could provide some reading material about Cmm, I would be most grateful. -------------- next part -------------- An HTML attachment was scrubbed... URL: From ggreif at gmail.com Tue Jul 17 05:49:21 2018 From: ggreif at gmail.com (Gabor Greif) Date: Tue, 17 Jul 2018 07:49:21 +0200 Subject: Cmm learning tools In-Reply-To: References: Message-ID: Hello Daniel, a quick web search brought up this manual: https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf Please note that Cmm is slightly different, but it should get you started. Cheers, Gabor Em ter, 17 de jul de 2018 às 05:20, Daniel Cartwright escreveu: > Hello all, I've recently become interested in learning Cmm, but cannot > seem to find any concrete learning resources or extensive papers. It > doesn't help that the web seems to contain a lot of useless information for > a newcomer to Cmm. If anyone could provide some reading material about Cmm, > I would be most grateful. > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -------------- next part -------------- An HTML attachment was scrubbed... URL: From chessai1996 at gmail.com Tue Jul 17 06:00:15 2018 From: chessai1996 at gmail.com (Daniel Cartwright) Date: Tue, 17 Jul 2018 02:00:15 -0400 Subject: Cmm learning tools In-Reply-To: References: Message-ID: Thanks, I'll check it out. P.S.: Apologies if my request seemed low-effort w.r.t. searching, I did spend a good 15 minutes doing so before asking, and was unable to find the document you just produced. On Tue, Jul 17, 2018, 1:49 AM Gabor Greif wrote: > Hello Daniel, > > a quick web search brought up this manual: > > > https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf > > Please note that Cmm is slightly different, but it should get you started. > > Cheers, > > Gabor > > Em ter, 17 de jul de 2018 às 05:20, Daniel Cartwright < > chessai1996 at gmail.com> escreveu: > >> Hello all, I've recently become interested in learning Cmm, but cannot >> seem to find any concrete learning resources or extensive papers. It >> doesn't help that the web seems to contain a lot of useless information for >> a newcomer to Cmm. If anyone could provide some reading material about Cmm, >> I would be most grateful. >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ggreif at gmail.com Tue Jul 17 06:16:34 2018 From: ggreif at gmail.com (Gabor Greif) Date: Tue, 17 Jul 2018 08:16:34 +0200 Subject: Cmm learning tools In-Reply-To: References: Message-ID: No worries! I searched for C--, which was its name back in the day. There are a bunch of other conference papers in the "GHC commentary" too. Cheers, Gabor Em ter, 17 de jul de 2018 às 08:00, Daniel Cartwright escreveu: > Thanks, I'll check it out. > > P.S.: Apologies if my request seemed low-effort w.r.t. searching, I did > spend a good 15 minutes doing so before asking, and was unable to find the > document you just produced. > > On Tue, Jul 17, 2018, 1:49 AM Gabor Greif wrote: > >> Hello Daniel, >> >> a quick web search brought up this manual: >> >> >> https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf >> >> Please note that Cmm is slightly different, but it should get you started. >> >> Cheers, >> >> Gabor >> >> Em ter, 17 de jul de 2018 às 05:20, Daniel Cartwright < >> chessai1996 at gmail.com> escreveu: >> >>> Hello all, I've recently become interested in learning Cmm, but cannot >>> seem to find any concrete learning resources or extensive papers. It >>> doesn't help that the web seems to contain a lot of useless information for >>> a newcomer to Cmm. If anyone could provide some reading material about Cmm, >>> I would be most grateful. >>> _______________________________________________ >>> ghc-devs mailing list >>> ghc-devs at haskell.org >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >>> >> -------------- next part -------------- An HTML attachment was scrubbed... URL: From rae at cs.brynmawr.edu Tue Jul 17 19:09:37 2018 From: rae at cs.brynmawr.edu (Richard Eisenberg) Date: Tue, 17 Jul 2018 15:09:37 -0400 Subject: submodule repos on GitHub Message-ID: Hi devs, The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) recommends cloning GHC with > git clone --recursive git://github.com/ghc/ghc I believe my students did this with success several weeks ago. But trying it again today leads to trouble with some submodules, e.g.: > Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... > fatal: remote error: > ghc/packages/Cabal is not a valid repository name > Email support at github.com for help > fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed > Is there something wrong in the internets? Or should we update the Newcomers page? Thanks, Richard From matthewtpickering at gmail.com Tue Jul 17 19:14:04 2018 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Tue, 17 Jul 2018 20:14:04 +0100 Subject: submodule repos on GitHub In-Reply-To: References: Message-ID: Did you do the line above as well? ``` git config --global url."git://github.com/ghc/packages-".insteadOf git://github.com/ghc/packages/ ``` On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg wrote: > Hi devs, > > The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) recommends cloning GHC with > >> git clone --recursive git://github.com/ghc/ghc > > I believe my students did this with success several weeks ago. But trying it again today leads to trouble with some submodules, e.g.: > >> Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... >> fatal: remote error: >> ghc/packages/Cabal is not a valid repository name >> Email support at github.com for help >> fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed >> > > Is there something wrong in the internets? Or should we update the Newcomers page? > > Thanks, > Richard > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From a.pelenitsyn at gmail.com Tue Jul 17 19:24:27 2018 From: a.pelenitsyn at gmail.com (Artem Pelenitsyn) Date: Tue, 17 Jul 2018 21:24:27 +0200 Subject: submodule repos on GitHub In-Reply-To: References: Message-ID: The other page https://ghc.haskell.org/trac/ghc/wiki/Building/GettingTheSources suggests: git clone --recursive git://git.haskell.org/ghc.git This always works to me. -- Best wishes, Artem вт, 17 июля 2018 г. в 21:14, Matthew Pickering : > Did you do the line above as well? > > ``` > git config --global url."git://github.com/ghc/packages-".insteadOf > git://github.com/ghc/packages/ > ``` > > On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg > wrote: > > Hi devs, > > > > The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) > recommends cloning GHC with > > > >> git clone --recursive git://github.com/ghc/ghc > > > > I believe my students did this with success several weeks ago. But > trying it again today leads to trouble with some submodules, e.g.: > > > >> Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... > >> fatal: remote error: > >> ghc/packages/Cabal is not a valid repository name > >> Email support at github.com for help > >> fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into > submodule path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed > >> > > > > Is there something wrong in the internets? Or should we update the > Newcomers page? > > > > Thanks, > > Richard > > _______________________________________________ > > ghc-devs mailing list > > ghc-devs at haskell.org > > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Tue Jul 17 19:37:01 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Tue, 17 Jul 2018 19:37:01 +0000 Subject: Cmm learning tools In-Reply-To: References: Message-ID: Here’s a little bit of background. * C—started when Norman Ramsey and I decided to have a stab at designing a “portable assembly language”. * Our primary motivation was GHC: I wanted to clearly separate the business of turning lambda calculus into an imperative language, from that of turning the imperative language into machine instructions for a particular CPU architecture. But our intention was that many compilers, not just GHC, could generate C--. * We published a series of papers describing why this goal is less easy than it looks (tail calls, garbage collection, exception handling, lightweight threading). * But then along came LLVM. It’s goal was the same (some differences in emphasis). And LLVM “won” – it gained mindshare, a corporate sponsor, an ecosystem. I’m quite happy about this – hundreds of person-years invested by someone else 😊. * As a result C—is really a GHC-only language (though nothing stops other compilers from using it) * Cmm is the GHC data type (defined in compiler/cmm) that represents C—syntax trees internally in GHC. * We do parse foo.cmm for a few runtime system support files; e.g. rts/Apply.cmm * But most Cmm is generated from STG by compiler/codeGen * We do CPS conversion on Cmm * …and then either emit LLVM, or generate assembly code directly (compiler/nativeGen) I hope that helps a bit. Simon From: ghc-devs On Behalf Of Gabor Greif Sent: 17 July 2018 07:17 To: Daniel Cartwright Cc: ghc-devs at haskell.org Subject: Re: Cmm learning tools No worries! I searched for C--, which was its name back in the day. There are a bunch of other conference papers in the "GHC commentary" too. Cheers, Gabor Em ter, 17 de jul de 2018 às 08:00, Daniel Cartwright > escreveu: Thanks, I'll check it out. P.S.: Apologies if my request seemed low-effort w.r.t. searching, I did spend a good 15 minutes doing so before asking, and was unable to find the document you just produced. On Tue, Jul 17, 2018, 1:49 AM Gabor Greif > wrote: Hello Daniel, a quick web search brought up this manual: https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf Please note that Cmm is slightly different, but it should get you started. Cheers, Gabor Em ter, 17 de jul de 2018 às 05:20, Daniel Cartwright > escreveu: Hello all, I've recently become interested in learning Cmm, but cannot seem to find any concrete learning resources or extensive papers. It doesn't help that the web seems to contain a lot of useless information for a newcomer to Cmm. If anyone could provide some reading material about Cmm, I would be most grateful. _______________________________________________ ghc-devs mailing list ghc-devs at haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs -------------- next part -------------- An HTML attachment was scrubbed... URL: From chessai1996 at gmail.com Tue Jul 17 19:41:14 2018 From: chessai1996 at gmail.com (Daniel Cartwright) Date: Tue, 17 Jul 2018 15:41:14 -0400 Subject: Cmm learning tools In-Reply-To: References: Message-ID: Thank you, that was very illuminating. On Tue, Jul 17, 2018, 3:37 PM Simon Peyton Jones wrote: > Here’s a little bit of background. > > > > - C—started when Norman Ramsey and I decided to have a stab at > designing a “portable assembly language”. > - Our primary motivation was GHC: I wanted to clearly separate the > business of turning lambda calculus into an imperative language, from that > of turning the imperative language into machine instructions for a > particular CPU architecture. But our intention was that many compilers, > not just GHC, could generate C--. > - We published a series of papers describing why this goal is less > easy than it looks (tail calls, garbage collection, exception handling, > lightweight threading). > - But then along came LLVM. It’s goal was the same (some differences > in emphasis). And LLVM “won” – it gained mindshare, a corporate sponsor, > an ecosystem. I’m quite happy about this – hundreds of person-years > invested by someone else 😊. > - As a result C—is really a GHC-only language (though nothing stops > other compilers from using it) > - Cmm is the GHC data type (defined in compiler/cmm) that > represents C—syntax trees internally in GHC. > - We do parse foo.cmm for a few runtime system support files; e.g. > rts/Apply.cmm > - But most Cmm is generated from STG by compiler/codeGen > - We do CPS conversion on Cmm > - …and then either emit LLVM, or generate assembly code directly > (compiler/nativeGen) > > > > I hope that helps a bit. > > > > Simon > > > > *From:* ghc-devs *On Behalf Of *Gabor Greif > *Sent:* 17 July 2018 07:17 > *To:* Daniel Cartwright > *Cc:* ghc-devs at haskell.org > *Subject:* Re: Cmm learning tools > > > > No worries! I searched for C--, which was its name back in the day. There > are a bunch of other conference papers in the "GHC commentary" too. > > > > Cheers, > > > > Gabor > > > > > > Em ter, 17 de jul de 2018 às 08:00, Daniel Cartwright < > chessai1996 at gmail.com> escreveu: > > Thanks, I'll check it out. > > > > P.S.: Apologies if my request seemed low-effort w.r.t. searching, I did > spend a good 15 minutes doing so before asking, and was unable to find the > document you just produced. > > > > On Tue, Jul 17, 2018, 1:49 AM Gabor Greif wrote: > > Hello Daniel, > > > > a quick web search brought up this manual: > > > > > https://www.microsoft.com/en-us/research/wp-content/uploads/1998/01/pal-manual.pdf > > > > > Please note that Cmm is slightly different, but it should get you started. > > > > Cheers, > > > > Gabor > > > > Em ter, 17 de jul de 2018 às 05:20, Daniel Cartwright < > chessai1996 at gmail.com> escreveu: > > Hello all, I've recently become interested in learning Cmm, but cannot > seem to find any concrete learning resources or extensive papers. It > doesn't help that the web seems to contain a lot of useless information for > a newcomer to Cmm. If anyone could provide some reading material about Cmm, > I would be most grateful. > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From omeragacan at gmail.com Tue Jul 17 19:45:19 2018 From: omeragacan at gmail.com (=?UTF-8?Q?=C3=96mer_Sinan_A=C4=9Facan?=) Date: Tue, 17 Jul 2018 22:45:19 +0300 Subject: Write barrier for stack updates? Message-ID: Hi Simon, I'm a bit confused about stack updates in generated code and write barriers. Because stacks are mutable (we push new stuff or maybe even update existing frames?) it seems to me that we need one these two, similar to other mutable objects: - Always keep all stacks in mut_lists - Add write barriers before updates However looking at some of the primops like catch# and the code generator that generates code that pushes update frames I can't see any write barriers and the GC doesn't always add stacks to mut_lists (unlike e.g. MUT_ARR_PTRS). I also thought maybe we add a stack to a mut_list when we switch to the TSO that owns it or we park the TSO, but I don't see anything relevant in Schedule.c or ThreadPaused.c. So I'm lost. Could you say a few words about how we deal with mutated stacks in the GC, so that if an old stack points to a young object we don't collect the young object in a minor GC? Thanks, Ömer From rae at cs.brynmawr.edu Tue Jul 17 20:59:22 2018 From: rae at cs.brynmawr.edu (Richard Eisenberg) Date: Tue, 17 Jul 2018 16:59:22 -0400 Subject: submodule repos on GitHub In-Reply-To: References: Message-ID: <368AACCF-A472-41B4-9379-30D16ADAEDA9@cs.brynmawr.edu> Aha. I had just jumped to the chase. But is there a reason we don't just point everyone (including newcomers) to git://git.haskell.org/ghc.git ? That's what I always use myself, and it seems simpler to do so. Richard > On Jul 17, 2018, at 3:14 PM, Matthew Pickering wrote: > > Did you do the line above as well? > > ``` > git config --global url."git://github.com/ghc/packages-".insteadOf > git://github.com/ghc/packages/ > ``` > > On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg wrote: >> Hi devs, >> >> The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) recommends cloning GHC with >> >>> git clone --recursive git://github.com/ghc/ghc >> >> I believe my students did this with success several weeks ago. But trying it again today leads to trouble with some submodules, e.g.: >> >>> Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... >>> fatal: remote error: >>> ghc/packages/Cabal is not a valid repository name >>> Email support at github.com for help >>> fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed >>> >> >> Is there something wrong in the internets? Or should we update the Newcomers page? >> >> Thanks, >> Richard >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs -------------- next part -------------- An HTML attachment was scrubbed... URL: From haskelier.artem at gmail.com Tue Jul 17 21:04:26 2018 From: haskelier.artem at gmail.com (Artem Pelenitsyn) Date: Tue, 17 Jul 2018 23:04:26 +0200 Subject: submodule repos on GitHub In-Reply-To: <368AACCF-A472-41B4-9379-30D16ADAEDA9@cs.brynmawr.edu> References: <368AACCF-A472-41B4-9379-30D16ADAEDA9@cs.brynmawr.edu> Message-ID: I personally consider this to be most reasonable. But maybe I oversee something… -- Best, Artem вт, 17 июля 2018 г. в 22:59, Richard Eisenberg : > Aha. I had just jumped to the chase. > > But is there a reason we don't just point everyone (including newcomers) > to git://git.haskell.org/ghc.git ? That's what I always use myself, and > it seems simpler to do so. > > Richard > > > On Jul 17, 2018, at 3:14 PM, Matthew Pickering < > matthewtpickering at gmail.com> wrote: > > Did you do the line above as well? > > ``` > git config --global url."git://github.com/ghc/packages-".insteadOf > git://github.com/ghc/packages/ > ``` > > On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg > wrote: > > Hi devs, > > The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) > recommends cloning GHC with > > git clone --recursive git://github.com/ghc/ghc > > > I believe my students did this with success several weeks ago. But trying > it again today leads to trouble with some submodules, e.g.: > > Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... > fatal: remote error: > ghc/packages/Cabal is not a valid repository name > Email support at github.com for help > fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule > path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed > > > Is there something wrong in the internets? Or should we update the > Newcomers page? > > Thanks, > Richard > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -------------- next part -------------- An HTML attachment was scrubbed... URL: From matthewtpickering at gmail.com Tue Jul 17 21:08:52 2018 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Tue, 17 Jul 2018 22:08:52 +0100 Subject: submodule repos on GitHub In-Reply-To: References: <368AACCF-A472-41B4-9379-30D16ADAEDA9@cs.brynmawr.edu> Message-ID: It was changed when a large number of people were cloning the git.haskell.org repo after being posted on reddit and it was causing load issues. There is a comment to this effect in the newcomers page source. {{{#!comment -- Note: when this page got mentioned on reddit, git.haskell.org couldn't handle the load, so we now tell newcomers to clone from github, even though it requires one more initial step. git clone --recursive git://git.haskell.org/ghc.git }}} Matt On Tue, Jul 17, 2018 at 10:04 PM, Artem Pelenitsyn wrote: > I personally consider this to be most reasonable. But maybe I oversee > something… > > -- > Best, Artem > вт, 17 июля 2018 г. в 22:59, Richard Eisenberg : >> >> Aha. I had just jumped to the chase. >> >> But is there a reason we don't just point everyone (including newcomers) >> to git://git.haskell.org/ghc.git ? That's what I always use myself, and it >> seems simpler to do so. >> >> Richard >> >> >> On Jul 17, 2018, at 3:14 PM, Matthew Pickering >> wrote: >> >> Did you do the line above as well? >> >> ``` >> git config --global url."git://github.com/ghc/packages-".insteadOf >> git://github.com/ghc/packages/ >> ``` >> >> On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg >> wrote: >> >> Hi devs, >> >> The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) >> recommends cloning GHC with >> >> git clone --recursive git://github.com/ghc/ghc >> >> >> I believe my students did this with success several weeks ago. But trying >> it again today leads to trouble with some submodules, e.g.: >> >> Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... >> fatal: remote error: >> ghc/packages/Cabal is not a valid repository name >> Email support at github.com for help >> fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule >> path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed >> >> >> Is there something wrong in the internets? Or should we update the >> Newcomers page? >> >> Thanks, >> Richard >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >> >> >> _______________________________________________ >> ghc-devs mailing list >> ghc-devs at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From rae at cs.brynmawr.edu Tue Jul 17 21:16:33 2018 From: rae at cs.brynmawr.edu (Richard Eisenberg) Date: Tue, 17 Jul 2018 17:16:33 -0400 Subject: submodule repos on GitHub In-Reply-To: References: <368AACCF-A472-41B4-9379-30D16ADAEDA9@cs.brynmawr.edu> Message-ID: <7295626A-7803-47CC-99FA-69BA348ECB33@cs.brynmawr.edu> How clever of someone to note that. I stand down. Thanks! > On Jul 17, 2018, at 5:08 PM, Matthew Pickering wrote: > > It was changed when a large number of people were cloning the > git.haskell.org repo after being posted on reddit and it was causing > load issues. > > There is a comment to this effect in the newcomers page source. > > {{{#!comment > -- Note: when this page got mentioned on reddit, git.haskell.org > couldn't handle the load, so we now tell newcomers to clone from > github, even though it requires one more initial step. > git clone --recursive git://git.haskell.org/ghc.git > }}} > > > Matt > > On Tue, Jul 17, 2018 at 10:04 PM, Artem Pelenitsyn > wrote: >> I personally consider this to be most reasonable. But maybe I oversee >> something… >> >> -- >> Best, Artem >> вт, 17 июля 2018 г. в 22:59, Richard Eisenberg : >>> >>> Aha. I had just jumped to the chase. >>> >>> But is there a reason we don't just point everyone (including newcomers) >>> to git://git.haskell.org/ghc.git ? That's what I always use myself, and it >>> seems simpler to do so. >>> >>> Richard >>> >>> >>> On Jul 17, 2018, at 3:14 PM, Matthew Pickering >>> wrote: >>> >>> Did you do the line above as well? >>> >>> ``` >>> git config --global url."git://github.com/ghc/packages-".insteadOf >>> git://github.com/ghc/packages/ >>> ``` >>> >>> On Tue, Jul 17, 2018 at 8:09 PM, Richard Eisenberg >>> wrote: >>> >>> Hi devs, >>> >>> The Newcomers page (https://ghc.haskell.org/trac/ghc/wiki/Newcomers) >>> recommends cloning GHC with >>> >>> git clone --recursive git://github.com/ghc/ghc >>> >>> >>> I believe my students did this with success several weeks ago. But trying >>> it again today leads to trouble with some submodules, e.g.: >>> >>> Cloning into '/Users/rae/ltemp/ghc-test/libraries/Cabal'... >>> fatal: remote error: >>> ghc/packages/Cabal is not a valid repository name >>> Email support at github.com for help >>> fatal: clone of 'git://github.com/ghc/packages/Cabal.git' into submodule >>> path '/Users/rae/ltemp/ghc-test/libraries/Cabal' failed >>> >>> >>> Is there something wrong in the internets? Or should we update the >>> Newcomers page? >>> >>> Thanks, >>> Richard >>> _______________________________________________ >>> ghc-devs mailing list >>> ghc-devs at haskell.org >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs >>> >>> >>> _______________________________________________ >>> ghc-devs mailing list >>> ghc-devs at haskell.org >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From marlowsd at gmail.com Wed Jul 18 07:52:19 2018 From: marlowsd at gmail.com (Simon Marlow) Date: Wed, 18 Jul 2018 08:52:19 +0100 Subject: Write barrier for stack updates? In-Reply-To: References: Message-ID: Hi Ömer, The write barrier is the function `dirty_STACK()` here: https://phabricator.haskell.org/diffusion/GHC/browse/master/rts%2Fsm%2FStorage.c$1133-1140 If you grep for `dirty_STACK` you'll see it being called everywhere we mutate a STACK, in particular in the scheduler just before running a thread: https://phabricator.haskell.org/diffusion/GHC/browse/master/rts%2FSchedule.c$412 We don't call the write barrier in the code generator or from primops, because at that point the thread is already running and has already been marked dirty. If we GC and mark the stack clean, then it will be marked dirty again by the scheduler before we start running it. Cheers Simon On 17 July 2018 at 20:45, Ömer Sinan Ağacan wrote: > Hi Simon, > > I'm a bit confused about stack updates in generated code and write > barriers. > Because stacks are mutable (we push new stuff or maybe even update existing > frames?) it seems to me that we need one these two, similar to other > mutable > objects: > > - Always keep all stacks in mut_lists > - Add write barriers before updates > > However looking at some of the primops like catch# and the code generator > that > generates code that pushes update frames I can't see any write barriers > and the > GC doesn't always add stacks to mut_lists (unlike e.g. MUT_ARR_PTRS). I > also > thought maybe we add a stack to a mut_list when we switch to the TSO that > owns > it or we park the TSO, but I don't see anything relevant in Schedule.c or > ThreadPaused.c. So I'm lost. Could you say a few words about how we deal > with > mutated stacks in the GC, so that if an old stack points to a young object > we > don't collect the young object in a minor GC? > > Thanks, > > Ömer > -------------- next part -------------- An HTML attachment was scrubbed... URL: From omeragacan at gmail.com Wed Jul 18 08:24:45 2018 From: omeragacan at gmail.com (=?UTF-8?Q?=C3=96mer_Sinan_A=C4=9Facan?=) Date: Wed, 18 Jul 2018 11:24:45 +0300 Subject: Write barrier for stack updates? In-Reply-To: References: Message-ID: Ah, this makes so much sense, thanks. I was looking at call sites of recordMutable, recordMutableCap etc. and forgot about recordClosureMutated which is apparently what dirty_STACK calls. Thanks, Ömer Simon Marlow , 18 Tem 2018 Çar, 10:52 tarihinde şunu yazdı: > > Hi Ömer, > > The write barrier is the function `dirty_STACK()` here: https://phabricator.haskell.org/diffusion/GHC/browse/master/rts%2Fsm%2FStorage.c$1133-1140 > > If you grep for `dirty_STACK` you'll see it being called everywhere we mutate a STACK, in particular in the scheduler just before running a thread: https://phabricator.haskell.org/diffusion/GHC/browse/master/rts%2FSchedule.c$412 > > We don't call the write barrier in the code generator or from primops, because at that point the thread is already running and has already been marked dirty. If we GC and mark the stack clean, then it will be marked dirty again by the scheduler before we start running it. > > Cheers > Simon > > On 17 July 2018 at 20:45, Ömer Sinan Ağacan wrote: >> >> Hi Simon, >> >> I'm a bit confused about stack updates in generated code and write barriers. >> Because stacks are mutable (we push new stuff or maybe even update existing >> frames?) it seems to me that we need one these two, similar to other mutable >> objects: >> >> - Always keep all stacks in mut_lists >> - Add write barriers before updates >> >> However looking at some of the primops like catch# and the code generator that >> generates code that pushes update frames I can't see any write barriers and the >> GC doesn't always add stacks to mut_lists (unlike e.g. MUT_ARR_PTRS). I also >> thought maybe we add a stack to a mut_list when we switch to the TSO that owns >> it or we park the TSO, but I don't see anything relevant in Schedule.c or >> ThreadPaused.c. So I'm lost. Could you say a few words about how we deal with >> mutated stacks in the GC, so that if an old stack points to a young object we >> don't collect the young object in a minor GC? >> >> Thanks, >> >> Ömer > > From christiaan.baaij at gmail.com Wed Jul 18 11:52:19 2018 From: christiaan.baaij at gmail.com (Christiaan Baaij) Date: Wed, 18 Jul 2018 13:52:19 +0200 Subject: type-checker plugin API/behaviour change Message-ID: Hi devs, Currently, type-checker plugins get to tell the solver its progress using a [TcPluginResult]( http://hackage.haskell.org/package/ghc-8.4.1/docs/TcRnTypes.html#t:TcPluginResult ): ``` data TcPluginResult = TcPluginContradiction [Ct] -- ^ The plugin found a contradiction. -- The returned constraints are removed from the inert set, -- and recorded as insoluble. | TcPluginOk [(EvTerm,Ct)] [Ct] -- ^ The first field is for constraints that were solved. -- These are removed from the inert set, -- and the evidence for them is recorded. -- The second field contains new work, that should be processed by -- the constraint solver. ``` So when asked to solve a _set_ of constraints, a tc plugin basically gets to say: A) This _one_ constraint out of the entire set is wrong, or B) The following _subset_ of constraints is solved (plus some new wanted constraints) Supposedly, picking A leads to better error messages when a constraint is obviously bad (i.e. Int ~ Char). However, the issue is that when a tc plugin picks A, then it will not be called again for the whole set of constraint it originally got; which in my use-case basically leads to a complete set of (actually solvable) unsolved constraints. This is "bad" because it leads to very confusing error messages, when 1. Start with a correct program: All constraints solvable => no errors reported 2. Add one line of code that doesn't type check 3. All constraints unsolvable => errors reported in parts of the program that used to type-check. I thought of multiple possible solutions, but changing TcPluginResult to: ``` data TcPluginResult = TcPluginResult { contradictions :: [Ct] -- ^ All of the contradictions the plugin found , solved :: [(EvTerm,Ct)] -- ^ Constraints that were solved , new :: [Ct] -- ^ New work to be processed by the rest of the constraint solver } ``` seems the best one as it allows a tc plugin to report _all_ the constraints that are bad, and _all_ the constraints that are bad. Thoughts? Perhaps a better solution? Thanks, Christiaan -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Wed Jul 18 13:36:21 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Wed, 18 Jul 2018 13:36:21 +0000 Subject: type-checker plugin API/behaviour change In-Reply-To: References: Message-ID: That looks plausible to me. The ‘new’ bunch may not actually be new? Maybe they are some of the inputs that are no contradictory, but not yet solved either? What about a flag to say “I made some progress”? Or is that deducible? Is so, good to explain that. Caveat: I’m not a user of plugins! People who are should reply. Simon From: ghc-devs On Behalf Of Christiaan Baaij Sent: 18 July 2018 12:52 To: ghc-devs at haskell.org Cc: Adam Gundry Subject: type-checker plugin API/behaviour change Hi devs, Currently, type-checker plugins get to tell the solver its progress using a [TcPluginResult]( http://hackage.haskell.org/package/ghc-8.4.1/docs/TcRnTypes.html#t:TcPluginResult): ``` data TcPluginResult = TcPluginContradiction [Ct] -- ^ The plugin found a contradiction. -- The returned constraints are removed from the inert set, -- and recorded as insoluble. | TcPluginOk [(EvTerm,Ct)] [Ct] -- ^ The first field is for constraints that were solved. -- These are removed from the inert set, -- and the evidence for them is recorded. -- The second field contains new work, that should be processed by -- the constraint solver. ``` So when asked to solve a _set_ of constraints, a tc plugin basically gets to say: A) This _one_ constraint out of the entire set is wrong, or B) The following _subset_ of constraints is solved (plus some new wanted constraints) Supposedly, picking A leads to better error messages when a constraint is obviously bad (i.e. Int ~ Char). However, the issue is that when a tc plugin picks A, then it will not be called again for the whole set of constraint it originally got; which in my use-case basically leads to a complete set of (actually solvable) unsolved constraints. This is "bad" because it leads to very confusing error messages, when 1. Start with a correct program: All constraints solvable => no errors reported 2. Add one line of code that doesn't type check 3. All constraints unsolvable => errors reported in parts of the program that used to type-check. I thought of multiple possible solutions, but changing TcPluginResult to: ``` data TcPluginResult = TcPluginResult { contradictions :: [Ct] -- ^ All of the contradictions the plugin found , solved :: [(EvTerm,Ct)] -- ^ Constraints that were solved , new :: [Ct] -- ^ New work to be processed by the rest of the constraint solver } ``` seems the best one as it allows a tc plugin to report _all_ the constraints that are bad, and _all_ the constraints that are bad. Thoughts? Perhaps a better solution? Thanks, Christiaan -------------- next part -------------- An HTML attachment was scrubbed... URL: From omeragacan at gmail.com Thu Jul 19 10:09:43 2018 From: omeragacan at gmail.com (=?UTF-8?Q?=C3=96mer_Sinan_A=C4=9Facan?=) Date: Thu, 19 Jul 2018 13:09:43 +0300 Subject: isAlive() too conservative -- does it cause leaks? Message-ID: Hi Simon, Currently isAlive considers all static closures as being alive. The code: // ignore static closures // // ToDo: This means we never look through IND_STATIC, which means // isRetainer needs to handle the IND_STATIC case rather than // raising an error. // // ToDo: for static closures, check the static link field. // Problem here is that we sometimes don't set the link field, eg. // for static closures with an empty SRT or CONSTR_NOCAFs. // if (!HEAP_ALLOCED_GC(q)) { return p; } I'd expect this to cause leaks when e.g. key of a WEAK is a static object. Is this not the case? I think this is easy to fix but I may be missing something and wanted to ask before investing into it. The idea: - Evacuate all static objects in evacuate() (including the ones with no SRTs) (assuming all static objects have a STATIC_FIELD, is this really the case?) - In isAlive() check if (STATIC_FIELD & static_flag) != 0. If it is then the object is alive. Am I missing anything? Thanks, Ömer From marlowsd at gmail.com Thu Jul 19 10:52:46 2018 From: marlowsd at gmail.com (Simon Marlow) Date: Thu, 19 Jul 2018 11:52:46 +0100 Subject: isAlive() too conservative -- does it cause leaks? In-Reply-To: References: Message-ID: On 19 July 2018 at 11:09, Ömer Sinan Ağacan wrote: > Hi Simon, > > Currently isAlive considers all static closures as being alive. The code: > > // ignore static closures > // > // ToDo: This means we never look through IND_STATIC, which means > // isRetainer needs to handle the IND_STATIC case rather than > // raising an error. > // > // ToDo: for static closures, check the static link field. > // Problem here is that we sometimes don't set the link field, eg. > // for static closures with an empty SRT or CONSTR_NOCAFs. > // > if (!HEAP_ALLOCED_GC(q)) { > return p; > } > > I'd expect this to cause leaks when e.g. key of a WEAK is a static object. > Is > this not the case? Correct, I believe weak pointers to static objects don't work (not sure if there's a ticket for this, but if not there should be). I think this is easy to fix but I may be missing something > and wanted to ask before investing into it. The idea: > > - Evacuate all static objects in evacuate() (including the ones with no > SRTs) > (assuming all static objects have a STATIC_FIELD, is this really the > case?) > This would be expensive. We deliberately don't touch the static objects in a minor GC because it adds potentially tens of ms to the GC time, and the optimisation to avoid evacuating the static objects with no SRTs is an important one. Cheers Simon - In isAlive() check if (STATIC_FIELD & static_flag) != 0. If it is then the > object is alive. > > Am I missing anything? > > Thanks, > > Ömer > -------------- next part -------------- An HTML attachment was scrubbed... URL: From juhpetersen at gmail.com Thu Jul 19 11:38:55 2018 From: juhpetersen at gmail.com (Jens Petersen) Date: Thu, 19 Jul 2018 20:38:55 +0900 Subject: [ANNOUNCE] GHC 8.6.1-alpha2 available In-Reply-To: <87fu0kng3l.fsf@smart-cactus.org> References: <87fu0kng3l.fsf@smart-cactus.org> Message-ID: On 16 July 2018 at 10:07, Ben Gamari wrote: > The GHC development team is pleased to announce the second alpha release leading up to GHC 8.6.1. Thanks, I built it for Fedora and EPEL7 in my Copr repo: https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.6.1/ Jens From omeragacan at gmail.com Thu Jul 19 14:40:41 2018 From: omeragacan at gmail.com (=?UTF-8?Q?=C3=96mer_Sinan_A=C4=9Facan?=) Date: Thu, 19 Jul 2018 17:40:41 +0300 Subject: isAlive() too conservative -- does it cause leaks? In-Reply-To: References: Message-ID: I created https://ghc.haskell.org/trac/ghc/ticket/15417 for this. Ömer Simon Marlow , 19 Tem 2018 Per, 13:52 tarihinde şunu yazdı: > > On 19 July 2018 at 11:09, Ömer Sinan Ağacan wrote: >> >> Hi Simon, >> >> Currently isAlive considers all static closures as being alive. The code: >> >> // ignore static closures >> // >> // ToDo: This means we never look through IND_STATIC, which means >> // isRetainer needs to handle the IND_STATIC case rather than >> // raising an error. >> // >> // ToDo: for static closures, check the static link field. >> // Problem here is that we sometimes don't set the link field, eg. >> // for static closures with an empty SRT or CONSTR_NOCAFs. >> // >> if (!HEAP_ALLOCED_GC(q)) { >> return p; >> } >> >> I'd expect this to cause leaks when e.g. key of a WEAK is a static object. Is >> this not the case? > > > Correct, I believe weak pointers to static objects don't work (not sure if there's a ticket for this, but if not there should be). > >> I think this is easy to fix but I may be missing something >> and wanted to ask before investing into it. The idea: >> >> - Evacuate all static objects in evacuate() (including the ones with no SRTs) >> (assuming all static objects have a STATIC_FIELD, is this really the case?) > > > This would be expensive. We deliberately don't touch the static objects in a minor GC because it adds potentially tens of ms to the GC time, and the optimisation to avoid evacuating the static objects with no SRTs is an important one. > > Cheers > Simon > >> - In isAlive() check if (STATIC_FIELD & static_flag) != 0. If it is then the >> object is alive. >> >> Am I missing anything? >> >> Thanks, >> >> Ömer > > From asr at eafit.edu.co Sat Jul 21 02:27:38 2018 From: asr at eafit.edu.co (=?UTF-8?B?QW5kcsOpcyBTaWNhcmQtUmFtw61yZXo=?=) Date: Fri, 20 Jul 2018 21:27:38 -0500 Subject: [ANNOUNCE] GHC 8.6.1-alpha2 available In-Reply-To: <87fu0kng3l.fsf@smart-cactus.org> References: <87fu0kng3l.fsf@smart-cactus.org> Message-ID: On 15 July 2018 at 20:07, Ben Gamari wrote: > > The GHC development team is pleased to announce the second alpha release > leading up to GHC 8.6.1. The following MVE uses the gitrev library ( http://hackage.haskell.org/package/gitrev ): $ cat Test.hs {-# LANGUAGE TemplateHaskell #-} module Main where import Development.GitRev commitInfo :: Maybe String commitInfo = case $(gitHash) of "UNKNOWN" -> Nothing hash -> Just hash main :: IO () main = print commitInfo The MVE compiles *without* warnings with different versions of GHC (e.g. 8.4.3) but with GHC 8.6.1-alpha2 I get the following warning: $ ghc Test.hs Test.hs:10:3: warning: [-Woverlapping-patterns] Pattern match is redundant In a case alternative: hash -> ... | 10 | hash -> Just hash | ^^^^^^^^^^^^^^^^^^^^^^ Linking Test ... Is it a bug or is it the expected behaviour? Best, -- Andrés From ryan.gl.scott at gmail.com Sat Jul 21 13:03:13 2018 From: ryan.gl.scott at gmail.com (Ryan Scott) Date: Sat, 21 Jul 2018 09:03:13 -0400 Subject: [ANNOUNCE] GHC 8.6.1-alpha2 available Message-ID: Presumably, you're compiling this program outside of a git repository, and so the Template Haskell splice $(gitHash) evaluates to "UNKNOWN" at compile time. Here is an even more minimal example, which does not depend on gitrev: f :: () f = case "UNKNOWN" of "UNKNOWN" -> () _ -> () This, when compiled with GHC 8.6.1 or later, gives the same warning: Test.hs:4:7: warning: [-Woverlapping-patterns] Pattern match is redundant In a case alternative: _ -> ... | 4 | _ -> () | ^^^^^^^^^^^^^^^ This, I would argue, is a correct error message. The string literal "UNKNOWN" is, well, statically known to be "UNKNOWN", so GHC knows that that catch-all case cannot be reached. (See [1] for the commit which introduced this check.) Granted, this makes things slightly inconvenient for your purposes, since in your actual program, $(gitHash) might evaluate to *different* things at compile time depending on the directory you compile it in. I'd recommend rewriting the commitInfo function to pattern guards: commitInfo :: Maybe String commitInfo | hash == "UNKNOWN" = Nothing | otherwise = Just hash where hash = $(gitHash) Since that does not trigger -Woverlapping-patterns. (Granted, it's possible that GHC could become much smarter in the future and be able to detect that that `otherwise` case is unreachable when $(gitHash) evaluates to "UNKNOWN" at compile time. But GHC certainly isn't that smart today!) Ryan S. ----- [1] http://git.haskell.org/ghc.git/commit/1f88f541aad1e36d01f22f9e71dfbc247e6558e2 From asr at eafit.edu.co Sat Jul 21 13:25:04 2018 From: asr at eafit.edu.co (=?UTF-8?B?QW5kcsOpcyBTaWNhcmQtUmFtw61yZXo=?=) Date: Sat, 21 Jul 2018 08:25:04 -0500 Subject: [ANNOUNCE] GHC 8.6.1-alpha2 available In-Reply-To: References: Message-ID: Thank you for a very clear explanation and the solution. Best, On 21 July 2018 at 08:03, Ryan Scott wrote: > Presumably, you're compiling this program outside of a git repository, > and so the Template Haskell splice $(gitHash) evaluates to "UNKNOWN" > at compile time. Here is an even more minimal example, which does not > depend on gitrev: > > f :: () > f = case "UNKNOWN" of > "UNKNOWN" -> () > _ -> () > > This, when compiled with GHC 8.6.1 or later, gives the same warning: > > Test.hs:4:7: warning: [-Woverlapping-patterns] > Pattern match is redundant > In a case alternative: _ -> ... > | > 4 | _ -> () > | ^^^^^^^^^^^^^^^ > > This, I would argue, is a correct error message. The string literal > "UNKNOWN" is, well, statically known to be "UNKNOWN", so GHC knows > that that catch-all case cannot be reached. (See [1] for the commit > which introduced this check.) > > Granted, this makes things slightly inconvenient for your purposes, > since in your actual program, $(gitHash) might evaluate to *different* > things at compile time depending on the directory you compile it in. > I'd recommend rewriting the commitInfo function to pattern guards: > > commitInfo :: Maybe String > commitInfo > | hash == "UNKNOWN" = Nothing > | otherwise = Just hash > where > hash = $(gitHash) > > Since that does not trigger -Woverlapping-patterns. (Granted, it's > possible that GHC could become much smarter in the future and be able > to detect that that `otherwise` case is unreachable when $(gitHash) > evaluates to "UNKNOWN" at compile time. But GHC certainly isn't that > smart today!) > > Ryan S. > ----- > [1] http://git.haskell.org/ghc.git/commit/1f88f541aad1e36d01f22f9e71dfbc247e6558e2 > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > La información contenida en este correo electrónico está dirigida únicamente a su destinatario y puede contener información confidencial, material privilegiado o información protegida por derecho de autor. Está prohibida cualquier copia, utilización, indebida retención, modificación, difusión, distribución o reproducción total o parcial. Si usted recibe este mensaje por error, por favor contacte al remitente y elimínelo. La información aquí contenida es responsabilidad exclusiva de su remitente por lo tanto la Universidad EAFIT no se hace responsable de lo que el mensaje contenga. The information contained in this email is addressed to its recipient only and may contain confidential information, privileged material or information protected by copyright. Its prohibited any copy, use, improper retention, modification, dissemination, distribution or total or partial reproduction. If you receive this message by error, please contact the sender and delete it. The information contained herein is the sole responsibility of the sender therefore Universidad EAFIT is not responsible for what the message contains. -- Andrés From svenpanne at gmail.com Mon Jul 23 06:27:26 2018 From: svenpanne at gmail.com (Sven Panne) Date: Mon, 23 Jul 2018 08:27:26 +0200 Subject: [Haskell-cafe] Access violation when stack haddock haskell-src-exts since LTS 12.0 In-Reply-To: References: Message-ID: Am Mo., 23. Juli 2018 um 05:49 Uhr schrieb Yuji Yamamoto < whosekiteneverfly at gmail.com>: > Thank you very much! > > I confirmed the replaced haddock executable can successfully generate the > docs! > Yesterday I had quite some trouble because of the Haddock problem, too, and I guess I'm not alone: haskell-src-exts has 165 direct reverse dependencies, so probably hundreds of Hackage packages are affected by this. The workaround is simple (don't use --haddock with stack), but far from satisfying and not very obvious. Given the fact that this affects a very central piece of the Haskell infrastructure in its latest stable incarnation (GHC 8.4.3): Can we have an 8.4.4 with a fixed Haddock? -------------- next part -------------- An HTML attachment was scrubbed... URL: From sgraf1337 at gmail.com Mon Jul 23 11:05:34 2018 From: sgraf1337 at gmail.com (Sebastian Graf) Date: Mon, 23 Jul 2018 13:05:34 +0200 Subject: Understanding UniqSupply Message-ID: Hi all, I'm trying to understand when it is necessary to `splitUniqSupply`, or even to create my own supply with `mkSplitUniqSupply`. First, my understanding of how `mkSplitUniqSupply` ( https://hackage.haskell.org/package/ghc-8.4.1/docs/src/UniqSupply.html#mkSplitUniqSupply) works is as follows: - The `unsafeInterleaveIO` makes it so that `genSym` is actually forced before any of the recursive calls to `mk_split` force their `genSym`, regardless of evaluation order - This guarentees a certain partial order on produced uniques: Any parent `UniqSupply`'s `Unique` is calculated by a call to compiler/cbits/genSym.c#genSym() before any `Unique`s of its offsprings are - The order of `Unique`s on different off-springs of the same `UniqSupply` is determined by evaluation order as a result of `unsafeInterleaveIO`, much the same as when we create two different `UniqSupply`s by calls to `mkSplitUniqSupply` - So, `unfoldr (Just . takeUniqFromSupply) us) !! n` is always deterministic and strictly monotone, in the sense that even forcing the expression for n=2 before n=1 will have a lower `Unique` for n=1 than for n=2. - This is of course all an implementation detail These are the questions that bother me: 1. `takeUniqSupply` returns as 'tail' its first off-spring, whereas `uniqsFromSupply` always recurses into its second off-spring. By my intuition above, this shouldn't really make much of a difference, so what is the motivation for that? 2. The docs state that the character tag/domain/prefix in the call to `mkSplitUniqSupply` should be unique to guarantee actual uniqueness of produced `Unique`s. Judging from the implementation of `genSym`, which is unaware of the specific domain to draw the next unique from, this is an unnecessarily strong condition?! Also there are multiple places in the code base spread over module boundaries even (e.g. CorePrep, SimplCore) that call `mkSplitUniqSupply` with the same character anyway. Maybe there should at least be some clarifying comment on why this isn't a problem? 3. Judging from SimplCore, we probably want to `splitUniqSupply` after each iteration/transformation, either through a call to `splitUniqSupply` or `getUniqueSupplyM`. Is that right? 4. What's the need for splitting anyway? I suspect it's a trick to avoid state threading that would be necessary if we just had `type UniqSupply = [Unique]`. Would that really be a bad thing, considering we mostly work in `UniqSM` anyway? Is there anything else to it? Happy to hear from you! Cheers Sebastian -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Mon Jul 23 12:21:36 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Mon, 23 Jul 2018 12:21:36 +0000 Subject: Understanding UniqSupply In-Reply-To: References: Message-ID: Some quick responses 1. Splitting What's the need for splitting anyway? Just so you can use uniques in a tree-like way, without threading the supply around. No more than that. This is not needed everywhere. For example, the Simplifier threads it thus: newtype SimplM result = SM { unSM :: SimplTopEnv -- Envt that does not change much -> UniqSupply -- We thread the unique supply because -- constantly splitting it is rather expensive -> SimplCount -> IO (result, UniqSupply, SimplCount)} I suspect that (now that SimplM is in IO anyway) we could use an IORef instead, and maybe speed up the compiler. But perhaps not all uses are so simple to change. 2. The tree The crucial thing is that there /is/ a data structure – a tree, that is the unique supply. So if you have f u s = ….(splitUniqueSupply us)…..(splitUniqueSupply us)…. you’ll get the same trees in the two calls. The supply is just a purely-functional tree. So, for example * The `unsafeInterleaveIO` makes it so that `genSym` is actually forced before any of the recursive calls to `mk_split` force their `genSym`, regardless of evaluation order I don’t think this is important, except perhaps to avoid creating a thunk. * This guarentees a certain partial order on produced uniques: Any parent `UniqSupply`'s `Unique` is calculated by a call to compiler/cbits/genSym.c#genSym() before any `Unique`s of its offsprings are] * The order of `Unique`s on different off-springs of the same `UniqSupply` is determined by evaluation order as a result of `unsafeInterleaveIO`, much the same as when we create two different `UniqSupply`s by calls to `mkSplitUniqSupply` * So, `unfoldr (Just . takeUniqFromSupply) us) !! n` is always deterministic and strictly monotone, in the sense that even forcing the expression for n=2 before n=1 will have a lower `Unique` for n=1 than for n=2. I don’t think any of these points are important or relied on. A different impl could behave differently. 1. `takeUniqSupply` returns as 'tail' its first off-spring, whereas `uniqsFromSupply` always recurses into its second off-spring. By my intuition above, this shouldn't really make much of a difference, so what is the motivation for that? I think this is unimportant. I.e. it should be fine to change it. 1. Judging from SimplCore, we probably want to `splitUniqSupply` after each iteration/transformation, either through a call to `splitUniqSupply` or `getUniqueSupplyM`. Is that right? I don’t understand the question. If you use the same supply twice, you’ll get (precisely) the same uniques. That may or may not be ok SImon From: ghc-devs On Behalf Of Sebastian Graf Sent: 23 July 2018 12:06 To: ghc-devs Subject: Understanding UniqSupply Hi all, I'm trying to understand when it is necessary to `splitUniqSupply`, or even to create my own supply with `mkSplitUniqSupply`. First, my understanding of how `mkSplitUniqSupply` (https://hackage.haskell.org/package/ghc-8.4.1/docs/src/UniqSupply.html#mkSplitUniqSupply) works is as follows: * The `unsafeInterleaveIO` makes it so that `genSym` is actually forced before any of the recursive calls to `mk_split` force their `genSym`, regardless of evaluation order * This guarentees a certain partial order on produced uniques: Any parent `UniqSupply`'s `Unique` is calculated by a call to compiler/cbits/genSym.c#genSym() before any `Unique`s of its offsprings are * The order of `Unique`s on different off-springs of the same `UniqSupply` is determined by evaluation order as a result of `unsafeInterleaveIO`, much the same as when we create two different `UniqSupply`s by calls to `mkSplitUniqSupply` * So, `unfoldr (Just . takeUniqFromSupply) us) !! n` is always deterministic and strictly monotone, in the sense that even forcing the expression for n=2 before n=1 will have a lower `Unique` for n=1 than for n=2. * This is of course all an implementation detail These are the questions that bother me: 1. `takeUniqSupply` returns as 'tail' its first off-spring, whereas `uniqsFromSupply` always recurses into its second off-spring. By my intuition above, this shouldn't really make much of a difference, so what is the motivation for that? 2. The docs state that the character tag/domain/prefix in the call to `mkSplitUniqSupply` should be unique to guarantee actual uniqueness of produced `Unique`s. Judging from the implementation of `genSym`, which is unaware of the specific domain to draw the next unique from, this is an unnecessarily strong condition?! Also there are multiple places in the code base spread over module boundaries even (e.g. CorePrep, SimplCore) that call `mkSplitUniqSupply` with the same character anyway. Maybe there should at least be some clarifying comment on why this isn't a problem? 3. Judging from SimplCore, we probably want to `splitUniqSupply` after each iteration/transformation, either through a call to `splitUniqSupply` or `getUniqueSupplyM`. Is that right? 4. What's the need for splitting anyway? I suspect it's a trick to avoid state threading that would be necessary if we just had `type UniqSupply = [Unique]`. Would that really be a bad thing, considering we mostly work in `UniqSM` anyway? Is there anything else to it? Happy to hear from you! Cheers Sebastian -------------- next part -------------- An HTML attachment was scrubbed... URL: From sgraf1337 at gmail.com Mon Jul 23 12:37:46 2018 From: sgraf1337 at gmail.com (Sebastian Graf) Date: Mon, 23 Jul 2018 14:37:46 +0200 Subject: Understanding UniqSupply In-Reply-To: References: Message-ID: Hi Simon, > > 1. Judging from SimplCore, we probably want to `splitUniqSupply` after > each iteration/transformation, either through a call to `splitUniqSupply` > or `getUniqueSupplyM`. Is that right? > > I don’t understand the question. If you use the same supply twice, > you’ll get (precisely) the same uniques. That may or may not be ok I guess this was wrt. threading UniqSupply through each transformation vs. splitting it before a transformation. We want to split or to thread, otherwise we possibly re-use some Uniques, because it's a regular purely functional data structure, as you noted. Each transformation will do its own splitting/taking after that, so my question was probably bogus to begin with. Thanks, that cleared up a lot of things for me! Am Mo., 23. Juli 2018 um 14:21 Uhr schrieb Simon Peyton Jones < simonpj at microsoft.com>: > Some quick responses > > > > 1. *Splitting* > > What's the need for splitting anyway? > > > > Just so you can use uniques in a tree-like way, without threading the > supply around. No more than that. > > > > This is not needed everywhere. For example, the Simplifier threads it > thus: > > > > newtype SimplM result > > = SM { unSM :: SimplTopEnv -- Envt that does not change much > > -> UniqSupply -- We thread the unique supply because > > -- constantly splitting it is rather > expensive > > -> SimplCount > > -> IO (result, UniqSupply, SimplCount)} > > > > I suspect that (now that SimplM is in IO anyway) we could use an IORef > instead, and maybe speed up the compiler. > > > > But perhaps not all uses are so simple to change. > > > > 2. *The* *tree* > > > > The crucial thing is that there /is/ a data structure – a tree, that is > the unique supply. So if you have > > f u s = ….(splitUniqueSupply us)…..(splitUniqueSupply us)…. > > you’ll get the same trees in the two calls. The supply is just a > purely-functional tree. > > > > So, for example > > - The `unsafeInterleaveIO` makes it so that `genSym` is actually > forced before any of the recursive calls to `mk_split` force their > `genSym`, regardless of evaluation order > > I don’t think this is important, except perhaps to avoid creating a thunk. > > - This guarentees a certain partial order on produced uniques: Any > parent `UniqSupply`'s `Unique` is calculated by a call to > compiler/cbits/genSym.c#genSym() before any `Unique`s of its offsprings are] > - The order of `Unique`s on different off-springs of the same > `UniqSupply` is determined by evaluation order as a result of > `unsafeInterleaveIO`, much the same as when we create two different > `UniqSupply`s by calls to `mkSplitUniqSupply` > - So, `unfoldr (Just . takeUniqFromSupply) us) !! n` is always > deterministic and strictly monotone, in the sense that even forcing the > expression for n=2 before n=1 will have a lower `Unique` for n=1 than for > n=2. > > I don’t think any of these points are important or relied on. A different > impl could behave differently. > > 1. `takeUniqSupply` returns as 'tail' its first off-spring, whereas > `uniqsFromSupply` always recurses into its second off-spring. By my > intuition above, this shouldn't really make much of a difference, so what > is the motivation for that? > > I think this is unimportant. I.e. it should be fine to change it. > > > > 1. Judging from SimplCore, we probably want to `splitUniqSupply` after > each iteration/transformation, either through a call to `splitUniqSupply` > or `getUniqueSupplyM`. Is that right? > > I don’t understand the question. If you use the same supply twice, > you’ll get (precisely) the same uniques. That may or may not be ok > > > > SImon > > > > *From:* ghc-devs *On Behalf Of *Sebastian > Graf > *Sent:* 23 July 2018 12:06 > *To:* ghc-devs > *Subject:* Understanding UniqSupply > > > > Hi all, > > > > I'm trying to understand when it is necessary to `splitUniqSupply`, or > even to create my own supply with `mkSplitUniqSupply`. > > > > First, my understanding of how `mkSplitUniqSupply` ( > https://hackage.haskell.org/package/ghc-8.4.1/docs/src/UniqSupply.html#mkSplitUniqSupply > ) > works is as follows: > > - The `unsafeInterleaveIO` makes it so that `genSym` is actually > forced before any of the recursive calls to `mk_split` force their > `genSym`, regardless of evaluation order > - This guarentees a certain partial order on produced uniques: Any > parent `UniqSupply`'s `Unique` is calculated by a call to > compiler/cbits/genSym.c#genSym() before any `Unique`s of its offsprings are > - The order of `Unique`s on different off-springs of the same > `UniqSupply` is determined by evaluation order as a result of > `unsafeInterleaveIO`, much the same as when we create two different > `UniqSupply`s by calls to `mkSplitUniqSupply` > - So, `unfoldr (Just . takeUniqFromSupply) us) !! n` is always > deterministic and strictly monotone, in the sense that even forcing the > expression for n=2 before n=1 will have a lower `Unique` for n=1 than for > n=2. > - This is of course all an implementation detail > > These are the questions that bother me: > > 1. `takeUniqSupply` returns as 'tail' its first off-spring, whereas > `uniqsFromSupply` always recurses into its second off-spring. By my > intuition above, this shouldn't really make much of a difference, so what > is the motivation for that? > 2. The docs state that the character tag/domain/prefix in the call to > `mkSplitUniqSupply` should be unique to guarantee actual uniqueness of > produced `Unique`s. Judging from the implementation of `genSym`, which is > unaware of the specific domain to draw the next unique from, this is an > unnecessarily strong condition?! Also there are multiple places in the code > base spread over module boundaries even (e.g. CorePrep, SimplCore) that > call `mkSplitUniqSupply` with the same character anyway. Maybe there should > at least be some clarifying comment on why this isn't a problem? > 3. Judging from SimplCore, we probably want to `splitUniqSupply` after > each iteration/transformation, either through a call to `splitUniqSupply` > or `getUniqueSupplyM`. Is that right? > 4. What's the need for splitting anyway? I suspect it's a trick to > avoid state threading that would be necessary if we just had `type > UniqSupply = [Unique]`. Would that really be a bad thing, considering we > mostly work in `UniqSM` anyway? Is there anything else to it? > > Happy to hear from you! > > Cheers > > Sebastian > -------------- next part -------------- An HTML attachment was scrubbed... URL: From carter.schonwald at gmail.com Wed Jul 25 00:16:04 2018 From: carter.schonwald at gmail.com (Carter Schonwald) Date: Tue, 24 Jul 2018 20:16:04 -0400 Subject: understanding assertions, part deux :) Re: whither built in unlifted Word32# / Word64# etc? In-Reply-To: References: Message-ID: Michal: did you write this Assert about width? and if so could you explain it so we can understand? hrmm... that code is in the procedure for generating C calls for 64bit intel systems https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2541 is the top of that routine and width is defined right below the spot in question https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2764-L2774 it seems like the code/assertion likely predates michal's work? (eg, a trick to make sure that genCCall64 doesn't get invoked by 32bit platforms?) On Mon, Jul 23, 2018 at 8:54 PM Abhiroop Sarkar wrote: > Hi Michal, > > In the tests that you have added to D4475, are all the tests running fine? > > On my machine, I was running the FFI tests( > https://github.com/michalt/ghc/blob/int8/testsuite/tests/ffi/should_run/PrimFFIInt8.hs) > and they seem to fail at a particular assert statement in the code > generator. > > To be precise this one: > https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2764 > > Upon commenting that assert the tests run fine. Am I missing something or > is the failure expected? > > Thanks, > Abhiroop > > On Mon, Jul 9, 2018 at 8:31 PM Michal Terepeta > wrote: > >> Just for the record, I've uploaded the changes to binary: >> https://github.com/michalt/packages-binary/tree/int8 >> >> - Michal >> >> On Wed, Jul 4, 2018 at 11:07 AM Michal Terepeta < >> michal.terepeta at gmail.com> wrote: >> >>> Yeah, if you look at the linked diff, there are a few tiny changes to >>> binary that are necessary. >>> >>> I'll try to upload them to github later this week. >>> >>> Ben, is something blocking the review of the diff? I think I addressed >>> all comments so far. >>> >>> - Michal >>> >>> On Wed, Jul 4, 2018 at 1:38 AM Abhiroop Sarkar >>> wrote: >>> >>>> Hello Michal, >>>> >>>> I was looking at your diff https://phabricator.haskell.org/D4475 and >>>> there seems to be some changes that you perhaps made in the binary package ( >>>> https://phabricator.haskell.org/differential/changeset/?ref=199152&whitespace=ignore-most). >>>> I could not find your version of binary on your github repos list. Is it >>>> possible for you to upload that so I can pull those changes? >>>> >>>> Thanks >>>> >>>> Abhiroop >>>> >>>> On Mon, May 28, 2018 at 10:45 PM Carter Schonwald < >>>> carter.schonwald at gmail.com> wrote: >>>> >>>>> Abhiroop has the gist, though the size of word args for simd is more >>>>> something we want to be consistent between 32/64 bit modes aka ghc >>>>> targeting 32 or 64 bit intel with simd support :). It would be best if the >>>>> unpack and pack operations that map to and from unboxed tuples where >>>>> consistent and precise type wise. >>>>> >>>>> >>>>> >>>>> -Carter >>>>> >>>>> On May 28, 2018, at 5:02 PM, Abhiroop Sarkar >>>>> wrote: >>>>> >>>>> Hello Michal, >>>>> >>>>> My understanding of the issues are much lesser compared to Carter. >>>>> However, I will state whatever I understood from discussions with him. Be >>>>> warned my understanding might be wrong and Carter might be asking this for >>>>> some completely different reason. >>>>> >>>>> > Out of curiosity, why do you need Word64#/Word32# story to be fixed >>>>> for SIMD? >>>>> >>>>> One of the issues we are dealing with is multiple >>>>> microarchitectures(SSE, AVX, AVX2 etc). As a result different >>>>> microarchitectures has different ways of handling an 8 bit or 16 bit or 32 >>>>> bit unsigned integer. An example I can provide is the vector multiply >>>>> instruction which has different semantics of multiplying and storing the >>>>> first 16 bits of a 32 bit unsigned integer compared to the lower 16 bits >>>>> for each of the elements in its SIMD registers. There will be some other >>>>> intricacies around handling a byte sized integer or a 64 bit integer which >>>>> will be different from the 32 bit version. >>>>> >>>>> Basically a 128 bit vector instruction will make some minor >>>>> differences when dealing with 2 64 bit integers or 4 32 bit integer or 8 16 >>>>> bit integers. >>>>> >>>>> So I think at the higher level we would want to be as precise as >>>>> possible when specifying the datatypes and want things like Word8#, >>>>> Word16#, Word32#, Word64# rather than a single ambiguous type like Word. >>>>> >>>>> One more example is this vector operation like : broadcastWord64X2# :: >>>>> Word# >>>>> >>>>> -> Word64X2# >>>>> which >>>>> should rather be broadcastWord64X2# :: Word64# >>>>> >>>>> -> Word64X2# >>>>> >>>>> >>>>> Another reason could be improving the space efficiency of packing >>>>> various datatypes. This was explained in some detail in this comment: >>>>> https://github.com/ghc-proposals/ghc-proposals/pull/74#issuecomment-333951559 >>>>> >>>>> Thanks, >>>>> Abhiroop >>>>> >>>>> On Mon, May 28, 2018 at 6:06 PM, Michal Terepeta < >>>>> michal.terepeta at gmail.com> wrote: >>>>> >>>>>> Hey Carter, >>>>>> >>>>>> Yeah, I'm totally snowed under with personal stuff at the moment, so >>>>>> not much time to hack on >>>>>> anything. I've managed to make some progress on >>>>>> https://phabricator.haskell.org/D4475 (prototype >>>>>> that adds Int8#/Word8#; waiting for another round of review). Sadly >>>>>> June still looks a bit crazy for >>>>>> me, so I can't promise anything for Word64#/Word32# (and >>>>>> Int64#/Int32#). I hope to have some more >>>>>> time in July. >>>>>> >>>>>> If this is blocking you, then please don't wait for me and go ahead >>>>>> (my diff for Int8#/Word8# might >>>>>> be a decent starting point to see which places might need changes). >>>>>> >>>>>> Out of curiosity, why do you need Word64#/Word32# story to be fixed >>>>>> for SIMD? Cmm already has >>>>>> separate types for vector types (see TyCon.hs and VecRep constructor >>>>>> of PrimRep). >>>>>> >>>>>> Cheers! >>>>>> >>>>>> - Michal >>>>>> >>>>>> PS. Are you coming to ZuriHac by any chance? >>>>>> >>>>>> On Mon, May 28, 2018 at 12:37 AM Carter Schonwald < >>>>>> carter.schonwald at gmail.com> wrote: >>>>>> >>>>>>> Hey Michal! >>>>>>> So i'm mentoring Abhiroop around getting SIMD all nice and awesome, >>>>>>> and I realized we still dont quite yet have the nice Word32# and Word64# >>>>>>> etc story in ghc as yet. >>>>>>> >>>>>>> Whats the status on that and or is there a way we can help get that >>>>>>> over the hump for ghc? These different sized in register ints and friends >>>>>>> have a tight partnership with any nice SIMD iterating over the summer, and >>>>>>> hopefully helps inform the design >>>>>>> >>>>>>> -Carter >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Kloona - Coming Soon! >>>>> >>>>> >>>> >>>> -- >>>> Kloona - Coming Soon! >>>> >>> > > -- > Kloona - Coming Soon! > -------------- next part -------------- An HTML attachment was scrubbed... URL: From maoe at foldr.in Wed Jul 25 07:15:54 2018 From: maoe at foldr.in (Mitsutoshi Aoe) Date: Wed, 25 Jul 2018 16:15:54 +0900 Subject: Steps to propose a new primop in GHC In-Reply-To: <87a7shlyab.fsf@smart-cactus.org> References: <87in76kxqn.fsf@smart-cactus.org> <862bd170-6443-438c-b0d7-6d8f09f8f75b@Spark> <87a7shlyab.fsf@smart-cactus.org> Message-ID: Hi Ben, I just submitted a patch (with slightly different names from the earlier message) for this change at h ttps://phabricator.haskell.org/D5007 . This is my first time using the Phab so please let me know if I'm doing something wrong. Best, Mitsutoshi 2018年5月30日(水) 10:36 Ben Gamari : > Mitsutoshi Aoe writes: > > > Hi Ben, > > > > Thanks for your reply. I take that at least for the GHC part I can > > submit the diff to phab and ask for review. I’ll do it. > > > Absolutely. I'm looking forward to seeing it. > > >> As far as adding a wrapper in `base`, I think we can just go ahead and > > do it. > > > > Note that the wrapper cannot live in base doe to the dependency on > > bytestring. I’m thinking to put it in my ghc-trace-events for now. > > > Yes, of course. Silly me. > > Cheers, > > - Ben > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From simonpj at microsoft.com Wed Jul 25 11:46:06 2018 From: simonpj at microsoft.com (Simon Peyton Jones) Date: Wed, 25 Jul 2018 11:46:06 +0000 Subject: [Diffusion] [Committed] rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal patterns consistencly In-Reply-To: <20180725114504.1.43447C5D5CDE16DA@phabricator.haskell.org> References: <20180725114504.1.43447C5D5CDE16DA@phabricator.haskell.org> Message-ID: Is anyone else getting messages like the one below? I have received over 1,000 of them this morning. It is tiresome. Thanks Simon From: noreply at phabricator.haskell.org Sent: 25 July 2018 12:45 To: Simon Peyton Jones Subject: [Diffusion] [Committed] rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal patterns consistencly simonpj committed rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal patterns consistencly (authored by simonpj). Fix Trac Trac #5117: desugar literal patterns consistencly TAGS ghc-7.11-start, ghc-7.9-start, ghc-8.0.1-release, ghc-8.1-start, ghc-8.2.1-release, ghc-8.2.2-release, ghc-8.3-start, phabricator/base/10007, phabricator/base/10008, phabricator/base/10009, phabricator/base/10010, phabricator/base/10015, phabricator/base/10016, phabricator/base/10017, phabricator/base/10021, phabricator/base/10022, phabricator/base/10023, phabricator/base/10024, phabricator/base/10025, phabricator/base/10031, phabricator/base/10032, phabricator/base/10033, phabricator/base/10034, phabricator/base/10035, phabricator/base/10036, phabricator/base/10037, phabricator/base/10038, phabricator/base/10040, phabricator/base/10041, phabricator/base/10042, phabricator/base/10048, phabricator/base/10049, phabricator/base/10050, phabricator/base/10051, phabricator/base/10056, phabricator/base/10058, phabricator/base/10059, phabricator/base/10060, phabricator/base/10061, phabricator/base/10062, phabricator/base/10063, phabricator/base/10064, phabricator/base/10065, phabricator/base/10067, phabricator/base/10068, phabricator/base/10069, phabricator/base/10074, phabricator/base/10075, phabricator/base/10077, phabricator/base/10078, phabricator/base/10079, phabricator/base/10090, phabricator/base/10091, phabricator/base/10097, phabricator/base/10098, phabricator/base/10099, phabricator/base/10101, phabricator/base/10102, phabricator/base/10103, phabricator/base/10104, phabricator/base/10105, phabricator/base/10106, phabricator/base/10107, phabricator/base/10108, phabricator/base/10110, phabricator/base/10112, phabricator/base/10113, phabricator/base/10114, phabricator/base/10115, phabricator/base/10116, phabricator/base/10117, phabricator/base/10119, phabricator/base/10121, phabricator/base/10122, phabricator/base/10123, phabricator/base/10125, phabricator/base/10127, phabricator/base/10128, phabricator/base/10130, phabricator/base/10131, phabricator/base/10132, phabricator/base/10133, phabricator/base/10136, phabricator/base/10137, phabricator/base/10138, phabricator/base/10139, phabricator/base/10143, phabricator/base/10144, phabricator/base/10145, phabricator/base/10147, phabricator/base/10148, phabricator/base/10149, phabricator/base/10150, phabricator/base/10151, phabricator/base/10157, phabricator/base/10158, phabricator/base/10159, phabricator/base/10160, phabricator/base/10161, phabricator/base/10162, phabricator/base/10163, phabricator/base/10164, phabricator/base/10165, phabricator/base/10180, phabricator/base/10184, phabricator/base/10185, phabricator/base/10188, phabricator/base/10189, phabricator/base/10190, phabricator/base/10191, phabricator/base/10192, phabricator/base/10193, phabricator/base/10195, phabricator/base/10196, phabricator/base/10198, phabricator/base/10201, phabricator/base/10202, phabricator/base/10203, phabricator/base/10207, phabricator/base/10208, phabricator/base/10212, phabricator/base/10213, phabricator/base/10214, phabricator/base/10215, phabricator/base/10216, phabricator/base/10217, phabricator/base/10218, phabricator/base/10219, phabricator/base/10220, phabricator/base/10221, phabricator/base/10222, phabricator/base/10223, phabricator/base/10224, phabricator/base/10225, phabricator/base/10226, phabricator/base/10227, phabricator/base/10228, phabricator/base/10229, phabricator/base/10235, phabricator/base/10236, phabricator/base/10239, phabricator/base/10240, phabricator/base/10241, phabricator/base/10242, phabricator/base/10243, phabricator/base/10244, phabricator/base/10246, phabricator/base/10247, phabricator/base/10248, phabricator/base/10249, phabricator/base/10250, phabricator/base/10258, phabricator/base/10259, phabricator/base/10260, phabricator/base/10261, phabricator/base/10262, phabricator/base/10265, phabricator/base/10266, phabricator/base/10267, phabricator/base/10268, phabricator/base/10269, phabricator/base/10270, phabricator/base/10275, phabricator/base/10276, phabricator/base/10281, phabricator/base/10282, phabricator/base/10283, phabricator/base/10286, phabricator/base/10289, phabricator/base/10290, phabricator/base/10291, phabricator/base/10292, phabricator/base/10293, phabricator/base/10296, phabricator/base/10297, phabricator/base/10298, phabricator/base/10299, phabricator/base/10300, phabricator/base/10301, phabricator/base/10302, phabricator/base/10303, phabricator/base/10304, phabricator/base/10306, phabricator/base/10308, phabricator/base/10309, phabricator/base/10310, phabricator/base/10311, phabricator/base/10313, phabricator/base/10314, phabricator/base/10315, phabricator/base/10316, phabricator/base/10318, phabricator/base/10319, phabricator/base/10320, phabricator/base/10321, phabricator/base/10322, phabricator/base/10324, phabricator/base/10325, phabricator/base/10326, phabricator/base/10327, phabricator/base/10328, phabricator/base/10329, phabricator/base/10330, phabricator/base/10331, phabricator/base/10332, phabricator/base/10333, phabricator/base/10334, phabricator/base/10338, phabricator/base/10340, phabricator/base/10342, phabricator/base/10343, phabricator/base/10346, phabricator/base/10350, phabricator/base/10351, phabricator/base/10352, phabricator/base/10353, phabricator/base/10355, phabricator/base/10359, phabricator/base/10362, phabricator/base/10364, phabricator/base/10365, phabricator/base/10366, phabricator/base/10367, phabricator/base/10368, phabricator/base/10369, phabricator/base/10370, phabricator/base/10371, phabricator/base/10372, phabricator/base/10373, phabricator/base/10374, phabricator/base/10375, phabricator/base/10376, phabricator/base/10394, phabricator/base/10395, phabricator/base/10396, phabricator/base/10403, phabricator/base/10404, phabricator/base/10408, phabricator/base/10409, phabricator/base/10410, phabricator/base/10411, phabricator/base/10412, phabricator/base/10413, phabricator/base/10414, phabricator/base/10415, phabricator/base/10418, phabricator/base/10419, phabricator/base/10420, phabricator/base/10421, phabricator/base/10422, phabricator/base/10423, phabricator/base/10431, phabricator/base/10432, phabricator/base/10433, phabricator/base/10434, phabricator/base/10435, phabricator/base/10436, phabricator/base/10437, phabricator/base/10438, phabricator/base/10439, phabricator/base/10440, phabricator/base/10441, phabricator/base/10442, phabricator/base/10443, phabricator/base/10444, phabricator/base/10445, phabricator/base/10446, phabricator/base/10447, phabricator/base/10448, phabricator/base/10449, phabricator/base/10450, phabricator/base/10451, phabricator/base/10452, phabricator/base/10456, phabricator/base/10459, phabricator/base/10461, phabricator/base/10462, phabricator/base/10464, phabricator/base/10465, phabricator/base/10468, phabricator/base/10469, phabricator/base/10470, phabricator/base/10471, phabricator/base/10472, phabricator/base/10473, phabricator/base/10482, phabricator/base/10483, phabricator/base/10489, phabricator/base/10490, phabricator/base/10492, phabricator/base/10493, phabricator/base/10494, phabricator/base/10497, phabricator/base/10498, phabricator/base/10499, phabricator/base/10500, phabricator/base/10501, phabricator/base/10503, phabricator/base/10504, phabricator/base/10509, phabricator/base/10510, phabricator/base/10513, phabricator/base/10521, phabricator/base/10523, phabricator/base/10524, phabricator/base/10525, phabricator/base/10526, phabricator/base/10527, phabricator/base/10528, phabricator/base/10530, phabricator/base/10531, phabricator/base/10532, phabricator/base/10538, phabricator/base/10540, phabricator/base/10541, phabricator/base/10542, phabricator/base/10544, phabricator/base/10548, phabricator/base/10549, phabricator/base/10552, phabricator/base/10554, phabricator/base/10555, phabricator/base/10562, phabricator/base/10571, phabricator/base/10572, phabricator/base/10573, phabricator/base/10574, phabricator/base/10577, phabricator/base/10581, phabricator/base/10586, phabricator/base/10587, phabricator/base/10588, phabricator/base/10589, phabricator/base/10590, phabricator/base/10591, phabricator/base/10592, phabricator/base/10593, phabricator/base/10594, phabricator/base/10595, phabricator/base/10596, phabricator/base/10597, phabricator/base/10598, phabricator/base/10599, phabricator/base/10600, phabricator/base/10601, phabricator/base/10602, phabricator/base/10603, phabricator/base/10604, phabricator/base/10606, phabricator/base/10609, phabricator/base/10610, phabricator/base/10611, phabricator/base/10612, phabricator/base/10613, phabricator/base/10614, phabricator/base/10615, phabricator/base/10616, phabricator/base/10617, phabricator/base/10618, phabricator/base/10620, phabricator/base/10629, phabricator/base/10632, phabricator/base/10633, phabricator/base/10634, phabricator/base/10635, phabricator/base/10636, phabricator/base/10637, phabricator/base/10641, phabricator/base/10642, phabricator/base/10648, phabricator/base/10649, phabricator/base/10650, phabricator/base/10656, phabricator/base/10657, phabricator/base/10658, phabricator/base/10659, phabricator/base/10660, phabricator/base/10661, phabricator/base/10663, phabricator/base/10667, phabricator/base/10668, phabricator/base/10669, phabricator/base/10670, phabricator/base/10671, phabricator/base/10673, phabricator/base/10677, phabricator/base/10679, phabricator/base/10680, phabricator/base/10681, phabricator/base/10685, phabricator/base/10686, phabricator/base/10687, phabricator/base/10688, phabricator/base/10689, phabricator/base/10690, phabricator/base/10691, phabricator/base/10692, phabricator/base/10693, phabricator/base/10694, phabricator/base/10695, phabricator/base/10696, phabricator/base/10697, phabricator/base/10698, phabricator/base/10699, phabricator/base/10701, phabricator/base/10702, phabricator/base/10703, phabricator/base/10704, phabricator/base/10705, phabricator/base/10706, phabricator/base/10707, phabricator/base/10708, phabricator/base/10711, phabricator/base/10712, phabricator/base/10714, phabricator/base/10715, phabricator/base/10716, phabricator/base/10717, phabricator/base/10718, phabricator/base/10719, phabricator/base/10721, phabricator/base/10726, phabricator/base/10729, phabricator/base/10730, phabricator/base/10733, phabricator/base/10734, phabricator/base/10735, phabricator/base/10736, phabricator/base/10737, phabricator/base/10742, phabricator/base/10743, phabricator/base/10744, phabricator/base/10745, phabricator/base/10746, phabricator/base/10747, phabricator/base/10748, phabricator/base/10749, phabricator/base/10750, phabricator/base/10751, phabricator/base/10752, phabricator/base/10753, phabricator/base/10754, phabricator/base/10755, phabricator/base/10756, phabricator/base/10757, phabricator/base/10758, phabricator/base/10759, phabricator/base/10762, phabricator/base/10763, phabricator/base/10767, phabricator/base/10768, phabricator/base/10770, phabricator/base/10771, phabricator/base/10772, phabricator/base/10773, phabricator/base/10774, phabricator/base/10775, phabricator/base/10776, phabricator/base/10777, phabricator/base/10778, phabricator/base/10782, phabricator/base/10783, phabricator/base/10785, phabricator/base/10786, phabricator/base/10787, phabricator/base/10788, phabricator/base/10789, phabricator/base/10790, phabricator/base/10793, phabricator/base/10794, phabricator/base/10795, phabricator/base/10796, phabricator/base/10800, phabricator/base/10801, phabricator/base/10802, phabricator/base/10814, phabricator/base/10815, phabricator/base/10817, phabricator/base/10818, phabricator/base/10819, phabricator/base/10820, phabricator/base/10821, phabricator/base/10822, phabricator/base/10823, phabricator/base/10824, phabricator/base/10825, phabricator/base/10826, phabricator/base/10827, phabricator/base/10828, phabricator/base/10830, phabricator/base/10831, phabricator/base/10832, phabricator/base/10833, phabricator/base/10834, phabricator/base/10835, phabricator/base/10837, phabricator/base/10843, phabricator/base/10844, phabricator/base/10845, phabricator/base/10846, phabricator/base/10847, phabricator/base/10848, phabricator/base/10850, phabricator/base/10852, phabricator/base/10853, phabricator/base/10855, phabricator/base/10857, phabricator/base/10858, phabricator/base/10859, phabricator/base/10860, phabricator/base/10861, phabricator/base/10862, phabricator/base/10864, phabricator/base/10865, phabricator/base/10866, phabricator/base/10867, phabricator/base/10868, phabricator/base/10869, phabricator/base/10870, phabricator/base/10871, phabricator/base/10872, phabricator/base/10873, phabricator/base/10879, phabricator/base/10880, phabricator/base/10881, phabricator/base/10882, phabricator/base/10884, phabricator/base/10885, phabricator/base/10886, phabricator/base/10887, phabricator/base/10888, phabricator/base/10889, phabricator/base/10890, phabricator/base/10891, phabricator/base/10892, phabricator/base/10893, phabricator/base/10894, phabricator/base/10895, phabricator/base/10896, phabricator/base/10897, phabricator/base/10899, phabricator/base/10900, phabricator/base/10901, phabricator/base/10902, phabricator/base/10903, phabricator/base/10904, phabricator/base/10905, phabricator/base/10906, phabricator/base/10907, phabricator/base/10911, phabricator/base/10912, phabricator/base/10914, phabricator/base/10915, phabricator/base/10916, phabricator/base/10918, phabricator/base/10920, phabricator/base/10922, phabricator/base/10924, phabricator/base/10926, phabricator/base/10927, phabricator/base/10928, phabricator/base/10934, phabricator/base/10935, phabricator/base/10936, phabricator/base/10937, phabricator/base/10938, phabricator/base/10942, phabricator/base/10947, phabricator/base/10951, phabricator/base/10952, phabricator/base/10953, phabricator/base/10954, phabricator/base/10955, phabricator/base/10956, phabricator/base/10957, phabricator/base/10958, phabricator/base/10959, phabricator/base/10960, phabricator/base/10961, phabricator/base/10962, phabricator/base/10967, phabricator/base/10968, phabricator/base/10969, phabricator/base/10970, phabricator/base/10971, phabricator/base/10973, phabricator/base/10975, phabricator/base/10983, phabricator/base/10985, phabricator/base/10986, phabricator/base/10987, phabricator/base/10988, phabricator/base/10991, phabricator/base/10992, phabricator/base/10994, phabricator/base/10995, phabricator/base/10997, phabricator/base/10998, phabricator/base/11000, phabricator/base/11001, phabricator/base/11002, phabricator/base/11005, phabricator/base/11006, phabricator/base/11007, phabricator/base/11008, phabricator/base/11009, phabricator/base/11011, phabricator/base/11012, phabricator/base/11013, phabricator/base/11015, phabricator/base/11016, phabricator/base/11019, phabricator/base/11026, phabricator/base/11027, phabricator/base/11028, phabricator/base/11029, phabricator/base/11031, phabricator/base/11032, phabricator/base/11033, phabricator/base/11034, phabricator/base/11035, phabricator/base/11036, phabricator/base/11037, phabricator/base/11044, phabricator/base/11045, phabricator/base/11049, phabricator/base/11050, phabricator/base/11051, phabricator/base/11052, phabricator/base/11053, phabricator/base/11054, phabricator/base/11055, phabricator/base/11057, phabricator/base/11058, phabricator/base/11059, phabricator/base/11060, phabricator/base/11061, phabricator/base/11064, phabricator/base/11067, phabricator/base/11068, phabricator/base/11070, phabricator/base/11071, phabricator/base/11077, phabricator/base/11078, phabricator/base/11079, phabricator/base/11080, phabricator/base/11082, phabricator/base/11083, phabricator/base/11084, phabricator/base/11085, phabricator/base/11087, phabricator/base/11088, phabricator/base/11089, phabricator/base/11091, phabricator/base/11092, phabricator/base/11094, phabricator/base/11095, phabricator/base/11119, phabricator/base/11120, phabricator/base/11121, phabricator/base/11122, phabricator/base/11123, phabricator/base/11126, phabricator/base/11127, phabricator/base/11130, phabricator/base/11131, phabricator/base/11132, phabricator/base/11134, phabricator/base/11138, phabricator/base/11148, phabricator/base/11149, phabricator/base/11150, phabricator/base/11157, phabricator/base/11158, phabricator/base/11159, phabricator/base/11160, phabricator/base/11161, phabricator/base/11162, phabricator/base/11163, phabricator/base/11165, phabricator/base/11167, phabricator/base/11169, phabricator/base/11170, phabricator/base/11172, phabricator/base/11173, phabricator/base/11174, phabricator/base/11175, phabricator/base/11178, phabricator/base/11179, phabricator/base/11180, phabricator/base/11181, phabricator/base/11185, phabricator/base/11187, phabricator/base/11188, phabricator/base/11189, phabricator/base/11200, phabricator/base/11201, phabricator/base/11202, phabricator/base/11203, phabricator/base/11206, phabricator/base/11207, phabricator/base/11209, phabricator/base/11210, phabricator/base/11213, phabricator/base/11216, phabricator/base/11217, phabricator/base/11218, phabricator/base/11221, phabricator/base/11224, phabricator/base/11225, phabricator/base/11226, phabricator/base/11227, phabricator/base/11229, phabricator/base/11230, phabricator/base/11231, phabricator/base/11232, phabricator/base/11234, phabricator/base/11235, phabricator/base/11236, phabricator/base/11237, phabricator/base/11243, phabricator/base/11247, phabricator/base/11248, phabricator/base/11249, phabricator/base/11250, phabricator/base/11251, phabricator/base/11252, phabricator/base/11253, phabricator/base/11254, phabricator/base/11255, phabricator/base/11256, phabricator/base/11257, phabricator/base/11258, phabricator/base/11259, phabricator/base/11260, phabricator/base/11263, phabricator/base/11272, phabricator/base/11273, phabricator/base/11275, phabricator/base/11279, phabricator/base/11280, phabricator/base/11281, phabricator/base/11282, phabricator/base/11283, phabricator/base/11284, phabricator/base/11285, phabricator/base/11286, phabricator/base/11287, phabricator/base/11288, phabricator/base/11289, phabricator/base/11290, phabricator/base/11291, phabricator/base/11292, phabricator/base/11293, phabricator/base/11294, phabricator/base/11295, phabricator/base/11296, phabricator/base/11297, phabricator/base/11298, phabricator/base/11299, phabricator/base/11301, phabricator/base/11302, phabricator/base/11303, phabricator/base/11304, phabricator/base/11306, phabricator/base/11307, phabricator/base/11312, phabricator/base/11313, phabricator/base/11315, phabricator/base/11316, phabricator/base/11317, phabricator/base/11318, phabricator/base/11319, phabricator/base/11320, phabricator/base/11321, phabricator/base/11322, phabricator/base/11327, phabricator/base/11328, phabricator/base/11329, phabricator/base/11335, phabricator/base/11336, phabricator/base/11343, phabricator/base/11352, phabricator/base/11354, phabricator/base/11356, phabricator/base/11358, phabricator/base/11359, phabricator/base/11360, phabricator/base/11365, phabricator/base/11366, phabricator/base/11369, phabricator/base/11370, phabricator/base/11371, phabricator/base/11372, phabricator/base/11373, phabricator/base/11374, phabricator/base/11375, phabricator/base/11376, phabricator/base/11380, phabricator/base/11381, phabricator/base/11383, phabricator/base/11384, phabricator/base/11385, phabricator/base/11390, phabricator/base/11391, phabricator/base/11392, phabricator/base/11393, phabricator/base/11394, phabricator/base/11395, phabricator/base/11396, phabricator/base/11397, phabricator/base/11398, phabricator/base/11406, phabricator/base/11408, phabricator/base/11410, phabricator/base/11411, phabricator/base/11412, phabricator/base/11415, phabricator/base/11421, phabricator/base/11422, phabricator/base/11424, phabricator/base/11427, phabricator/base/11429, phabricator/base/11431, phabricator/base/11433, phabricator/base/11435, phabricator/base/11437, phabricator/base/11439, phabricator/base/11440, phabricator/base/11441, phabricator/base/11442, phabricator/base/11443, phabricator/base/11446, phabricator/base/11447, phabricator/base/11448, phabricator/base/11450, phabricator/base/11451, phabricator/base/11452, phabricator/base/11454, phabricator/base/11456, phabricator/base/11458, phabricator/base/11459, phabricator/base/11460, phabricator/base/11461, phabricator/base/11462, phabricator/base/11463, phabricator/base/11464, phabricator/base/11466, phabricator/base/11468, phabricator/base/11472, phabricator/base/11473, phabricator/base/11474, phabricator/base/11476, phabricator/base/11477, phabricator/base/11480, phabricator/base/11482, phabricator/base/11486, phabricator/base/11487, phabricator/base/11488, phabricator/base/11489, phabricator/base/11490, phabricator/base/11491, phabricator/base/11492, phabricator/base/11493, phabricator/base/11494, phabricator/base/11495, phabricator/base/11499, phabricator/base/11500, phabricator/base/11504, phabricator/base/11505, phabricator/base/11506, phabricator/base/11521, phabricator/base/11522, phabricator/base/11523, phabricator/base/11524, phabricator/base/11525, phabricator/base/11526, phabricator/base/11527, phabricator/base/11528, phabricator/base/11529, phabricator/base/11530, phabricator/base/11531, phabricator/base/11532, phabricator/base/11533, phabricator/base/11534, phabricator/base/11538, phabricator/base/11541, phabricator/base/11543, phabricator/base/11544, phabricator/base/11545, phabricator/base/11546, phabricator/base/11547, phabricator/base/11548, phabricator/base/11549, phabricator/base/11557, phabricator/base/11558, phabricator/base/11559, phabricator/base/11560, phabricator/base/11561, phabricator/base/11562, phabricator/base/11565, phabricator/base/11569, phabricator/base/11571, phabricator/base/11572, phabricator/base/11573, phabricator/base/11574, phabricator/base/11575, phabricator/base/11576, phabricator/base/11578, phabricator/base/11579, phabricator/base/11580, phabricator/base/11581, phabricator/base/11582, phabricator/base/11583, phabricator/base/11584, phabricator/base/11585, phabricator/base/11586, phabricator/base/11587, phabricator/base/11588, phabricator/base/11589, phabricator/base/11590, phabricator/base/11593, phabricator/base/11594, phabricator/base/11602, phabricator/base/11603, phabricator/base/11604, phabricator/base/11605, phabricator/base/11606, phabricator/base/11607, phabricator/base/11609, phabricator/base/11610, phabricator/base/11612, phabricator/base/11613, phabricator/base/11614, phabricator/base/11617, phabricator/base/11618, phabricator/base/11621, phabricator/base/11622, phabricator/base/11623, phabricator/base/11624, phabricator/base/11625, phabricator/base/11626, phabricator/base/11627, phabricator/base/11628, phabricator/base/11630, phabricator/base/11631, phabricator/base/11633, phabricator/base/11634, phabricator/base/11635, phabricator/base/11636, phabricator/base/11637, phabricator/base/11638, phabricator/base/11639, phabricator/base/11640, phabricator/base/11643, phabricator/base/11649, phabricator/base/11650, phabricator/base/11651, phabricator/base/11652, phabricator/base/11653, phabricator/base/11654, phabricator/base/11655, phabricator/base/11656, phabricator/base/11657, phabricator/base/11661, phabricator/base/11662, phabricator/base/11663, phabricator/base/11664, phabricator/base/11665, phabricator/base/11666, phabricator/base/11667, phabricator/base/11668, phabricator/base/11669, phabricator/base/11670, phabricator/base/11671, phabricator/base/11672, phabricator/base/11674, phabricator/base/11675, phabricator/base/11676, phabricator/base/11677, phabricator/base/11678, phabricator/base/11680, phabricator/base/11682, phabricator/base/11683, phabricator/base/11685, phabricator/base/11686, phabricator/base/11688, phabricator/base/11689, phabricator/base/11690, phabricator/base/11692, phabricator/base/11693, phabricator/base/11694, phabricator/base/11695, phabricator/base/11696, phabricator/base/11697, phabricator/base/11698, phabricator/base/11699, phabricator/base/11700, phabricator/base/11706, phabricator/base/11707, phabricator/base/11708, phabricator/base/11709, phabricator/base/11711, phabricator/base/11716, phabricator/base/11737, phabricator/base/11738, phabricator/base/11739, phabricator/base/11743, phabricator/base/11748, phabricator/base/11750, phabricator/base/11752, phabricator/base/11754, phabricator/base/11755, phabricator/base/11767, phabricator/base/11768, phabricator/base/11769, phabricator/base/11770, phabricator/base/11771, phabricator/base/11772, phabricator/base/11773, phabricator/base/11774, phabricator/base/11775, phabricator/base/11776, phabricator/base/11777, phabricator/base/11778, phabricator/base/11779, phabricator/base/11780, phabricator/base/11781, phabricator/base/11782, phabricator/base/11783, phabricator/base/11788, phabricator/base/11789, phabricator/base/11790, phabricator/base/11792, phabricator/base/11793, phabricator/base/11794, phabricator/base/11795, phabricator/base/11796, phabricator/base/11797, phabricator/base/11798, phabricator/base/11799, phabricator/base/11801, phabricator/base/11802, phabricator/base/11803, phabricator/base/11804, phabricator/base/11806, phabricator/base/11807, phabricator/base/11808, phabricator/base/11809, phabricator/base/11810, phabricator/base/11813, phabricator/base/11815, phabricator/base/11818, phabricator/base/11819, phabricator/base/11820, phabricator/base/11821, phabricator/base/11822, phabricator/base/11823, phabricator/base/11824, phabricator/base/11825, phabricator/base/11827, phabricator/base/11828, phabricator/base/11829, phabricator/base/11832, phabricator/base/11833, phabricator/base/11834, phabricator/base/11835, phabricator/base/11836, phabricator/base/11837, phabricator/base/11838, phabricator/base/11839, phabricator/base/11840, phabricator/base/11841, phabricator/base/11842, phabricator/base/11843, phabricator/base/11844, phabricator/base/11846, phabricator/base/11847, phabricator/base/11848, phabricator/base/11849, phabricator/base/11850, phabricator/base/11851, phabricator/base/11852, phabricator/base/11853, phabricator/base/11854, phabricator/base/11855, phabricator/base/11856, phabricator/base/11857, phabricator/base/11860, phabricator/base/11865, phabricator/base/11866, phabricator/base/11867, phabricator/base/11868, phabricator/base/11869, phabricator/base/11872, phabricator/base/11873, phabricator/base/11874, phabricator/base/11877, phabricator/base/11878, phabricator/base/11879, phabricator/base/11880, phabricator/base/11888, phabricator/base/11891, phabricator/base/11892, phabricator/base/11893, phabricator/base/11894, phabricator/base/11895, phabricator/base/11896, phabricator/base/11897, phabricator/base/11898, phabricator/base/11906, phabricator/base/11907, phabricator/base/11909, phabricator/base/11910, phabricator/base/11911, phabricator/base/11912, phabricator/base/11913, phabricator/base/11914, phabricator/base/11915, phabricator/base/11916, phabricator/base/11918, phabricator/base/11928, phabricator/base/11929, phabricator/base/11930, phabricator/base/11935, phabricator/base/11936, phabricator/base/11937, phabricator/base/11938, phabricator/base/11939, phabricator/base/11940, phabricator/base/11941, phabricator/base/11945, phabricator/base/11946, phabricator/base/11947, phabricator/base/11948, phabricator/base/11951, phabricator/base/11954, phabricator/base/11956, phabricator/base/11960, phabricator/base/11961, phabricator/base/11963, phabricator/base/11968, phabricator/base/11969, phabricator/base/11970, phabricator/base/11971, phabricator/base/11978, phabricator/base/11979, phabricator/base/11981, phabricator/base/11983, phabricator/base/11984, phabricator/base/11986, phabricator/base/11989, phabricator/base/11990, phabricator/base/11991, phabricator/base/11992, phabricator/base/11993, phabricator/base/11994, phabricator/base/11995, phabricator/base/11997, phabricator/base/11998, phabricator/base/11999, phabricator/base/12000, phabricator/base/12002, phabricator/base/12003, phabricator/base/12014, phabricator/base/12017, phabricator/base/12018, phabricator/base/12020, phabricator/base/12021, phabricator/base/12029, phabricator/base/12030, phabricator/base/12031, phabricator/base/12032, phabricator/base/12033, phabricator/base/12034, phabricator/base/12035, phabricator/base/12037, phabricator/base/12038, phabricator/base/12039, phabricator/base/12042, phabricator/base/12045, phabricator/base/12046, phabricator/base/12048, phabricator/base/12050, phabricator/base/12051, phabricator/base/12054, phabricator/base/12055, phabricator/base/12057, phabricator/base/12058, phabricator/base/12059, phabricator/base/12060, phabricator/base/12061, phabricator/base/12062, phabricator/base/12063, phabricator/base/12064, phabricator/base/12068, phabricator/base/12069, phabricator/base/12070, phabricator/base/12071, phabricator/base/12072, phabricator/base/12073, phabricator/base/12074, phabricator/base/12075, phabricator/base/12076, phabricator/base/12077, phabricator/base/12078, phabricator/base/12079, phabricator/base/12080, phabricator/base/12081, phabricator/base/12082, phabricator/base/12083, phabricator/base/12084, phabricator/base/12085, phabricator/base/12087, phabricator/base/12088, phabricator/base/12089, phabricator/base/12090, phabricator/base/12091, phabricator/base/12092, phabricator/base/12093, phabricator/base/12094, phabricator/base/12095, phabricator/base/12097, phabricator/base/12098, phabricator/base/12110, phabricator/base/12111, phabricator/base/12112, phabricator/base/12113, phabricator/base/12115, phabricator/base/12116, phabricator/base/12117, phabricator/base/12118, phabricator/base/12119, phabricator/base/12120, phabricator/base/12121, phabricator/base/12122, phabricator/base/12123, phabricator/base/12124, phabricator/base/12125, phabricator/base/12127, phabricator/base/12128, phabricator/base/12129, phabricator/base/12130, phabricator/base/12131, phabricator/base/12132, phabricator/base/12133, phabricator/base/12134, phabricator/base/12135, phabricator/base/12136, phabricator/base/12137, phabricator/base/12138, phabricator/base/12139, phabricator/base/12141, phabricator/base/12142, phabricator/base/12143, phabricator/base/12144, phabricator/base/12145, phabricator/base/12148, phabricator/base/12149, phabricator/base/12150, phabricator/base/12154, phabricator/base/12156, phabricator/base/12157, phabricator/base/12158, phabricator/base/12159, phabricator/base/12160, phabricator/base/12161, phabricator/base/12170, phabricator/base/12171, phabricator/base/12172, phabricator/base/12173, phabricator/base/12174, phabricator/base/12178, phabricator/base/12179, phabricator/base/12180, phabricator/base/12182, phabricator/base/12183, phabricator/base/12184, phabricator/base/12186, phabricator/base/12187, phabricator/base/12188, phabricator/base/12189, phabricator/base/12190, phabricator/base/12191, phabricator/base/12192, phabricator/base/12193, phabricator/base/12194, phabricator/base/12195, phabricator/base/12197, phabricator/base/12198, phabricator/base/12199, phabricator/base/12200, phabricator/base/12201, phabricator/base/12203, phabricator/base/12206, phabricator/base/12211, phabricator/base/12212, phabricator/base/12214, phabricator/base/12215, phabricator/base/12216, phabricator/base/12217, phabricator/base/12218, phabricator/base/12219, phabricator/base/12221, phabricator/base/12223, phabricator/base/12224, phabricator/base/12234, phabricator/base/12235, phabricator/base/12236, phabricator/base/12237, phabricator/base/12238, phabricator/base/12239, phabricator/base/12240, phabricator/base/12241, phabricator/base/12242, phabricator/base/12243, phabricator/base/12249, phabricator/base/12250, phabricator/base/12251, phabricator/base/12252, phabricator/base/12253, phabricator/base/12255, phabricator/base/12256, phabricator/base/12257, phabricator/base/12258, phabricator/base/12260, phabricator/base/12261, phabricator/base/12262, phabricator/base/12263, phabricator/base/12264, phabricator/base/12272, phabricator/base/12273, phabricator/base/12274, phabricator/base/12275, phabricator/base/12276, phabricator/base/12277, phabricator/base/12278, phabricator/base/12279, phabricator/base/12280, phabricator/base/12282, phabricator/base/12283, phabricator/base/12284, phabricator/base/12286, phabricator/base/12287, phabricator/base/12288, phabricator/base/12289, phabricator/base/12290, phabricator/base/12291, phabricator/base/12292, phabricator/base/12293, phabricator/base/12294, phabricator/base/12295, phabricator/base/12296, phabricator/base/12297, phabricator/base/12298, phabricator/base/12299, phabricator/base/12301, phabricator/base/12307, phabricator/base/12308, phabricator/base/12309, phabricator/base/12310, phabricator/base/12311, phabricator/base/12315, phabricator/base/12316, phabricator/base/12318, phabricator/base/12320, phabricator/base/12322, phabricator/base/12323, phabricator/base/12324, phabricator/base/12326, phabricator/base/12328, phabricator/base/12329, phabricator/base/12332, phabricator/base/12333, phabricator/base/12334, phabricator/base/12338, phabricator/base/12339, phabricator/base/12340, phabricator/base/12341, phabricator/base/12342, phabricator/base/12343, phabricator/base/12346, phabricator/base/12347, phabricator/base/12348, phabricator/base/12349, phabricator/base/12350, phabricator/base/12351, phabricator/base/12352, phabricator/base/12353, phabricator/base/12354, phabricator/base/12355, phabricator/base/12356, phabricator/base/12357, phabricator/base/12358, phabricator/base/12359, phabricator/base/12360, phabricator/base/12361, phabricator/base/12362, phabricator/base/12363, phabricator/base/12364, phabricator/base/12365, phabricator/base/12369, phabricator/base/12371, phabricator/base/12372, phabricator/base/12373, phabricator/base/12374, phabricator/base/12375, phabricator/base/12376, phabricator/base/12377, phabricator/base/12378, phabricator/base/12379, phabricator/base/12381, phabricator/base/12382, phabricator/base/12383, phabricator/base/12387, phabricator/base/12403, phabricator/base/12404, phabricator/base/12407, phabricator/base/12411, phabricator/base/12412, phabricator/base/12413, phabricator/base/12414, phabricator/base/12415, phabricator/base/12416, phabricator/base/12417, phabricator/base/12418, phabricator/base/12419, phabricator/base/12420, phabricator/base/12421, phabricator/base/12424, phabricator/base/12435, phabricator/base/12436, phabricator/base/12437, phabricator/base/12438, phabricator/base/12439, phabricator/base/12440, phabricator/base/12448, phabricator/base/12449, phabricator/base/12450, phabricator/base/12452, phabricator/base/12454, phabricator/base/12455, phabricator/base/12456, phabricator/base/12457, phabricator/base/12458, phabricator/base/12459, phabricator/base/12460, phabricator/base/12461, phabricator/base/12462, phabricator/base/12463, phabricator/base/12464, phabricator/base/12465, phabricator/base/12467, phabricator/base/12468, phabricator/base/12469, phabricator/base/12470, phabricator/base/12471, phabricator/base/12472, phabricator/base/12473, phabricator/base/12474, phabricator/base/12475, phabricator/base/12476, phabricator/base/12477, phabricator/base/12478, phabricator/base/12479, phabricator/base/12480, phabricator/base/12481, phabricator/base/12484, phabricator/base/12485, phabricator/base/12486, phabricator/base/12487, phabricator/base/12488, phabricator/base/12489, phabricator/base/12490, phabricator/base/12491, phabricator/base/12492, phabricator/base/12493, phabricator/base/12494, phabricator/base/12495, phabricator/base/12496, phabricator/base/12497, phabricator/base/12498, phabricator/base/12499, phabricator/base/12509, phabricator/base/12510, phabricator/base/12511, phabricator/base/12512, phabricator/base/12513, phabricator/base/12514, phabricator/base/12515, phabricator/base/12517, phabricator/base/12518, phabricator/base/12519, phabricator/base/12520, phabricator/base/12521, phabricator/base/12522, phabricator/base/12523, phabricator/base/12534, phabricator/base/12535, phabricator/base/12536, phabricator/base/12540, phabricator/base/12541, phabricator/base/12542, phabricator/base/12544, phabricator/base/12546, phabricator/base/12548, phabricator/base/12549, phabricator/base/12550, phabricator/base/12551, phabricator/base/12552, phabricator/base/12553, phabricator/base/12554, phabricator/base/12555, phabricator/base/12556, phabricator/base/12557, phabricator/base/12558, phabricator/base/12559, phabricator/base/12560, phabricator/base/12562, phabricator/base/12563, phabricator/base/12564, phabricator/base/12565, phabricator/base/12567, phabricator/base/12568, phabricator/base/12569, phabricator/base/12570, phabricator/base/12571, phabricator/base/12572, phabricator/base/12573, phabricator/base/12575, phabricator/base/12576, phabricator/base/12577, phabricator/base/12578, phabricator/base/12579, phabricator/base/12581, phabricator/base/12582, phabricator/base/12583, phabricator/base/12584, phabricator/base/12585, phabricator/base/12586, phabricator/base/12587, phabricator/base/12588, phabricator/base/12589, phabricator/base/12590, phabricator/base/12591, phabricator/base/12592, phabricator/base/12601, phabricator/base/12602, phabricator/base/12604, phabricator/base/12605, phabricator/base/12606, phabricator/base/12607, phabricator/base/12608, phabricator/base/12609, phabricator/base/12611, phabricator/base/12612, phabricator/base/12613, phabricator/base/12614, phabricator/base/12618, phabricator/base/12620, phabricator/base/12621, phabricator/base/12622, phabricator/base/12623, phabricator/base/12624, phabricator/base/12626, phabricator/base/12627, phabricator/base/12628, phabricator/base/12629, phabricator/base/12630, phabricator/base/12632, phabricator/base/12633, phabricator/base/12634, phabricator/base/12637, phabricator/base/12638, phabricator/base/12639, phabricator/base/12646, phabricator/base/12647, phabricator/base/12648, phabricator/base/12649, phabricator/base/12650, phabricator/base/12651, phabricator/base/12652, phabricator/base/12653, phabricator/base/12654, phabricator/base/12655, phabricator/base/12656, phabricator/base/12657, phabricator/base/12658, phabricator/base/12659, phabricator/base/12660, phabricator/base/12661, phabricator/base/12662, phabricator/base/12663, phabricator/base/12664, phabricator/base/12665, phabricator/base/12667, phabricator/base/12668, phabricator/base/12669, phabricator/base/12680, phabricator/base/12681, phabricator/base/12682, phabricator/base/12683, phabricator/base/12684, phabricator/base/12685, phabricator/base/12687, phabricator/base/12689, phabricator/base/12690, phabricator/base/12691, phabricator/base/12692, phabricator/base/12693, phabricator/base/12695, phabricator/base/12696, phabricator/base/12698, phabricator/base/12699, phabricator/base/12700, phabricator/base/12701, phabricator/base/12702, phabricator/base/12703, phabricator/base/12704, phabricator/base/12705, phabricator/base/12708, phabricator/base/12709, phabricator/base/12710, phabricator/base/12711, phabricator/base/12712, phabricator/base/12713, phabricator/base/12714, phabricator/base/12715, phabricator/base/12716, phabricator/base/12717, phabricator/base/12718, phabricator/base/12719, phabricator/base/12720, phabricator/base/12722, phabricator/base/12723, phabricator/base/12724, phabricator/base/12725, phabricator/base/12728, phabricator/base/12729, phabricator/base/12730, phabricator/base/12731, phabricator/base/12732, phabricator/base/12733, phabricator/base/12734, phabricator/base/12735, phabricator/base/12736, phabricator/base/12737, phabricator/base/12738, phabricator/base/12739, phabricator/base/12740, phabricator/base/12741, phabricator/base/12742, phabricator/base/12743, phabricator/base/12752, phabricator/base/12753, phabricator/base/12754, phabricator/base/12755, phabricator/base/12756, phabricator/base/12757, phabricator/base/12758, phabricator/base/12759, phabricator/base/12760, phabricator/base/12761, phabricator/base/12762, phabricator/base/12764, phabricator/base/12766, phabricator/base/12767, phabricator/base/12768, phabricator/base/12769, phabricator/base/12770, phabricator/base/12771, phabricator/base/12772, phabricator/base/12773, phabricator/base/12774, phabricator/base/12775, phabricator/base/12776, phabricator/base/12777, phabricator/base/12778, phabricator/base/12779, phabricator/base/12780, phabricator/base/12781, phabricator/base/12782, phabricator/base/12784, phabricator/base/12785, phabricator/base/12788, phabricator/base/12796, phabricator/base/12797, phabricator/base/12802, phabricator/base/12804, phabricator/base/12805, phabricator/base/12806, phabricator/base/12807, phabricator/base/12808, phabricator/base/12810, phabricator/base/12811, phabricator/base/12812, phabricator/base/12813, phabricator/base/12815, phabricator/base/12817, phabricator/base/12826, phabricator/base/12827, phabricator/base/12828, phabricator/base/12829, phabricator/base/12830, phabricator/base/12831, phabricator/base/12834, phabricator/base/12839, phabricator/base/12840, phabricator/base/12842, phabricator/base/12843, phabricator/base/12844, phabricator/base/12845, phabricator/base/12846, phabricator/base/12847, phabricator/base/12848, phabricator/base/12849, phabricator/base/12850, phabricator/base/12851, phabricator/base/12852, phabricator/base/12853, phabricator/base/12854, phabricator/base/12855, phabricator/base/12856, phabricator/base/12858, phabricator/base/12860, phabricator/base/12861, phabricator/base/12862, phabricator/base/12864, phabricator/base/12866, phabricator/base/12867, phabricator/base/12869, phabricator/base/12870, phabricator/base/12871, phabricator/base/12872, phabricator/base/12873, phabricator/base/12875, phabricator/base/12884, phabricator/base/12885, phabricator/base/12886, phabricator/base/12887, phabricator/base/12888, phabricator/base/12889, phabricator/base/12890, phabricator/base/12891, phabricator/base/12892, phabricator/base/12893, phabricator/base/12894, phabricator/base/12895, phabricator/base/12899, phabricator/base/12900, phabricator/base/12901, phabricator/base/12902, phabricator/base/12903, phabricator/base/12904, phabricator/base/12905, phabricator/base/12912, phabricator/base/12914, phabricator/base/12915, phabricator/base/12916, phabricator/base/12917, phabricator/base/12918, phabricator/base/12919, phabricator/base/12920, phabricator/base/12921, phabricator/base/12922, phabricator/base/12923, phabricator/base/12924, phabricator/base/12925, phabricator/base/12926, phabricator/base/12927, phabricator/base/12928, phabricator/base/12929, phabricator/base/12930, phabricator/base/12931, phabricator/base/12932, phabricator/base/12936, phabricator/base/12937, phabricator/base/12938, phabricator/base/12939, phabricator/base/12940, phabricator/base/12941, phabricator/base/12942, phabricator/base/12943, phabricator/base/12950, phabricator/base/12951, phabricator/base/12952, phabricator/base/12953, phabricator/base/12954, phabricator/base/12955, phabricator/base/12956, phabricator/base/12957, phabricator/base/12958, phabricator/base/12959, phabricator/base/12961, phabricator/base/12962, phabricator/base/12963, phabricator/base/12964, phabricator/base/12965, phabricator/base/12966, phabricator/base/12967, phabricator/base/12975, phabricator/base/12976, phabricator/base/12977, phabricator/base/12978, phabricator/base/12979, phabricator/base/12982, phabricator/base/12984, phabricator/base/12985, phabricator/base/12986, phabricator/base/12987, phabricator/base/12988, phabricator/base/12989, phabricator/base/12990, phabricator/base/12991, phabricator/base/12992, phabricator/base/12993, phabricator/base/12994, phabricator/base/12995, phabricator/base/12996, phabricator/base/12997, phabricator/base/12998, phabricator/base/12999, phabricator/base/13001, phabricator/base/13003, phabricator/base/13004, phabricator/base/13005, phabricator/base/13006, phabricator/base/13007, phabricator/base/13008, phabricator/base/13024, phabricator/base/13027, phabricator/base/13028, phabricator/base/13029, phabricator/base/13030, phabricator/base/13031, phabricator/base/13033, phabricator/base/13034, phabricator/base/13035, phabricator/base/13036, phabricator/base/13037, phabricator/base/13038, phabricator/base/13039, phabricator/base/13040, phabricator/base/13041, phabricator/base/13042, phabricator/base/13043, phabricator/base/13044, phabricator/base/13045, phabricator/base/13046, phabricator/base/13047, phabricator/base/13048, phabricator/base/13049, phabricator/base/13050, phabricator/base/13051, phabricator/base/13052, phabricator/base/13054, phabricator/base/13055, phabricator/base/13056, phabricator/base/13057, phabricator/base/13058, phabricator/base/13060, phabricator/base/13061, phabricator/base/13062, phabricator/base/13063, phabricator/base/13064, phabricator/base/13065, phabricator/base/13066, phabricator/base/13068, phabricator/base/13069, phabricator/base/13070, phabricator/base/13071, phabricator/base/13072, phabricator/base/13073, phabricator/base/13075, phabricator/base/13076, phabricator/base/13077, phabricator/base/13078, phabricator/base/13079, phabricator/base/13080, phabricator/base/13081, phabricator/base/13082, phabricator/base/13083, phabricator/base/13084, phabricator/base/13085, phabricator/base/13086, phabricator/base/13087, phabricator/base/13088, phabricator/base/13089, phabricator/base/13090, phabricator/base/13091, phabricator/base/13092, phabricator/base/13093, phabricator/base/13094, phabricator/base/13105, phabricator/base/13118, phabricator/base/13122, phabricator/base/13123, phabricator/base/13124, phabricator/base/13125, phabricator/base/13126, phabricator/base/13127, phabricator/base/13128, phabricator/base/13130, phabricator/base/13131, phabricator/base/13132, phabricator/base/13133, phabricator/base/13134, phabricator/base/13135, phabricator/base/13136, phabricator/base/13139, phabricator/base/13140, phabricator/base/13141, phabricator/base/13143, phabricator/base/13144, phabricator/base/13145, phabricator/base/13146, phabricator/base/13147, phabricator/base/13153, phabricator/base/13154, phabricator/base/13155, phabricator/base/13156, phabricator/base/13157, phabricator/base/13158, phabricator/base/13159, phabricator/base/13160, phabricator/base/13161, phabricator/base/13162, phabricator/base/13163, phabricator/base/13164, phabricator/base/13165, phabricator/base/13166, phabricator/base/13167, phabricator/base/13168, phabricator/base/13169, phabricator/base/13170, phabricator/base/13171, phabricator/base/13172, phabricator/base/13174, phabricator/base/13175, phabricator/base/13177, phabricator/base/13180, phabricator/base/13181, phabricator/base/13182, phabricator/base/13183, phabricator/base/13184, phabricator/base/13185, phabricator/base/13186, phabricator/base/13187, phabricator/base/13188, phabricator/base/13189, phabricator/base/13190, phabricator/base/13191, phabricator/base/13192, phabricator/base/13193, phabricator/base/13194, phabricator/base/13195, phabricator/base/13196, phabricator/base/13197, phabricator/base/13198, phabricator/base/13199, phabricator/base/13200, phabricator/base/13201, phabricator/base/13202, phabricator/base/13203, phabricator/base/13204, phabricator/base/13205, phabricator/base/13206, phabricator/base/13208, phabricator/base/13213, phabricator/base/13214, phabricator/base/13215, phabricator/base/13216, phabricator/base/13217, phabricator/base/13218, phabricator/base/13220, phabricator/base/13221, phabricator/base/13222, phabricator/base/13223, phabricator/base/13224, phabricator/base/13225, phabricator/base/13226, phabricator/base/13228, phabricator/base/13229, phabricator/base/13230, phabricator/base/13233, phabricator/base/13234, phabricator/base/13235, phabricator/base/13236, phabricator/base/13237, phabricator/base/13238, phabricator/base/13239, phabricator/base/13240, phabricator/base/13241, phabricator/base/13242, phabricator/base/13243, phabricator/base/13244, phabricator/base/13251, phabricator/base/13253, phabricator/base/13254, phabricator/base/13257, phabricator/base/13265, phabricator/base/13266, phabricator/base/13267, phabricator/base/13268, phabricator/base/13269, phabricator/base/13271, phabricator/base/13272, phabricator/base/13273, phabricator/base/13274, phabricator/base/13275, phabricator/base/13276, phabricator/base/13277, phabricator/base/13279, phabricator/base/13280, phabricator/base/13281, phabricator/base/13282, phabricator/base/13284, phabricator/base/13285, phabricator/base/13286, phabricator/base/13287, phabricator/base/13289, phabricator/base/13291, phabricator/base/13292, phabricator/base/13295, phabricator/base/13296, phabricator/base/13297, phabricator/base/13298, phabricator/base/13299, phabricator/base/13303, phabricator/base/13305, phabricator/base/13306, phabricator/base/13307, phabricator/base/13308, phabricator/base/13309, phabricator/base/13310, phabricator/base/13313, phabricator/base/13314, phabricator/base/13322, phabricator/base/13323, phabricator/base/13324, phabricator/base/13325, phabricator/base/13326, phabricator/base/13328, phabricator/base/13329, phabricator/base/13330, phabricator/base/13331, phabricator/base/13332, phabricator/base/13334, phabricator/base/13335, phabricator/base/13337, phabricator/base/13338, phabricator/base/13339, phabricator/base/13342, phabricator/base/13343, phabricator/base/13344, phabricator/base/13345, phabricator/base/13346, phabricator/base/13347, phabricator/base/13348, phabricator/base/13351, phabricator/base/13352, phabricator/base/13353, phabricator/base/13354, phabricator/base/13355, phabricator/base/13356, phabricator/base/13357, phabricator/base/13358, phabricator/base/13359, phabricator/base/13360, phabricator/base/13361, phabricator/base/13362, phabricator/base/13363, phabricator/base/13364, phabricator/base/13368, phabricator/base/13369, phabricator/base/13376, phabricator/base/13377, phabricator/base/13378, phabricator/base/13379, phabricator/base/13380, phabricator/base/13381, phabricator/base/13389, phabricator/base/13390, phabricator/base/13391, phabricator/base/13392, phabricator/base/13393, phabricator/base/13395, phabricator/base/13396, phabricator/base/13397, phabricator/base/13398, phabricator/base/13400, phabricator/base/13401, phabricator/base/13402, phabricator/base/13403, phabricator/base/13404, phabricator/base/13419, phabricator/base/13420, phabricator/base/13422, phabricator/base/13424, phabricator/base/13426, phabricator/base/13427, phabricator/base/13430, phabricator/base/13431, phabricator/base/13432, phabricator/base/13433, phabricator/base/13434, phabricator/base/13439, phabricator/base/13440, phabricator/base/13441, phabricator/base/13443, phabricator/base/13444, phabricator/base/13445, phabricator/base/13449, phabricator/base/13451, phabricator/base/13453, phabricator/base/13454, phabricator/base/13455, phabricator/base/13456, phabricator/base/13457, phabricator/base/13458, phabricator/base/13459, phabricator/base/13460, phabricator/base/13461, phabricator/base/13462, phabricator/base/13463, phabricator/base/13464, phabricator/base/13465, phabricator/base/13466, phabricator/base/13467, phabricator/base/13468, phabricator/base/13469, phabricator/base/13470, phabricator/base/13471, phabricator/base/13472, phabricator/base/13473, phabricator/base/13474, phabricator/base/13475, phabricator/base/13476, phabricator/base/13477, phabricator/base/13478, phabricator/base/13479, phabricator/base/13480, phabricator/base/13486, phabricator/base/13487, phabricator/base/13488, phabricator/base/13489, phabricator/base/13495, phabricator/base/13497, phabricator/base/13498, phabricator/base/13499, phabricator/base/13501, phabricator/base/13503, phabricator/base/13504, phabricator/base/13505, phabricator/base/13513, phabricator/base/13514, phabricator/base/13519, phabricator/base/13520, phabricator/base/13521, phabricator/base/13522, phabricator/base/13523, phabricator/base/13524, phabricator/base/13525, phabricator/base/13526, phabricator/base/13527, phabricator/base/13528, phabricator/base/13529, phabricator/base/13531, phabricator/base/13532, phabricator/base/13533, phabricator/base/13534, phabricator/base/13535, phabricator/base/13538, phabricator/base/13539, phabricator/base/13540, phabricator/base/13544, phabricator/base/13545, phabricator/base/13546, phabricator/base/13548, phabricator/base/13556, phabricator/base/13557, phabricator/base/13558, phabricator/base/13559, phabricator/base/13560, phabricator/base/13561, phabricator/base/13562, phabricator/base/13563, phabricator/base/13567, phabricator/base/13568, phabricator/base/13569, phabricator/base/13571, phabricator/base/13572, phabricator/base/13573, phabricator/base/13574, phabricator/base/13575, phabricator/base/13576, phabricator/base/13577, phabricator/base/13578, phabricator/base/13579, phabricator/base/13580, phabricator/base/13581, phabricator/base/13582, phabricator/base/13583, phabricator/base/13584, phabricator/base/13585, phabricator/base/13586, phabricator/base/13587, phabricator/base/13588, phabricator/base/13590, phabricator/base/13591, phabricator/base/13592, phabricator/base/13593, phabricator/base/13594, phabricator/base/13604, phabricator/base/13605, phabricator/base/13608, phabricator/base/13609, phabricator/base/13610, phabricator/base/13614, phabricator/base/13615, phabricator/base/13616, phabricator/base/13617, phabricator/base/13618, phabricator/base/13619, phabricator/base/13622, phabricator/base/13628, phabricator/base/13629, phabricator/base/13630, phabricator/base/13631, phabricator/base/13639, phabricator/base/13641, phabricator/base/13642, phabricator/base/13643, phabricator/base/13645, phabricator/base/13646, phabricator/base/13647, phabricator/base/13648, phabricator/base/13649, phabricator/base/13650, phabricator/base/13651, phabricator/base/13652, phabricator/base/13653, phabricator/base/13654, phabricator/base/13655, phabricator/base/13656, phabricator/base/13657, phabricator/base/13659, phabricator/base/13660, phabricator/base/13665, phabricator/base/13666, phabricator/base/13667, phabricator/base/13668, phabricator/base/13674, phabricator/base/13676, phabricator/base/13680, phabricator/base/13681, phabricator/base/13682, phabricator/base/13684, phabricator/base/13685, phabricator/base/13686, phabricator/base/13687, phabricator/base/13688, phabricator/base/13689, phabricator/base/13690, phabricator/base/13691, phabricator/base/13692, phabricator/base/13693, phabricator/base/13695, phabricator/base/13696, phabricator/base/13697, phabricator/base/13700, phabricator/base/13701, phabricator/base/13702, phabricator/base/13703, phabricator/base/13704, phabricator/base/13705, phabricator/base/13706, phabricator/base/13707, phabricator/base/13708, phabricator/base/13709, phabricator/base/13713, phabricator/base/13714, phabricator/base/13717, phabricator/base/13718, phabricator/base/13719, phabricator/base/13725, phabricator/base/13726, phabricator/base/13727, phabricator/base/13728, phabricator/base/13729, phabricator/base/13730, phabricator/base/13731, phabricator/base/13732, phabricator/base/13733, phabricator/base/13734, phabricator/base/13735, phabricator/base/13736, phabricator/base/13737, phabricator/base/13738, phabricator/base/13751, phabricator/base/13752, phabricator/base/13753, phabricator/base/13754, phabricator/base/13755, phabricator/base/13757, phabricator/base/13758, phabricator/base/13759, phabricator/base/13760, phabricator/base/13761, phabricator/base/13762, phabricator/base/13766, phabricator/base/13768, phabricator/base/13769, phabricator/base/13770, phabricator/base/13771, phabricator/base/13772, phabricator/base/13774, phabricator/base/13775, phabricator/base/13776, phabricator/base/13779, phabricator/base/13780, phabricator/base/13784, phabricator/base/13785, phabricator/base/13786, phabricator/base/13787, phabricator/base/13788, phabricator/base/13789, phabricator/base/13790, phabricator/base/13791, phabricator/base/13792, phabricator/base/13793, phabricator/base/13794, phabricator/base/13795, phabricator/base/13796, phabricator/base/13797, phabricator/base/13798, phabricator/base/13799, phabricator/base/13800, phabricator/base/13801, phabricator/base/13802, phabricator/base/13803, phabricator/base/13804, phabricator/base/13809, phabricator/base/13810, phabricator/base/13811, phabricator/base/13813, phabricator/base/13814, phabricator/base/13815, phabricator/base/13817, phabricator/base/13819, phabricator/base/13820, phabricator/base/13825, phabricator/base/13826, phabricator/base/13829, phabricator/base/13831, phabricator/base/13835, phabricator/base/13836, phabricator/base/13840, phabricator/base/13841, phabricator/base/13842, phabricator/base/13843, phabricator/base/13844, phabricator/base/13845, phabricator/base/13846, phabricator/base/13855, phabricator/base/13857, phabricator/base/13858, phabricator/base/13859, phabricator/base/13865, phabricator/base/13866, phabricator/base/13867, phabricator/base/13869, phabricator/base/13870, phabricator/base/13871, phabricator/base/13872, phabricator/base/13873, phabricator/base/13874, phabricator/base/13875, phabricator/base/13876, phabricator/base/13877, phabricator/base/13878, phabricator/base/13879, phabricator/base/13880, phabricator/base/13881, phabricator/base/13882, phabricator/base/13883, phabricator/base/13884, phabricator/base/13885, phabricator/base/13886, phabricator/base/13887, phabricator/base/13888, phabricator/base/13890, phabricator/base/13891, phabricator/base/13893, phabricator/base/13894, phabricator/base/13895, phabricator/base/13896, phabricator/base/13897, phabricator/base/13898, phabricator/base/13899, phabricator/base/13901, phabricator/base/13902, phabricator/base/13903, phabricator/base/13904, phabricator/base/13905, phabricator/base/13906, phabricator/base/13907, phabricator/base/13908, phabricator/base/13915, phabricator/base/13916, phabricator/base/13917, phabricator/base/13918, phabricator/base/13919, phabricator/base/13920, phabricator/base/13921, phabricator/base/13922, phabricator/base/13923, phabricator/base/13924, phabricator/base/13925, phabricator/base/13926, phabricator/base/13927, phabricator/base/13928, phabricator/base/13929, phabricator/base/13930, phabricator/base/13931, phabricator/base/13932, phabricator/base/13933, phabricator/base/13934, phabricator/base/13935, phabricator/base/13936, phabricator/base/13937, phabricator/base/13939, phabricator/base/13940, phabricator/base/13941, phabricator/base/13943, phabricator/base/13944, phabricator/base/13945, phabricator/base/13946, phabricator/base/13947, phabricator/base/13948, phabricator/base/13949, phabricator/base/13950, phabricator/base/13951, phabricator/base/13952, phabricator/base/13955, phabricator/base/13956, phabricator/base/13958, phabricator/base/13959, phabricator/base/13960, phabricator/base/13961, phabricator/base/13962, phabricator/base/13965, phabricator/base/13966, phabricator/base/13967, phabricator/base/13968, phabricator/base/13969, phabricator/base/13973, phabricator/base/13974, phabricator/base/13976, phabricator/base/13977, phabricator/base/13978, phabricator/base/13979, phabricator/base/13980, phabricator/base/13989, phabricator/base/13995, phabricator/base/13996, phabricator/base/13997, phabricator/base/13998, phabricator/base/13999, phabricator/base/14000, phabricator/base/14001, phabricator/base/14002, phabricator/base/14003, phabricator/base/14006, phabricator/base/14007, phabricator/base/14008, phabricator/base/14013, phabricator/base/14015, phabricator/base/14016, phabricator/base/14017, phabricator/base/14018, phabricator/base/14019, phabricator/base/14020, phabricator/base/14021, phabricator/base/14022, phabricator/base/14023, phabricator/base/14024, phabricator/base/14030, phabricator/base/14033, phabricator/base/14034, phabricator/base/14035, phabricator/base/14041, phabricator/base/14042, phabricator/base/14043, phabricator/base/14044, phabricator/base/14045, phabricator/base/14046, phabricator/base/14047, phabricator/base/14048, phabricator/base/14049, phabricator/base/14050, phabricator/base/14051, phabricator/base/14052, phabricator/base/14053, phabricator/base/14055, phabricator/base/14056, phabricator/base/14057, phabricator/base/14058, phabricator/base/14059, phabricator/base/14060, phabricator/base/14061, phabricator/base/14062, phabricator/base/14063, phabricator/base/14064, phabricator/base/14067, phabricator/base/14068, phabricator/base/14071, phabricator/base/14072, phabricator/base/14073, phabricator/base/14075, phabricator/base/14076, phabricator/base/14078, phabricator/base/14081, phabricator/base/14082, phabricator/base/14083, phabricator/base/14084, phabricator/base/14085, phabricator/base/14086, phabricator/base/14087, phabricator/base/14088, phabricator/base/14089, phabricator/base/14090, phabricator/base/14091, phabricator/base/14095, phabricator/base/14096, phabricator/base/14097, phabricator/base/14098, phabricator/base/14099, phabricator/base/14100, phabricator/base/14101, phabricator/base/14102, phabricator/base/14103, phabricator/base/14115, phabricator/base/14116, phabricator/base/14117, phabricator/base/14118, phabricator/base/14119, phabricator/base/14120, phabricator/base/14121, phabricator/base/14122, phabricator/base/14123, phabricator/base/14124, phabricator/base/14125, phabricator/base/14126, phabricator/base/14127, phabricator/base/14128, phabricator/base/14129, phabricator/base/14136, phabricator/base/14137, phabricator/base/14138, phabricator/base/14139, phabricator/base/14140, phabricator/base/14141, phabricator/base/14146, phabricator/base/14147, phabricator/base/14148, phabricator/base/14150, phabricator/base/14151, phabricator/base/14152, phabricator/base/14153, phabricator/base/14154, phabricator/base/14155, phabricator/base/14156, phabricator/base/14159, phabricator/base/14160, phabricator/base/14161, phabricator/base/14162, phabricator/base/14163, phabricator/base/14164, phabricator/base/14165, phabricator/base/14166, phabricator/base/14167, phabricator/base/14173, phabricator/base/14174, phabricator/base/14175, phabricator/base/14176, phabricator/base/14177, phabricator/base/14178, phabricator/base/14181, phabricator/base/14183, phabricator/base/14184, phabricator/base/14186, phabricator/base/14187, phabricator/base/14189, phabricator/base/14191, phabricator/base/14192, phabricator/base/14193, phabricator/base/14194, phabricator/base/14195, phabricator/base/14196, phabricator/base/14197, phabricator/base/14198, phabricator/base/14199, phabricator/base/14201, phabricator/base/14202, phabricator/base/14203, phabricator/base/14204, phabricator/base/14210, phabricator/base/14211, phabricator/base/14212, phabricator/base/14213, phabricator/base/14214, phabricator/base/14215, phabricator/base/14216, phabricator/base/14217, phabricator/base/14218, phabricator/base/14219, phabricator/base/14220, phabricator/base/14221, phabricator/base/14222, phabricator/base/14223, phabricator/base/14224, phabricator/base/14226, phabricator/base/14228, phabricator/base/14229, phabricator/base/14231, phabricator/base/14233, phabricator/base/14234, phabricator/base/14236, phabricator/base/14237, phabricator/base/14238, phabricator/base/14239, phabricator/base/14241, phabricator/base/14252, phabricator/base/14253, phabricator/base/14254, phabricator/base/14255, phabricator/base/14256, phabricator/base/14257, phabricator/base/14259, phabricator/base/14260, phabricator/base/14261, phabricator/base/14262, phabricator/base/14263, phabricator/base/14264, phabricator/base/14265, phabricator/base/14266, phabricator/base/14267, phabricator/base/14268, phabricator/base/14269, phabricator/base/14271, phabricator/base/14273, phabricator/base/14275, phabricator/base/14276, phabricator/base/14277, phabricator/base/14279, phabricator/base/14280, phabricator/base/14284, phabricator/base/14285, phabricator/base/14286, phabricator/base/14289, phabricator/base/14290, phabricator/base/14291, phabricator/base/14293, phabricator/base/14294, phabricator/base/14298, phabricator/base/14302, phabricator/base/14303, phabricator/base/14305, phabricator/base/14308, phabricator/base/14309, phabricator/base/14310, phabricator/base/14312, phabricator/base/14313, phabricator/base/14314, phabricator/base/14315, phabricator/base/14318, phabricator/base/14319, phabricator/base/14320, phabricator/base/14321, phabricator/base/14323, phabricator/base/14324, phabricator/base/14325, phabricator/base/14328, phabricator/base/14329, phabricator/base/14330, phabricator/base/14331, phabricator/base/14332, phabricator/base/14333, phabricator/base/14334, phabricator/base/14335, phabricator/base/14336, phabricator/base/14337, phabricator/base/14338, phabricator/base/14339, phabricator/base/14340, phabricator/base/14342, phabricator/base/14343, phabricator/base/14344, phabricator/base/14345, phabricator/base/14347, phabricator/base/14348, phabricator/base/14349, phabricator/base/14350, phabricator/base/14351, phabricator/base/14352, phabricator/base/14353, phabricator/base/14355, phabricator/base/14356, phabricator/base/14357, phabricator/base/14358, phabricator/base/14359, phabricator/base/14360, phabricator/base/14361, phabricator/base/14364, phabricator/base/14369, phabricator/base/14375, phabricator/base/14376, phabricator/base/14377, phabricator/base/14378, phabricator/base/14379, phabricator/base/14380, phabricator/base/14381, phabricator/base/14382, phabricator/base/14383, phabricator/base/14384, phabricator/base/14385, phabricator/base/14386, phabricator/base/14387, phabricator/base/14388, phabricator/base/14389, phabricator/base/14390, phabricator/base/14391, phabricator/base/14392, phabricator/base/14396, phabricator/base/14397, phabricator/base/14400, phabricator/base/14401, phabricator/base/14403, phabricator/base/14404, phabricator/base/14405, phabricator/base/14410, phabricator/base/14411, phabricator/base/14412, phabricator/base/14413, phabricator/base/14416, phabricator/base/14417, phabricator/base/14418, phabricator/base/14419, phabricator/base/14420, phabricator/base/14421, phabricator/base/14422, phabricator/base/14423, phabricator/base/14424, phabricator/base/14425, phabricator/base/14426, phabricator/base/14427, phabricator/base/14428, phabricator/base/14429, phabricator/base/14434, phabricator/base/14435, phabricator/base/14436, phabricator/base/14438, phabricator/base/14439, phabricator/base/14440, phabricator/base/14443, phabricator/base/14444, phabricator/base/14446, phabricator/base/14447, phabricator/base/14448, phabricator/base/14449, phabricator/base/14450, phabricator/base/14451, phabricator/base/14454, phabricator/base/14456, phabricator/base/14457, phabricator/base/14458, phabricator/base/14467, phabricator/base/14474, phabricator/base/14475, phabricator/base/14476, phabricator/base/14477, phabricator/base/14479, phabricator/base/14480, phabricator/base/14481, phabricator/base/14482, phabricator/base/14484, phabricator/base/14489, phabricator/base/14494, phabricator/base/14495, phabricator/base/14496, phabricator/base/14499, phabricator/base/14500, phabricator/base/14501, phabricator/base/14502, phabricator/base/14503, phabricator/base/14505, phabricator/base/14506, phabricator/base/14512, phabricator/base/14513, phabricator/base/14514, phabricator/base/14515, phabricator/base/14516, phabricator/base/14517, phabricator/base/14518, phabricator/base/14519, phabricator/base/14520, phabricator/base/14521, phabricator/base/14522, phabricator/base/14523, phabricator/base/14524, phabricator/base/14525, phabricator/base/14526, phabricator/base/14527, phabricator/base/14528, phabricator/base/14529, phabricator/base/14530, phabricator/base/14531, phabricator/base/14532, phabricator/base/14533, phabricator/base/14534, phabricator/base/14535, phabricator/base/14536, phabricator/base/14537, phabricator/base/14544, phabricator/base/14545, phabricator/base/14546, phabricator/base/14549, phabricator/base/14555, phabricator/base/14556, phabricator/base/14557, phabricator/base/14558, phabricator/base/14559, phabricator/base/14560, phabricator/base/14561, phabricator/base/14562, phabricator/base/14563, phabricator/base/14564, phabricator/base/14565, phabricator/base/14566, phabricator/base/14567, phabricator/base/14568, phabricator/base/14570, phabricator/base/14571, phabricator/base/14572, phabricator/base/14573, phabricator/base/14574, phabricator/base/14575, phabricator/base/14576, phabricator/base/14577, phabricator/base/14578, phabricator/base/14579, phabricator/base/14580, phabricator/base/14581, phabricator/base/14582, phabricator/base/14583, phabricator/base/14584, phabricator/base/14585, phabricator/base/14594, phabricator/base/14595, phabricator/base/14596, phabricator/base/14598, phabricator/base/14599, phabricator/base/14601, phabricator/base/14602, phabricator/base/14604, phabricator/base/14605, phabricator/base/14614, phabricator/base/14615, phabricator/base/14616, phabricator/base/14617, phabricator/base/14618, phabricator/base/14619, phabricator/base/14620, phabricator/base/14621, phabricator/base/14622, phabricator/base/14623, phabricator/base/14624, phabricator/base/14633, phabricator/base/14634, phabricator/base/14635, phabricator/base/14636, phabricator/base/14638, phabricator/base/14639, phabricator/base/14640, phabricator/base/14641, phabricator/base/14642, phabricator/base/14643, phabricator/base/14644, phabricator/base/14645, phabricator/base/14646, phabricator/base/14647, phabricator/base/14648, phabricator/base/14649, phabricator/base/14650, phabricator/base/14651, phabricator/base/14652, phabricator/base/14653, phabricator/base/14654, phabricator/base/14655, phabricator/base/14656, phabricator/base/14657, phabricator/base/14658, phabricator/base/14659, phabricator/base/14660, phabricator/base/14661, phabricator/base/14662, phabricator/base/14663, phabricator/base/14664, phabricator/base/14665, phabricator/base/14666, phabricator/base/14667, phabricator/base/14668, phabricator/base/14669, phabricator/base/14670, phabricator/base/14672, phabricator/base/14673, phabricator/base/14674, phabricator/base/14676, phabricator/base/14677, phabricator/base/14678, phabricator/base/14679, phabricator/base/14680, phabricator/base/14681, phabricator/base/14682, phabricator/base/14683, phabricator/base/14684, phabricator/base/14686, phabricator/base/14699, phabricator/base/14700, phabricator/base/14701, phabricator/base/14702, phabricator/base/14703, phabricator/base/14704, phabricator/base/14705, phabricator/base/14706, phabricator/base/14708, phabricator/base/14709, phabricator/base/14710, phabricator/base/14711, phabricator/base/14712, phabricator/base/14713, phabricator/base/14714, phabricator/base/14715, phabricator/base/14716, phabricator/base/14717, phabricator/base/14718, phabricator/base/14719, phabricator/base/14720, phabricator/base/14721, phabricator/base/14722, phabricator/base/14723, phabricator/base/14724, phabricator/base/14728, phabricator/base/14729, phabricator/base/14730, phabricator/base/14736, phabricator/base/14737, phabricator/base/14738, phabricator/base/14739, phabricator/base/14741, phabricator/base/14742, phabricator/base/14743, phabricator/base/14744, phabricator/base/14745, phabricator/base/14746, phabricator/base/14748, phabricator/base/14749, phabricator/base/14750, phabricator/base/14753, phabricator/base/14754, phabricator/base/14755, phabricator/base/14756, phabricator/base/14757, phabricator/base/14758, phabricator/base/14768, phabricator/base/14769, phabricator/base/14770, phabricator/base/14771, phabricator/base/14774, phabricator/base/14775, phabricator/base/14776, phabricator/base/14777, phabricator/base/14778, phabricator/base/14779, phabricator/base/14780, phabricator/base/14781, phabricator/base/14782, phabricator/base/14783, phabricator/base/14784, phabricator/base/14786, phabricator/base/14787, phabricator/base/14788, phabricator/base/14789, phabricator/base/14790, phabricator/base/14791, phabricator/base/14792, phabricator/base/14793, phabricator/base/14794, phabricator/base/14795, phabricator/base/14796, phabricator/base/14797, phabricator/base/14798, phabricator/base/14799, phabricator/base/14800, phabricator/base/14801, phabricator/base/14802, phabricator/base/14803, phabricator/base/14810, phabricator/base/14811, phabricator/base/14812, phabricator/base/14813, phabricator/base/14814, phabricator/base/14815, phabricator/base/14816, phabricator/base/14817, phabricator/base/14818, phabricator/base/14819, phabricator/base/14820, phabricator/base/14821, phabricator/base/14822, phabricator/base/14823, phabricator/base/14824, phabricator/base/14825, phabricator/base/14826, phabricator/base/14827, phabricator/base/14828, phabricator/base/14829, phabricator/base/14834, phabricator/base/14835, phabricator/base/14836, phabricator/base/14837, phabricator/base/14842, phabricator/base/14843, phabricator/base/14844, phabricator/base/14845, phabricator/base/14846, phabricator/base/14847, phabricator/base/14849, phabricator/base/14850, phabricator/base/14852, phabricator/base/14853, phabricator/base/14854, phabricator/base/14855, phabricator/base/14856, phabricator/base/14857, phabricator/base/14859, phabricator/base/14860, phabricator/base/14861, phabricator/base/14862, phabricator/base/14863, phabricator/base/14864, phabricator/base/14865, phabricator/base/14866, phabricator/base/14869, phabricator/base/14870, phabricator/base/14872, phabricator/base/14876, phabricator/base/14877, phabricator/base/14879, phabricator/base/14882, phabricator/base/14883, phabricator/base/14884, phabricator/base/14885, phabricator/base/14886, phabricator/base/14887, phabricator/base/14888, phabricator/base/14889, phabricator/base/14890, phabricator/base/14891, phabricator/base/14892, phabricator/base/14893, phabricator/base/14894, phabricator/base/14895, phabricator/base/14896, phabricator/base/14898, phabricator/base/14899, phabricator/base/14900, phabricator/base/14901, phabricator/base/14902, phabricator/base/14903, phabricator/base/14904, phabricator/base/14905, phabricator/base/14906, phabricator/base/14907, phabricator/base/14908, phabricator/base/14909, phabricator/base/14910, phabricator/base/14919, phabricator/base/14920, phabricator/base/14930, phabricator/base/14931, phabricator/base/14932, phabricator/base/14933, phabricator/base/14934, phabricator/base/14935, phabricator/base/14936, phabricator/base/14942, phabricator/base/14943, phabricator/base/14944, phabricator/base/14946, phabricator/base/14948, phabricator/base/14949, phabricator/base/14950, phabricator/base/14951, phabricator/base/14952, phabricator/base/14953, phabricator/base/14956, phabricator/base/14958, phabricator/base/14960, phabricator/base/14961, phabricator/base/14962, phabricator/base/14968, phabricator/base/14969, phabricator/base/14971, phabricator/base/14974, phabricator/base/14975, phabricator/base/14976, phabricator/base/14977, phabricator/base/14979, phabricator/base/14980, phabricator/base/14981, phabricator/base/14983, phabricator/base/14987, phabricator/base/14999, phabricator/base/15000, phabricator/base/15001, phabricator/base/15004, phabricator/base/15005, phabricator/base/15027, phabricator/base/15029, phabricator/base/15030, phabricator/base/15031, phabricator/base/15032, phabricator/base/15033, phabricator/base/15034, phabricator/base/15035, phabricator/base/15036, phabricator/base/15037, phabricator/base/15038, phabricator/base/15039, phabricator/base/15042, phabricator/base/15043, phabricator/base/15046, phabricator/base/15047, phabricator/base/15049, phabricator/base/15050, phabricator/base/15051, phabricator/base/15052, phabricator/base/15053, phabricator/base/15055, phabricator/base/15056, phabricator/base/15057, phabricator/base/15058, phabricator/base/15060, phabricator/base/15061, phabricator/base/15063, phabricator/base/15064, phabricator/base/15065, phabricator/base/15066, phabricator/base/15067, phabricator/base/15068, phabricator/base/15069, phabricator/base/15070, phabricator/base/15071, phabricator/base/15074, phabricator/base/15075, phabricator/base/15076, phabricator/base/15077, phabricator/base/15078, phabricator/base/15079, phabricator/base/15080, phabricator/base/15082, phabricator/base/15083, phabricator/base/15084, phabricator/base/15086, phabricator/base/15087, phabricator/base/15088, phabricator/base/15090, phabricator/base/15091, phabricator/base/15092, phabricator/base/15093, phabricator/base/15094, phabricator/base/15095, phabricator/base/15096, phabricator/base/15097, phabricator/base/15098, phabricator/base/15099, phabricator/base/15119, phabricator/base/15124, phabricator/base/15125, phabricator/base/15126, phabricator/base/15127, phabricator/base/15128, phabricator/base/15129, phabricator/base/15133, phabricator/base/15134, phabricator/base/15135, phabricator/base/15136, phabricator/base/15137, phabricator/base/15139, phabricator/base/15140, phabricator/base/15141, phabricator/base/15144, phabricator/base/15153, phabricator/base/15154, phabricator/base/15155, phabricator/base/15157, phabricator/base/15160, phabricator/base/15161, phabricator/base/15162, phabricator/base/15163, phabricator/base/15164, phabricator/base/15165, phabricator/base/15169, phabricator/base/15172, phabricator/base/15173, phabricator/base/15174, phabricator/base/15175, phabricator/base/15176, phabricator/base/15185, phabricator/base/15188, phabricator/base/15189, phabricator/base/15190, phabricator/base/15191, phabricator/base/15193, phabricator/base/15194, phabricator/base/15195, phabricator/base/15197, phabricator/base/15198, phabricator/base/15199, phabricator/base/15200, phabricator/base/15201, phabricator/base/15204, phabricator/base/15205, phabricator/base/15206, phabricator/base/15207, phabricator/base/15209, phabricator/base/15211, phabricator/base/15213, phabricator/base/15214, phabricator/base/15215, phabricator/base/15216, phabricator/base/15217, phabricator/base/15218, phabricator/base/15219, phabricator/base/15221, phabricator/base/15222, phabricator/base/15223, phabricator/base/15225, phabricator/base/15226, phabricator/base/15228, phabricator/base/15229, phabricator/base/15230, phabricator/base/15243, phabricator/base/15245, phabricator/base/15246, phabricator/base/15247, phabricator/base/15248, phabricator/base/15249, phabricator/base/15250, phabricator/base/15251, phabricator/base/15252, phabricator/base/15253, phabricator/base/15254, phabricator/base/15256, phabricator/base/15257, phabricator/base/15259, phabricator/base/15266, phabricator/base/15267, phabricator/base/15268, phabricator/base/15269, phabricator/base/15270, phabricator/base/15271, phabricator/base/15272, phabricator/base/15273, phabricator/base/15274, phabricator/base/15275, phabricator/base/15276, phabricator/base/15277, phabricator/base/15278, phabricator/base/15279, phabricator/base/15280, phabricator/base/15282, phabricator/base/15287, phabricator/base/15288, phabricator/base/15291, phabricator/base/15293, phabricator/base/15302, phabricator/base/15303, phabricator/base/15304, phabricator/base/15305, phabricator/base/15306, phabricator/base/15307, phabricator/base/15308, phabricator/base/15309, phabricator/base/15310, phabricator/base/15311, phabricator/base/15312, phabricator/base/15313, phabricator/base/15314, phabricator/base/15315, phabricator/base/15317, phabricator/base/15318, phabricator/base/15320, phabricator/base/15321, phabricator/base/15322, phabricator/base/15323, phabricator/base/15328, phabricator/base/15329, phabricator/base/15331, phabricator/base/15332, phabricator/base/15339, phabricator/base/15342, phabricator/base/15343, phabricator/base/15344, phabricator/base/15345, phabricator/base/15347, phabricator/base/15348, phabricator/base/15349, phabricator/base/15350, phabricator/base/15351, phabricator/base/15352, phabricator/base/15353, phabricator/base/15354, phabricator/base/15355, phabricator/base/15356, phabricator/base/15357, phabricator/base/15359, phabricator/base/15360, phabricator/base/15361, phabricator/base/15362, phabricator/base/15363, phabricator/base/15364, phabricator/base/15365, phabricator/base/15366, phabricator/base/15367, phabricator/base/15377, phabricator/base/15378, phabricator/base/15379, phabricator/base/15380, phabricator/base/15381, phabricator/base/15382, phabricator/base/15385, phabricator/base/15386, phabricator/base/15387, phabricator/base/15389, phabricator/base/15390, phabricator/base/15391, phabricator/base/15392, phabricator/base/15393, phabricator/base/15394, phabricator/base/15395, phabricator/base/15396, phabricator/base/15397, phabricator/base/15398, phabricator/base/15399, phabricator/base/15400, phabricator/base/15401, phabricator/base/15404, phabricator/base/15405, phabricator/base/15406, phabricator/base/15407, phabricator/base/15408, phabricator/base/15409, phabricator/base/15410, phabricator/base/15411, phabricator/base/15413, phabricator/base/15414, phabricator/base/15415, phabricator/base/15416, phabricator/base/15417, phabricator/base/15418, phabricator/base/15419, phabricator/base/15421, phabricator/base/15422, phabricator/base/15423, phabricator/base/15425, phabricator/base/15427, phabricator/base/15429, phabricator/base/15430, phabricator/base/15431, phabricator/base/15432, phabricator/base/15433, phabricator/base/15434, phabricator/base/15435, phabricator/base/15437, phabricator/base/15438, phabricator/base/15441, phabricator/base/15442, phabricator/base/15443, phabricator/base/15444, phabricator/base/15445, phabricator/base/15446, phabricator/base/15449, phabricator/base/15450, phabricator/base/15451, phabricator/base/15452, phabricator/base/15453, phabricator/base/15454, phabricator/base/15455, phabricator/base/15456, phabricator/base/15457, phabricator/base/15458, phabricator/base/15460, phabricator/base/15463, phabricator/base/15465, phabricator/base/15467, phabricator/base/15468, phabricator/base/15470, phabricator/base/15471, phabricator/base/15472, phabricator/base/15474, phabricator/base/15475, phabricator/base/15476, phabricator/base/15477, phabricator/base/15478, phabricator/base/15479, phabricator/base/15496, phabricator/base/15497, phabricator/base/15498, phabricator/base/15499, phabricator/base/15500, phabricator/base/15501, phabricator/base/15507, phabricator/base/15508, phabricator/base/15509, phabricator/base/15511, phabricator/base/15512, phabricator/base/15513, phabricator/base/15514, phabricator/base/15515, phabricator/base/15519, phabricator/base/15521, phabricator/base/15522, phabricator/base/15523, phabricator/base/15524, phabricator/base/15526, phabricator/base/15527, phabricator/base/15528, phabricator/base/15529, phabricator/base/15530, phabricator/base/15531, phabricator/base/15532, phabricator/base/15533, phabricator/base/15534, phabricator/base/15535, phabricator/base/15536, phabricator/base/15537, phabricator/base/15538, phabricator/base/15539, phabricator/base/15540, phabricator/base/15541, phabricator/base/15542, phabricator/base/15543, phabricator/base/15544, phabricator/base/15545, phabricator/base/15546, phabricator/base/15547, phabricator/base/15550, phabricator/base/15551, phabricator/base/15552, phabricator/base/15554, phabricator/base/15555, phabricator/base/15556, phabricator/base/15561, phabricator/base/15566, phabricator/base/15568, phabricator/base/15569, phabricator/base/15570, phabricator/base/15571, phabricator/base/15572, phabricator/base/15574, phabricator/base/15575, phabricator/base/15577, phabricator/base/15578, phabricator/base/15579, phabricator/base/15580, phabricator/base/15584, phabricator/base/15585, phabricator/base/15586, phabricator/base/15587, phabricator/base/15588, phabricator/base/15589, phabricator/base/15591, phabricator/base/15599, phabricator/base/15609, phabricator/base/15623, phabricator/base/15624, phabricator/base/15625, phabricator/base/15626, phabricator/base/15627, phabricator/base/15628, phabricator/base/15629, phabricator/base/15630, phabricator/base/15631, phabricator/base/15633, phabricator/base/15634, phabricator/base/15636, phabricator/base/15637, phabricator/base/15638, phabricator/base/15639, phabricator/base/15640, phabricator/base/15641, phabricator/base/15643, phabricator/base/15644, phabricator/base/15646, phabricator/base/15647, phabricator/base/15648, phabricator/base/15649, phabricator/base/15657, phabricator/base/15659, phabricator/base/15660, phabricator/base/15661, phabricator/base/15663, phabricator/base/15664, phabricator/base/15667, phabricator/base/15669, phabricator/base/15671, phabricator/base/15673, phabricator/base/15674, phabricator/base/15675, phabricator/base/15676, phabricator/base/15677, phabricator/base/15678, phabricator/base/15679, phabricator/base/15680, phabricator/base/15681, phabricator/base/15682, phabricator/base/15683, phabricator/base/15684, phabricator/base/15685, phabricator/base/15686, phabricator/base/15687, phabricator/base/15688, phabricator/base/15689, phabricator/base/15690, phabricator/base/15691, phabricator/base/15692, phabricator/base/15693, phabricator/base/15696, phabricator/base/15698, phabricator/base/15699, phabricator/base/15700, phabricator/base/15701, phabricator/base/15702, phabricator/base/15704, phabricator/base/15705, phabricator/base/15708, phabricator/base/15712, phabricator/base/15713, phabricator/base/15714, phabricator/base/15715, phabricator/base/15717, phabricator/base/15719, phabricator/base/15720, phabricator/base/15721, phabricator/base/15723, phabricator/base/15724, phabricator/base/15725, phabricator/base/15726, phabricator/base/15727, phabricator/base/15728, phabricator/base/15729, phabricator/base/15730, phabricator/base/15733, phabricator/base/15734, phabricator/base/15735, phabricator/base/15737, phabricator/base/15739, phabricator/base/15740, phabricator/base/15741, phabricator/base/15743, phabricator/base/15744, phabricator/base/15745, phabricator/base/15746, phabricator/base/15748, phabricator/base/15749, phabricator/base/15751, phabricator/base/15752, phabricator/base/15753, phabricator/base/15754, phabricator/base/15755, phabricator/base/15756, phabricator/base/15757, phabricator/base/15758, phabricator/base/15760, phabricator/base/15761, phabricator/base/15762, phabricator/base/15763, phabricator/base/15764, phabricator/base/15783, phabricator/base/15785, phabricator/base/15787, phabricator/base/15794, phabricator/base/15795, phabricator/base/15796, phabricator/base/15797, phabricator/base/15798, phabricator/base/15799, phabricator/base/15800, phabricator/base/15801, phabricator/base/15802, phabricator/base/15803, phabricator/base/15804, phabricator/base/15807, phabricator/base/15808, phabricator/base/15809, phabricator/base/15810, phabricator/base/15812, phabricator/base/15813, phabricator/base/15814, phabricator/base/15815, phabricator/base/15817, phabricator/base/15818, phabricator/base/15822, phabricator/base/15823, phabricator/base/15824, phabricator/base/15825, phabricator/base/15826, phabricator/base/15827, phabricator/base/15829, phabricator/base/15830, phabricator/base/15839, phabricator/base/15840, phabricator/base/15841, phabricator/base/15842, phabricator/base/15849, phabricator/base/15853, phabricator/base/15854, phabricator/base/15855, phabricator/base/15856, phabricator/base/15857, phabricator/base/15858, phabricator/base/15859, phabricator/base/15860, phabricator/base/15862, phabricator/base/15864, phabricator/base/15865, phabricator/base/15866, phabricator/base/15867, phabricator/base/15870, phabricator/base/15871, phabricator/base/15872, phabricator/base/15873, phabricator/base/15874, phabricator/base/15875, phabricator/base/15876, phabricator/base/15877, phabricator/base/15878, phabricator/base/15879, phabricator/base/15880, phabricator/base/15882, phabricator/base/15883, phabricator/base/15884, phabricator/base/15885, phabricator/base/15886, phabricator/base/15887, phabricator/base/15888, phabricator/base/15889, phabricator/base/15890, phabricator/base/15892, phabricator/base/15893, phabricator/base/15894, phabricator/base/15895, phabricator/base/15896, phabricator/base/15897, phabricator/base/15899, phabricator/base/15904, phabricator/base/15905, phabricator/base/15906, phabricator/base/15907, phabricator/base/15908, phabricator/base/15909, phabricator/base/15910, phabricator/base/15911, phabricator/base/15912, phabricator/base/15913, phabricator/base/15914, phabricator/base/15916, phabricator/base/15917, phabricator/base/15918, phabricator/base/15919, phabricator/base/15920, phabricator/base/15921, phabricator/base/15922, phabricator/base/15923, phabricator/base/15926, phabricator/base/15927, phabricator/base/15928, phabricator/base/15930, phabricator/base/15935, phabricator/base/15936, phabricator/base/15937, phabricator/base/15938, phabricator/base/15939, phabricator/base/15940, phabricator/base/15941, phabricator/base/15942, phabricator/base/15943, phabricator/base/15944, phabricator/base/15946, phabricator/base/15950, phabricator/base/15955, phabricator/base/15961, phabricator/base/15962, phabricator/base/15964, phabricator/base/15965, phabricator/base/15967, phabricator/base/15971, phabricator/base/15973, phabricator/base/15974, phabricator/base/15975, phabricator/base/15979, phabricator/base/15981, phabricator/base/15985, phabricator/base/15987, phabricator/base/15996, phabricator/base/15997, phabricator/base/15998, phabricator/base/16001, phabricator/base/16002, phabricator/base/16003, phabricator/base/16004, phabricator/base/16005, phabricator/base/16007, phabricator/base/16008, phabricator/base/16010, phabricator/base/16035, phabricator/base/16036, phabricator/base/16037, phabricator/base/16039, phabricator/base/16042, phabricator/base/16043, phabricator/base/16044, phabricator/base/16045, phabricator/base/16046, phabricator/base/16047, phabricator/base/16048, phabricator/base/16049, phabricator/base/16050, phabricator/base/16051, phabricator/base/16052, phabricator/base/16053, phabricator/base/16055, phabricator/base/16056, phabricator/base/16057, phabricator/base/16058, phabricator/base/16059, phabricator/base/16060, phabricator/base/16061, phabricator/base/16062, phabricator/base/16064, phabricator/base/16071, phabricator/base/16074, phabricator/base/16079, phabricator/base/16091, phabricator/base/16092, phabricator/base/16093, phabricator/base/16095, phabricator/base/16100, phabricator/base/16101, phabricator/base/16102, phabricator/base/16103, phabricator/base/16104, phabricator/base/16105, phabricator/base/16110, phabricator/base/16111, phabricator/base/16112, phabricator/base/16116, phabricator/base/16119, phabricator/base/16120, phabricator/base/16121, phabricator/base/16125, phabricator/base/16126, phabricator/base/16127, phabricator/base/16128, phabricator/base/16131, phabricator/base/16132, phabricator/base/16133, phabricator/base/16134, phabricator/base/16135, phabricator/base/16136, phabricator/base/16137, phabricator/base/16138, phabricator/base/16143, phabricator/base/16144, phabricator/base/16145, phabricator/base/16146, phabricator/base/16147, phabricator/base/16148, phabricator/base/16149, phabricator/base/16150, phabricator/base/16151, phabricator/base/16153, phabricator/base/16154, phabricator/base/16155, phabricator/base/16157, phabricator/base/16160, phabricator/base/16161, phabricator/base/16163, phabricator/base/16164, phabricator/base/16165, phabricator/base/16166, phabricator/base/16167, phabricator/base/16168, phabricator/base/16172, phabricator/base/16173, phabricator/base/16175, phabricator/base/16176, phabricator/base/16177, phabricator/base/16179, phabricator/base/16180, phabricator/base/16181, phabricator/base/16182, phabricator/base/16184, phabricator/base/16185, phabricator/base/16186, phabricator/base/16187, phabricator/base/16188, phabricator/base/16189, phabricator/base/16190, phabricator/base/16191, phabricator/base/16192, phabricator/base/16193, phabricator/base/16194, phabricator/base/16195, phabricator/base/16196, phabricator/base/16197, phabricator/base/16198, phabricator/base/16199, phabricator/base/16200, phabricator/base/16201, phabricator/base/16202, phabricator/base/16203, phabricator/base/16204, phabricator/base/16208, phabricator/base/16209, phabricator/base/16211, phabricator/base/16212, phabricator/base/16213, phabricator/base/16214, phabricator/base/16215, phabricator/base/16216, phabricator/base/16217, phabricator/base/16218, phabricator/base/16220, phabricator/base/16221, phabricator/base/16222, phabricator/base/16223, phabricator/base/16224, phabricator/base/16225, phabricator/base/16226, phabricator/base/16227, phabricator/base/16228, phabricator/base/16229, phabricator/base/16230, phabricator/base/16231, phabricator/base/16232, phabricator/base/16233, phabricator/base/16234, phabricator/base/16235, phabricator/base/16237, phabricator/base/16238, phabricator/base/16240, phabricator/base/16241, phabricator/base/16242, phabricator/base/16243, phabricator/base/16244, phabricator/base/16246, phabricator/base/16247, phabricator/base/16249, phabricator/base/16251, phabricator/base/16252, phabricator/base/16253, phabricator/base/16254, phabricator/base/16255, phabricator/base/16256, phabricator/base/16259, phabricator/base/16260, phabricator/base/16264, phabricator/base/16265, phabricator/base/16266, phabricator/base/16267, phabricator/base/16268, phabricator/base/16269, phabricator/base/16271, phabricator/base/16272, phabricator/base/16273, phabricator/base/16275, phabricator/base/16276, phabricator/base/16277, phabricator/base/16279, phabricator/base/16281, phabricator/base/16282, phabricator/base/16283, phabricator/base/16284, phabricator/base/16293, phabricator/base/16296, phabricator/base/16297, phabricator/base/16298, phabricator/base/16299, phabricator/base/16300, phabricator/base/16301, phabricator/base/16302, phabricator/base/16303, phabricator/base/16304, phabricator/base/16305, phabricator/base/16306, phabricator/base/16307, phabricator/base/16308, phabricator/base/16309, phabricator/base/16310, phabricator/base/16311, phabricator/base/16312, phabricator/base/16314, phabricator/base/16315, phabricator/base/16317, phabricator/base/16324, phabricator/base/16325, phabricator/base/16326, phabricator/base/16330, phabricator/base/16332, phabricator/base/16333, phabricator/base/16334, phabricator/base/16335, phabricator/base/16336, phabricator/base/16337, phabricator/base/16340, phabricator/base/16341, phabricator/base/16342, phabricator/base/16343, phabricator/base/16344, phabricator/base/16345, phabricator/base/16346, phabricator/base/16347, phabricator/base/16352, phabricator/base/16353, phabricator/base/16355, phabricator/base/16356, phabricator/base/16361, phabricator/base/16362, phabricator/base/16363, phabricator/base/16364, phabricator/base/16365, phabricator/base/16366, phabricator/base/16368, phabricator/base/16369, phabricator/base/16370, phabricator/base/16371, phabricator/base/16372, phabricator/base/16373, phabricator/base/16374, phabricator/base/16377, phabricator/base/16378, phabricator/base/16380, phabricator/base/16381, phabricator/base/16382, phabricator/base/16384, phabricator/base/16386, phabricator/base/16404, phabricator/base/16405, phabricator/base/16406, phabricator/base/16407, phabricator/base/16408, phabricator/base/16411, phabricator/base/16413, phabricator/base/16414, phabricator/base/16415, phabricator/base/16421, phabricator/base/16422, phabricator/base/16423, phabricator/base/16427, phabricator/base/16428, phabricator/base/16429, phabricator/base/16430, phabricator/base/16434, phabricator/base/16435, phabricator/base/16437, phabricator/base/16438, phabricator/base/16439, phabricator/base/16445, phabricator/base/16446, phabricator/base/16449, phabricator/base/16450, phabricator/base/16455, phabricator/base/16456, phabricator/base/16457, phabricator/base/16458, phabricator/base/16459, phabricator/base/16460, phabricator/base/16461, phabricator/base/16463, phabricator/base/16464, phabricator/base/16465, phabricator/base/16466, phabricator/base/16467, phabricator/base/16468, phabricator/base/16469, phabricator/base/16472, phabricator/base/16473, phabricator/base/16477, phabricator/base/16479, phabricator/base/16480, phabricator/base/16481, phabricator/base/16482, phabricator/base/16483, phabricator/base/16484, phabricator/base/16485, phabricator/base/16491, phabricator/base/16492, phabricator/base/16496, phabricator/base/16497, phabricator/base/16498, phabricator/base/16499, phabricator/base/16500, phabricator/base/16501, phabricator/base/16502, phabricator/base/16504, phabricator/base/16506, phabricator/base/16507, phabricator/base/16508, phabricator/base/16509, phabricator/base/16510, phabricator/base/16511, phabricator/base/16512, phabricator/base/16514, phabricator/base/16515, phabricator/base/16516, phabricator/base/16518, phabricator/base/16519, phabricator/base/16520, phabricator/base/16521, phabricator/base/16522, phabricator/base/16528, phabricator/base/16529, phabricator/base/16530, phabricator/base/16531, phabricator/base/16532, phabricator/base/16533, phabricator/base/16534, phabricator/base/16535, phabricator/base/16536, phabricator/base/16538, phabricator/base/16539, phabricator/base/16540, phabricator/base/16541, phabricator/base/16542, phabricator/base/16543, phabricator/base/16544, phabricator/base/16545, phabricator/base/16546, phabricator/base/16547, phabricator/base/16548, phabricator/base/16549, phabricator/base/16551, phabricator/base/16552, phabricator/base/16553, phabricator/base/16554, phabricator/base/16555, phabricator/base/16556, phabricator/base/16557, phabricator/base/16560, phabricator/base/16563, phabricator/base/16564, phabricator/base/16565, phabricator/base/16566, phabricator/base/16567, phabricator/base/16568, phabricator/base/16569, phabricator/base/16570, phabricator/base/16571, phabricator/base/16572, phabricator/base/16574, phabricator/base/16575, phabricator/base/16576, phabricator/base/16577, phabricator/base/16580, phabricator/base/16581, phabricator/base/16582, phabricator/base/16583, phabricator/base/16591, phabricator/base/16592, phabricator/base/16594, phabricator/base/16595, phabricator/base/16596, phabricator/base/16597, phabricator/base/16598, phabricator/base/16606, phabricator/base/16607, phabricator/base/16608, phabricator/base/16609, phabricator/base/16610, phabricator/base/16611, phabricator/base/16612, phabricator/base/16613, phabricator/base/16614, phabricator/base/16615, phabricator/base/16616, phabricator/base/16617, phabricator/base/16618, phabricator/base/16619, phabricator/base/16620, phabricator/base/16621, phabricator/base/16622, phabricator/base/16623, phabricator/base/16624, phabricator/base/16625, phabricator/base/16626, phabricator/base/16627, phabricator/base/16628, phabricator/base/16630, phabricator/base/16631, phabricator/base/16632, phabricator/base/16633, phabricator/base/16634, phabricator/base/16635, phabricator/base/16636, phabricator/base/16637, phabricator/base/16638, phabricator/base/16639, phabricator/base/16640, phabricator/base/16641, phabricator/base/16642, phabricator/base/16643, phabricator/base/16644, phabricator/base/16651, phabricator/base/16653, phabricator/base/16654, phabricator/base/16655, phabricator/base/16656, phabricator/base/16669, phabricator/base/16670, phabricator/base/16671, phabricator/base/16672, phabricator/base/16675, phabricator/base/16677, phabricator/base/16678, phabricator/base/16679, phabricator/base/16680, phabricator/base/16681, phabricator/base/16682, phabricator/base/16683, phabricator/base/16684, phabricator/base/16685, phabricator/base/16686, phabricator/base/16687, phabricator/base/16688, phabricator/base/16689, phabricator/base/16690, phabricator/base/16692, phabricator/base/16693, phabricator/base/16694, phabricator/base/16695, phabricator/base/16696, phabricator/base/16697, phabricator/base/16698, phabricator/base/16699, phabricator/base/16702, phabricator/base/16703, phabricator/base/16705, phabricator/base/16706, phabricator/base/16711, phabricator/base/16713, phabricator/base/16714, phabricator/base/16715, phabricator/base/16716, phabricator/base/16717, phabricator/base/16718, phabricator/base/16720, phabricator/base/16721, phabricator/base/16724, phabricator/base/16725, phabricator/base/16726, phabricator/base/16727, phabricator/base/16728, phabricator/base/16729, phabricator/base/16730, phabricator/base/16731, phabricator/base/16732, phabricator/base/16733, phabricator/base/16734, phabricator/base/16735, phabricator/base/16736, phabricator/base/16737, phabricator/base/16738, phabricator/base/16739, phabricator/base/16740, phabricator/base/16741, phabricator/base/16742, phabricator/base/16743, phabricator/base/16744, phabricator/base/16746, phabricator/base/16748, phabricator/base/16749, phabricator/base/16750, phabricator/base/16751, phabricator/base/16752, phabricator/base/16753, phabricator/base/16755, phabricator/base/16756, phabricator/base/16757, phabricator/base/16758, phabricator/base/16759, phabricator/base/16760, phabricator/base/16761, phabricator/base/16762, phabricator/base/16763, phabricator/base/16764, phabricator/base/16765, phabricator/base/16786, phabricator/base/16787, phabricator/base/16788, phabricator/base/16789, phabricator/base/16790, phabricator/base/16792, phabricator/base/16793, phabricator/base/16794, phabricator/base/16795, phabricator/base/16796, phabricator/base/16797, phabricator/base/16798, phabricator/base/16799, phabricator/base/16800, phabricator/base/16801, phabricator/base/16802, phabricator/base/16803, phabricator/base/16804, phabricator/base/16805, phabricator/base/16806, phabricator/base/16809, phabricator/base/16810, phabricator/base/16813, phabricator/base/16814, phabricator/base/16815, phabricator/base/16817, phabricator/base/16819, phabricator/base/16820, phabricator/base/16821, phabricator/base/16822, phabricator/base/16823, phabricator/base/16824, phabricator/base/16825, phabricator/base/16827, phabricator/base/16828, phabricator/base/16829, phabricator/base/16830, phabricator/base/16831, phabricator/base/16832, phabricator/base/16833, phabricator/base/16834, phabricator/base/16835, phabricator/base/16836, phabricator/base/16838, phabricator/base/16839, phabricator/base/16841, phabricator/base/16842, phabricator/base/16843, phabricator/base/16844, phabricator/base/16846, phabricator/base/16847, phabricator/base/16848, phabricator/base/16849, phabricator/base/16850, phabricator/base/16851, phabricator/base/16852, phabricator/base/16853, phabricator/base/16854, phabricator/base/16855, phabricator/base/16856, phabricator/base/16857, phabricator/base/16858, phabricator/base/16860, phabricator/base/16861, phabricator/base/16862, phabricator/base/16863, phabricator/base/16864, phabricator/base/16865, phabricator/base/16866, phabricator/base/16867, phabricator/base/16873, phabricator/base/16874, phabricator/base/16875, phabricator/base/16876, phabricator/base/16877, phabricator/base/16878, phabricator/base/16880, phabricator/base/16881, phabricator/base/16882, phabricator/base/16883, phabricator/base/16884, phabricator/base/16885, phabricator/base/16886, phabricator/base/16887, phabricator/base/16888, phabricator/base/16889, phabricator/base/16890, phabricator/base/16891, phabricator/base/16892, phabricator/base/16893, phabricator/base/16896, phabricator/base/16898, phabricator/base/16899, phabricator/base/16900, phabricator/base/16915, phabricator/base/16918, phabricator/base/16919, phabricator/base/16920, phabricator/base/16921, phabricator/base/16922, phabricator/base/16923, phabricator/base/16924, phabricator/base/16926, phabricator/base/16927, phabricator/base/16928, phabricator/base/16929, phabricator/base/16930, phabricator/base/16931, phabricator/base/16932, phabricator/base/16933, phabricator/base/16934, phabricator/base/16936, phabricator/base/16937, phabricator/base/16944, phabricator/base/16948, phabricator/base/16949, phabricator/base/16950, phabricator/base/16951, phabricator/base/16952, phabricator/base/16953, phabricator/base/16955, phabricator/base/16956, phabricator/base/16957, phabricator/base/16963, phabricator/base/16964, phabricator/base/16971, phabricator/base/16974, phabricator/base/16975, phabricator/base/16976, phabricator/base/16977, phabricator/base/16978, phabricator/base/16979, phabricator/base/16982, phabricator/base/16989, phabricator/base/16990, phabricator/base/16991, phabricator/base/16992, phabricator/base/16993, phabricator/base/16994, phabricator/base/16995, phabricator/base/16996, phabricator/base/16997, phabricator/base/16999, phabricator/base/17000, phabricator/base/17001, phabricator/base/17002, phabricator/base/17003, phabricator/base/17004, phabricator/base/17005, phabricator/base/17006, phabricator/base/17008, phabricator/base/17009, phabricator/base/17011, phabricator/base/17012, phabricator/base/17013, phabricator/base/17014, phabricator/base/17015, phabricator/base/17016, phabricator/base/17017, phabricator/base/17018, phabricator/base/17019, phabricator/base/17023, phabricator/base/17024, phabricator/base/17025, phabricator/base/17026, phabricator/base/17033, phabricator/base/17034, phabricator/base/17036, phabricator/base/17037, phabricator/base/17038, phabricator/base/17039, phabricator/base/17040, phabricator/base/17043, phabricator/base/17044, phabricator/base/17045, phabricator/base/17046, phabricator/base/17047, phabricator/base/17052, phabricator/base/17053, phabricator/base/17054, phabricator/base/17055, phabricator/base/17061, phabricator/base/17062, phabricator/base/17063, phabricator/base/17064, phabricator/base/17065, phabricator/base/17066, phabricator/base/17068, phabricator/base/17070, phabricator/base/17071, phabricator/base/17072, phabricator/base/17073, phabricator/base/17074, phabricator/base/17075, phabricator/base/17076, phabricator/base/17077, phabricator/base/17078, phabricator/base/17079, phabricator/base/17080, phabricator/base/17081, phabricator/base/17082, phabricator/base/17083, phabricator/base/17084, phabricator/base/17086, phabricator/base/17087, phabricator/base/17088, phabricator/base/17089, phabricator/base/17090, phabricator/base/17092, phabricator/base/17093, phabricator/base/17094, phabricator/base/17095, phabricator/base/17096, phabricator/base/17097, phabricator/base/17098, phabricator/base/17099, phabricator/base/17100, phabricator/base/17101, phabricator/base/17102, phabricator/base/17103, phabricator/base/17104, phabricator/base/17106, phabricator/base/17107, phabricator/base/17109, phabricator/base/17110, phabricator/base/17111, phabricator/base/17112, phabricator/base/17114, phabricator/base/17115, phabricator/base/17117, phabricator/base/17118, phabricator/base/17119, phabricator/base/17120, phabricator/base/17121, phabricator/base/17122, phabricator/base/17123, phabricator/base/17124, phabricator/base/17126, phabricator/base/17127, phabricator/base/17128, phabricator/base/17129, phabricator/base/17130, phabricator/base/17131, phabricator/base/17132, phabricator/base/17133, phabricator/base/17134, phabricator/base/17136, phabricator/base/17137, phabricator/base/17138, phabricator/base/17139, phabricator/base/17140, phabricator/base/17141, phabricator/base/17142, phabricator/base/17148, phabricator/base/17149, phabricator/base/17150, phabricator/base/17151, phabricator/base/17152, phabricator/base/17153, phabricator/base/17154, phabricator/base/17155, phabricator/base/17156, phabricator/base/17157, phabricator/base/17158, phabricator/base/17159, phabricator/base/17160, phabricator/base/17161, phabricator/base/17162, phabricator/base/17163, phabricator/base/17164, phabricator/base/17165, phabricator/base/17166, phabricator/base/17167, phabricator/base/17168, phabricator/base/17169, phabricator/base/17170, phabricator/base/17171, phabricator/base/17172, phabricator/base/17173, phabricator/base/17174, phabricator/base/17175, phabricator/base/17178, phabricator/base/17179, phabricator/base/17180, phabricator/base/17183, phabricator/base/17184, phabricator/base/17185, phabricator/base/17187, phabricator/base/17188, phabricator/base/17189, phabricator/base/17190, phabricator/base/17191, phabricator/base/17192, phabricator/base/17194, phabricator/base/17195, phabricator/base/17196, phabricator/base/17197, phabricator/base/17198, phabricator/base/17199, phabricator/base/17209, phabricator/base/17210, phabricator/base/17211, phabricator/base/17212, phabricator/base/17213, phabricator/base/17215, phabricator/base/17216, phabricator/base/17227, phabricator/base/17228, phabricator/base/17229, phabricator/base/17230, phabricator/base/17231, phabricator/base/17232, phabricator/base/17233, phabricator/base/17234, phabricator/base/17235, phabricator/base/17237, phabricator/base/17238, phabricator/base/17239, phabricator/base/17240, phabricator/base/17241, phabricator/base/17242, phabricator/base/17243, phabricator/base/17244, phabricator/base/17246, phabricator/base/17247, phabricator/base/17248, phabricator/base/17249, phabricator/base/17250, phabricator/base/17252, phabricator/base/17253, phabricator/base/17254, phabricator/base/17255, phabricator/base/17256, phabricator/base/17257, phabricator/base/17258, phabricator/base/17260, phabricator/base/17261, phabricator/base/17262, phabricator/base/17263, phabricator/base/17264, phabricator/base/17265, phabricator/base/17266, phabricator/base/17267, phabricator/base/17268, phabricator/base/17269, phabricator/base/17270, phabricator/base/17271, phabricator/base/17272, phabricator/base/17274, phabricator/base/17275, phabricator/base/17276, phabricator/base/17277, phabricator/base/17278, phabricator/base/17279, phabricator/base/17280, phabricator/base/17282, phabricator/base/17290, phabricator/base/17292, phabricator/base/17295, phabricator/base/17296, phabricator/base/17297, phabricator/base/17298, phabricator/base/17299, phabricator/base/17300, phabricator/base/17301, phabricator/base/17303, phabricator/base/17304, phabricator/base/17305, phabricator/base/17306, phabricator/base/17307, phabricator/base/17308, phabricator/base/17309, phabricator/base/17310, phabricator/base/17312, phabricator/base/17313, phabricator/base/17329, phabricator/base/17330, phabricator/base/17331, phabricator/base/17333, phabricator/base/17335, phabricator/base/17336, phabricator/base/17337, phabricator/base/17338, phabricator/base/17339, phabricator/base/17341, phabricator/base/17343, phabricator/base/17345, phabricator/base/17346, phabricator/base/17347, phabricator/base/17348, phabricator/base/17351, phabricator/base/17352, phabricator/base/17353, phabricator/base/17354, phabricator/base/17359, phabricator/base/17360, phabricator/base/17362, phabricator/base/17363, phabricator/base/17364, phabricator/base/17366, phabricator/base/17369, phabricator/base/17370, phabricator/base/17375, phabricator/base/17377, phabricator/base/17378, phabricator/base/17379, phabricator/base/17380, phabricator/base/17381, phabricator/base/17384, phabricator/base/17386, phabricator/base/17387, phabricator/base/17388, phabricator/base/17389, phabricator/base/17390, phabricator/base/17391, phabricator/base/17393, phabricator/base/17394, phabricator/base/17395, phabricator/base/17396, phabricator/base/17397, phabricator/base/17398, phabricator/base/17399, phabricator/base/17401, phabricator/base/17402, phabricator/base/17403, phabricator/base/17404, phabricator/base/17405, phabricator/base/17406, phabricator/base/17407, phabricator/base/17408, phabricator/base/17409, phabricator/base/17410, phabricator/base/17412, phabricator/base/17413, phabricator/base/17414, phabricator/base/17417, phabricator/base/17418, phabricator/base/17419, phabricator/base/17420, phabricator/base/17421, phabricator/base/17422, phabricator/base/17425, phabricator/base/17426, phabricator/base/17427, phabricator/base/17428, phabricator/base/17429, phabricator/base/17433, phabricator/base/17434, phabricator/base/17435, phabricator/base/17436, phabricator/base/17439, phabricator/base/17441, phabricator/base/17443, phabricator/base/17445, phabricator/base/17446, phabricator/base/17447, phabricator/base/17448, phabricator/base/17449, phabricator/base/17450, phabricator/base/8473, phabricator/base/8476, phabricator/base/8477, phabricator/base/8478, phabricator/base/8479, phabricator/base/8480, phabricator/base/8481, phabricator/base/8513, phabricator/base/8515, phabricator/base/8517, phabricator/base/8518, phabricator/base/8519, phabricator/base/8520, phabricator/base/8521, phabricator/base/8522, phabricator/base/8523, phabricator/base/8532, phabricator/base/8533, phabricator/base/8534, phabricator/base/8535, phabricator/base/8542, phabricator/base/8553, phabricator/base/8557, phabricator/base/8561, phabricator/base/8564, phabricator/base/8565, phabricator/base/8566, phabricator/base/8568, phabricator/base/8569, phabricator/base/8570, phabricator/base/8571, phabricator/base/8584, phabricator/base/8596, phabricator/base/8598, phabricator/base/8599, phabricator/base/8600, phabricator/base/8601, phabricator/base/8603, phabricator/base/8605, phabricator/base/8606, phabricator/base/8607, phabricator/base/8608, phabricator/base/8611, phabricator/base/8613, phabricator/base/8614, phabricator/base/8620, phabricator/base/8621, phabricator/base/8623, phabricator/base/8628, phabricator/base/8630, phabricator/base/8632, phabricator/base/8639, phabricator/base/8643, phabricator/base/8647, phabricator/base/8648, phabricator/base/8656, phabricator/base/8657, phabricator/base/8658, phabricator/base/8660, phabricator/base/8661, phabricator/base/8662, phabricator/base/8663, phabricator/base/8664, phabricator/base/8665, phabricator/base/8671, phabricator/base/8676, phabricator/base/8677, phabricator/base/8678, phabricator/base/8680, phabricator/base/8681, phabricator/base/8683, phabricator/base/8684, phabricator/base/8688, phabricator/base/8693, phabricator/base/8695, phabricator/base/8696, phabricator/base/8699, phabricator/base/8703, phabricator/base/8704, phabricator/base/8709, phabricator/base/8710, phabricator/base/8711, phabricator/base/8712, phabricator/base/8713, phabricator/base/8714, phabricator/base/8715, phabricator/base/8716, phabricator/base/8717, phabricator/base/8718, phabricator/base/8720, phabricator/base/8721, phabricator/base/8722, phabricator/base/8723, phabricator/base/8724, phabricator/base/8725, phabricator/base/8727, phabricator/base/8728, phabricator/base/8731, phabricator/base/8732, phabricator/base/8733, phabricator/base/8734, phabricator/base/8735, phabricator/base/8736, phabricator/base/8737, phabricator/base/8738, phabricator/base/8740, phabricator/base/8741, phabricator/base/8742, phabricator/base/8745, phabricator/base/8747, phabricator/base/8749, phabricator/base/8750, phabricator/base/8751, phabricator/base/8752, phabricator/base/8753, phabricator/base/8754, phabricator/base/8755, phabricator/base/8757, phabricator/base/8758, phabricator/base/8759, phabricator/base/8760, phabricator/base/8762, phabricator/base/8763, phabricator/base/8764, phabricator/base/8765, phabricator/base/8766, phabricator/base/8767, phabricator/base/8768, phabricator/base/8775, phabricator/base/8776, phabricator/base/8777, phabricator/base/8779, phabricator/base/8780, phabricator/base/8781, phabricator/base/8782, phabricator/base/8787, phabricator/base/8788, phabricator/base/8790, phabricator/base/8791, phabricator/base/8792, phabricator/base/8793, phabricator/base/8794, phabricator/base/8795, phabricator/base/8804, phabricator/base/8805, phabricator/base/8807, phabricator/base/8811, phabricator/base/8812, phabricator/base/8813, phabricator/base/8815, phabricator/base/8816, phabricator/base/8821, phabricator/base/8822, phabricator/base/8823, phabricator/base/8824, phabricator/base/8825, phabricator/base/8826, phabricator/base/8831, phabricator/base/8832, phabricator/base/8833, phabricator/base/8841, phabricator/base/8851, phabricator/base/8852, phabricator/base/8853, phabricator/base/8857, phabricator/base/8862, phabricator/base/8872, phabricator/base/8873, phabricator/base/8874, phabricator/base/8875, phabricator/base/8876, phabricator/base/8877, phabricator/base/8878, phabricator/base/8880, phabricator/base/8881, phabricator/base/8882, phabricator/base/8883, phabricator/base/8884, phabricator/base/8885, phabricator/base/8886, phabricator/base/8887, phabricator/base/8888, phabricator/base/8890, phabricator/base/8894, phabricator/base/8895, phabricator/base/8896, phabricator/base/8904, phabricator/base/8906, phabricator/base/8908, phabricator/base/8910, phabricator/base/8911, phabricator/base/8912, phabricator/base/8913, phabricator/base/8914, phabricator/base/8920, phabricator/base/8921, phabricator/base/8922, phabricator/base/8924, phabricator/base/8927, phabricator/base/8928, phabricator/base/8930, phabricator/base/8931, phabricator/base/8938, phabricator/base/8940, phabricator/base/8941, phabricator/base/8942, phabricator/base/8943, phabricator/base/8945, phabricator/base/8954, phabricator/base/8962, phabricator/base/8963, phabricator/base/8965, phabricator/base/8966, phabricator/base/8968, phabricator/base/8974, phabricator/base/8975, phabricator/base/8976, phabricator/base/8978, phabricator/base/8979, phabricator/base/8980, phabricator/base/8981, phabricator/base/8982, phabricator/base/8983, phabricator/base/8985, phabricator/base/8987, phabricator/base/8988, phabricator/base/8989, phabricator/base/8990, phabricator/base/8991, phabricator/base/8992, phabricator/base/8993, phabricator/base/9001, phabricator/base/9002, phabricator/base/9012, phabricator/base/9013, phabricator/base/9015, phabricator/base/9016, phabricator/base/9018, phabricator/base/9019, phabricator/base/9020, phabricator/base/9021, phabricator/base/9022, phabricator/base/9023, phabricator/base/9024, phabricator/base/9025, phabricator/base/9026, phabricator/base/9027, phabricator/base/9028, phabricator/base/9029, phabricator/base/9030, phabricator/base/9031, phabricator/base/9032, phabricator/base/9033, phabricator/base/9034, phabricator/base/9035, phabricator/base/9036, phabricator/base/9037, phabricator/base/9038, phabricator/base/9040, phabricator/base/9048, phabricator/base/9049, phabricator/base/9050, phabricator/base/9051, phabricator/base/9060, phabricator/base/9063, phabricator/base/9066, phabricator/base/9067, phabricator/base/9068, phabricator/base/9076, phabricator/base/9077, phabricator/base/9078, phabricator/base/9079, phabricator/base/9082, phabricator/base/9083, phabricator/base/9084, phabricator/base/9085, phabricator/base/9086, phabricator/base/9092, phabricator/base/9093, phabricator/base/9096, phabricator/base/9097, phabricator/base/9107, phabricator/base/9110, phabricator/base/9111, phabricator/base/9116, phabricator/base/9117, phabricator/base/9118, phabricator/base/9119, phabricator/base/9120, phabricator/base/9121, phabricator/base/9122, phabricator/base/9123, phabricator/base/9124, phabricator/base/9125, phabricator/base/9132, phabricator/base/9133, phabricator/base/9134, phabricator/base/9135, phabricator/base/9136, phabricator/base/9137, phabricator/base/9138, phabricator/base/9139, phabricator/base/9140, phabricator/base/9142, phabricator/base/9143, phabricator/base/9145, phabricator/base/9146, phabricator/base/9147, phabricator/base/9149, phabricator/base/9150, phabricator/base/9152, phabricator/base/9153, phabricator/base/9155, phabricator/base/9156, phabricator/base/9168, phabricator/base/9170, phabricator/base/9171, phabricator/base/9172, phabricator/base/9173, phabricator/base/9177, phabricator/base/9178, phabricator/base/9179, phabricator/base/9180, phabricator/base/9181, phabricator/base/9186, phabricator/base/9187, phabricator/base/9188, phabricator/base/9189, phabricator/base/9190, phabricator/base/9191, phabricator/base/9192, phabricator/base/9193, phabricator/base/9194, phabricator/base/9196, phabricator/base/9197, phabricator/base/9198, phabricator/base/9199, phabricator/base/9200, phabricator/base/9201, phabricator/base/9202, phabricator/base/9203, phabricator/base/9204, phabricator/base/9205, phabricator/base/9206, phabricator/base/9207, phabricator/base/9208, phabricator/base/9209, phabricator/base/9210, phabricator/base/9211, phabricator/base/9212, phabricator/base/9213, phabricator/base/9214, phabricator/base/9215, phabricator/base/9216, phabricator/base/9217, phabricator/base/9218, phabricator/base/9219, phabricator/base/9220, phabricator/base/9221, phabricator/base/9229, phabricator/base/9231, phabricator/base/9232, phabricator/base/9233, phabricator/base/9237, phabricator/base/9240, phabricator/base/9241, phabricator/base/9242, phabricator/base/9245, phabricator/base/9246, phabricator/base/9247, phabricator/base/9248, phabricator/base/9250, phabricator/base/9253, phabricator/base/9254, phabricator/base/9255, phabricator/base/9256, phabricator/base/9257, phabricator/base/9258, phabricator/base/9260, phabricator/base/9261, phabricator/base/9274, phabricator/base/9275, phabricator/base/9276, phabricator/base/9280, phabricator/base/9281, phabricator/base/9282, phabricator/base/9283, phabricator/base/9284, phabricator/base/9285, phabricator/base/9286, phabricator/base/9288, phabricator/base/9289, phabricator/base/9290, phabricator/base/9291, phabricator/base/9292, phabricator/base/9293, phabricator/base/9294, phabricator/base/9299, phabricator/base/9308, phabricator/base/9309, phabricator/base/9310, phabricator/base/9311, phabricator/base/9313, phabricator/base/9317, phabricator/base/9318, phabricator/base/9319, phabricator/base/9326, phabricator/base/9330, phabricator/base/9333, phabricator/base/9334, phabricator/base/9335, phabricator/base/9336, phabricator/base/9337, phabricator/base/9338, phabricator/base/9339, phabricator/base/9340, phabricator/base/9341, phabricator/base/9342, phabricator/base/9343, phabricator/base/9344, phabricator/base/9347, phabricator/base/9348, phabricator/base/9349, phabricator/base/9350, phabricator/base/9351, phabricator/base/9356, phabricator/base/9357, phabricator/base/9358, phabricator/base/9360, phabricator/base/9367, phabricator/base/9369, phabricator/base/9370, phabricator/base/9371, phabricator/base/9372, phabricator/base/9374, phabricator/base/9375, phabricator/base/9380, phabricator/base/9382, phabricator/base/9383, phabricator/base/9384, phabricator/base/9385, phabricator/base/9386, phabricator/base/9387, phabricator/base/9388, phabricator/base/9389, phabricator/base/9390, phabricator/base/9391, phabricator/base/9392, phabricator/base/9393, phabricator/base/9394, phabricator/base/9396, phabricator/base/9398, phabricator/base/9399, phabricator/base/9400, phabricator/base/9401, phabricator/base/9402, phabricator/base/9404, phabricator/base/9406, phabricator/base/9409, phabricator/base/9412, phabricator/base/9413, phabricator/base/9414, phabricator/base/9415, phabricator/base/9416, phabricator/base/9417, phabricator/base/9418, phabricator/base/9419, phabricator/base/9420, phabricator/base/9422, phabricator/base/9423, phabricator/base/9424, phabricator/base/9426, phabricator/base/9427, phabricator/base/9429, phabricator/base/9430, phabricator/base/9431, phabricator/base/9432, phabricator/base/9433, phabricator/base/9434, phabricator/base/9435, phabricator/base/9436, phabricator/base/9438, phabricator/base/9439, phabricator/base/9441, phabricator/base/9450, phabricator/base/9451, phabricator/base/9452, phabricator/base/9453, phabricator/base/9454, phabricator/base/9455, phabricator/base/9456, phabricator/base/9457, phabricator/base/9458, phabricator/base/9459, phabricator/base/9460, phabricator/base/9461, phabricator/base/9462, phabricator/base/9463, phabricator/base/9464, phabricator/base/9465, phabricator/base/9466, phabricator/base/9469, phabricator/base/9470, phabricator/base/9471, phabricator/base/9473, phabricator/base/9475, phabricator/base/9476, phabricator/base/9477, phabricator/base/9479, phabricator/base/9480, phabricator/base/9481, phabricator/base/9482, phabricator/base/9487, phabricator/base/9489, phabricator/base/9490, phabricator/base/9491, phabricator/base/9492, phabricator/base/9496, phabricator/base/9499, phabricator/base/9500, phabricator/base/9504, phabricator/base/9506, phabricator/base/9507, phabricator/base/9508, phabricator/base/9510, phabricator/base/9515, phabricator/base/9517, phabricator/base/9518, phabricator/base/9519, phabricator/base/9520, phabricator/base/9521, phabricator/base/9523, phabricator/base/9524, phabricator/base/9525, phabricator/base/9533, phabricator/base/9536, phabricator/base/9537, phabricator/base/9538, phabricator/base/9539, phabricator/base/9540, phabricator/base/9541, phabricator/base/9542, phabricator/base/9543, phabricator/base/9544, phabricator/base/9545, phabricator/base/9546, phabricator/base/9547, phabricator/base/9548, phabricator/base/9549, phabricator/base/9550, phabricator/base/9551, phabricator/base/9552, phabricator/base/9553, phabricator/base/9555, phabricator/base/9556, phabricator/base/9557, phabricator/base/9558, phabricator/base/9559, phabricator/base/9561, phabricator/base/9562, phabricator/base/9563, phabricator/base/9570, phabricator/base/9571, phabricator/base/9572, phabricator/base/9573, phabricator/base/9574, phabricator/base/9575, phabricator/base/9576, phabricator/base/9577, phabricator/base/9578, phabricator/base/9579, phabricator/base/9580, phabricator/base/9581, phabricator/base/9582, phabricator/base/9584, phabricator/base/9585, phabricator/base/9586, phabricator/base/9588, phabricator/base/9589, phabricator/base/9590, phabricator/base/9591, phabricator/base/9592, phabricator/base/9593, phabricator/base/9594, phabricator/base/9595, phabricator/base/9596, phabricator/base/9597, phabricator/base/9599, phabricator/base/9600, phabricator/base/9601, phabricator/base/9603, phabricator/base/9604, phabricator/base/9606, phabricator/base/9607, phabricator/base/9608, phabricator/base/9609, phabricator/base/9610, phabricator/base/9611, phabricator/base/9612, phabricator/base/9613, phabricator/base/9614, phabricator/base/9615, phabricator/base/9616, phabricator/base/9617, phabricator/base/9618, phabricator/base/9620, phabricator/base/9621, phabricator/base/9622, phabricator/base/9623, phabricator/base/9626, phabricator/base/9627, phabricator/base/9628, phabricator/base/9630, phabricator/base/9631, phabricator/base/9632, phabricator/base/9634, phabricator/base/9637, phabricator/base/9638, phabricator/base/9639, phabricator/base/9640, phabricator/base/9641, phabricator/base/9643, phabricator/base/9645, phabricator/base/9648, phabricator/base/9649, phabricator/base/9650, phabricator/base/9656, phabricator/base/9658, phabricator/base/9659, phabricator/base/9660, phabricator/base/9661, phabricator/base/9668, phabricator/base/9669, phabricator/base/9676, phabricator/base/9682, phabricator/base/9690, phabricator/base/9691, phabricator/base/9696, phabricator/base/9697, phabricator/base/9698, phabricator/base/9699, phabricator/base/9700, phabricator/base/9701, phabricator/base/9702, phabricator/base/9703, phabricator/base/9705, phabricator/base/9706, phabricator/base/9708, phabricator/base/9709, phabricator/base/9710, phabricator/base/9711, phabricator/base/9712, phabricator/base/9713, phabricator/base/9714, phabricator/base/9715, phabricator/base/9716, phabricator/base/9717, phabricator/base/9719, phabricator/base/9720, phabricator/base/9722, phabricator/base/9723, phabricator/base/9724, phabricator/base/9726, phabricator/base/9727, phabricator/base/9728, phabricator/base/9729, phabricator/base/9735, phabricator/base/9736, phabricator/base/9737, phabricator/base/9738, phabricator/base/9739, phabricator/base/9740, phabricator/base/9741, phabricator/base/9742, phabricator/base/9743, phabricator/base/9744, phabricator/base/9745, phabricator/base/9746, phabricator/base/9747, phabricator/base/9752, phabricator/base/9753, phabricator/base/9754, phabricator/base/9755, phabricator/base/9756, phabricator/base/9757, phabricator/base/9758, phabricator/base/9759, phabricator/base/9760, phabricator/base/9761, phabricator/base/9762, phabricator/base/9763, phabricator/base/9764, phabricator/base/9765, phabricator/base/9766, phabricator/base/9767, phabricator/base/9768, phabricator/base/9769, phabricator/base/9770, phabricator/base/9771, phabricator/base/9772, phabricator/base/9779, phabricator/base/9780, phabricator/base/9781, phabricator/base/9782, phabricator/base/9783, phabricator/base/9784, phabricator/base/9785, phabricator/base/9786, phabricator/base/9787, phabricator/base/9788, phabricator/base/9789, phabricator/base/9790, phabricator/base/9793, phabricator/base/9796, phabricator/base/9798, phabricator/base/9799, phabricator/base/9802, phabricator/base/9803, phabricator/base/9804, phabricator/base/9805, phabricator/base/9806, phabricator/base/9807, phabricator/base/9808, phabricator/base/9809, phabricator/base/9810, phabricator/base/9814, phabricator/base/9815, phabricator/base/9820, phabricator/base/9821, phabricator/base/9822, phabricator/base/9823, phabricator/base/9824, phabricator/base/9825, phabricator/base/9826, phabricator/base/9828, phabricator/base/9829, phabricator/base/9830, phabricator/base/9833, phabricator/base/9834, phabricator/base/9835, phabricator/base/9836, phabricator/base/9837, phabricator/base/9838, phabricator/base/9840, phabricator/base/9841, phabricator/base/9842, phabricator/base/9843, phabricator/base/9844, phabricator/base/9845, phabricator/base/9848, phabricator/base/9849, phabricator/base/9850, phabricator/base/9852, phabricator/base/9853, phabricator/base/9854, phabricator/base/9855, phabricator/base/9856, phabricator/base/9858, phabricator/base/9859, phabricator/base/9860, phabricator/base/9861, phabricator/base/9862, phabricator/base/9863, phabricator/base/9864, phabricator/base/9873, phabricator/base/9874, phabricator/base/9875, phabricator/base/9876, phabricator/base/9884, phabricator/base/9885, phabricator/base/9886, phabricator/base/9887, phabricator/base/9888, phabricator/base/9889, phabricator/base/9890, phabricator/base/9891, phabricator/base/9892, phabricator/base/9898, phabricator/base/9899, phabricator/base/9902, phabricator/base/9913, phabricator/base/9914, phabricator/base/9915, phabricator/base/9916, phabricator/base/9917, phabricator/base/9918, phabricator/base/9920, phabricator/base/9923, phabricator/base/9924, phabricator/base/9925, phabricator/base/9926, phabricator/base/9927, phabricator/base/9928, phabricator/base/9929, phabricator/base/9933, phabricator/base/9934, phabricator/base/9935, phabricator/base/9936, phabricator/base/9938, phabricator/base/9939, phabricator/base/9940, phabricator/base/9942, phabricator/base/9945, phabricator/base/9946, phabricator/base/9947, phabricator/base/9948, phabricator/base/9949, phabricator/base/9950, phabricator/base/9951, phabricator/base/9953, phabricator/base/9954, phabricator/base/9955, phabricator/base/9962, phabricator/base/9963, phabricator/base/9964, phabricator/base/9966, phabricator/base/9968, phabricator/base/9970, phabricator/base/9972, phabricator/base/9973, phabricator/base/9974, phabricator/base/9975, phabricator/base/9976, phabricator/base/9977, phabricator/base/9978, phabricator/base/9979, phabricator/base/9980, phabricator/base/9982, phabricator/base/9983, phabricator/base/9984, phabricator/base/9985, phabricator/base/9986, phabricator/base/9987, phabricator/base/9988, phabricator/base/9989, phabricator/base/9990, phabricator/base/9992, phabricator/base/9993, phabricator/base/9994, phabricator/base/9995, phabricator/base/9996, phabricator/diff/10007, phabricator/diff/10008, phabricator/diff/10009, phabricator/diff/10010, phabricator/diff/10015, phabricator/diff/10016, phabricator/diff/10017, phabricator/diff/10021, phabricator/diff/10022, phabricator/diff/10023, phabricator/diff/10024, phabricator/diff/10025, phabricator/diff/10029, phabricator/diff/10030, phabricator/diff/10031, phabricator/diff/10032, phabricator/diff/10033, phabricator/diff/10034, phabricator/diff/10035, phabricator/diff/10036, phabricator/diff/10037, phabricator/diff/10038, phabricator/diff/10039, phabricator/diff/10040, phabricator/diff/10041, phabricator/diff/10042, phabricator/diff/10043, phabricator/diff/10048, phabricator/diff/10049, phabricator/diff/10050, phabricator/diff/10051, phabricator/diff/10052, phabricator/diff/10055, phabricator/diff/10056, phabricator/diff/10058, phabricator/diff/10059, phabricator/diff/10060, phabricator/diff/10061, phabricator/diff/10062, phabricator/diff/10063, phabricator/diff/10064, phabricator/diff/10065, phabricator/diff/10066, phabricator/diff/10067, phabricator/diff/10068, phabricator/diff/10069, phabricator/diff/10073, phabricator/diff/10074, phabricator/diff/10075, phabricator/diff/10076, phabricator/diff/10077, phabricator/diff/10078, phabricator/diff/10079, phabricator/diff/10090, phabricator/diff/10091, phabricator/diff/10097, phabricator/diff/10098, phabricator/diff/10099, phabricator/diff/10101, phabricator/diff/10102, phabricator/diff/10103, phabricator/diff/10104, phabricator/diff/10105, phabricator/diff/10106, phabricator/diff/10107, phabricator/diff/10108, phabricator/diff/10110, phabricator/diff/10112, phabricator/diff/10113, phabricator/diff/10114, phabricator/diff/10115, phabricator/diff/10116, phabricator/diff/10117, phabricator/diff/10118, phabricator/diff/10119, phabricator/diff/10120, phabricator/diff/10121, phabricator/diff/10122, phabricator/diff/10123, phabricator/diff/10125, phabricator/diff/10127, phabricator/diff/10128, phabricator/diff/10129, phabricator/diff/10130, phabricator/diff/10131, phabricator/diff/10132, phabricator/diff/10133, phabricator/diff/10134, phabricator/diff/10135, phabricator/diff/10136, phabricator/diff/10137, phabricator/diff/10138, phabricator/diff/10139, phabricator/diff/10141, phabricator/diff/10142, phabricator/diff/10143, phabricator/diff/10144, phabricator/diff/10145, phabricator/diff/10147, phabricator/diff/10148, phabricator/diff/10149, phabricator/diff/10150, phabricator/diff/10151, phabricator/diff/10154, phabricator/diff/10155, phabricator/diff/10156, phabricator/diff/10157, phabricator/diff/10158, phabricator/diff/10159, phabricator/diff/10160, phabricator/diff/10161, phabricator/diff/10162, phabricator/diff/10163, phabricator/diff/10164, phabricator/diff/10165, phabricator/diff/10167, phabricator/diff/10168, phabricator/diff/10169, phabricator/diff/10171, phabricator/diff/10177, phabricator/diff/10178, phabricator/diff/10180, phabricator/diff/10181, phabricator/diff/10182, phabricator/diff/10183, phabricator/diff/10184, phabricator/diff/10185, phabricator/diff/10186, phabricator/diff/10187, phabricator/diff/10188, phabricator/diff/10189, phabricator/diff/10190, phabricator/diff/10191, phabricator/diff/10192, phabricator/diff/10193, phabricator/diff/10195, phabricator/diff/10196, phabricator/diff/10198, phabricator/diff/10201, phabricator/diff/10202, phabricator/diff/10203, phabricator/diff/10206, phabricator/diff/10207, phabricator/diff/10208, phabricator/diff/10209, phabricator/diff/10210, phabricator/diff/10211, phabricator/diff/10212, phabricator/diff/10213, phabricator/diff/10214, phabricator/diff/10215, phabricator/diff/10216, phabricator/diff/10217, phabricator/diff/10218, phabricator/diff/10219, phabricator/diff/10220, phabricator/diff/10221, phabricator/diff/10222, phabricator/diff/10223, phabricator/diff/10224, phabricator/diff/10225, phabricator/diff/10226, phabricator/diff/10227, phabricator/diff/10228, phabricator/diff/10229, phabricator/diff/10235, phabricator/diff/10236, phabricator/diff/10239, phabricator/diff/10240, phabricator/diff/10241, phabricator/diff/10242, phabricator/diff/10243, phabricator/diff/10244, phabricator/diff/10246, phabricator/diff/10247, phabricator/diff/10248, phabricator/diff/10249, phabricator/diff/10250, phabricator/diff/10251, phabricator/diff/10252, phabricator/diff/10253, phabricator/diff/10254, phabricator/diff/10255, phabricator/diff/10256, phabricator/diff/10257, phabricator/diff/10258, phabricator/diff/10259, phabricator/diff/10260, phabricator/diff/10261, phabricator/diff/10262, phabricator/diff/10263, phabricator/diff/10265, phabricator/diff/10266, phabricator/diff/10267, phabricator/diff/10268, phabricator/diff/10269, phabricator/diff/10270, phabricator/diff/10275, phabricator/diff/10276, phabricator/diff/10277, phabricator/diff/10278, phabricator/diff/10279, phabricator/diff/10280, phabricator/diff/10281, phabricator/diff/10282, phabricator/diff/10283, phabricator/diff/10286, phabricator/diff/10289, phabricator/diff/10290, phabricator/diff/10291, phabricator/diff/10292, phabricator/diff/10293, phabricator/diff/10294, phabricator/diff/10295, phabricator/diff/10296, phabricator/diff/10297, phabricator/diff/10298, phabricator/diff/10299, phabricator/diff/10300, phabricator/diff/10301, phabricator/diff/10302, phabricator/diff/10303, phabricator/diff/10304, phabricator/diff/10306, phabricator/diff/10308, phabricator/diff/10309, phabricator/diff/10310, phabricator/diff/10311, phabricator/diff/10313, phabricator/diff/10314, phabricator/diff/10315, phabricator/diff/10316, phabricator/diff/10317, phabricator/diff/10318, phabricator/diff/10319, phabricator/diff/10320, phabricator/diff/10321, phabricator/diff/10322, phabricator/diff/10323, phabricator/diff/10324, phabricator/diff/10325, phabricator/diff/10326, phabricator/diff/10327, phabricator/diff/10328, phabricator/diff/10329, phabricator/diff/10330, phabricator/diff/10331, phabricator/diff/10332, phabricator/diff/10333, phabricator/diff/10334, phabricator/diff/10338, phabricator/diff/10340, phabricator/diff/10341, phabricator/diff/10342, phabricator/diff/10343, phabricator/diff/10344, phabricator/diff/10345, phabricator/diff/10346, phabricator/diff/10347, phabricator/diff/10350, phabricator/diff/10351, phabricator/diff/10352, phabricator/diff/10353, phabricator/diff/10355, phabricator/diff/10356, phabricator/diff/10357, phabricator/diff/10358, phabricator/diff/10359, phabricator/diff/10362, phabricator/diff/10364, phabricator/diff/10365, phabricator/diff/10366, phabricator/diff/10367, phabricator/diff/10368, phabricator/diff/10369, phabricator/diff/10370, phabricator/diff/10371, phabricator/diff/10372, phabricator/diff/10373, phabricator/diff/10374, phabricator/diff/10375, phabricator/diff/10376, phabricator/diff/10380, phabricator/diff/10394, phabricator/diff/10395, phabricator/diff/10396, phabricator/diff/10403, phabricator/diff/10404, phabricator/diff/10406, phabricator/diff/10407, phabricator/diff/10408, phabricator/diff/10409, phabricator/diff/10410, phabricator/diff/10411, phabricator/diff/10412, phabricator/diff/10413, phabricator/diff/10414, phabricator/diff/10415, phabricator/diff/10417, phabricator/diff/10418, phabricator/diff/10419, phabricator/diff/10420, phabricator/diff/10421, phabricator/diff/10422, phabricator/diff/10423, phabricator/diff/10431, phabricator/diff/10432, phabricator/diff/10433, phabricator/diff/10434, phabricator/diff/10435, phabricator/diff/10436, phabricator/diff/10437, phabricator/diff/10438, phabricator/diff/10439, phabricator/diff/10440, phabricator/diff/10441, phabricator/diff/10442, phabricator/diff/10443, phabricator/diff/10444, phabricator/diff/10445, phabricator/diff/10446, phabricator/diff/10447, phabricator/diff/10448, phabricator/diff/10449, phabricator/diff/10450, phabricator/diff/10451, phabricator/diff/10452, phabricator/diff/10454, phabricator/diff/10455, phabricator/diff/10456, phabricator/diff/10457, phabricator/diff/10459, phabricator/diff/10461, phabricator/diff/10462, phabricator/diff/10464, phabricator/diff/10465, phabricator/diff/10468, phabricator/diff/10469, phabricator/diff/10470, phabricator/diff/10471, phabricator/diff/10472, phabricator/diff/10473, phabricator/diff/10482, phabricator/diff/10483, phabricator/diff/10489, phabricator/diff/10490, phabricator/diff/10491, phabricator/diff/10492, phabricator/diff/10493, phabricator/diff/10494, phabricator/diff/10497, phabricator/diff/10498, phabricator/diff/10499, phabricator/diff/10500, phabricator/diff/10501, phabricator/diff/10503, phabricator/diff/10504, phabricator/diff/10507, phabricator/diff/10509, phabricator/diff/10510, phabricator/diff/10512, phabricator/diff/10513, phabricator/diff/10521, phabricator/diff/10523, phabricator/diff/10524, phabricator/diff/10525, phabricator/diff/10526, phabricator/diff/10527, phabricator/diff/10528, phabricator/diff/10530, phabricator/diff/10531, phabricator/diff/10532, phabricator/diff/10538, phabricator/diff/10540, phabricator/diff/10541, phabricator/diff/10542, phabricator/diff/10543, phabricator/diff/10544, phabricator/diff/10545, phabricator/diff/10546, phabricator/diff/10547, phabricator/diff/10548, phabricator/diff/10549, phabricator/diff/10552, phabricator/diff/10553, phabricator/diff/10554, phabricator/diff/10555, phabricator/diff/10560, phabricator/diff/10561, phabricator/diff/10562, phabricator/diff/10563, phabricator/diff/10571, phabricator/diff/10572, phabricator/diff/10573, phabricator/diff/10574, phabricator/diff/10575, phabricator/diff/10576, phabricator/diff/10577, phabricator/diff/10578, phabricator/diff/10579, phabricator/diff/10580, phabricator/diff/10581, phabricator/diff/10582, phabricator/diff/10583, phabricator/diff/10584, phabricator/diff/10586, phabricator/diff/10587, phabricator/diff/10588, phabricator/diff/10589, phabricator/diff/10590, phabricator/diff/10591, phabricator/diff/10592, phabricator/diff/10593, phabricator/diff/10594, phabricator/diff/10595, phabricator/diff/10596, phabricator/diff/10597, phabricator/diff/10598, phabricator/diff/10599, phabricator/diff/10600, phabricator/diff/10601, phabricator/diff/10602, phabricator/diff/10603, phabricator/diff/10604, phabricator/diff/10605, phabricator/diff/10606, phabricator/diff/10607, phabricator/diff/10608, phabricator/diff/10609, phabricator/diff/10610, phabricator/diff/10611, phabricator/diff/10612, phabricator/diff/10613, phabricator/diff/10614, phabricator/diff/10615, phabricator/diff/10616, phabricator/diff/10617, phabricator/diff/10618, phabricator/diff/10620, phabricator/diff/10621, phabricator/diff/10624, phabricator/diff/10625, phabricator/diff/10626, phabricator/diff/10629, phabricator/diff/10632, phabricator/diff/10633, phabricator/diff/10634, phabricator/diff/10635, phabricator/diff/10636, phabricator/diff/10637, phabricator/diff/10638, phabricator/diff/10639, phabricator/diff/10641, phabricator/diff/10642, phabricator/diff/10643, phabricator/diff/10644, phabricator/diff/10645, phabricator/diff/10646, phabricator/diff/10647, phabricator/diff/10648, phabricator/diff/10649, phabricator/diff/10650, phabricator/diff/10656, phabricator/diff/10657, phabricator/diff/10658, phabricator/diff/10659, phabricator/diff/10660, phabricator/diff/10661, phabricator/diff/10662, phabricator/diff/10663, phabricator/diff/10667, phabricator/diff/10668, phabricator/diff/10669, phabricator/diff/10670, phabricator/diff/10671, phabricator/diff/10673, phabricator/diff/10677, phabricator/diff/10679, phabricator/diff/10680, phabricator/diff/10681, phabricator/diff/10685, phabricator/diff/10686, phabricator/diff/10687, phabricator/diff/10688, phabricator/diff/10689, phabricator/diff/10690, phabricator/diff/10691, phabricator/diff/10692, phabricator/diff/10693, phabricator/diff/10694, phabricator/diff/10695, phabricator/diff/10696, phabricator/diff/10697, phabricator/diff/10698, phabricator/diff/10699, phabricator/diff/10701, phabricator/diff/10702, phabricator/diff/10703, phabricator/diff/10704, phabricator/diff/10705, phabricator/diff/10706, phabricator/diff/10707, phabricator/diff/10708, phabricator/diff/10711, phabricator/diff/10712, phabricator/diff/10714, phabricator/diff/10715, phabricator/diff/10716, phabricator/diff/10717, phabricator/diff/10718, phabricator/diff/10719, phabricator/diff/10721, phabricator/diff/10726, phabricator/diff/10729, phabricator/diff/10730, phabricator/diff/10731, phabricator/diff/10733, phabricator/diff/10734, phabricator/diff/10735, phabricator/diff/10736, phabricator/diff/10737, phabricator/diff/10742, phabricator/diff/10743, phabricator/diff/10744, phabricator/diff/10745, phabricator/diff/10746, phabricator/diff/10747, phabricator/diff/10748, phabricator/diff/10749, phabricator/diff/10750, phabricator/diff/10751, phabricator/diff/10752, phabricator/diff/10753, phabricator/diff/10754, phabricator/diff/10755, phabricator/diff/10756, phabricator/diff/10757, phabricator/diff/10758, phabricator/diff/10759, phabricator/diff/10762, phabricator/diff/10763, phabricator/diff/10764, phabricator/diff/10765, phabricator/diff/10766, phabricator/diff/10767, phabricator/diff/10768, phabricator/diff/10770, phabricator/diff/10771, phabricator/diff/10772, phabricator/diff/10773, phabricator/diff/10774, phabricator/diff/10775, phabricator/diff/10776, phabricator/diff/10777, phabricator/diff/10778, phabricator/diff/10779, phabricator/diff/10782, phabricator/diff/10783, phabricator/diff/10785, phabricator/diff/10786, phabricator/diff/10787, phabricator/diff/10788, phabricator/diff/10789, phabricator/diff/10790, phabricator/diff/10793, phabricator/diff/10794, phabricator/diff/10795, phabricator/diff/10796, phabricator/diff/10797, phabricator/diff/10798, phabricator/diff/10799, phabricator/diff/10800, phabricator/diff/10801, phabricator/diff/10802, phabricator/diff/10804, phabricator/diff/10814, phabricator/diff/10815, phabricator/diff/10817, phabricator/diff/10818, phabricator/diff/10819, phabricator/diff/10820, phabricator/diff/10821, phabricator/diff/10822, phabricator/diff/10823, phabricator/diff/10824, phabricator/diff/10825, phabricator/diff/10826, phabricator/diff/10827, phabricator/diff/10828, phabricator/diff/10830, phabricator/diff/10831, phabricator/diff/10832, phabricator/diff/10833, phabricator/diff/10834, phabricator/diff/10835, phabricator/diff/10837, phabricator/diff/10843, phabricator/diff/10844, phabricator/diff/10845, phabricator/diff/10846, phabricator/diff/10847, phabricator/diff/10848, phabricator/diff/10850, phabricator/diff/10852, phabricator/diff/10853, phabricator/diff/10855, phabricator/diff/10857, phabricator/diff/10858, phabricator/diff/10859, phabricator/diff/10860, phabricator/diff/10861, phabricator/diff/10862, phabricator/diff/10864, phabricator/diff/10865, phabricator/diff/10866, phabricator/diff/10867, phabricator/diff/10868, phabricator/diff/10869, phabricator/diff/10870, phabricator/diff/10871, phabricator/diff/10872, phabricator/diff/10873, phabricator/diff/10879, phabricator/diff/10880, phabricator/diff/10881, phabricator/diff/10882, phabricator/diff/10884, phabricator/diff/10885, phabricator/diff/10886, phabricator/diff/10887, phabricator/diff/10888, phabricator/diff/10889, phabricator/diff/10890, phabricator/diff/10891, phabricator/diff/10892, phabricator/diff/10893, phabricator/diff/10894, phabricator/diff/10895, phabricator/diff/10896, phabricator/diff/10897, phabricator/diff/10899, phabricator/diff/10900, phabricator/diff/10901, phabricator/diff/10902, phabricator/diff/10903, phabricator/diff/10904, phabricator/diff/10905, phabricator/diff/10906, phabricator/diff/10907, phabricator/diff/10908, phabricator/diff/10909, phabricator/diff/10911, phabricator/diff/10912, phabricator/diff/10914, phabricator/diff/10915, phabricator/diff/10916, phabricator/diff/10917, phabricator/diff/10918, phabricator/diff/10919, phabricator/diff/10920, phabricator/diff/10922, phabricator/diff/10923, phabricator/diff/10924, phabricator/diff/10925, phabricator/diff/10926, phabricator/diff/10927, phabricator/diff/10928, phabricator/diff/10934, phabricator/diff/10935, phabricator/diff/10936, phabricator/diff/10937, phabricator/diff/10938, phabricator/diff/10942, phabricator/diff/10947, phabricator/diff/10948, phabricator/diff/10949, phabricator/diff/10951, phabricator/diff/10952, phabricator/diff/10953, phabricator/diff/10954, phabricator/diff/10955, phabricator/diff/10956, phabricator/diff/10957, phabricator/diff/10958, phabricator/diff/10959, phabricator/diff/10960, phabricator/diff/10961, phabricator/diff/10962, phabricator/diff/10964, phabricator/diff/10967, phabricator/diff/10968, phabricator/diff/10969, phabricator/diff/10970, phabricator/diff/10971, phabricator/diff/10972, phabricator/diff/10973, phabricator/diff/10975, phabricator/diff/10983, phabricator/diff/10985, phabricator/diff/10986, phabricator/diff/10987, phabricator/diff/10988, phabricator/diff/10991, phabricator/diff/10992, phabricator/diff/10993, phabricator/diff/10994, phabricator/diff/10995, phabricator/diff/10997, phabricator/diff/10998, phabricator/diff/11000, phabricator/diff/11001, phabricator/diff/11002, phabricator/diff/11003, phabricator/diff/11004, phabricator/diff/11005, phabricator/diff/11006, phabricator/diff/11007, phabricator/diff/11008, phabricator/diff/11009, phabricator/diff/11010, phabricator/diff/11011, phabricator/diff/11012, phabricator/diff/11013, phabricator/diff/11015, phabricator/diff/11016, phabricator/diff/11019, phabricator/diff/11026, phabricator/diff/11027, phabricator/diff/11028, phabricator/diff/11029, phabricator/diff/11031, phabricator/diff/11032, phabricator/diff/11033, phabricator/diff/11034, phabricator/diff/11035, phabricator/diff/11036, phabricator/diff/11037, phabricator/diff/11044, phabricator/diff/11045, phabricator/diff/11048, phabricator/diff/11049, phabricator/diff/11050, phabricator/diff/11051, phabricator/diff/11052, phabricator/diff/11053, phabricator/diff/11054, phabricator/diff/11055, phabricator/diff/11057, phabricator/diff/11058, phabricator/diff/11059, phabricator/diff/11060, phabricator/diff/11061, phabricator/diff/11063, phabricator/diff/11064, phabricator/diff/11065, phabricator/diff/11066, phabricator/diff/11067, phabricator/diff/11068, phabricator/diff/11069, phabricator/diff/11070, phabricator/diff/11071, phabricator/diff/11072, phabricator/diff/11074, phabricator/diff/11077, phabricator/diff/11078, phabricator/diff/11079, phabricator/diff/11080, phabricator/diff/11081, phabricator/diff/11082, phabricator/diff/11083, phabricator/diff/11084, phabricator/diff/11085, phabricator/diff/11086, phabricator/diff/11087, phabricator/diff/11088, phabricator/diff/11089, phabricator/diff/11091, phabricator/diff/11092, phabricator/diff/11094, phabricator/diff/11095, phabricator/diff/11096, phabricator/diff/11098, phabricator/diff/11100, phabricator/diff/11101, phabricator/diff/11102, phabricator/diff/11103, phabricator/diff/11104, phabricator/diff/11119, phabricator/diff/11120, phabricator/diff/11121, phabricator/diff/11122, phabricator/diff/11123, phabricator/diff/11124, phabricator/diff/11125, phabricator/diff/11126, phabricator/diff/11127, phabricator/diff/11128, phabricator/diff/11129, phabricator/diff/11130, phabricator/diff/11131, phabricator/diff/11132, phabricator/diff/11134, phabricator/diff/11135, phabricator/diff/11136, phabricator/diff/11138, phabricator/diff/11147, phabricator/diff/11148, phabricator/diff/11149, phabricator/diff/11150, phabricator/diff/11157, phabricator/diff/11158, phabricator/diff/11159, phabricator/diff/11160, phabricator/diff/11161, phabricator/diff/11162, phabricator/diff/11163, phabricator/diff/11164, phabricator/diff/11165, phabricator/diff/11166, phabricator/diff/11167, phabricator/diff/11168, phabricator/diff/11169, phabricator/diff/11170, phabricator/diff/11171, phabricator/diff/11172, phabricator/diff/11173, phabricator/diff/11174, phabricator/diff/11175, phabricator/diff/11176, phabricator/diff/11177, phabricator/diff/11178, phabricator/diff/11179, phabricator/diff/11180, phabricator/diff/11181, phabricator/diff/11185, phabricator/diff/11186, phabricator/diff/11187, phabricator/diff/11188, phabricator/diff/11189, phabricator/diff/11197, phabricator/diff/11200, phabricator/diff/11201, phabricator/diff/11202, phabricator/diff/11203, phabricator/diff/11206, phabricator/diff/11207, phabricator/diff/11209, phabricator/diff/11210, phabricator/diff/11213, phabricator/diff/11215, phabricator/diff/11216, phabricator/diff/11217, phabricator/diff/11218, phabricator/diff/11219, phabricator/diff/11220, phabricator/diff/11221, phabricator/diff/11222, phabricator/diff/11224, phabricator/diff/11225, phabricator/diff/11226, phabricator/diff/11227, phabricator/diff/11228, phabricator/diff/11229, phabricator/diff/11230, phabricator/diff/11231, phabricator/diff/11232, phabricator/diff/11234, phabricator/diff/11235, phabricator/diff/11236, phabricator/diff/11237, phabricator/diff/11238, phabricator/diff/11239, phabricator/diff/11240, phabricator/diff/11241, phabricator/diff/11242, phabricator/diff/11243, phabricator/diff/11246, phabricator/diff/11247, phabricator/diff/11248, phabricator/diff/11249, phabricator/diff/11250, phabricator/diff/11251, phabricator/diff/11252, phabricator/diff/11253, phabricator/diff/11254, phabricator/diff/11255, phabricator/diff/11256, phabricator/diff/11257, phabricator/diff/11258, phabricator/diff/11259, phabricator/diff/11260, phabricator/diff/11263, phabricator/diff/11272, phabricator/diff/11273, phabricator/diff/11275, phabricator/diff/11279, phabricator/diff/11280, phabricator/diff/11281, phabricator/diff/11282, phabricator/diff/11283, phabricator/diff/11284, phabricator/diff/11285, phabricator/diff/11286, phabricator/diff/11287, phabricator/diff/11288, phabricator/diff/11289, phabricator/diff/11290, phabricator/diff/11291, phabricator/diff/11292, phabricator/diff/11293, phabricator/diff/11294, phabricator/diff/11295, phabricator/diff/11296, phabricator/diff/11297, phabricator/diff/11298, phabricator/diff/11299, phabricator/diff/11300, phabricator/diff/11301, phabricator/diff/11302, phabricator/diff/11303, phabricator/diff/11304, phabricator/diff/11306, phabricator/diff/11307, phabricator/diff/11309, phabricator/diff/11310, phabricator/diff/11311, phabricator/diff/11312, phabricator/diff/11313, phabricator/diff/11315, phabricator/diff/11316, phabricator/diff/11317, phabricator/diff/11318, phabricator/diff/11319, phabricator/diff/11320, phabricator/diff/11321, phabricator/diff/11322, phabricator/diff/11323, phabricator/diff/11327, phabricator/diff/11328, phabricator/diff/11329, phabricator/diff/11333, phabricator/diff/11334, phabricator/diff/11335, phabricator/diff/11336, phabricator/diff/11342, phabricator/diff/11343, phabricator/diff/11352, phabricator/diff/11354, phabricator/diff/11356, phabricator/diff/11358, phabricator/diff/11359, phabricator/diff/11360, phabricator/diff/11361, phabricator/diff/11362, phabricator/diff/11363, phabricator/diff/11365, phabricator/diff/11366, phabricator/diff/11367, phabricator/diff/11368, phabricator/diff/11369, phabricator/diff/11370, phabricator/diff/11371, phabricator/diff/11372, phabricator/diff/11373, phabricator/diff/11374, phabricator/diff/11375, phabricator/diff/11376, phabricator/diff/11377, phabricator/diff/11378, phabricator/diff/11380, phabricator/diff/11381, phabricator/diff/11382, phabricator/diff/11383, phabricator/diff/11384, phabricator/diff/11385, phabricator/diff/11388, phabricator/diff/11389, phabricator/diff/11390, phabricator/diff/11391, phabricator/diff/11392, phabricator/diff/11393, phabricator/diff/11394, phabricator/diff/11395, phabricator/diff/11396, phabricator/diff/11397, phabricator/diff/11398, phabricator/diff/11406, phabricator/diff/11408, phabricator/diff/11409, phabricator/diff/11410, phabricator/diff/11411, phabricator/diff/11412, phabricator/diff/11414, phabricator/diff/11415, phabricator/diff/11421, phabricator/diff/11422, phabricator/diff/11424, phabricator/diff/11426, phabricator/diff/11427, phabricator/diff/11428, phabricator/diff/11429, phabricator/diff/11431, phabricator/diff/11433, phabricator/diff/11435, phabricator/diff/11437, phabricator/diff/11439, phabricator/diff/11440, phabricator/diff/11441, phabricator/diff/11442, phabricator/diff/11443, phabricator/diff/11445, phabricator/diff/11446, phabricator/diff/11447, phabricator/diff/11448, phabricator/diff/11450, phabricator/diff/11451, phabricator/diff/11452, phabricator/diff/11454, phabricator/diff/11455, phabricator/diff/11456, phabricator/diff/11457, phabricator/diff/11458, phabricator/diff/11459, phabricator/diff/11460, phabricator/diff/11461, phabricator/diff/11462, phabricator/diff/11463, phabricator/diff/11464, phabricator/diff/11465, phabricator/diff/11466, phabricator/diff/11468, phabricator/diff/11469, phabricator/diff/11470, phabricator/diff/11471, phabricator/diff/11472, phabricator/diff/11473, phabricator/diff/11474, phabricator/diff/11475, phabricator/diff/11476, phabricator/diff/11477, phabricator/diff/11479, phabricator/diff/11480, phabricator/diff/11481, phabricator/diff/11482, phabricator/diff/11486, phabricator/diff/11487, phabricator/diff/11488, phabricator/diff/11489, phabricator/diff/11490, phabricator/diff/11491, phabricator/diff/11492, phabricator/diff/11493, phabricator/diff/11494, phabricator/diff/11495, phabricator/diff/11499, phabricator/diff/11500, phabricator/diff/11504, phabricator/diff/11505, phabricator/diff/11506, phabricator/diff/11521, phabricator/diff/11522, phabricator/diff/11523, phabricator/diff/11524, phabricator/diff/11525, phabricator/diff/11526, phabricator/diff/11527, phabricator/diff/11528, phabricator/diff/11529, phabricator/diff/11530, phabricator/diff/11531, phabricator/diff/11532, phabricator/diff/11533, phabricator/diff/11534, phabricator/diff/11535, phabricator/diff/11536, phabricator/diff/11537, phabricator/diff/11538, phabricator/diff/11539, phabricator/diff/11541, phabricator/diff/11543, phabricator/diff/11544, phabricator/diff/11545, phabricator/diff/11546, phabricator/diff/11547, phabricator/diff/11548, phabricator/diff/11549, phabricator/diff/11557, phabricator/diff/11558, phabricator/diff/11559, phabricator/diff/11560, phabricator/diff/11561, phabricator/diff/11562, phabricator/diff/11563, phabricator/diff/11564, phabricator/diff/11565, phabricator/diff/11569, phabricator/diff/11571, phabricator/diff/11572, phabricator/diff/11573, phabricator/diff/11574, phabricator/diff/11575, phabricator/diff/11576, phabricator/diff/11577, phabricator/diff/11578, phabricator/diff/11579, phabricator/diff/11580, phabricator/diff/11581, phabricator/diff/11582, phabricator/diff/11583, phabricator/diff/11584, phabricator/diff/11585, phabricator/diff/11586, phabricator/diff/11587, phabricator/diff/11588, phabricator/diff/11589, phabricator/diff/11590, phabricator/diff/11593, phabricator/diff/11594, phabricator/diff/11602, phabricator/diff/11603, phabricator/diff/11604, phabricator/diff/11605, phabricator/diff/11606, phabricator/diff/11607, phabricator/diff/11608, phabricator/diff/11609, phabricator/diff/11610, phabricator/diff/11612, phabricator/diff/11613, phabricator/diff/11614, phabricator/diff/11617, phabricator/diff/11618, phabricator/diff/11621, phabricator/diff/11622, phabricator/diff/11623, phabricator/diff/11624, phabricator/diff/11625, phabricator/diff/11626, phabricator/diff/11627, phabricator/diff/11628, phabricator/diff/11630, phabricator/diff/11631, phabricator/diff/11633, phabricator/diff/11634, phabricator/diff/11635, phabricator/diff/11636, phabricator/diff/11637, phabricator/diff/11638, phabricator/diff/11639, phabricator/diff/11640, phabricator/diff/11641, phabricator/diff/11643, phabricator/diff/11649, phabricator/diff/11650, phabricator/diff/11651, phabricator/diff/11652, phabricator/diff/11653, phabricator/diff/11654, phabricator/diff/11655, phabricator/diff/11656, phabricator/diff/11657, phabricator/diff/11661, phabricator/diff/11662, phabricator/diff/11663, phabricator/diff/11664, phabricator/diff/11665, phabricator/diff/11666, phabricator/diff/11667, phabricator/diff/11668, phabricator/diff/11669, phabricator/diff/11670, phabricator/diff/11671, phabricator/diff/11672, phabricator/diff/11674, phabricator/diff/11675, phabricator/diff/11676, phabricator/diff/11677, phabricator/diff/11678, phabricator/diff/11680, phabricator/diff/11682, phabricator/diff/11683, phabricator/diff/11685, phabricator/diff/11686, phabricator/diff/11687, phabricator/diff/11688, phabricator/diff/11689, phabricator/diff/11690, phabricator/diff/11692, phabricator/diff/11693, phabricator/diff/11694, phabricator/diff/11695, phabricator/diff/11696, phabricator/diff/11697, phabricator/diff/11698, phabricator/diff/11699, phabricator/diff/11700, phabricator/diff/11706, phabricator/diff/11707, phabricator/diff/11708, phabricator/diff/11709, phabricator/diff/11710, phabricator/diff/11711, phabricator/diff/11716, phabricator/diff/11723, phabricator/diff/11737, phabricator/diff/11738, phabricator/diff/11739, phabricator/diff/11743, phabricator/diff/11748, phabricator/diff/11750, phabricator/diff/11752, phabricator/diff/11754, phabricator/diff/11755, phabricator/diff/11767, phabricator/diff/11768, phabricator/diff/11769, phabricator/diff/11770, phabricator/diff/11771, phabricator/diff/11772, phabricator/diff/11773, phabricator/diff/11774, phabricator/diff/11775, phabricator/diff/11776, phabricator/diff/11777, phabricator/diff/11778, phabricator/diff/11779, phabricator/diff/11780, phabricator/diff/11781, phabricator/diff/11782, phabricator/diff/11783, phabricator/diff/11784, phabricator/diff/11788, phabricator/diff/11789, phabricator/diff/11790, phabricator/diff/11791, phabricator/diff/11792, phabricator/diff/11793, phabricator/diff/11794, phabricator/diff/11795, phabricator/diff/11796, phabricator/diff/11797, phabricator/diff/11798, phabricator/diff/11799, phabricator/diff/11800, phabricator/diff/11801, phabricator/diff/11802, phabricator/diff/11803, phabricator/diff/11804, phabricator/diff/11806, phabricator/diff/11807, phabricator/diff/11808, phabricator/diff/11809, phabricator/diff/11810, phabricator/diff/11813, phabricator/diff/11815, phabricator/diff/11816, phabricator/diff/11817, phabricator/diff/11818, phabricator/diff/11819, phabricator/diff/11820, phabricator/diff/11821, phabricator/diff/11822, phabricator/diff/11823, phabricator/diff/11824, phabricator/diff/11825, phabricator/diff/11827, phabricator/diff/11828, phabricator/diff/11829, phabricator/diff/11832, phabricator/diff/11833, phabricator/diff/11834, phabricator/diff/11835, phabricator/diff/11836, phabricator/diff/11837, phabricator/diff/11838, phabricator/diff/11839, phabricator/diff/11840, phabricator/diff/11841, phabricator/diff/11842, phabricator/diff/11843, phabricator/diff/11844, phabricator/diff/11846, phabricator/diff/11847, phabricator/diff/11848, phabricator/diff/11849, phabricator/diff/11850, phabricator/diff/11851, phabricator/diff/11852, phabricator/diff/11853, phabricator/diff/11854, phabricator/diff/11855, phabricator/diff/11856, phabricator/diff/11857, phabricator/diff/11860, phabricator/diff/11865, phabricator/diff/11866, phabricator/diff/11867, phabricator/diff/11868, phabricator/diff/11869, phabricator/diff/11870, phabricator/diff/11872, phabricator/diff/11873, phabricator/diff/11874, phabricator/diff/11875, phabricator/diff/11876, phabricator/diff/11877, phabricator/diff/11878, phabricator/diff/11879, phabricator/diff/11880, phabricator/diff/11888, phabricator/diff/11891, phabricator/diff/11892, phabricator/diff/11893, phabricator/diff/11894, phabricator/diff/11895, phabricator/diff/11896, phabricator/diff/11897, phabricator/diff/11898, phabricator/diff/11902, phabricator/diff/11903, phabricator/diff/11904, phabricator/diff/11906, phabricator/diff/11907, phabricator/diff/11908, phabricator/diff/11909, phabricator/diff/11910, phabricator/diff/11911, phabricator/diff/11912, phabricator/diff/11913, phabricator/diff/11914, phabricator/diff/11915, phabricator/diff/11916, phabricator/diff/11917, phabricator/diff/11918, phabricator/diff/11919, phabricator/diff/11923, phabricator/diff/11928, phabricator/diff/11929, phabricator/diff/11930, phabricator/diff/11932, phabricator/diff/11933, phabricator/diff/11934, phabricator/diff/11935, phabricator/diff/11936, phabricator/diff/11937, phabricator/diff/11938, phabricator/diff/11939, phabricator/diff/11940, phabricator/diff/11941, phabricator/diff/11945, phabricator/diff/11946, phabricator/diff/11947, phabricator/diff/11948, phabricator/diff/11951, phabricator/diff/11952, phabricator/diff/11953, phabricator/diff/11954, phabricator/diff/11956, phabricator/diff/11959, phabricator/diff/11960, phabricator/diff/11961, phabricator/diff/11963, phabricator/diff/11968, phabricator/diff/11969, phabricator/diff/11970, phabricator/diff/11971, phabricator/diff/11978, phabricator/diff/11979, phabricator/diff/11981, phabricator/diff/11983, phabricator/diff/11984, phabricator/diff/11986, phabricator/diff/11989, phabricator/diff/11990, phabricator/diff/11991, phabricator/diff/11992, phabricator/diff/11993, phabricator/diff/11994, phabricator/diff/11995, phabricator/diff/11997, phabricator/diff/11998, phabricator/diff/11999, phabricator/diff/12000, phabricator/diff/12001, phabricator/diff/12002, phabricator/diff/12003, phabricator/diff/12007, phabricator/diff/12014, phabricator/diff/12016, phabricator/diff/12017, phabricator/diff/12018, phabricator/diff/12020, phabricator/diff/12021, phabricator/diff/12024, phabricator/diff/12025, phabricator/diff/12026, phabricator/diff/12027, phabricator/diff/12028, phabricator/diff/12029, phabricator/diff/12030, phabricator/diff/12031, phabricator/diff/12032, phabricator/diff/12033, phabricator/diff/12034, phabricator/diff/12035, phabricator/diff/12037, phabricator/diff/12038, phabricator/diff/12039, phabricator/diff/12042, phabricator/diff/12044, phabricator/diff/12045, phabricator/diff/12046, phabricator/diff/12048, phabricator/diff/12050, phabricator/diff/12051, phabricator/diff/12054, phabricator/diff/12055, phabricator/diff/12057, phabricator/diff/12058, phabricator/diff/12059, phabricator/diff/12060, phabricator/diff/12061, phabricator/diff/12062, phabricator/diff/12063, phabricator/diff/12064, phabricator/diff/12068, phabricator/diff/12069, phabricator/diff/12070, phabricator/diff/12071, phabricator/diff/12072, phabricator/diff/12073, phabricator/diff/12074, phabricator/diff/12075, phabricator/diff/12076, phabricator/diff/12077, phabricator/diff/12078, phabricator/diff/12079, phabricator/diff/12080, phabricator/diff/12081, phabricator/diff/12082, phabricator/diff/12083, phabricator/diff/12084, phabricator/diff/12085, phabricator/diff/12087, phabricator/diff/12088, phabricator/diff/12089, phabricator/diff/12090, phabricator/diff/12091, phabricator/diff/12092, phabricator/diff/12093, phabricator/diff/12094, phabricator/diff/12095, phabricator/diff/12097, phabricator/diff/12098, phabricator/diff/12110, phabricator/diff/12111, phabricator/diff/12112, phabricator/diff/12113, phabricator/diff/12114, phabricator/diff/12115, phabricator/diff/12116, phabricator/diff/12117, phabricator/diff/12118, phabricator/diff/12119, phabricator/diff/12120, phabricator/diff/12121, phabricator/diff/12122, phabricator/diff/12123, phabricator/diff/12124, phabricator/diff/12125, phabricator/diff/12127, phabricator/diff/12128, phabricator/diff/12129, phabricator/diff/12130, phabricator/diff/12131, phabricator/diff/12132, phabricator/diff/12133, phabricator/diff/12134, phabricator/diff/12135, phabricator/diff/12136, phabricator/diff/12137, phabricator/diff/12138, phabricator/diff/12139, phabricator/diff/12141, phabricator/diff/12142, phabricator/diff/12143, phabricator/diff/12144, phabricator/diff/12145, phabricator/diff/12146, phabricator/diff/12147, phabricator/diff/12148, phabricator/diff/12149, phabricator/diff/12150, phabricator/diff/12151, phabricator/diff/12152, phabricator/diff/12154, phabricator/diff/12156, phabricator/diff/12157, phabricator/diff/12158, phabricator/diff/12159, phabricator/diff/12160, phabricator/diff/12161, phabricator/diff/12170, phabricator/diff/12171, phabricator/diff/12172, phabricator/diff/12173, phabricator/diff/12174, phabricator/diff/12175, phabricator/diff/12176, phabricator/diff/12178, phabricator/diff/12179, phabricator/diff/12180, phabricator/diff/12182, phabricator/diff/12183, phabricator/diff/12184, phabricator/diff/12186, phabricator/diff/12187, phabricator/diff/12188, phabricator/diff/12189, phabricator/diff/12190, phabricator/diff/12191, phabricator/diff/12192, phabricator/diff/12193, phabricator/diff/12194, phabricator/diff/12195, phabricator/diff/12196, phabricator/diff/12197, phabricator/diff/12198, phabricator/diff/12199, phabricator/diff/12200, phabricator/diff/12201, phabricator/diff/12203, phabricator/diff/12205, phabricator/diff/12206, phabricator/diff/12211, phabricator/diff/12212, phabricator/diff/12214, phabricator/diff/12215, phabricator/diff/12216, phabricator/diff/12217, phabricator/diff/12218, phabricator/diff/12219, phabricator/diff/12221, phabricator/diff/12223, phabricator/diff/12224, phabricator/diff/12234, phabricator/diff/12235, phabricator/diff/12236, phabricator/diff/12237, phabricator/diff/12238, phabricator/diff/12239, phabricator/diff/12240, phabricator/diff/12241, phabricator/diff/12242, phabricator/diff/12243, phabricator/diff/12249, phabricator/diff/12250, phabricator/diff/12251, phabricator/diff/12252, phabricator/diff/12253, phabricator/diff/12255, phabricator/diff/12256, phabricator/diff/12257, phabricator/diff/12258, phabricator/diff/12260, phabricator/diff/12261, phabricator/diff/12262, phabricator/diff/12263, phabricator/diff/12264, phabricator/diff/12271, phabricator/diff/12272, phabricator/diff/12273, phabricator/diff/12274, phabricator/diff/12275, phabricator/diff/12276, phabricator/diff/12277, phabricator/diff/12278, phabricator/diff/12279, phabricator/diff/12280, phabricator/diff/12282, phabricator/diff/12283, phabricator/diff/12284, phabricator/diff/12286, phabricator/diff/12287, phabricator/diff/12288, phabricator/diff/12289, phabricator/diff/12290, phabricator/diff/12291, phabricator/diff/12292, phabricator/diff/12293, phabricator/diff/12294, phabricator/diff/12295, phabricator/diff/12296, phabricator/diff/12297, phabricator/diff/12298, phabricator/diff/12299, phabricator/diff/12301, phabricator/diff/12307, phabricator/diff/12308, phabricator/diff/12309, phabricator/diff/12310, phabricator/diff/12311, phabricator/diff/12312, phabricator/diff/12313, phabricator/diff/12315, phabricator/diff/12316, phabricator/diff/12318, phabricator/diff/12320, phabricator/diff/12321, phabricator/diff/12322, phabricator/diff/12323, phabricator/diff/12324, phabricator/diff/12325, phabricator/diff/12326, phabricator/diff/12327, phabricator/diff/12328, phabricator/diff/12329, phabricator/diff/12332, phabricator/diff/12333, phabricator/diff/12334, phabricator/diff/12338, phabricator/diff/12339, phabricator/diff/12340, phabricator/diff/12341, phabricator/diff/12342, phabricator/diff/12343, phabricator/diff/12346, phabricator/diff/12347, phabricator/diff/12348, phabricator/diff/12349, phabricator/diff/12350, phabricator/diff/12351, phabricator/diff/12352, phabricator/diff/12353, phabricator/diff/12354, phabricator/diff/12355, phabricator/diff/12356, phabricator/diff/12357, phabricator/diff/12358, phabricator/diff/12359, phabricator/diff/12360, phabricator/diff/12361, phabricator/diff/12362, phabricator/diff/12363, phabricator/diff/12364, phabricator/diff/12365, phabricator/diff/12369, phabricator/diff/12371, phabricator/diff/12372, phabricator/diff/12373, phabricator/diff/12374, phabricator/diff/12375, phabricator/diff/12376, phabricator/diff/12377, phabricator/diff/12378, phabricator/diff/12379, phabricator/diff/12381, phabricator/diff/12382, phabricator/diff/12383, phabricator/diff/12387, phabricator/diff/12403, phabricator/diff/12404, phabricator/diff/12407, phabricator/diff/12411, phabricator/diff/12412, phabricator/diff/12413, phabricator/diff/12414, phabricator/diff/12415, phabricator/diff/12416, phabricator/diff/12417, phabricator/diff/12418, phabricator/diff/12419, phabricator/diff/12420, phabricator/diff/12421, phabricator/diff/12424, phabricator/diff/12425, phabricator/diff/12426, phabricator/diff/12427, phabricator/diff/12428, phabricator/diff/12429, phabricator/diff/12431, phabricator/diff/12432, phabricator/diff/12433, phabricator/diff/12434, phabricator/diff/12435, phabricator/diff/12436, phabricator/diff/12437, phabricator/diff/12438, phabricator/diff/12439, phabricator/diff/12440, phabricator/diff/12448, phabricator/diff/12449, phabricator/diff/12450, phabricator/diff/12452, phabricator/diff/12454, phabricator/diff/12455, phabricator/diff/12456, phabricator/diff/12457, phabricator/diff/12458, phabricator/diff/12459, phabricator/diff/12460, phabricator/diff/12461, phabricator/diff/12462, phabricator/diff/12463, phabricator/diff/12464, phabricator/diff/12465, phabricator/diff/12466, phabricator/diff/12467, phabricator/diff/12468, phabricator/diff/12469, phabricator/diff/12470, phabricator/diff/12471, phabricator/diff/12472, phabricator/diff/12473, phabricator/diff/12474, phabricator/diff/12475, phabricator/diff/12476, phabricator/diff/12477, phabricator/diff/12478, phabricator/diff/12479, phabricator/diff/12480, phabricator/diff/12481, phabricator/diff/12484, phabricator/diff/12485, phabricator/diff/12486, phabricator/diff/12487, phabricator/diff/12488, phabricator/diff/12489, phabricator/diff/12490, phabricator/diff/12491, phabricator/diff/12492, phabricator/diff/12493, phabricator/diff/12494, phabricator/diff/12495, phabricator/diff/12496, phabricator/diff/12497, phabricator/diff/12498, phabricator/diff/12499, phabricator/diff/12509, phabricator/diff/12510, phabricator/diff/12511, phabricator/diff/12512, phabricator/diff/12513, phabricator/diff/12514, phabricator/diff/12515, phabricator/diff/12517, phabricator/diff/12518, phabricator/diff/12519, phabricator/diff/12520, phabricator/diff/12521, phabricator/diff/12522, phabricator/diff/12523, phabricator/diff/12534, phabricator/diff/12535, phabricator/diff/12536, phabricator/diff/12538, phabricator/diff/12539, phabricator/diff/12540, phabricator/diff/12541, phabricator/diff/12542, phabricator/diff/12543, phabricator/diff/12544, phabricator/diff/12546, phabricator/diff/12548, phabricator/diff/12549, phabricator/diff/12550, phabricator/diff/12551, phabricator/diff/12552, phabricator/diff/12553, phabricator/diff/12554, phabricator/diff/12555, phabricator/diff/12556, phabricator/diff/12557, phabricator/diff/12558, phabricator/diff/12559, phabricator/diff/12560, phabricator/diff/12562, phabricator/diff/12563, phabricator/diff/12564, phabricator/diff/12565, phabricator/diff/12567, phabricator/diff/12568, phabricator/diff/12569, phabricator/diff/12570, phabricator/diff/12571, phabricator/diff/12572, phabricator/diff/12573, phabricator/diff/12574, phabricator/diff/12575, phabricator/diff/12576, phabricator/diff/12577, phabricator/diff/12578, phabricator/diff/12579, phabricator/diff/12581, phabricator/diff/12582, phabricator/diff/12583, phabricator/diff/12584, phabricator/diff/12585, phabricator/diff/12586, phabricator/diff/12587, phabricator/diff/12588, phabricator/diff/12589, phabricator/diff/12590, phabricator/diff/12591, phabricator/diff/12592, phabricator/diff/12593, phabricator/diff/12594, phabricator/diff/12596, phabricator/diff/12597, phabricator/diff/12599, phabricator/diff/12600, phabricator/diff/12601, phabricator/diff/12602, phabricator/diff/12604, phabricator/diff/12605, phabricator/diff/12606, phabricator/diff/12607, phabricator/diff/12608, phabricator/diff/12609, phabricator/diff/12610, phabricator/diff/12611, phabricator/diff/12612, phabricator/diff/12613, phabricator/diff/12614, phabricator/diff/12618, phabricator/diff/12620, phabricator/diff/12621, phabricator/diff/12622, phabricator/diff/12623, phabricator/diff/12624, phabricator/diff/12626, phabricator/diff/12627, phabricator/diff/12628, phabricator/diff/12629, phabricator/diff/12630, phabricator/diff/12632, phabricator/diff/12633, phabricator/diff/12634, phabricator/diff/12635, phabricator/diff/12637, phabricator/diff/12638, phabricator/diff/12639, phabricator/diff/12646, phabricator/diff/12647, phabricator/diff/12648, phabricator/diff/12649, phabricator/diff/12650, phabricator/diff/12651, phabricator/diff/12652, phabricator/diff/12653, phabricator/diff/12654, phabricator/diff/12655, phabricator/diff/12656, phabricator/diff/12657, phabricator/diff/12658, phabricator/diff/12659, phabricator/diff/12660, phabricator/diff/12661, phabricator/diff/12662, phabricator/diff/12663, phabricator/diff/12664, phabricator/diff/12665, phabricator/diff/12667, phabricator/diff/12668, phabricator/diff/12669, phabricator/diff/12670, phabricator/diff/12678, phabricator/diff/12679, phabricator/diff/12680, phabricator/diff/12681, phabricator/diff/12682, phabricator/diff/12683, phabricator/diff/12684, phabricator/diff/12685, phabricator/diff/12686, phabricator/diff/12687, phabricator/diff/12689, phabricator/diff/12690, phabricator/diff/12691, phabricator/diff/12692, phabricator/diff/12693, phabricator/diff/12694, phabricator/diff/12695, phabricator/diff/12696, phabricator/diff/12697, phabricator/diff/12698, phabricator/diff/12699, phabricator/diff/12700, phabricator/diff/12701, phabricator/diff/12702, phabricator/diff/12703, phabricator/diff/12704, phabricator/diff/12705, phabricator/diff/12708, phabricator/diff/12709, phabricator/diff/12710, phabricator/diff/12711, phabricator/diff/12712, phabricator/diff/12713, phabricator/diff/12714, phabricator/diff/12715, phabricator/diff/12716, phabricator/diff/12717, phabricator/diff/12718, phabricator/diff/12719, phabricator/diff/12720, phabricator/diff/12722, phabricator/diff/12723, phabricator/diff/12724, phabricator/diff/12725, phabricator/diff/12726, phabricator/diff/12728, phabricator/diff/12729, phabricator/diff/12730, phabricator/diff/12731, phabricator/diff/12732, phabricator/diff/12733, phabricator/diff/12734, phabricator/diff/12735, phabricator/diff/12736, phabricator/diff/12737, phabricator/diff/12738, phabricator/diff/12739, phabricator/diff/12740, phabricator/diff/12741, phabricator/diff/12742, phabricator/diff/12743, phabricator/diff/12752, phabricator/diff/12753, phabricator/diff/12754, phabricator/diff/12755, phabricator/diff/12756, phabricator/diff/12757, phabricator/diff/12758, phabricator/diff/12759, phabricator/diff/12760, phabricator/diff/12761, phabricator/diff/12762, phabricator/diff/12764, phabricator/diff/12766, phabricator/diff/12767, phabricator/diff/12768, phabricator/diff/12769, phabricator/diff/12770, phabricator/diff/12771, phabricator/diff/12772, phabricator/diff/12773, phabricator/diff/12774, phabricator/diff/12775, phabricator/diff/12776, phabricator/diff/12777, phabricator/diff/12778, phabricator/diff/12779, phabricator/diff/12780, phabricator/diff/12781, phabricator/diff/12782, phabricator/diff/12784, phabricator/diff/12785, phabricator/diff/12788, phabricator/diff/12796, phabricator/diff/12797, phabricator/diff/12798, phabricator/diff/12799, phabricator/diff/12800, phabricator/diff/12801, phabricator/diff/12802, phabricator/diff/12804, phabricator/diff/12805, phabricator/diff/12806, phabricator/diff/12807, phabricator/diff/12808, phabricator/diff/12810, phabricator/diff/12811, phabricator/diff/12812, phabricator/diff/12813, phabricator/diff/12814, phabricator/diff/12815, phabricator/diff/12817, phabricator/diff/12826, phabricator/diff/12827, phabricator/diff/12828, phabricator/diff/12829, phabricator/diff/12830, phabricator/diff/12831, phabricator/diff/12832, phabricator/diff/12834, phabricator/diff/12835, phabricator/diff/12836, phabricator/diff/12837, phabricator/diff/12838, phabricator/diff/12839, phabricator/diff/12840, phabricator/diff/12842, phabricator/diff/12843, phabricator/diff/12844, phabricator/diff/12845, phabricator/diff/12846, phabricator/diff/12847, phabricator/diff/12848, phabricator/diff/12849, phabricator/diff/12850, phabricator/diff/12851, phabricator/diff/12852, phabricator/diff/12853, phabricator/diff/12854, phabricator/diff/12855, phabricator/diff/12856, phabricator/diff/12858, phabricator/diff/12860, phabricator/diff/12861, phabricator/diff/12862, phabricator/diff/12864, phabricator/diff/12866, phabricator/diff/12867, phabricator/diff/12869, phabricator/diff/12870, phabricator/diff/12871, phabricator/diff/12872, phabricator/diff/12873, phabricator/diff/12874, phabricator/diff/12875, phabricator/diff/12884, phabricator/diff/12885, phabricator/diff/12886, phabricator/diff/12887, phabricator/diff/12888, phabricator/diff/12889, phabricator/diff/12890, phabricator/diff/12891, phabricator/diff/12892, phabricator/diff/12893, phabricator/diff/12894, phabricator/diff/12895, phabricator/diff/12899, phabricator/diff/12900, phabricator/diff/12901, phabricator/diff/12902, phabricator/diff/12903, phabricator/diff/12904, phabricator/diff/12905, phabricator/diff/12912, phabricator/diff/12914, phabricator/diff/12915, phabricator/diff/12916, phabricator/diff/12917, phabricator/diff/12918, phabricator/diff/12919, phabricator/diff/12920, phabricator/diff/12921, phabricator/diff/12922, phabricator/diff/12923, phabricator/diff/12924, phabricator/diff/12925, phabricator/diff/12926, phabricator/diff/12927, phabricator/diff/12928, phabricator/diff/12929, phabricator/diff/12930, phabricator/diff/12931, phabricator/diff/12932, phabricator/diff/12936, phabricator/diff/12937, phabricator/diff/12938, phabricator/diff/12939, phabricator/diff/12940, phabricator/diff/12941, phabricator/diff/12942, phabricator/diff/12943, phabricator/diff/12950, phabricator/diff/12951, phabricator/diff/12952, phabricator/diff/12953, phabricator/diff/12954, phabricator/diff/12955, phabricator/diff/12956, phabricator/diff/12957, phabricator/diff/12958, phabricator/diff/12959, phabricator/diff/12961, phabricator/diff/12962, phabricator/diff/12963, phabricator/diff/12964, phabricator/diff/12965, phabricator/diff/12966, phabricator/diff/12967, phabricator/diff/12975, phabricator/diff/12976, phabricator/diff/12977, phabricator/diff/12978, phabricator/diff/12979, phabricator/diff/12982, phabricator/diff/12984, phabricator/diff/12985, phabricator/diff/12986, phabricator/diff/12987, phabricator/diff/12988, phabricator/diff/12989, phabricator/diff/12990, phabricator/diff/12991, phabricator/diff/12992, phabricator/diff/12993, phabricator/diff/12994, phabricator/diff/12995, phabricator/diff/12996, phabricator/diff/12997, phabricator/diff/12998, phabricator/diff/12999, phabricator/diff/13001, phabricator/diff/13003, phabricator/diff/13004, phabricator/diff/13005, phabricator/diff/13006, phabricator/diff/13007, phabricator/diff/13008, phabricator/diff/13014, phabricator/diff/13015, phabricator/diff/13016, phabricator/diff/13024, phabricator/diff/13027, phabricator/diff/13028, phabricator/diff/13029, phabricator/diff/13030, phabricator/diff/13031, phabricator/diff/13033, phabricator/diff/13034, phabricator/diff/13035, phabricator/diff/13036, phabricator/diff/13037, phabricator/diff/13038, phabricator/diff/13039, phabricator/diff/13040, phabricator/diff/13041, phabricator/diff/13042, phabricator/diff/13043, phabricator/diff/13044, phabricator/diff/13045, phabricator/diff/13046, phabricator/diff/13047, phabricator/diff/13048, phabricator/diff/13049, phabricator/diff/13050, phabricator/diff/13051, phabricator/diff/13052, phabricator/diff/13054, phabricator/diff/13055, phabricator/diff/13056, phabricator/diff/13057, phabricator/diff/13058, phabricator/diff/13060, phabricator/diff/13061, phabricator/diff/13062, phabricator/diff/13063, phabricator/diff/13064, phabricator/diff/13065, phabricator/diff/13066, phabricator/diff/13068, phabricator/diff/13069, phabricator/diff/13070, phabricator/diff/13071, phabricator/diff/13072, phabricator/diff/13073, phabricator/diff/13075, phabricator/diff/13076, phabricator/diff/13077, phabricator/diff/13078, phabricator/diff/13079, phabricator/diff/13080, phabricator/diff/13081, phabricator/diff/13082, phabricator/diff/13083, phabricator/diff/13084, phabricator/diff/13085, phabricator/diff/13086, phabricator/diff/13087, phabricator/diff/13088, phabricator/diff/13089, phabricator/diff/13090, phabricator/diff/13091, phabricator/diff/13092, phabricator/diff/13093, phabricator/diff/13094, phabricator/diff/13105, phabricator/diff/13118, phabricator/diff/13122, phabricator/diff/13123, phabricator/diff/13124, phabricator/diff/13125, phabricator/diff/13126, phabricator/diff/13127, phabricator/diff/13128, phabricator/diff/13130, phabricator/diff/13131, phabricator/diff/13132, phabricator/diff/13133, phabricator/diff/13134, phabricator/diff/13135, phabricator/diff/13136, phabricator/diff/13139, phabricator/diff/13140, phabricator/diff/13141, phabricator/diff/13143, phabricator/diff/13144, phabricator/diff/13145, phabricator/diff/13146, phabricator/diff/13147, phabricator/diff/13149, phabricator/diff/13150, phabricator/diff/13151, phabricator/diff/13153, phabricator/diff/13154, phabricator/diff/13155, phabricator/diff/13156, phabricator/diff/13157, phabricator/diff/13158, phabricator/diff/13159, phabricator/diff/13160, phabricator/diff/13161, phabricator/diff/13162, phabricator/diff/13163, phabricator/diff/13164, phabricator/diff/13165, phabricator/diff/13166, phabricator/diff/13167, phabricator/diff/13168, phabricator/diff/13169, phabricator/diff/13170, phabricator/diff/13171, phabricator/diff/13172, phabricator/diff/13174, phabricator/diff/13175, phabricator/diff/13177, phabricator/diff/13178, phabricator/diff/13179, phabricator/diff/13180, phabricator/diff/13181, phabricator/diff/13182, phabricator/diff/13183, phabricator/diff/13184, phabricator/diff/13185, phabricator/diff/13186, phabricator/diff/13187, phabricator/diff/13188, phabricator/diff/13189, phabricator/diff/13190, phabricator/diff/13191, phabricator/diff/13192, phabricator/diff/13193, phabricator/diff/13194, phabricator/diff/13195, phabricator/diff/13196, phabricator/diff/13197, phabricator/diff/13198, phabricator/diff/13199, phabricator/diff/13200, phabricator/diff/13201, phabricator/diff/13202, phabricator/diff/13203, phabricator/diff/13204, phabricator/diff/13205, phabricator/diff/13206, phabricator/diff/13208, phabricator/diff/13209, phabricator/diff/13211, phabricator/diff/13213, phabricator/diff/13214, phabricator/diff/13215, phabricator/diff/13216, phabricator/diff/13217, phabricator/diff/13218, phabricator/diff/13220, phabricator/diff/13221, phabricator/diff/13222, phabricator/diff/13223, phabricator/diff/13224, phabricator/diff/13225, phabricator/diff/13226, phabricator/diff/13228, phabricator/diff/13229, phabricator/diff/13230, phabricator/diff/13232, phabricator/diff/13233, phabricator/diff/13234, phabricator/diff/13235, phabricator/diff/13236, phabricator/diff/13237, phabricator/diff/13238, phabricator/diff/13239, phabricator/diff/13240, phabricator/diff/13241, phabricator/diff/13242, phabricator/diff/13243, phabricator/diff/13244, phabricator/diff/13251, phabricator/diff/13253, phabricator/diff/13254, phabricator/diff/13257, phabricator/diff/13265, phabricator/diff/13266, phabricator/diff/13267, phabricator/diff/13268, phabricator/diff/13269, phabricator/diff/13271, phabricator/diff/13272, phabricator/diff/13273, phabricator/diff/13274, phabricator/diff/13275, phabricator/diff/13276, phabricator/diff/13277, phabricator/diff/13279, phabricator/diff/13280, phabricator/diff/13281, phabricator/diff/13282, phabricator/diff/13283, phabricator/diff/13284, phabricator/diff/13285, phabricator/diff/13286, phabricator/diff/13287, phabricator/diff/13289, phabricator/diff/13291, phabricator/diff/13292, phabricator/diff/13295, phabricator/diff/13296, phabricator/diff/13297, phabricator/diff/13298, phabricator/diff/13299, phabricator/diff/13303, phabricator/diff/13305, phabricator/diff/13306, phabricator/diff/13307, phabricator/diff/13308, phabricator/diff/13309, phabricator/diff/13310, phabricator/diff/13313, phabricator/diff/13314, phabricator/diff/13322, phabricator/diff/13323, phabricator/diff/13324, phabricator/diff/13325, phabricator/diff/13326, phabricator/diff/13328, phabricator/diff/13329, phabricator/diff/13330, phabricator/diff/13331, phabricator/diff/13332, phabricator/diff/13334, phabricator/diff/13335, phabricator/diff/13337, phabricator/diff/13338, phabricator/diff/13339, phabricator/diff/13342, phabricator/diff/13343, phabricator/diff/13344, phabricator/diff/13345, phabricator/diff/13346, phabricator/diff/13347, phabricator/diff/13348, phabricator/diff/13351, phabricator/diff/13352, phabricator/diff/13353, phabricator/diff/13354, phabricator/diff/13355, phabricator/diff/13356, phabricator/diff/13357, phabricator/diff/13358, phabricator/diff/13359, phabricator/diff/13360, phabricator/diff/13361, phabricator/diff/13362, phabricator/diff/13363, phabricator/diff/13364, phabricator/diff/13368, phabricator/diff/13369, phabricator/diff/13376, phabricator/diff/13377, phabricator/diff/13378, phabricator/diff/13379, phabricator/diff/13380, phabricator/diff/13381, phabricator/diff/13389, phabricator/diff/13390, phabricator/diff/13391, phabricator/diff/13392, phabricator/diff/13393, phabricator/diff/13395, phabricator/diff/13396, phabricator/diff/13397, phabricator/diff/13398, phabricator/diff/13400, phabricator/diff/13401, phabricator/diff/13402, phabricator/diff/13403, phabricator/diff/13404, phabricator/diff/13405, phabricator/diff/13406, phabricator/diff/13407, phabricator/diff/13408, phabricator/diff/13409, phabricator/diff/13415, phabricator/diff/13416, phabricator/diff/13417, phabricator/diff/13419, phabricator/diff/13420, phabricator/diff/13421, phabricator/diff/13422, phabricator/diff/13423, phabricator/diff/13424, phabricator/diff/13425, phabricator/diff/13426, phabricator/diff/13427, phabricator/diff/13428, phabricator/diff/13429, phabricator/diff/13430, phabricator/diff/13431, phabricator/diff/13432, phabricator/diff/13433, phabricator/diff/13434, phabricator/diff/13435, phabricator/diff/13438, phabricator/diff/13439, phabricator/diff/13440, phabricator/diff/13441, phabricator/diff/13442, phabricator/diff/13443, phabricator/diff/13444, phabricator/diff/13445, phabricator/diff/13449, phabricator/diff/13451, phabricator/diff/13452, phabricator/diff/13453, phabricator/diff/13454, phabricator/diff/13455, phabricator/diff/13456, phabricator/diff/13457, phabricator/diff/13458, phabricator/diff/13459, phabricator/diff/13460, phabricator/diff/13461, phabricator/diff/13462, phabricator/diff/13463, phabricator/diff/13464, phabricator/diff/13465, phabricator/diff/13466, phabricator/diff/13467, phabricator/diff/13468, phabricator/diff/13469, phabricator/diff/13470, phabricator/diff/13471, phabricator/diff/13472, phabricator/diff/13473, phabricator/diff/13474, phabricator/diff/13475, phabricator/diff/13476, phabricator/diff/13477, phabricator/diff/13478, phabricator/diff/13479, phabricator/diff/13480, phabricator/diff/13486, phabricator/diff/13487, phabricator/diff/13488, phabricator/diff/13489, phabricator/diff/13495, phabricator/diff/13497, phabricator/diff/13498, phabricator/diff/13499, phabricator/diff/13501, phabricator/diff/13503, phabricator/diff/13504, phabricator/diff/13505, phabricator/diff/13513, phabricator/diff/13514, phabricator/diff/13519, phabricator/diff/13520, phabricator/diff/13521, phabricator/diff/13522, phabricator/diff/13523, phabricator/diff/13524, phabricator/diff/13525, phabricator/diff/13526, phabricator/diff/13527, phabricator/diff/13528, phabricator/diff/13529, phabricator/diff/13530, phabricator/diff/13531, phabricator/diff/13532, phabricator/diff/13533, phabricator/diff/13534, phabricator/diff/13535, phabricator/diff/13538, phabricator/diff/13539, phabricator/diff/13540, phabricator/diff/13544, phabricator/diff/13545, phabricator/diff/13546, phabricator/diff/13548, phabricator/diff/13556, phabricator/diff/13557, phabricator/diff/13558, phabricator/diff/13559, phabricator/diff/13560, phabricator/diff/13561, phabricator/diff/13562, phabricator/diff/13563, phabricator/diff/13567, phabricator/diff/13568, phabricator/diff/13569, phabricator/diff/13571, phabricator/diff/13572, phabricator/diff/13573, phabricator/diff/13574, phabricator/diff/13575, phabricator/diff/13576, phabricator/diff/13577, phabricator/diff/13578, phabricator/diff/13579, phabricator/diff/13580, phabricator/diff/13581, phabricator/diff/13582, phabricator/diff/13583, phabricator/diff/13584, phabricator/diff/13585, phabricator/diff/13586, phabricator/diff/13587, phabricator/diff/13588, phabricator/diff/13590, phabricator/diff/13591, phabricator/diff/13592, phabricator/diff/13593, phabricator/diff/13594, phabricator/diff/13604, phabricator/diff/13605, phabricator/diff/13608, phabricator/diff/13609, phabricator/diff/13610, phabricator/diff/13611, phabricator/diff/13612, phabricator/diff/13613, phabricator/diff/13614, phabricator/diff/13615, phabricator/diff/13616, phabricator/diff/13617, phabricator/diff/13618, phabricator/diff/13619, phabricator/diff/13622, phabricator/diff/13623, phabricator/diff/13624, phabricator/diff/13626, phabricator/diff/13628, phabricator/diff/13629, phabricator/diff/13630, phabricator/diff/13631, phabricator/diff/13632, phabricator/diff/13638, phabricator/diff/13639, phabricator/diff/13640, phabricator/diff/13641, phabricator/diff/13642, phabricator/diff/13643, phabricator/diff/13644, phabricator/diff/13645, phabricator/diff/13646, phabricator/diff/13647, phabricator/diff/13648, phabricator/diff/13649, phabricator/diff/13650, phabricator/diff/13651, phabricator/diff/13652, phabricator/diff/13653, phabricator/diff/13654, phabricator/diff/13655, phabricator/diff/13656, phabricator/diff/13657, phabricator/diff/13659, phabricator/diff/13660, phabricator/diff/13665, phabricator/diff/13666, phabricator/diff/13667, phabricator/diff/13668, phabricator/diff/13674, phabricator/diff/13676, phabricator/diff/13680, phabricator/diff/13681, phabricator/diff/13682, phabricator/diff/13684, phabricator/diff/13685, phabricator/diff/13686, phabricator/diff/13687, phabricator/diff/13688, phabricator/diff/13689, phabricator/diff/13690, phabricator/diff/13691, phabricator/diff/13692, phabricator/diff/13693, phabricator/diff/13694, phabricator/diff/13695, phabricator/diff/13696, phabricator/diff/13697, phabricator/diff/13700, phabricator/diff/13701, phabricator/diff/13702, phabricator/diff/13703, phabricator/diff/13704, phabricator/diff/13705, phabricator/diff/13706, phabricator/diff/13707, phabricator/diff/13708, phabricator/diff/13709, phabricator/diff/13713, phabricator/diff/13714, phabricator/diff/13717, phabricator/diff/13718, phabricator/diff/13719, phabricator/diff/13725, phabricator/diff/13726, phabricator/diff/13727, phabricator/diff/13728, phabricator/diff/13729, phabricator/diff/13730, phabricator/diff/13731, phabricator/diff/13732, phabricator/diff/13733, phabricator/diff/13734, phabricator/diff/13735, phabricator/diff/13736, phabricator/diff/13737, phabricator/diff/13738, phabricator/diff/13751, phabricator/diff/13752, phabricator/diff/13753, phabricator/diff/13754, phabricator/diff/13755, phabricator/diff/13757, phabricator/diff/13758, phabricator/diff/13759, phabricator/diff/13760, phabricator/diff/13761, phabricator/diff/13762, phabricator/diff/13763, phabricator/diff/13764, phabricator/diff/13766, phabricator/diff/13768, phabricator/diff/13769, phabricator/diff/13770, phabricator/diff/13771, phabricator/diff/13772, phabricator/diff/13773, phabricator/diff/13774, phabricator/diff/13775, phabricator/diff/13776, phabricator/diff/13777, phabricator/diff/13778, phabricator/diff/13779, phabricator/diff/13780, phabricator/diff/13784, phabricator/diff/13785, phabricator/diff/13786, phabricator/diff/13787, phabricator/diff/13788, phabricator/diff/13789, phabricator/diff/13790, phabricator/diff/13791, phabricator/diff/13792, phabricator/diff/13793, phabricator/diff/13794, phabricator/diff/13795, phabricator/diff/13796, phabricator/diff/13797, phabricator/diff/13798, phabricator/diff/13799, phabricator/diff/13800, phabricator/diff/13801, phabricator/diff/13802, phabricator/diff/13803, phabricator/diff/13804, phabricator/diff/13807, phabricator/diff/13809, phabricator/diff/13810, phabricator/diff/13811, phabricator/diff/13813, phabricator/diff/13814, phabricator/diff/13815, phabricator/diff/13816, phabricator/diff/13817, phabricator/diff/13819, phabricator/diff/13820, phabricator/diff/13821, phabricator/diff/13823, phabricator/diff/13824, phabricator/diff/13825, phabricator/diff/13826, phabricator/diff/13827, phabricator/diff/13828, phabricator/diff/13829, phabricator/diff/13830, phabricator/diff/13831, phabricator/diff/13832, phabricator/diff/13833, phabricator/diff/13835, phabricator/diff/13836, phabricator/diff/13840, phabricator/diff/13841, phabricator/diff/13842, phabricator/diff/13843, phabricator/diff/13844, phabricator/diff/13845, phabricator/diff/13846, phabricator/diff/13855, phabricator/diff/13857, phabricator/diff/13858, phabricator/diff/13859, phabricator/diff/13865, phabricator/diff/13866, phabricator/diff/13867, phabricator/diff/13869, phabricator/diff/13870, phabricator/diff/13871, phabricator/diff/13872, phabricator/diff/13873, phabricator/diff/13874, phabricator/diff/13875, phabricator/diff/13876, phabricator/diff/13877, phabricator/diff/13878, phabricator/diff/13879, phabricator/diff/13880, phabricator/diff/13881, phabricator/diff/13882, phabricator/diff/13883, phabricator/diff/13884, phabricator/diff/13885, phabricator/diff/13886, phabricator/diff/13887, phabricator/diff/13888, phabricator/diff/13889, phabricator/diff/13890, phabricator/diff/13891, phabricator/diff/13893, phabricator/diff/13894, phabricator/diff/13895, phabricator/diff/13896, phabricator/diff/13897, phabricator/diff/13898, phabricator/diff/13899, phabricator/diff/13900, phabricator/diff/13901, phabricator/diff/13902, phabricator/diff/13903, phabricator/diff/13904, phabricator/diff/13905, phabricator/diff/13906, phabricator/diff/13907, phabricator/diff/13908, phabricator/diff/13915, phabricator/diff/13916, phabricator/diff/13917, phabricator/diff/13918, phabricator/diff/13919, phabricator/diff/13920, phabricator/diff/13921, phabricator/diff/13922, phabricator/diff/13923, phabricator/diff/13924, phabricator/diff/13925, phabricator/diff/13926, phabricator/diff/13927, phabricator/diff/13928, phabricator/diff/13929, phabricator/diff/13930, phabricator/diff/13931, phabricator/diff/13932, phabricator/diff/13933, phabricator/diff/13934, phabricator/diff/13935, phabricator/diff/13936, phabricator/diff/13937, phabricator/diff/13939, phabricator/diff/13940, phabricator/diff/13941, phabricator/diff/13943, phabricator/diff/13944, phabricator/diff/13945, phabricator/diff/13946, phabricator/diff/13947, phabricator/diff/13948, phabricator/diff/13949, phabricator/diff/13950, phabricator/diff/13951, phabricator/diff/13952, phabricator/diff/13953, phabricator/diff/13955, phabricator/diff/13956, phabricator/diff/13957, phabricator/diff/13958, phabricator/diff/13959, phabricator/diff/13960, phabricator/diff/13961, phabricator/diff/13962, phabricator/diff/13965, phabricator/diff/13966, phabricator/diff/13967, phabricator/diff/13968, phabricator/diff/13969, phabricator/diff/13973, phabricator/diff/13974, phabricator/diff/13976, phabricator/diff/13977, phabricator/diff/13978, phabricator/diff/13979, phabricator/diff/13980, phabricator/diff/13989, phabricator/diff/13995, phabricator/diff/13996, phabricator/diff/13997, phabricator/diff/13998, phabricator/diff/13999, phabricator/diff/14000, phabricator/diff/14001, phabricator/diff/14002, phabricator/diff/14003, phabricator/diff/14004, phabricator/diff/14005, phabricator/diff/14006, phabricator/diff/14007, phabricator/diff/14008, phabricator/diff/14009, phabricator/diff/14013, phabricator/diff/14015, phabricator/diff/14016, phabricator/diff/14017, phabricator/diff/14018, phabricator/diff/14019, phabricator/diff/14020, phabricator/diff/14021, phabricator/diff/14022, phabricator/diff/14023, phabricator/diff/14024, phabricator/diff/14030, phabricator/diff/14033, phabricator/diff/14034, phabricator/diff/14035, phabricator/diff/14041, phabricator/diff/14042, phabricator/diff/14043, phabricator/diff/14044, phabricator/diff/14045, phabricator/diff/14046, phabricator/diff/14047, phabricator/diff/14048, phabricator/diff/14049, phabricator/diff/14050, phabricator/diff/14051, phabricator/diff/14052, phabricator/diff/14053, phabricator/diff/14055, phabricator/diff/14056, phabricator/diff/14057, phabricator/diff/14058, phabricator/diff/14059, phabricator/diff/14060, phabricator/diff/14061, phabricator/diff/14062, phabricator/diff/14063, phabricator/diff/14064, phabricator/diff/14067, phabricator/diff/14068, phabricator/diff/14071, phabricator/diff/14072, phabricator/diff/14073, phabricator/diff/14075, phabricator/diff/14076, phabricator/diff/14078, phabricator/diff/14081, phabricator/diff/14082, phabricator/diff/14083, phabricator/diff/14084, phabricator/diff/14085, phabricator/diff/14086, phabricator/diff/14087, phabricator/diff/14088, phabricator/diff/14089, phabricator/diff/14090, phabricator/diff/14091, phabricator/diff/14095, phabricator/diff/14096, phabricator/diff/14097, phabricator/diff/14098, phabricator/diff/14099, phabricator/diff/14100, phabricator/diff/14101, phabricator/diff/14102, phabricator/diff/14103, phabricator/diff/14104, phabricator/diff/14105, phabricator/diff/14115, phabricator/diff/14116, phabricator/diff/14117, phabricator/diff/14118, phabricator/diff/14119, phabricator/diff/14120, phabricator/diff/14121, phabricator/diff/14122, phabricator/diff/14123, phabricator/diff/14124, phabricator/diff/14125, phabricator/diff/14126, phabricator/diff/14127, phabricator/diff/14128, phabricator/diff/14129, phabricator/diff/14134, phabricator/diff/14136, phabricator/diff/14137, phabricator/diff/14138, phabricator/diff/14139, phabricator/diff/14140, phabricator/diff/14141, phabricator/diff/14146, phabricator/diff/14147, phabricator/diff/14148, phabricator/diff/14150, phabricator/diff/14151, phabricator/diff/14152, phabricator/diff/14153, phabricator/diff/14154, phabricator/diff/14155, phabricator/diff/14156, phabricator/diff/14159, phabricator/diff/14160, phabricator/diff/14161, phabricator/diff/14162, phabricator/diff/14163, phabricator/diff/14164, phabricator/diff/14165, phabricator/diff/14166, phabricator/diff/14167, phabricator/diff/14173, phabricator/diff/14174, phabricator/diff/14175, phabricator/diff/14176, phabricator/diff/14177, phabricator/diff/14178, phabricator/diff/14181, phabricator/diff/14182, phabricator/diff/14183, phabricator/diff/14184, phabricator/diff/14186, phabricator/diff/14187, phabricator/diff/14188, phabricator/diff/14189, phabricator/diff/14191, phabricator/diff/14192, phabricator/diff/14193, phabricator/diff/14194, phabricator/diff/14195, phabricator/diff/14196, phabricator/diff/14197, phabricator/diff/14198, phabricator/diff/14199, phabricator/diff/14200, phabricator/diff/14201, phabricator/diff/14202, phabricator/diff/14203, phabricator/diff/14204, phabricator/diff/14210, phabricator/diff/14211, phabricator/diff/14212, phabricator/diff/14213, phabricator/diff/14214, phabricator/diff/14215, phabricator/diff/14216, phabricator/diff/14217, phabricator/diff/14218, phabricator/diff/14219, phabricator/diff/14220, phabricator/diff/14221, phabricator/diff/14222, phabricator/diff/14223, phabricator/diff/14224, phabricator/diff/14225, phabricator/diff/14226, phabricator/diff/14227, phabricator/diff/14228, phabricator/diff/14229, phabricator/diff/14231, phabricator/diff/14233, phabricator/diff/14234, phabricator/diff/14236, phabricator/diff/14237, phabricator/diff/14238, phabricator/diff/14239, phabricator/diff/14241, phabricator/diff/14242, phabricator/diff/14252, phabricator/diff/14253, phabricator/diff/14254, phabricator/diff/14255, phabricator/diff/14256, phabricator/diff/14257, phabricator/diff/14258, phabricator/diff/14259, phabricator/diff/14260, phabricator/diff/14261, phabricator/diff/14262, phabricator/diff/14263, phabricator/diff/14264, phabricator/diff/14265, phabricator/diff/14266, phabricator/diff/14267, phabricator/diff/14268, phabricator/diff/14269, phabricator/diff/14270, phabricator/diff/14271, phabricator/diff/14272, phabricator/diff/14273, phabricator/diff/14274, phabricator/diff/14275, phabricator/diff/14276, phabricator/diff/14277, phabricator/diff/14278, phabricator/diff/14279, phabricator/diff/14280, phabricator/diff/14281, phabricator/diff/14283, phabricator/diff/14284, phabricator/diff/14285, phabricator/diff/14286, phabricator/diff/14289, phabricator/diff/14290, phabricator/diff/14291, phabricator/diff/14292, phabricator/diff/14293, phabricator/diff/14294, phabricator/diff/14295, phabricator/diff/14298, phabricator/diff/14301, phabricator/diff/14302, phabricator/diff/14303, phabricator/diff/14305, phabricator/diff/14306, phabricator/diff/14307, phabricator/diff/14308, phabricator/diff/14309, phabricator/diff/14310, phabricator/diff/14312, phabricator/diff/14313, phabricator/diff/14314, phabricator/diff/14315, phabricator/diff/14318, phabricator/diff/14319, phabricator/diff/14320, phabricator/diff/14321, phabricator/diff/14323, phabricator/diff/14324, phabricator/diff/14325, phabricator/diff/14328, phabricator/diff/14329, phabricator/diff/14330, phabricator/diff/14331, phabricator/diff/14332, phabricator/diff/14333, phabricator/diff/14334, phabricator/diff/14335, phabricator/diff/14336, phabricator/diff/14337, phabricator/diff/14338, phabricator/diff/14339, phabricator/diff/14340, phabricator/diff/14342, phabricator/diff/14343, phabricator/diff/14344, phabricator/diff/14345, phabricator/diff/14347, phabricator/diff/14348, phabricator/diff/14349, phabricator/diff/14350, phabricator/diff/14351, phabricator/diff/14352, phabricator/diff/14353, phabricator/diff/14355, phabricator/diff/14356, phabricator/diff/14357, phabricator/diff/14358, phabricator/diff/14359, phabricator/diff/14360, phabricator/diff/14361, phabricator/diff/14364, phabricator/diff/14369, phabricator/diff/14375, phabricator/diff/14376, phabricator/diff/14377, phabricator/diff/14378, phabricator/diff/14379, phabricator/diff/14380, phabricator/diff/14381, phabricator/diff/14382, phabricator/diff/14383, phabricator/diff/14384, phabricator/diff/14385, phabricator/diff/14386, phabricator/diff/14387, phabricator/diff/14388, phabricator/diff/14389, phabricator/diff/14390, phabricator/diff/14391, phabricator/diff/14392, phabricator/diff/14393, phabricator/diff/14394, phabricator/diff/14395, phabricator/diff/14396, phabricator/diff/14397, phabricator/diff/14398, phabricator/diff/14399, phabricator/diff/14400, phabricator/diff/14401, phabricator/diff/14402, phabricator/diff/14403, phabricator/diff/14404, phabricator/diff/14405, phabricator/diff/14410, phabricator/diff/14411, phabricator/diff/14412, phabricator/diff/14413, phabricator/diff/14414, phabricator/diff/14415, phabricator/diff/14416, phabricator/diff/14417, phabricator/diff/14418, phabricator/diff/14419, phabricator/diff/14420, phabricator/diff/14421, phabricator/diff/14422, phabricator/diff/14423, phabricator/diff/14424, phabricator/diff/14425, phabricator/diff/14426, phabricator/diff/14427, phabricator/diff/14428, phabricator/diff/14429, phabricator/diff/14434, phabricator/diff/14435, phabricator/diff/14436, phabricator/diff/14437, phabricator/diff/14438, phabricator/diff/14439, phabricator/diff/14440, phabricator/diff/14441, phabricator/diff/14442, phabricator/diff/14443, phabricator/diff/14444, phabricator/diff/14445, phabricator/diff/14446, phabricator/diff/14447, phabricator/diff/14448, phabricator/diff/14449, phabricator/diff/14450, phabricator/diff/14451, phabricator/diff/14452, phabricator/diff/14454, phabricator/diff/14455, phabricator/diff/14456, phabricator/diff/14457, phabricator/diff/14458, phabricator/diff/14461, phabricator/diff/14467, phabricator/diff/14474, phabricator/diff/14475, phabricator/diff/14476, phabricator/diff/14477, phabricator/diff/14479, phabricator/diff/14480, phabricator/diff/14481, phabricator/diff/14482, phabricator/diff/14483, phabricator/diff/14484, phabricator/diff/14485, phabricator/diff/14488, phabricator/diff/14489, phabricator/diff/14490, phabricator/diff/14491, phabricator/diff/14492, phabricator/diff/14494, phabricator/diff/14495, phabricator/diff/14496, phabricator/diff/14499, phabricator/diff/14500, phabricator/diff/14501, phabricator/diff/14502, phabricator/diff/14503, phabricator/diff/14505, phabricator/diff/14506, phabricator/diff/14512, phabricator/diff/14513, phabricator/diff/14514, phabricator/diff/14515, phabricator/diff/14516, phabricator/diff/14517, phabricator/diff/14518, phabricator/diff/14519, phabricator/diff/14520, phabricator/diff/14521, phabricator/diff/14522, phabricator/diff/14523, phabricator/diff/14524, phabricator/diff/14525, phabricator/diff/14526, phabricator/diff/14527, phabricator/diff/14528, phabricator/diff/14529, phabricator/diff/14530, phabricator/diff/14531, phabricator/diff/14532, phabricator/diff/14533, phabricator/diff/14534, phabricator/diff/14535, phabricator/diff/14536, phabricator/diff/14537, phabricator/diff/14544, phabricator/diff/14545, phabricator/diff/14546, phabricator/diff/14549, phabricator/diff/14555, phabricator/diff/14556, phabricator/diff/14557, phabricator/diff/14558, phabricator/diff/14559, phabricator/diff/14560, phabricator/diff/14561, phabricator/diff/14562, phabricator/diff/14563, phabricator/diff/14564, phabricator/diff/14565, phabricator/diff/14566, phabricator/diff/14567, phabricator/diff/14568, phabricator/diff/14570, phabricator/diff/14571, phabricator/diff/14572, phabricator/diff/14573, phabricator/diff/14574, phabricator/diff/14575, phabricator/diff/14576, phabricator/diff/14577, phabricator/diff/14578, phabricator/diff/14579, phabricator/diff/14580, phabricator/diff/14581, phabricator/diff/14582, phabricator/diff/14583, phabricator/diff/14584, phabricator/diff/14585, phabricator/diff/14594, phabricator/diff/14595, phabricator/diff/14596, phabricator/diff/14597, phabricator/diff/14598, phabricator/diff/14599, phabricator/diff/14601, phabricator/diff/14602, phabricator/diff/14604, phabricator/diff/14605, phabricator/diff/14614, phabricator/diff/14615, phabricator/diff/14616, phabricator/diff/14617, phabricator/diff/14618, phabricator/diff/14619, phabricator/diff/14620, phabricator/diff/14621, phabricator/diff/14622, phabricator/diff/14623, phabricator/diff/14624, phabricator/diff/14633, phabricator/diff/14634, phabricator/diff/14635, phabricator/diff/14636, phabricator/diff/14638, phabricator/diff/14639, phabricator/diff/14640, phabricator/diff/14641, phabricator/diff/14642, phabricator/diff/14643, phabricator/diff/14644, phabricator/diff/14645, phabricator/diff/14646, phabricator/diff/14647, phabricator/diff/14648, phabricator/diff/14649, phabricator/diff/14650, phabricator/diff/14651, phabricator/diff/14652, phabricator/diff/14653, phabricator/diff/14654, phabricator/diff/14655, phabricator/diff/14656, phabricator/diff/14657, phabricator/diff/14658, phabricator/diff/14659, phabricator/diff/14660, phabricator/diff/14661, phabricator/diff/14662, phabricator/diff/14663, phabricator/diff/14664, phabricator/diff/14665, phabricator/diff/14666, phabricator/diff/14667, phabricator/diff/14668, phabricator/diff/14669, phabricator/diff/14670, phabricator/diff/14672, phabricator/diff/14673, phabricator/diff/14674, phabricator/diff/14676, phabricator/diff/14677, phabricator/diff/14678, phabricator/diff/14679, phabricator/diff/14680, phabricator/diff/14681, phabricator/diff/14682, phabricator/diff/14683, phabricator/diff/14684, phabricator/diff/14686, phabricator/diff/14699, phabricator/diff/14700, phabricator/diff/14701, phabricator/diff/14702, phabricator/diff/14703, phabricator/diff/14704, phabricator/diff/14705, phabricator/diff/14706, phabricator/diff/14708, phabricator/diff/14709, phabricator/diff/14710, phabricator/diff/14711, phabricator/diff/14712, phabricator/diff/14713, phabricator/diff/14714, phabricator/diff/14715, phabricator/diff/14716, phabricator/diff/14717, phabricator/diff/14718, phabricator/diff/14719, phabricator/diff/14720, phabricator/diff/14721, phabricator/diff/14722, phabricator/diff/14723, phabricator/diff/14724, phabricator/diff/14728, phabricator/diff/14729, phabricator/diff/14730, phabricator/diff/14736, phabricator/diff/14737, phabricator/diff/14738, phabricator/diff/14739, phabricator/diff/14740, phabricator/diff/14741, phabricator/diff/14742, phabricator/diff/14743, phabricator/diff/14744, phabricator/diff/14745, phabricator/diff/14746, phabricator/diff/14747, phabricator/diff/14748, phabricator/diff/14749, phabricator/diff/14750, phabricator/diff/14753, phabricator/diff/14754, phabricator/diff/14755, phabricator/diff/14756, phabricator/diff/14757, phabricator/diff/14758, phabricator/diff/14768, phabricator/diff/14769, phabricator/diff/14770, phabricator/diff/14771, phabricator/diff/14774, phabricator/diff/14775, phabricator/diff/14776, phabricator/diff/14777, phabricator/diff/14778, phabricator/diff/14779, phabricator/diff/14780, phabricator/diff/14781, phabricator/diff/14782, phabricator/diff/14783, phabricator/diff/14784, phabricator/diff/14786, phabricator/diff/14787, phabricator/diff/14788, phabricator/diff/14789, phabricator/diff/14790, phabricator/diff/14791, phabricator/diff/14792, phabricator/diff/14793, phabricator/diff/14794, phabricator/diff/14795, phabricator/diff/14796, phabricator/diff/14797, phabricator/diff/14798, phabricator/diff/14799, phabricator/diff/14800, phabricator/diff/14801, phabricator/diff/14802, phabricator/diff/14803, phabricator/diff/14810, phabricator/diff/14811, phabricator/diff/14812, phabricator/diff/14813, phabricator/diff/14814, phabricator/diff/14815, phabricator/diff/14816, phabricator/diff/14817, phabricator/diff/14818, phabricator/diff/14819, phabricator/diff/14820, phabricator/diff/14821, phabricator/diff/14822, phabricator/diff/14823, phabricator/diff/14824, phabricator/diff/14825, phabricator/diff/14826, phabricator/diff/14827, phabricator/diff/14828, phabricator/diff/14829, phabricator/diff/14834, phabricator/diff/14835, phabricator/diff/14836, phabricator/diff/14837, phabricator/diff/14842, phabricator/diff/14843, phabricator/diff/14844, phabricator/diff/14845, phabricator/diff/14846, phabricator/diff/14847, phabricator/diff/14849, phabricator/diff/14850, phabricator/diff/14852, phabricator/diff/14853, phabricator/diff/14854, phabricator/diff/14855, phabricator/diff/14856, phabricator/diff/14857, phabricator/diff/14859, phabricator/diff/14860, phabricator/diff/14861, phabricator/diff/14862, phabricator/diff/14863, phabricator/diff/14864, phabricator/diff/14865, phabricator/diff/14866, phabricator/diff/14869, phabricator/diff/14870, phabricator/diff/14872, phabricator/diff/14874, phabricator/diff/14875, phabricator/diff/14876, phabricator/diff/14877, phabricator/diff/14879, phabricator/diff/14882, phabricator/diff/14883, phabricator/diff/14884, phabricator/diff/14885, phabricator/diff/14886, phabricator/diff/14887, phabricator/diff/14888, phabricator/diff/14889, phabricator/diff/14890, phabricator/diff/14891, phabricator/diff/14892, phabricator/diff/14893, phabricator/diff/14894, phabricator/diff/14895, phabricator/diff/14896, phabricator/diff/14898, phabricator/diff/14899, phabricator/diff/14900, phabricator/diff/14901, phabricator/diff/14902, phabricator/diff/14903, phabricator/diff/14904, phabricator/diff/14905, phabricator/diff/14906, phabricator/diff/14907, phabricator/diff/14908, phabricator/diff/14909, phabricator/diff/14910, phabricator/diff/14919, phabricator/diff/14920, phabricator/diff/14921, phabricator/diff/14922, phabricator/diff/14923, phabricator/diff/14924, phabricator/diff/14925, phabricator/diff/14926, phabricator/diff/14927, phabricator/diff/14928, phabricator/diff/14929, phabricator/diff/14930, phabricator/diff/14931, phabricator/diff/14932, phabricator/diff/14933, phabricator/diff/14934, phabricator/diff/14935, phabricator/diff/14936, phabricator/diff/14937, phabricator/diff/14942, phabricator/diff/14943, phabricator/diff/14944, phabricator/diff/14946, phabricator/diff/14948, phabricator/diff/14949, phabricator/diff/14950, phabricator/diff/14951, phabricator/diff/14952, phabricator/diff/14953, phabricator/diff/14956, phabricator/diff/14958, phabricator/diff/14959, phabricator/diff/14960, phabricator/diff/14961, phabricator/diff/14962, phabricator/diff/14968, phabricator/diff/14969, phabricator/diff/14970, phabricator/diff/14971, phabricator/diff/14972, phabricator/diff/14973, phabricator/diff/14974, phabricator/diff/14975, phabricator/diff/14976, phabricator/diff/14977, phabricator/diff/14978, phabricator/diff/14979, phabricator/diff/14980, phabricator/diff/14981, phabricator/diff/14983, phabricator/diff/14984, phabricator/diff/14985, phabricator/diff/14986, phabricator/diff/14987, phabricator/diff/14988, phabricator/diff/14989, phabricator/diff/14990, phabricator/diff/14991, phabricator/diff/14992, phabricator/diff/14993, phabricator/diff/14994, phabricator/diff/14995, phabricator/diff/14996, phabricator/diff/14997, phabricator/diff/14998, phabricator/diff/14999, phabricator/diff/15000, phabricator/diff/15001, phabricator/diff/15002, phabricator/diff/15004, phabricator/diff/15005, phabricator/diff/15027, phabricator/diff/15029, phabricator/diff/15030, phabricator/diff/15031, phabricator/diff/15032, phabricator/diff/15033, phabricator/diff/15034, phabricator/diff/15035, phabricator/diff/15036, phabricator/diff/15037, phabricator/diff/15038, phabricator/diff/15039, phabricator/diff/15042, phabricator/diff/15043, phabricator/diff/15045, phabricator/diff/15046, phabricator/diff/15047, phabricator/diff/15049, phabricator/diff/15050, phabricator/diff/15051, phabricator/diff/15052, phabricator/diff/15053, phabricator/diff/15055, phabricator/diff/15056, phabricator/diff/15057, phabricator/diff/15058, phabricator/diff/15060, phabricator/diff/15061, phabricator/diff/15063, phabricator/diff/15064, phabricator/diff/15065, phabricator/diff/15066, phabricator/diff/15067, phabricator/diff/15068, phabricator/diff/15069, phabricator/diff/15070, phabricator/diff/15071, phabricator/diff/15074, phabricator/diff/15075, phabricator/diff/15076, phabricator/diff/15077, phabricator/diff/15078, phabricator/diff/15079, phabricator/diff/15080, phabricator/diff/15082, phabricator/diff/15083, phabricator/diff/15084, phabricator/diff/15086, phabricator/diff/15087, phabricator/diff/15088, phabricator/diff/15090, phabricator/diff/15091, phabricator/diff/15092, phabricator/diff/15093, phabricator/diff/15094, phabricator/diff/15095, phabricator/diff/15096, phabricator/diff/15097, phabricator/diff/15098, phabricator/diff/15099, phabricator/diff/15114, phabricator/diff/15115, phabricator/diff/15116, phabricator/diff/15117, phabricator/diff/15118, phabricator/diff/15119, phabricator/diff/15120, phabricator/diff/15121, phabricator/diff/15122, phabricator/diff/15123, phabricator/diff/15124, phabricator/diff/15125, phabricator/diff/15126, phabricator/diff/15127, phabricator/diff/15128, phabricator/diff/15129, phabricator/diff/15133, phabricator/diff/15134, phabricator/diff/15135, phabricator/diff/15136, phabricator/diff/15137, phabricator/diff/15138, phabricator/diff/15139, phabricator/diff/15140, phabricator/diff/15141, phabricator/diff/15144, phabricator/diff/15148, phabricator/diff/15149, phabricator/diff/15153, phabricator/diff/15154, phabricator/diff/15155, phabricator/diff/15156, phabricator/diff/15157, phabricator/diff/15158, phabricator/diff/15159, phabricator/diff/15160, phabricator/diff/15161, phabricator/diff/15162, phabricator/diff/15163, phabricator/diff/15164, phabricator/diff/15165, phabricator/diff/15166, phabricator/diff/15167, phabricator/diff/15169, phabricator/diff/15170, phabricator/diff/15172, phabricator/diff/15173, phabricator/diff/15174, phabricator/diff/15175, phabricator/diff/15176, phabricator/diff/15185, phabricator/diff/15186, phabricator/diff/15187, phabricator/diff/15188, phabricator/diff/15189, phabricator/diff/15190, phabricator/diff/15191, phabricator/diff/15193, phabricator/diff/15194, phabricator/diff/15195, phabricator/diff/15197, phabricator/diff/15198, phabricator/diff/15199, phabricator/diff/15200, phabricator/diff/15201, phabricator/diff/15202, phabricator/diff/15203, phabricator/diff/15204, phabricator/diff/15205, phabricator/diff/15206, phabricator/diff/15207, phabricator/diff/15209, phabricator/diff/15210, phabricator/diff/15211, phabricator/diff/15213, phabricator/diff/15214, phabricator/diff/15215, phabricator/diff/15216, phabricator/diff/15217, phabricator/diff/15218, phabricator/diff/15219, phabricator/diff/15221, phabricator/diff/15222, phabricator/diff/15223, phabricator/diff/15224, phabricator/diff/15225, phabricator/diff/15226, phabricator/diff/15228, phabricator/diff/15229, phabricator/diff/15230, phabricator/diff/15243, phabricator/diff/15245, phabricator/diff/15246, phabricator/diff/15247, phabricator/diff/15248, phabricator/diff/15249, phabricator/diff/15250, phabricator/diff/15251, phabricator/diff/15252, phabricator/diff/15253, phabricator/diff/15254, phabricator/diff/15256, phabricator/diff/15257, phabricator/diff/15259, phabricator/diff/15265, phabricator/diff/15266, phabricator/diff/15267, phabricator/diff/15268, phabricator/diff/15269, phabricator/diff/15270, phabricator/diff/15271, phabricator/diff/15272, phabricator/diff/15273, phabricator/diff/15274, phabricator/diff/15275, phabricator/diff/15276, phabricator/diff/15277, phabricator/diff/15278, phabricator/diff/15279, phabricator/diff/15280, phabricator/diff/15282, phabricator/diff/15283, phabricator/diff/15285, phabricator/diff/15286, phabricator/diff/15287, phabricator/diff/15288, phabricator/diff/15291, phabricator/diff/15292, phabricator/diff/15293, phabricator/diff/15302, phabricator/diff/15303, phabricator/diff/15304, phabricator/diff/15305, phabricator/diff/15306, phabricator/diff/15307, phabricator/diff/15308, phabricator/diff/15309, phabricator/diff/15310, phabricator/diff/15311, phabricator/diff/15312, phabricator/diff/15313, phabricator/diff/15314, phabricator/diff/15315, phabricator/diff/15317, phabricator/diff/15318, phabricator/diff/15319, phabricator/diff/15320, phabricator/diff/15321, phabricator/diff/15322, phabricator/diff/15323, phabricator/diff/15324, phabricator/diff/15325, phabricator/diff/15326, phabricator/diff/15327, phabricator/diff/15328, phabricator/diff/15329, phabricator/diff/15330, phabricator/diff/15331, phabricator/diff/15332, phabricator/diff/15339, phabricator/diff/15342, phabricator/diff/15343, phabricator/diff/15344, phabricator/diff/15345, phabricator/diff/15347, phabricator/diff/15348, phabricator/diff/15349, phabricator/diff/15350, phabricator/diff/15351, phabricator/diff/15352, phabricator/diff/15353, phabricator/diff/15354, phabricator/diff/15355, phabricator/diff/15356, phabricator/diff/15357, phabricator/diff/15359, phabricator/diff/15360, phabricator/diff/15361, phabricator/diff/15362, phabricator/diff/15363, phabricator/diff/15364, phabricator/diff/15365, phabricator/diff/15366, phabricator/diff/15367, phabricator/diff/15377, phabricator/diff/15378, phabricator/diff/15379, phabricator/diff/15380, phabricator/diff/15381, phabricator/diff/15382, phabricator/diff/15385, phabricator/diff/15386, phabricator/diff/15387, phabricator/diff/15389, phabricator/diff/15390, phabricator/diff/15391, phabricator/diff/15392, phabricator/diff/15393, phabricator/diff/15394, phabricator/diff/15395, phabricator/diff/15396, phabricator/diff/15397, phabricator/diff/15398, phabricator/diff/15399, phabricator/diff/15400, phabricator/diff/15401, phabricator/diff/15404, phabricator/diff/15405, phabricator/diff/15406, phabricator/diff/15407, phabricator/diff/15408, phabricator/diff/15409, phabricator/diff/15410, phabricator/diff/15411, phabricator/diff/15413, phabricator/diff/15414, phabricator/diff/15415, phabricator/diff/15416, phabricator/diff/15417, phabricator/diff/15418, phabricator/diff/15419, phabricator/diff/15421, phabricator/diff/15422, phabricator/diff/15423, phabricator/diff/15425, phabricator/diff/15427, phabricator/diff/15429, phabricator/diff/15430, phabricator/diff/15431, phabricator/diff/15432, phabricator/diff/15433, phabricator/diff/15434, phabricator/diff/15435, phabricator/diff/15437, phabricator/diff/15438, phabricator/diff/15440, phabricator/diff/15441, phabricator/diff/15442, phabricator/diff/15443, phabricator/diff/15444, phabricator/diff/15445, phabricator/diff/15446, phabricator/diff/15449, phabricator/diff/15450, phabricator/diff/15451, phabricator/diff/15452, phabricator/diff/15453, phabricator/diff/15454, phabricator/diff/15455, phabricator/diff/15456, phabricator/diff/15457, phabricator/diff/15458, phabricator/diff/15460, phabricator/diff/15463, phabricator/diff/15465, phabricator/diff/15467, phabricator/diff/15468, phabricator/diff/15470, phabricator/diff/15471, phabricator/diff/15472, phabricator/diff/15474, phabricator/diff/15475, phabricator/diff/15476, phabricator/diff/15477, phabricator/diff/15478, phabricator/diff/15479, phabricator/diff/15496, phabricator/diff/15497, phabricator/diff/15498, phabricator/diff/15499, phabricator/diff/15500, phabricator/diff/15501, phabricator/diff/15503, phabricator/diff/15504, phabricator/diff/15505, phabricator/diff/15506, phabricator/diff/15507, phabricator/diff/15508, phabricator/diff/15509, phabricator/diff/15510, phabricator/diff/15511, phabricator/diff/15512, phabricator/diff/15513, phabricator/diff/15514, phabricator/diff/15515, phabricator/diff/15519, phabricator/diff/15521, phabricator/diff/15522, phabricator/diff/15523, phabricator/diff/15524, phabricator/diff/15526, phabricator/diff/15527, phabricator/diff/15528, phabricator/diff/15529, phabricator/diff/15530, phabricator/diff/15531, phabricator/diff/15532, phabricator/diff/15533, phabricator/diff/15534, phabricator/diff/15535, phabricator/diff/15536, phabricator/diff/15537, phabricator/diff/15538, phabricator/diff/15539, phabricator/diff/15540, phabricator/diff/15541, phabricator/diff/15542, phabricator/diff/15543, phabricator/diff/15544, phabricator/diff/15545, phabricator/diff/15546, phabricator/diff/15547, phabricator/diff/15548, phabricator/diff/15549, phabricator/diff/15550, phabricator/diff/15551, phabricator/diff/15552, phabricator/diff/15554, phabricator/diff/15555, phabricator/diff/15556, phabricator/diff/15561, phabricator/diff/15566, phabricator/diff/15567, phabricator/diff/15568, phabricator/diff/15569, phabricator/diff/15570, phabricator/diff/15571, phabricator/diff/15572, phabricator/diff/15573, phabricator/diff/15574, phabricator/diff/15575, phabricator/diff/15577, phabricator/diff/15578, phabricator/diff/15579, phabricator/diff/15580, phabricator/diff/15582, phabricator/diff/15583, phabricator/diff/15584, phabricator/diff/15585, phabricator/diff/15586, phabricator/diff/15587, phabricator/diff/15588, phabricator/diff/15589, phabricator/diff/15590, phabricator/diff/15591, phabricator/diff/15593, phabricator/diff/15595, phabricator/diff/15596, phabricator/diff/15599, phabricator/diff/15602, phabricator/diff/15609, phabricator/diff/15623, phabricator/diff/15624, phabricator/diff/15625, phabricator/diff/15626, phabricator/diff/15627, phabricator/diff/15628, phabricator/diff/15629, phabricator/diff/15630, phabricator/diff/15631, phabricator/diff/15633, phabricator/diff/15634, phabricator/diff/15636, phabricator/diff/15637, phabricator/diff/15638, phabricator/diff/15639, phabricator/diff/15640, phabricator/diff/15641, phabricator/diff/15642, phabricator/diff/15643, phabricator/diff/15644, phabricator/diff/15646, phabricator/diff/15647, phabricator/diff/15648, phabricator/diff/15649, phabricator/diff/15650, phabricator/diff/15651, phabricator/diff/15652, phabricator/diff/15653, phabricator/diff/15654, phabricator/diff/15655, phabricator/diff/15656, phabricator/diff/15657, phabricator/diff/15659, phabricator/diff/15660, phabricator/diff/15661, phabricator/diff/15663, phabricator/diff/15664, phabricator/diff/15667, phabricator/diff/15669, phabricator/diff/15671, phabricator/diff/15673, phabricator/diff/15674, phabricator/diff/15675, phabricator/diff/15676, phabricator/diff/15677, phabricator/diff/15678, phabricator/diff/15679, phabricator/diff/15680, phabricator/diff/15681, phabricator/diff/15682, phabricator/diff/15683, phabricator/diff/15684, phabricator/diff/15685, phabricator/diff/15686, phabricator/diff/15687, phabricator/diff/15688, phabricator/diff/15689, phabricator/diff/15690, phabricator/diff/15691, phabricator/diff/15692, phabricator/diff/15693, phabricator/diff/15696, phabricator/diff/15698, phabricator/diff/15699, phabricator/diff/15700, phabricator/diff/15701, phabricator/diff/15702, phabricator/diff/15704, phabricator/diff/15705, phabricator/diff/15708, phabricator/diff/15712, phabricator/diff/15713, phabricator/diff/15714, phabricator/diff/15715, phabricator/diff/15717, phabricator/diff/15718, phabricator/diff/15719, phabricator/diff/15720, phabricator/diff/15721, phabricator/diff/15723, phabricator/diff/15724, phabricator/diff/15725, phabricator/diff/15726, phabricator/diff/15727, phabricator/diff/15728, phabricator/diff/15729, phabricator/diff/15730, phabricator/diff/15733, phabricator/diff/15734, phabricator/diff/15735, phabricator/diff/15737, phabricator/diff/15739, phabricator/diff/15740, phabricator/diff/15741, phabricator/diff/15743, phabricator/diff/15744, phabricator/diff/15745, phabricator/diff/15746, phabricator/diff/15748, phabricator/diff/15749, phabricator/diff/15751, phabricator/diff/15752, phabricator/diff/15753, phabricator/diff/15754, phabricator/diff/15755, phabricator/diff/15756, phabricator/diff/15757, phabricator/diff/15758, phabricator/diff/15759, phabricator/diff/15760, phabricator/diff/15761, phabricator/diff/15762, phabricator/diff/15763, phabricator/diff/15764, phabricator/diff/15783, phabricator/diff/15785, phabricator/diff/15787, phabricator/diff/15794, phabricator/diff/15795, phabricator/diff/15796, phabricator/diff/15797, phabricator/diff/15798, phabricator/diff/15799, phabricator/diff/15800, phabricator/diff/15801, phabricator/diff/15802, phabricator/diff/15803, phabricator/diff/15804, phabricator/diff/15807, phabricator/diff/15808, phabricator/diff/15809, phabricator/diff/15810, phabricator/diff/15811, phabricator/diff/15812, phabricator/diff/15813, phabricator/diff/15814, phabricator/diff/15815, phabricator/diff/15817, phabricator/diff/15818, phabricator/diff/15822, phabricator/diff/15823, phabricator/diff/15824, phabricator/diff/15825, phabricator/diff/15826, phabricator/diff/15827, phabricator/diff/15828, phabricator/diff/15829, phabricator/diff/15830, phabricator/diff/15839, phabricator/diff/15840, phabricator/diff/15841, phabricator/diff/15842, phabricator/diff/15849, phabricator/diff/15853, phabricator/diff/15854, phabricator/diff/15855, phabricator/diff/15856, phabricator/diff/15857, phabricator/diff/15858, phabricator/diff/15859, phabricator/diff/15860, phabricator/diff/15862, phabricator/diff/15864, phabricator/diff/15865, phabricator/diff/15866, phabricator/diff/15867, phabricator/diff/15870, phabricator/diff/15871, phabricator/diff/15872, phabricator/diff/15873, phabricator/diff/15874, phabricator/diff/15875, phabricator/diff/15876, phabricator/diff/15877, phabricator/diff/15878, phabricator/diff/15879, phabricator/diff/15880, phabricator/diff/15882, phabricator/diff/15883, phabricator/diff/15884, phabricator/diff/15885, phabricator/diff/15886, phabricator/diff/15887, phabricator/diff/15888, phabricator/diff/15889, phabricator/diff/15890, phabricator/diff/15892, phabricator/diff/15893, phabricator/diff/15894, phabricator/diff/15895, phabricator/diff/15896, phabricator/diff/15897, phabricator/diff/15899, phabricator/diff/15901, phabricator/diff/15902, phabricator/diff/15904, phabricator/diff/15905, phabricator/diff/15906, phabricator/diff/15907, phabricator/diff/15908, phabricator/diff/15909, phabricator/diff/15910, phabricator/diff/15911, phabricator/diff/15912, phabricator/diff/15913, phabricator/diff/15914, phabricator/diff/15915, phabricator/diff/15916, phabricator/diff/15917, phabricator/diff/15918, phabricator/diff/15919, phabricator/diff/15920, phabricator/diff/15921, phabricator/diff/15922, phabricator/diff/15923, phabricator/diff/15924, phabricator/diff/15925, phabricator/diff/15926, phabricator/diff/15927, phabricator/diff/15928, phabricator/diff/15930, phabricator/diff/15934, phabricator/diff/15935, phabricator/diff/15936, phabricator/diff/15937, phabricator/diff/15938, phabricator/diff/15939, phabricator/diff/15940, phabricator/diff/15941, phabricator/diff/15942, phabricator/diff/15943, phabricator/diff/15944, phabricator/diff/15945, phabricator/diff/15946, phabricator/diff/15948, phabricator/diff/15950, phabricator/diff/15955, phabricator/diff/15956, phabricator/diff/15957, phabricator/diff/15958, phabricator/diff/15960, phabricator/diff/15961, phabricator/diff/15962, phabricator/diff/15963, phabricator/diff/15964, phabricator/diff/15965, phabricator/diff/15967, phabricator/diff/15968, phabricator/diff/15970, phabricator/diff/15971, phabricator/diff/15972, phabricator/diff/15973, phabricator/diff/15974, phabricator/diff/15975, phabricator/diff/15976, phabricator/diff/15977, phabricator/diff/15978, phabricator/diff/15979, phabricator/diff/15981, phabricator/diff/15982, phabricator/diff/15983, phabricator/diff/15984, phabricator/diff/15985, phabricator/diff/15987, phabricator/diff/15988, phabricator/diff/15996, phabricator/diff/15997, phabricator/diff/15998, phabricator/diff/16000, phabricator/diff/16001, phabricator/diff/16002, phabricator/diff/16003, phabricator/diff/16004, phabricator/diff/16005, phabricator/diff/16007, phabricator/diff/16008, phabricator/diff/16010, phabricator/diff/16035, phabricator/diff/16036, phabricator/diff/16037, phabricator/diff/16039, phabricator/diff/16040, phabricator/diff/16041, phabricator/diff/16042, phabricator/diff/16043, phabricator/diff/16044, phabricator/diff/16045, phabricator/diff/16046, phabricator/diff/16047, phabricator/diff/16048, phabricator/diff/16049, phabricator/diff/16050, phabricator/diff/16051, phabricator/diff/16052, phabricator/diff/16053, phabricator/diff/16055, phabricator/diff/16056, phabricator/diff/16057, phabricator/diff/16058, phabricator/diff/16059, phabricator/diff/16060, phabricator/diff/16061, phabricator/diff/16062, phabricator/diff/16064, phabricator/diff/16071, phabricator/diff/16072, phabricator/diff/16073, phabricator/diff/16074, phabricator/diff/16076, phabricator/diff/16079, phabricator/diff/16080, phabricator/diff/16085, phabricator/diff/16086, phabricator/diff/16087, phabricator/diff/16090, phabricator/diff/16091, phabricator/diff/16092, phabricator/diff/16093, phabricator/diff/16094, phabricator/diff/16095, phabricator/diff/16100, phabricator/diff/16101, phabricator/diff/16102, phabricator/diff/16103, phabricator/diff/16104, phabricator/diff/16105, phabricator/diff/16110, phabricator/diff/16111, phabricator/diff/16112, phabricator/diff/16115, phabricator/diff/16116, phabricator/diff/16119, phabricator/diff/16120, phabricator/diff/16121, phabricator/diff/16125, phabricator/diff/16126, phabricator/diff/16127, phabricator/diff/16128, phabricator/diff/16129, phabricator/diff/16130, phabricator/diff/16131, phabricator/diff/16132, phabricator/diff/16133, phabricator/diff/16134, phabricator/diff/16135, phabricator/diff/16136, phabricator/diff/16137, phabricator/diff/16138, phabricator/diff/16143, phabricator/diff/16144, phabricator/diff/16145, phabricator/diff/16146, phabricator/diff/16147, phabricator/diff/16148, phabricator/diff/16149, phabricator/diff/16150, phabricator/diff/16151, phabricator/diff/16153, phabricator/diff/16154, phabricator/diff/16155, phabricator/diff/16157, phabricator/diff/16158, phabricator/diff/16160, phabricator/diff/16161, phabricator/diff/16162, phabricator/diff/16163, phabricator/diff/16164, phabricator/diff/16165, phabricator/diff/16166, phabricator/diff/16167, phabricator/diff/16168, phabricator/diff/16172, phabricator/diff/16173, phabricator/diff/16174, phabricator/diff/16175, phabricator/diff/16176, phabricator/diff/16177, phabricator/diff/16179, phabricator/diff/16180, phabricator/diff/16181, phabricator/diff/16182, phabricator/diff/16183, phabricator/diff/16184, phabricator/diff/16185, phabricator/diff/16186, phabricator/diff/16187, phabricator/diff/16188, phabricator/diff/16189, phabricator/diff/16190, phabricator/diff/16191, phabricator/diff/16192, phabricator/diff/16193, phabricator/diff/16194, phabricator/diff/16195, phabricator/diff/16196, phabricator/diff/16197, phabricator/diff/16198, phabricator/diff/16199, phabricator/diff/16200, phabricator/diff/16201, phabricator/diff/16202, phabricator/diff/16203, phabricator/diff/16204, phabricator/diff/16205, phabricator/diff/16206, phabricator/diff/16207, phabricator/diff/16208, phabricator/diff/16209, phabricator/diff/16211, phabricator/diff/16212, phabricator/diff/16213, phabricator/diff/16214, phabricator/diff/16215, phabricator/diff/16216, phabricator/diff/16217, phabricator/diff/16218, phabricator/diff/16220, phabricator/diff/16221, phabricator/diff/16222, phabricator/diff/16223, phabricator/diff/16224, phabricator/diff/16225, phabricator/diff/16226, phabricator/diff/16227, phabricator/diff/16228, phabricator/diff/16229, phabricator/diff/16230, phabricator/diff/16231, phabricator/diff/16232, phabricator/diff/16233, phabricator/diff/16234, phabricator/diff/16235, phabricator/diff/16237, phabricator/diff/16238, phabricator/diff/16239, phabricator/diff/16240, phabricator/diff/16241, phabricator/diff/16242, phabricator/diff/16243, phabricator/diff/16244, phabricator/diff/16246, phabricator/diff/16247, phabricator/diff/16249, phabricator/diff/16250, phabricator/diff/16251, phabricator/diff/16252, phabricator/diff/16253, phabricator/diff/16254, phabricator/diff/16255, phabricator/diff/16256, phabricator/diff/16259, phabricator/diff/16260, phabricator/diff/16261, phabricator/diff/16264, phabricator/diff/16265, phabricator/diff/16266, phabricator/diff/16267, phabricator/diff/16268, phabricator/diff/16269, phabricator/diff/16271, phabricator/diff/16272, phabricator/diff/16273, phabricator/diff/16275, phabricator/diff/16276, phabricator/diff/16277, phabricator/diff/16278, phabricator/diff/16279, phabricator/diff/16281, phabricator/diff/16282, phabricator/diff/16283, phabricator/diff/16284, phabricator/diff/16293, phabricator/diff/16294, phabricator/diff/16295, phabricator/diff/16296, phabricator/diff/16297, phabricator/diff/16298, phabricator/diff/16299, phabricator/diff/16300, phabricator/diff/16301, phabricator/diff/16302, phabricator/diff/16303, phabricator/diff/16304, phabricator/diff/16305, phabricator/diff/16306, phabricator/diff/16307, phabricator/diff/16308, phabricator/diff/16309, phabricator/diff/16310, phabricator/diff/16311, phabricator/diff/16312, phabricator/diff/16314, phabricator/diff/16315, phabricator/diff/16317, phabricator/diff/16324, phabricator/diff/16325, phabricator/diff/16326, phabricator/diff/16330, phabricator/diff/16332, phabricator/diff/16333, phabricator/diff/16334, phabricator/diff/16335, phabricator/diff/16336, phabricator/diff/16337, phabricator/diff/16340, phabricator/diff/16341, phabricator/diff/16342, phabricator/diff/16343, phabricator/diff/16344, phabricator/diff/16345, phabricator/diff/16346, phabricator/diff/16347, phabricator/diff/16352, phabricator/diff/16353, phabricator/diff/16355, phabricator/diff/16356, phabricator/diff/16358, phabricator/diff/16359, phabricator/diff/16360, phabricator/diff/16361, phabricator/diff/16362, phabricator/diff/16363, phabricator/diff/16364, phabricator/diff/16365, phabricator/diff/16366, phabricator/diff/16368, phabricator/diff/16369, phabricator/diff/16370, phabricator/diff/16371, phabricator/diff/16372, phabricator/diff/16373, phabricator/diff/16374, phabricator/diff/16377, phabricator/diff/16378, phabricator/diff/16380, phabricator/diff/16381, phabricator/diff/16382, phabricator/diff/16383, phabricator/diff/16384, phabricator/diff/16386, phabricator/diff/16404, phabricator/diff/16405, phabricator/diff/16406, phabricator/diff/16407, phabricator/diff/16408, phabricator/diff/16411, phabricator/diff/16413, phabricator/diff/16414, phabricator/diff/16415, phabricator/diff/16416, phabricator/diff/16417, phabricator/diff/16418, phabricator/diff/16419, phabricator/diff/16420, phabricator/diff/16421, phabricator/diff/16422, phabricator/diff/16423, phabricator/diff/16427, phabricator/diff/16428, phabricator/diff/16429, phabricator/diff/16430, phabricator/diff/16432, phabricator/diff/16434, phabricator/diff/16435, phabricator/diff/16437, phabricator/diff/16438, phabricator/diff/16439, phabricator/diff/16445, phabricator/diff/16446, phabricator/diff/16449, phabricator/diff/16450, phabricator/diff/16455, phabricator/diff/16456, phabricator/diff/16457, phabricator/diff/16458, phabricator/diff/16459, phabricator/diff/16460, phabricator/diff/16461, phabricator/diff/16463, phabricator/diff/16464, phabricator/diff/16465, phabricator/diff/16466, phabricator/diff/16467, phabricator/diff/16468, phabricator/diff/16469, phabricator/diff/16472, phabricator/diff/16473, phabricator/diff/16477, phabricator/diff/16479, phabricator/diff/16480, phabricator/diff/16481, phabricator/diff/16482, phabricator/diff/16483, phabricator/diff/16484, phabricator/diff/16485, phabricator/diff/16491, phabricator/diff/16492, phabricator/diff/16495, phabricator/diff/16496, phabricator/diff/16497, phabricator/diff/16498, phabricator/diff/16499, phabricator/diff/16500, phabricator/diff/16501, phabricator/diff/16502, phabricator/diff/16504, phabricator/diff/16506, phabricator/diff/16507, phabricator/diff/16508, phabricator/diff/16509, phabricator/diff/16510, phabricator/diff/16511, phabricator/diff/16512, phabricator/diff/16514, phabricator/diff/16515, phabricator/diff/16516, phabricator/diff/16518, phabricator/diff/16519, phabricator/diff/16520, phabricator/diff/16521, phabricator/diff/16522, phabricator/diff/16526, phabricator/diff/16528, phabricator/diff/16529, phabricator/diff/16530, phabricator/diff/16531, phabricator/diff/16532, phabricator/diff/16533, phabricator/diff/16534, phabricator/diff/16535, phabricator/diff/16536, phabricator/diff/16538, phabricator/diff/16539, phabricator/diff/16540, phabricator/diff/16541, phabricator/diff/16542, phabricator/diff/16543, phabricator/diff/16544, phabricator/diff/16545, phabricator/diff/16546, phabricator/diff/16547, phabricator/diff/16548, phabricator/diff/16549, phabricator/diff/16551, phabricator/diff/16552, phabricator/diff/16553, phabricator/diff/16554, phabricator/diff/16555, phabricator/diff/16556, phabricator/diff/16557, phabricator/diff/16558, phabricator/diff/16560, phabricator/diff/16561, phabricator/diff/16563, phabricator/diff/16564, phabricator/diff/16565, phabricator/diff/16566, phabricator/diff/16567, phabricator/diff/16568, phabricator/diff/16569, phabricator/diff/16570, phabricator/diff/16571, phabricator/diff/16572, phabricator/diff/16574, phabricator/diff/16575, phabricator/diff/16576, phabricator/diff/16577, phabricator/diff/16580, phabricator/diff/16581, phabricator/diff/16582, phabricator/diff/16583, phabricator/diff/16591, phabricator/diff/16592, phabricator/diff/16594, phabricator/diff/16595, phabricator/diff/16596, phabricator/diff/16597, phabricator/diff/16598, phabricator/diff/16606, phabricator/diff/16607, phabricator/diff/16608, phabricator/diff/16609, phabricator/diff/16610, phabricator/diff/16611, phabricator/diff/16612, phabricator/diff/16613, phabricator/diff/16614, phabricator/diff/16615, phabricator/diff/16616, phabricator/diff/16617, phabricator/diff/16618, phabricator/diff/16619, phabricator/diff/16620, phabricator/diff/16621, phabricator/diff/16622, phabricator/diff/16623, phabricator/diff/16624, phabricator/diff/16625, phabricator/diff/16626, phabricator/diff/16627, phabricator/diff/16628, phabricator/diff/16630, phabricator/diff/16631, phabricator/diff/16632, phabricator/diff/16633, phabricator/diff/16634, phabricator/diff/16635, phabricator/diff/16636, phabricator/diff/16637, phabricator/diff/16638, phabricator/diff/16639, phabricator/diff/16640, phabricator/diff/16641, phabricator/diff/16642, phabricator/diff/16643, phabricator/diff/16644, phabricator/diff/16651, phabricator/diff/16653, phabricator/diff/16654, phabricator/diff/16655, phabricator/diff/16656, phabricator/diff/16669, phabricator/diff/16670, phabricator/diff/16671, phabricator/diff/16672, phabricator/diff/16675, phabricator/diff/16677, phabricator/diff/16678, phabricator/diff/16679, phabricator/diff/16680, phabricator/diff/16681, phabricator/diff/16682, phabricator/diff/16683, phabricator/diff/16684, phabricator/diff/16685, phabricator/diff/16686, phabricator/diff/16687, phabricator/diff/16688, phabricator/diff/16689, phabricator/diff/16690, phabricator/diff/16692, phabricator/diff/16693, phabricator/diff/16694, phabricator/diff/16695, phabricator/diff/16696, phabricator/diff/16697, phabricator/diff/16698, phabricator/diff/16699, phabricator/diff/16702, phabricator/diff/16703, phabricator/diff/16705, phabricator/diff/16706, phabricator/diff/16711, phabricator/diff/16713, phabricator/diff/16714, phabricator/diff/16715, phabricator/diff/16716, phabricator/diff/16717, phabricator/diff/16718, phabricator/diff/16720, phabricator/diff/16721, phabricator/diff/16724, phabricator/diff/16725, phabricator/diff/16726, phabricator/diff/16727, phabricator/diff/16728, phabricator/diff/16729, phabricator/diff/16730, phabricator/diff/16731, phabricator/diff/16732, phabricator/diff/16733, phabricator/diff/16734, phabricator/diff/16735, phabricator/diff/16736, phabricator/diff/16737, phabricator/diff/16738, phabricator/diff/16739, phabricator/diff/16740, phabricator/diff/16741, phabricator/diff/16742, phabricator/diff/16743, phabricator/diff/16744, phabricator/diff/16746, phabricator/diff/16748, phabricator/diff/16749, phabricator/diff/16750, phabricator/diff/16751, phabricator/diff/16752, phabricator/diff/16753, phabricator/diff/16755, phabricator/diff/16756, phabricator/diff/16757, phabricator/diff/16758, phabricator/diff/16759, phabricator/diff/16760, phabricator/diff/16761, phabricator/diff/16762, phabricator/diff/16763, phabricator/diff/16764, phabricator/diff/16765, phabricator/diff/16786, phabricator/diff/16787, phabricator/diff/16788, phabricator/diff/16789, phabricator/diff/16790, phabricator/diff/16792, phabricator/diff/16793, phabricator/diff/16794, phabricator/diff/16795, phabricator/diff/16796, phabricator/diff/16797, phabricator/diff/16798, phabricator/diff/16799, phabricator/diff/16800, phabricator/diff/16801, phabricator/diff/16802, phabricator/diff/16803, phabricator/diff/16804, phabricator/diff/16805, phabricator/diff/16806, phabricator/diff/16809, phabricator/diff/16810, phabricator/diff/16813, phabricator/diff/16814, phabricator/diff/16815, phabricator/diff/16817, phabricator/diff/16819, phabricator/diff/16820, phabricator/diff/16821, phabricator/diff/16822, phabricator/diff/16823, phabricator/diff/16824, phabricator/diff/16825, phabricator/diff/16827, phabricator/diff/16828, phabricator/diff/16829, phabricator/diff/16830, phabricator/diff/16831, phabricator/diff/16832, phabricator/diff/16833, phabricator/diff/16834, phabricator/diff/16835, phabricator/diff/16836, phabricator/diff/16838, phabricator/diff/16839, phabricator/diff/16841, phabricator/diff/16842, phabricator/diff/16843, phabricator/diff/16844, phabricator/diff/16845, phabricator/diff/16846, phabricator/diff/16847, phabricator/diff/16848, phabricator/diff/16849, phabricator/diff/16850, phabricator/diff/16851, phabricator/diff/16852, phabricator/diff/16853, phabricator/diff/16854, phabricator/diff/16855, phabricator/diff/16856, phabricator/diff/16857, phabricator/diff/16858, phabricator/diff/16859, phabricator/diff/16860, phabricator/diff/16861, phabricator/diff/16862, phabricator/diff/16863, phabricator/diff/16864, phabricator/diff/16865, phabricator/diff/16866, phabricator/diff/16867, phabricator/diff/16873, phabricator/diff/16874, phabricator/diff/16875, phabricator/diff/16876, phabricator/diff/16877, phabricator/diff/16878, phabricator/diff/16880, phabricator/diff/16881, phabricator/diff/16882, phabricator/diff/16883, phabricator/diff/16884, phabricator/diff/16885, phabricator/diff/16886, phabricator/diff/16887, phabricator/diff/16888, phabricator/diff/16889, phabricator/diff/16890, phabricator/diff/16891, phabricator/diff/16892, phabricator/diff/16893, phabricator/diff/16896, phabricator/diff/16898, phabricator/diff/16899, phabricator/diff/16900, phabricator/diff/16915, phabricator/diff/16918, phabricator/diff/16919, phabricator/diff/16920, phabricator/diff/16921, phabricator/diff/16922, phabricator/diff/16923, phabricator/diff/16924, phabricator/diff/16926, phabricator/diff/16927, phabricator/diff/16928, phabricator/diff/16929, phabricator/diff/16930, phabricator/diff/16931, phabricator/diff/16932, phabricator/diff/16933, phabricator/diff/16934, phabricator/diff/16935, phabricator/diff/16936, phabricator/diff/16937, phabricator/diff/16944, phabricator/diff/16945, phabricator/diff/16947, phabricator/diff/16948, phabricator/diff/16949, phabricator/diff/16950, phabricator/diff/16951, phabricator/diff/16952, phabricator/diff/16953, phabricator/diff/16954, phabricator/diff/16955, phabricator/diff/16956, phabricator/diff/16957, phabricator/diff/16963, phabricator/diff/16964, phabricator/diff/16971, phabricator/diff/16974, phabricator/diff/16975, phabricator/diff/16976, phabricator/diff/16977, phabricator/diff/16978, phabricator/diff/16979, phabricator/diff/16982, phabricator/diff/16989, phabricator/diff/16990, phabricator/diff/16991, phabricator/diff/16992, phabricator/diff/16993, phabricator/diff/16994, phabricator/diff/16995, phabricator/diff/16996, phabricator/diff/16997, phabricator/diff/16999, phabricator/diff/17000, phabricator/diff/17001, phabricator/diff/17002, phabricator/diff/17003, phabricator/diff/17004, phabricator/diff/17005, phabricator/diff/17006, phabricator/diff/17008, phabricator/diff/17009, phabricator/diff/17011, phabricator/diff/17012, phabricator/diff/17013, phabricator/diff/17014, phabricator/diff/17015, phabricator/diff/17016, phabricator/diff/17017, phabricator/diff/17018, phabricator/diff/17019, phabricator/diff/17023, phabricator/diff/17024, phabricator/diff/17025, phabricator/diff/17026, phabricator/diff/17027, phabricator/diff/17033, phabricator/diff/17034, phabricator/diff/17035, phabricator/diff/17036, phabricator/diff/17037, phabricator/diff/17038, phabricator/diff/17039, phabricator/diff/17040, phabricator/diff/17043, phabricator/diff/17044, phabricator/diff/17045, phabricator/diff/17046, phabricator/diff/17047, phabricator/diff/17048, phabricator/diff/17049, phabricator/diff/17050, phabricator/diff/17052, phabricator/diff/17053, phabricator/diff/17054, phabricator/diff/17055, phabricator/diff/17061, phabricator/diff/17062, phabricator/diff/17063, phabricator/diff/17064, phabricator/diff/17065, phabricator/diff/17066, phabricator/diff/17068, phabricator/diff/17069, phabricator/diff/17070, phabricator/diff/17071, phabricator/diff/17072, phabricator/diff/17073, phabricator/diff/17074, phabricator/diff/17075, phabricator/diff/17076, phabricator/diff/17077, phabricator/diff/17078, phabricator/diff/17079, phabricator/diff/17080, phabricator/diff/17081, phabricator/diff/17082, phabricator/diff/17083, phabricator/diff/17084, phabricator/diff/17086, phabricator/diff/17087, phabricator/diff/17088, phabricator/diff/17089, phabricator/diff/17090, phabricator/diff/17092, phabricator/diff/17093, phabricator/diff/17094, phabricator/diff/17095, phabricator/diff/17096, phabricator/diff/17097, phabricator/diff/17098, phabricator/diff/17099, phabricator/diff/17100, phabricator/diff/17101, phabricator/diff/17102, phabricator/diff/17103, phabricator/diff/17104, phabricator/diff/17106, phabricator/diff/17107, phabricator/diff/17109, phabricator/diff/17110, phabricator/diff/17111, phabricator/diff/17112, phabricator/diff/17114, phabricator/diff/17115, phabricator/diff/17117, phabricator/diff/17118, phabricator/diff/17119, phabricator/diff/17120, phabricator/diff/17121, phabricator/diff/17122, phabricator/diff/17123, phabricator/diff/17124, phabricator/diff/17126, phabricator/diff/17127, phabricator/diff/17128, phabricator/diff/17129, phabricator/diff/17130, phabricator/diff/17131, phabricator/diff/17132, phabricator/diff/17133, phabricator/diff/17134, phabricator/diff/17136, phabricator/diff/17137, phabricator/diff/17138, phabricator/diff/17139, phabricator/diff/17140, phabricator/diff/17141, phabricator/diff/17142, phabricator/diff/17143, phabricator/diff/17144, phabricator/diff/17145, phabricator/diff/17146, phabricator/diff/17148, phabricator/diff/17149, phabricator/diff/17150, phabricator/diff/17151, phabricator/diff/17152, phabricator/diff/17153, phabricator/diff/17154, phabricator/diff/17155, phabricator/diff/17156, phabricator/diff/17157, phabricator/diff/17158, phabricator/diff/17159, phabricator/diff/17160, phabricator/diff/17161, phabricator/diff/17162, phabricator/diff/17163, phabricator/diff/17164, phabricator/diff/17165, phabricator/diff/17166, phabricator/diff/17167, phabricator/diff/17168, phabricator/diff/17169, phabricator/diff/17170, phabricator/diff/17171, phabricator/diff/17172, phabricator/diff/17173, phabricator/diff/17174, phabricator/diff/17175, phabricator/diff/17176, phabricator/diff/17177, phabricator/diff/17178, phabricator/diff/17179, phabricator/diff/17180, phabricator/diff/17183, phabricator/diff/17184, phabricator/diff/17185, phabricator/diff/17187, phabricator/diff/17188, phabricator/diff/17189, phabricator/diff/17190, phabricator/diff/17191, phabricator/diff/17192, phabricator/diff/17194, phabricator/diff/17195, phabricator/diff/17196, phabricator/diff/17197, phabricator/diff/17198, phabricator/diff/17199, phabricator/diff/17209, phabricator/diff/17210, phabricator/diff/17211, phabricator/diff/17212, phabricator/diff/17213, phabricator/diff/17215, phabricator/diff/17216, phabricator/diff/17227, phabricator/diff/17228, phabricator/diff/17229, phabricator/diff/17230, phabricator/diff/17231, phabricator/diff/17232, phabricator/diff/17233, phabricator/diff/17234, phabricator/diff/17235, phabricator/diff/17237, phabricator/diff/17238, phabricator/diff/17239, phabricator/diff/17240, phabricator/diff/17241, phabricator/diff/17242, phabricator/diff/17243, phabricator/diff/17244, phabricator/diff/17246, phabricator/diff/17247, phabricator/diff/17248, phabricator/diff/17249, phabricator/diff/17250, phabricator/diff/17252, phabricator/diff/17253, phabricator/diff/17254, phabricator/diff/17255, phabricator/diff/17256, phabricator/diff/17257, phabricator/diff/17258, phabricator/diff/17260, phabricator/diff/17261, phabricator/diff/17262, phabricator/diff/17263, phabricator/diff/17264, phabricator/diff/17265, phabricator/diff/17266, phabricator/diff/17267, phabricator/diff/17268, phabricator/diff/17269, phabricator/diff/17270, phabricator/diff/17271, phabricator/diff/17272, phabricator/diff/17274, phabricator/diff/17275, phabricator/diff/17276, phabricator/diff/17277, phabricator/diff/17278, phabricator/diff/17279, phabricator/diff/17280, phabricator/diff/17282, phabricator/diff/17290, phabricator/diff/17291, phabricator/diff/17292, phabricator/diff/17295, phabricator/diff/17296, phabricator/diff/17297, phabricator/diff/17298, phabricator/diff/17299, phabricator/diff/17300, phabricator/diff/17301, phabricator/diff/17303, phabricator/diff/17304, phabricator/diff/17305, phabricator/diff/17306, phabricator/diff/17307, phabricator/diff/17308, phabricator/diff/17309, phabricator/diff/17310, phabricator/diff/17311, phabricator/diff/17312, phabricator/diff/17313, phabricator/diff/17314, phabricator/diff/17329, phabricator/diff/17330, phabricator/diff/17331, phabricator/diff/17333, phabricator/diff/17335, phabricator/diff/17336, phabricator/diff/17337, phabricator/diff/17338, phabricator/diff/17339, phabricator/diff/17341, phabricator/diff/17343, phabricator/diff/17345, phabricator/diff/17346, phabricator/diff/17347, phabricator/diff/17348, phabricator/diff/17351, phabricator/diff/17352, phabricator/diff/17353, phabricator/diff/17354, phabricator/diff/17359, phabricator/diff/17360, phabricator/diff/17362, phabricator/diff/17363, phabricator/diff/17364, phabricator/diff/17366, phabricator/diff/17367, phabricator/diff/17368, phabricator/diff/17369, phabricator/diff/17370, phabricator/diff/17375, phabricator/diff/17376, phabricator/diff/17377, phabricator/diff/17378, phabricator/diff/17379, phabricator/diff/17380, phabricator/diff/17381, phabricator/diff/17384, phabricator/diff/17386, phabricator/diff/17387, phabricator/diff/17388, phabricator/diff/17389, phabricator/diff/17390, phabricator/diff/17391, phabricator/diff/17393, phabricator/diff/17394, phabricator/diff/17395, phabricator/diff/17396, phabricator/diff/17397, phabricator/diff/17398, phabricator/diff/17399, phabricator/diff/17401, phabricator/diff/17402, phabricator/diff/17403, phabricator/diff/17404, phabricator/diff/17405, phabricator/diff/17406, phabricator/diff/17407, phabricator/diff/17408, phabricator/diff/17409, phabricator/diff/17410, phabricator/diff/17412, phabricator/diff/17413, phabricator/diff/17414, phabricator/diff/17417, phabricator/diff/17418, phabricator/diff/17419, phabricator/diff/17420, phabricator/diff/17421, phabricator/diff/17422, phabricator/diff/17425, phabricator/diff/17426, phabricator/diff/17427, phabricator/diff/17428, phabricator/diff/17429, phabricator/diff/17433, phabricator/diff/17434, phabricator/diff/17435, phabricator/diff/17436, phabricator/diff/17438, phabricator/diff/17439, phabricator/diff/17440, phabricator/diff/17441, phabricator/diff/17443, phabricator/diff/17445, phabricator/diff/17446, phabricator/diff/17447, phabricator/diff/17448, phabricator/diff/17449, phabricator/diff/17450, phabricator/diff/8473, phabricator/diff/8476, phabricator/diff/8477, phabricator/diff/8478, phabricator/diff/8479, phabricator/diff/8480, phabricator/diff/8481, phabricator/diff/8513, phabricator/diff/8515, phabricator/diff/8517, phabricator/diff/8518, phabricator/diff/8519, phabricator/diff/8520, phabricator/diff/8521, phabricator/diff/8522, phabricator/diff/8523, phabricator/diff/8527, phabricator/diff/8532, phabricator/diff/8533, phabricator/diff/8534, phabricator/diff/8535, phabricator/diff/8542, phabricator/diff/8553, phabricator/diff/8557, phabricator/diff/8561, phabricator/diff/8564, phabricator/diff/8565, phabricator/diff/8566, phabricator/diff/8568, phabricator/diff/8569, phabricator/diff/8570, phabricator/diff/8571, phabricator/diff/8584, phabricator/diff/8596, phabricator/diff/8597, phabricator/diff/8598, phabricator/diff/8599, phabricator/diff/8600, phabricator/diff/8601, phabricator/diff/8602, phabricator/diff/8603, phabricator/diff/8604, phabricator/diff/8605, phabricator/diff/8606, phabricator/diff/8607, phabricator/diff/8608, phabricator/diff/8611, phabricator/diff/8613, phabricator/diff/8614, phabricator/diff/8619, phabricator/diff/8620, phabricator/diff/8621, phabricator/diff/8623, phabricator/diff/8624, phabricator/diff/8625, phabricator/diff/8628, phabricator/diff/8630, phabricator/diff/8632, phabricator/diff/8638, phabricator/diff/8639, phabricator/diff/8643, phabricator/diff/8647, phabricator/diff/8648, phabricator/diff/8655, phabricator/diff/8656, phabricator/diff/8657, phabricator/diff/8658, phabricator/diff/8660, phabricator/diff/8661, phabricator/diff/8662, phabricator/diff/8663, phabricator/diff/8664, phabricator/diff/8665, phabricator/diff/8671, phabricator/diff/8676, phabricator/diff/8677, phabricator/diff/8678, phabricator/diff/8680, phabricator/diff/8681, phabricator/diff/8683, phabricator/diff/8684, phabricator/diff/8688, phabricator/diff/8693, phabricator/diff/8695, phabricator/diff/8696, phabricator/diff/8699, phabricator/diff/8703, phabricator/diff/8704, phabricator/diff/8709, phabricator/diff/8710, phabricator/diff/8711, phabricator/diff/8712, phabricator/diff/8713, phabricator/diff/8714, phabricator/diff/8715, phabricator/diff/8716, phabricator/diff/8717, phabricator/diff/8718, phabricator/diff/8720, phabricator/diff/8721, phabricator/diff/8722, phabricator/diff/8723, phabricator/diff/8724, phabricator/diff/8725, phabricator/diff/8727, phabricator/diff/8728, phabricator/diff/8731, phabricator/diff/8732, phabricator/diff/8733, phabricator/diff/8734, phabricator/diff/8735, phabricator/diff/8736, phabricator/diff/8737, phabricator/diff/8738, phabricator/diff/8740, phabricator/diff/8741, phabricator/diff/8742, phabricator/diff/8745, phabricator/diff/8747, phabricator/diff/8749, phabricator/diff/8750, phabricator/diff/8751, phabricator/diff/8752, phabricator/diff/8753, phabricator/diff/8754, phabricator/diff/8755, phabricator/diff/8757, phabricator/diff/8758, phabricator/diff/8759, phabricator/diff/8760, phabricator/diff/8762, phabricator/diff/8763, phabricator/diff/8764, phabricator/diff/8765, phabricator/diff/8766, phabricator/diff/8767, phabricator/diff/8768, phabricator/diff/8775, phabricator/diff/8776, phabricator/diff/8777, phabricator/diff/8779, phabricator/diff/8780, phabricator/diff/8781, phabricator/diff/8782, phabricator/diff/8787, phabricator/diff/8788, phabricator/diff/8790, phabricator/diff/8791, phabricator/diff/8792, phabricator/diff/8793, phabricator/diff/8794, phabricator/diff/8795, phabricator/diff/8802, phabricator/diff/8804, phabricator/diff/8805, phabricator/diff/8807, phabricator/diff/8809, phabricator/diff/8811, phabricator/diff/8812, phabricator/diff/8813, phabricator/diff/8815, phabricator/diff/8816, phabricator/diff/8821, phabricator/diff/8822, phabricator/diff/8823, phabricator/diff/8824, phabricator/diff/8825, phabricator/diff/8826, phabricator/diff/8827, phabricator/diff/8829, phabricator/diff/8830, phabricator/diff/8831, phabricator/diff/8832, phabricator/diff/8833, phabricator/diff/8841, phabricator/diff/8851, phabricator/diff/8852, phabricator/diff/8853, phabricator/diff/8857, phabricator/diff/8858, phabricator/diff/8859, phabricator/diff/8862, phabricator/diff/8863, phabricator/diff/8865, phabricator/diff/8867, phabricator/diff/8868, phabricator/diff/8870, phabricator/diff/8871, phabricator/diff/8872, phabricator/diff/8873, phabricator/diff/8874, phabricator/diff/8875, phabricator/diff/8876, phabricator/diff/8877, phabricator/diff/8878, phabricator/diff/8880, phabricator/diff/8881, phabricator/diff/8882, phabricator/diff/8883, phabricator/diff/8884, phabricator/diff/8885, phabricator/diff/8886, phabricator/diff/8887, phabricator/diff/8888, phabricator/diff/8889, phabricator/diff/8890, phabricator/diff/8891, phabricator/diff/8892, phabricator/diff/8893, phabricator/diff/8894, phabricator/diff/8895, phabricator/diff/8896, phabricator/diff/8897, phabricator/diff/8898, phabricator/diff/8904, phabricator/diff/8906, phabricator/diff/8908, phabricator/diff/8909, phabricator/diff/8910, phabricator/diff/8911, phabricator/diff/8912, phabricator/diff/8913, phabricator/diff/8914, phabricator/diff/8916, phabricator/diff/8917, phabricator/diff/8918, phabricator/diff/8920, phabricator/diff/8921, phabricator/diff/8922, phabricator/diff/8924, phabricator/diff/8926, phabricator/diff/8927, phabricator/diff/8928, phabricator/diff/8930, phabricator/diff/8931, phabricator/diff/8932, phabricator/diff/8933, phabricator/diff/8934, phabricator/diff/8935, phabricator/diff/8938, phabricator/diff/8940, phabricator/diff/8941, phabricator/diff/8942, phabricator/diff/8943, phabricator/diff/8944, phabricator/diff/8945, phabricator/diff/8946, phabricator/diff/8947, phabricator/diff/8948, phabricator/diff/8949, phabricator/diff/8950, phabricator/diff/8951, phabricator/diff/8952, phabricator/diff/8953, phabricator/diff/8954, phabricator/diff/8955, phabricator/diff/8962, phabricator/diff/8963, phabricator/diff/8964, phabricator/diff/8965, phabricator/diff/8966, phabricator/diff/8967, phabricator/diff/8968, phabricator/diff/8969, phabricator/diff/8970, phabricator/diff/8974, phabricator/diff/8975, phabricator/diff/8976, phabricator/diff/8978, phabricator/diff/8979, phabricator/diff/8980, phabricator/diff/8981, phabricator/diff/8982, phabricator/diff/8983, phabricator/diff/8984, phabricator/diff/8985, phabricator/diff/8986, phabricator/diff/8987, phabricator/diff/8988, phabricator/diff/8989, phabricator/diff/8990, phabricator/diff/8991, phabricator/diff/8992, phabricator/diff/8993, phabricator/diff/8996, phabricator/diff/8997, phabricator/diff/8998, phabricator/diff/8999, phabricator/diff/9000, phabricator/diff/9001, phabricator/diff/9002, phabricator/diff/9008, phabricator/diff/9009, phabricator/diff/9010, phabricator/diff/9012, phabricator/diff/9013, phabricator/diff/9015, phabricator/diff/9016, phabricator/diff/9017, phabricator/diff/9018, phabricator/diff/9019, phabricator/diff/9020, phabricator/diff/9021, phabricator/diff/9022, phabricator/diff/9023, phabricator/diff/9024, phabricator/diff/9025, phabricator/diff/9026, phabricator/diff/9027, phabricator/diff/9028, phabricator/diff/9029, phabricator/diff/9030, phabricator/diff/9031, phabricator/diff/9032, phabricator/diff/9033, phabricator/diff/9034, phabricator/diff/9035, phabricator/diff/9036, phabricator/diff/9037, phabricator/diff/9038, phabricator/diff/9040, phabricator/diff/9047, phabricator/diff/9048, phabricator/diff/9049, phabricator/diff/9050, phabricator/diff/9051, phabricator/diff/9052, phabricator/diff/9053, phabricator/diff/9054, phabricator/diff/9059, phabricator/diff/9060, phabricator/diff/9061, phabricator/diff/9063, phabricator/diff/9064, phabricator/diff/9065, phabricator/diff/9066, phabricator/diff/9067, phabricator/diff/9068, phabricator/diff/9069, phabricator/diff/9070, phabricator/diff/9071, phabricator/diff/9072, phabricator/diff/9076, phabricator/diff/9077, phabricator/diff/9078, phabricator/diff/9079, phabricator/diff/9080, phabricator/diff/9082, phabricator/diff/9083, phabricator/diff/9084, phabricator/diff/9085, phabricator/diff/9086, phabricator/diff/9088, phabricator/diff/9089, phabricator/diff/9092, phabricator/diff/9093, phabricator/diff/9094, phabricator/diff/9096, phabricator/diff/9097, phabricator/diff/9102, phabricator/diff/9106, phabricator/diff/9107, phabricator/diff/9108, phabricator/diff/9110, phabricator/diff/9111, phabricator/diff/9113, phabricator/diff/9114, phabricator/diff/9115, phabricator/diff/9116, phabricator/diff/9117, phabricator/diff/9118, phabricator/diff/9119, phabricator/diff/9120, phabricator/diff/9121, phabricator/diff/9122, phabricator/diff/9123, phabricator/diff/9124, phabricator/diff/9125, phabricator/diff/9132, phabricator/diff/9133, phabricator/diff/9134, phabricator/diff/9135, phabricator/diff/9136, phabricator/diff/9137, phabricator/diff/9138, phabricator/diff/9139, phabricator/diff/9140, phabricator/diff/9142, phabricator/diff/9143, phabricator/diff/9145, phabricator/diff/9146, phabricator/diff/9147, phabricator/diff/9148, phabricator/diff/9149, phabricator/diff/9150, phabricator/diff/9151, phabricator/diff/9152, phabricator/diff/9153, phabricator/diff/9155, phabricator/diff/9156, phabricator/diff/9157, phabricator/diff/9167, phabricator/diff/9168, phabricator/diff/9169, phabricator/diff/9170, phabricator/diff/9171, phabricator/diff/9172, phabricator/diff/9173, phabricator/diff/9177, phabricator/diff/9178, phabricator/diff/9179, phabricator/diff/9180, phabricator/diff/9181, phabricator/diff/9186, phabricator/diff/9187, phabricator/diff/9188, phabricator/diff/9189, phabricator/diff/9190, phabricator/diff/9191, phabricator/diff/9192, phabricator/diff/9193, phabricator/diff/9194, phabricator/diff/9195, phabricator/diff/9196, phabricator/diff/9197, phabricator/diff/9198, phabricator/diff/9199, phabricator/diff/9200, phabricator/diff/9201, phabricator/diff/9202, phabricator/diff/9203, phabricator/diff/9204, phabricator/diff/9205, phabricator/diff/9206, phabricator/diff/9207, phabricator/diff/9208, phabricator/diff/9209, phabricator/diff/9210, phabricator/diff/9211, phabricator/diff/9212, phabricator/diff/9213, phabricator/diff/9214, phabricator/diff/9215, phabricator/diff/9216, phabricator/diff/9217, phabricator/diff/9218, phabricator/diff/9219, phabricator/diff/9220, phabricator/diff/9221, phabricator/diff/9224, phabricator/diff/9225, phabricator/diff/9226, phabricator/diff/9227, phabricator/diff/9228, phabricator/diff/9229, phabricator/diff/9231, phabricator/diff/9232, phabricator/diff/9233, phabricator/diff/9237, phabricator/diff/9238, phabricator/diff/9239, phabricator/diff/9240, phabricator/diff/9241, phabricator/diff/9242, phabricator/diff/9244, phabricator/diff/9245, phabricator/diff/9246, phabricator/diff/9247, phabricator/diff/9248, phabricator/diff/9250, phabricator/diff/9253, phabricator/diff/9254, phabricator/diff/9255, phabricator/diff/9256, phabricator/diff/9257, phabricator/diff/9258, phabricator/diff/9260, phabricator/diff/9261, phabricator/diff/9274, phabricator/diff/9275, phabricator/diff/9276, phabricator/diff/9277, phabricator/diff/9280, phabricator/diff/9281, phabricator/diff/9282, phabricator/diff/9283, phabricator/diff/9284, phabricator/diff/9285, phabricator/diff/9286, phabricator/diff/9288, phabricator/diff/9289, phabricator/diff/9290, phabricator/diff/9291, phabricator/diff/9292, phabricator/diff/9293, phabricator/diff/9294, phabricator/diff/9299, phabricator/diff/9300, phabricator/diff/9302, phabricator/diff/9303, phabricator/diff/9305, phabricator/diff/9308, phabricator/diff/9309, phabricator/diff/9310, phabricator/diff/9311, phabricator/diff/9313, phabricator/diff/9317, phabricator/diff/9318, phabricator/diff/9319, phabricator/diff/9322, phabricator/diff/9323, phabricator/diff/9325, phabricator/diff/9326, phabricator/diff/9328, phabricator/diff/9330, phabricator/diff/9331, phabricator/diff/9333, phabricator/diff/9334, phabricator/diff/9335, phabricator/diff/9336, phabricator/diff/9337, phabricator/diff/9338, phabricator/diff/9339, phabricator/diff/9340, phabricator/diff/9341, phabricator/diff/9342, phabricator/diff/9343, phabricator/diff/9344, phabricator/diff/9345, phabricator/diff/9347, phabricator/diff/9348, phabricator/diff/9349, phabricator/diff/9350, phabricator/diff/9351, phabricator/diff/9356, phabricator/diff/9357, phabricator/diff/9358, phabricator/diff/9359, phabricator/diff/9360, phabricator/diff/9367, phabricator/diff/9369, phabricator/diff/9370, phabricator/diff/9371, phabricator/diff/9372, phabricator/diff/9373, phabricator/diff/9374, phabricator/diff/9375, phabricator/diff/9379, phabricator/diff/9380, phabricator/diff/9382, phabricator/diff/9383, phabricator/diff/9384, phabricator/diff/9385, phabricator/diff/9386, phabricator/diff/9387, phabricator/diff/9388, phabricator/diff/9389, phabricator/diff/9390, phabricator/diff/9391, phabricator/diff/9392, phabricator/diff/9393, phabricator/diff/9394, phabricator/diff/9396, phabricator/diff/9398, phabricator/diff/9399, phabricator/diff/9400, phabricator/diff/9401, phabricator/diff/9402, phabricator/diff/9404, phabricator/diff/9406, phabricator/diff/9408, phabricator/diff/9409, phabricator/diff/9412, phabricator/diff/9413, phabricator/diff/9414, phabricator/diff/9415, phabricator/diff/9416, phabricator/diff/9417, phabricator/diff/9418, phabricator/diff/9419, phabricator/diff/9420, phabricator/diff/9421, phabricator/diff/9422, phabricator/diff/9423, phabricator/diff/9424, phabricator/diff/9426, phabricator/diff/9427, phabricator/diff/9428, phabricator/diff/9429, phabricator/diff/9430, phabricator/diff/9431, phabricator/diff/9432, phabricator/diff/9433, phabricator/diff/9434, phabricator/diff/9435, phabricator/diff/9436, phabricator/diff/9437, phabricator/diff/9438, phabricator/diff/9439, phabricator/diff/9441, phabricator/diff/9442, phabricator/diff/9450, phabricator/diff/9451, phabricator/diff/9452, phabricator/diff/9453, phabricator/diff/9454, phabricator/diff/9455, phabricator/diff/9456, phabricator/diff/9457, phabricator/diff/9458, phabricator/diff/9459, phabricator/diff/9460, phabricator/diff/9461, phabricator/diff/9462, phabricator/diff/9463, phabricator/diff/9464, phabricator/diff/9465, phabricator/diff/9466, phabricator/diff/9467, phabricator/diff/9468, phabricator/diff/9469, phabricator/diff/9470, phabricator/diff/9471, phabricator/diff/9473, phabricator/diff/9475, phabricator/diff/9476, phabricator/diff/9477, phabricator/diff/9479, phabricator/diff/9480, phabricator/diff/9481, phabricator/diff/9482, phabricator/diff/9487, phabricator/diff/9488, phabricator/diff/9489, phabricator/diff/9490, phabricator/diff/9491, phabricator/diff/9492, phabricator/diff/9493, phabricator/diff/9496, phabricator/diff/9498, phabricator/diff/9499, phabricator/diff/9500, phabricator/diff/9504, phabricator/diff/9505, phabricator/diff/9506, phabricator/diff/9507, phabricator/diff/9508, phabricator/diff/9509, phabricator/diff/9510, phabricator/diff/9515, phabricator/diff/9517, phabricator/diff/9518, phabricator/diff/9519, phabricator/diff/9520, phabricator/diff/9521, phabricator/diff/9522, phabricator/diff/9523, phabricator/diff/9524, phabricator/diff/9525, phabricator/diff/9533, phabricator/diff/9536, phabricator/diff/9537, phabricator/diff/9538, phabricator/diff/9539, phabricator/diff/9540, phabricator/diff/9541, phabricator/diff/9542, phabricator/diff/9543, phabricator/diff/9544, phabricator/diff/9545, phabricator/diff/9546, phabricator/diff/9547, phabricator/diff/9548, phabricator/diff/9549, phabricator/diff/9550, phabricator/diff/9551, phabricator/diff/9552, phabricator/diff/9553, phabricator/diff/9554, phabricator/diff/9555, phabricator/diff/9556, phabricator/diff/9557, phabricator/diff/9558, phabricator/diff/9559, phabricator/diff/9560, phabricator/diff/9561, phabricator/diff/9562, phabricator/diff/9563, phabricator/diff/9564, phabricator/diff/9570, phabricator/diff/9571, phabricator/diff/9572, phabricator/diff/9573, phabricator/diff/9574, phabricator/diff/9575, phabricator/diff/9576, phabricator/diff/9577, phabricator/diff/9578, phabricator/diff/9579, phabricator/diff/9580, phabricator/diff/9581, phabricator/diff/9582, phabricator/diff/9584, phabricator/diff/9585, phabricator/diff/9586, phabricator/diff/9588, phabricator/diff/9589, phabricator/diff/9590, phabricator/diff/9591, phabricator/diff/9592, phabricator/diff/9593, phabricator/diff/9594, phabricator/diff/9595, phabricator/diff/9596, phabricator/diff/9597, phabricator/diff/9599, phabricator/diff/9600, phabricator/diff/9601, phabricator/diff/9603, phabricator/diff/9604, phabricator/diff/9606, phabricator/diff/9607, phabricator/diff/9608, phabricator/diff/9609, phabricator/diff/9610, phabricator/diff/9611, phabricator/diff/9612, phabricator/diff/9613, phabricator/diff/9614, phabricator/diff/9615, phabricator/diff/9616, phabricator/diff/9617, phabricator/diff/9618, phabricator/diff/9620, phabricator/diff/9621, phabricator/diff/9622, phabricator/diff/9623, phabricator/diff/9624, phabricator/diff/9625, phabricator/diff/9626, phabricator/diff/9627, phabricator/diff/9628, phabricator/diff/9630, phabricator/diff/9631, phabricator/diff/9632, phabricator/diff/9633, phabricator/diff/9634, phabricator/diff/9635, phabricator/diff/9636, phabricator/diff/9637, phabricator/diff/9638, phabricator/diff/9639, phabricator/diff/9640, phabricator/diff/9641, phabricator/diff/9643, phabricator/diff/9644, phabricator/diff/9645, phabricator/diff/9648, phabricator/diff/9649, phabricator/diff/9650, phabricator/diff/9651, phabricator/diff/9652, phabricator/diff/9653, phabricator/diff/9655, phabricator/diff/9656, phabricator/diff/9657, phabricator/diff/9658, phabricator/diff/9659, phabricator/diff/9660, phabricator/diff/9661, phabricator/diff/9668, phabricator/diff/9669, phabricator/diff/9676, phabricator/diff/9677, phabricator/diff/9682, phabricator/diff/9690, phabricator/diff/9691, phabricator/diff/9692, phabricator/diff/9693, phabricator/diff/9694, phabricator/diff/9695, phabricator/diff/9696, phabricator/diff/9697, phabricator/diff/9698, phabricator/diff/9699, phabricator/diff/9700, phabricator/diff/9701, phabricator/diff/9702, phabricator/diff/9703, phabricator/diff/9705, phabricator/diff/9706, phabricator/diff/9708, phabricator/diff/9709, phabricator/diff/9710, phabricator/diff/9711, phabricator/diff/9712, phabricator/diff/9713, phabricator/diff/9714, phabricator/diff/9715, phabricator/diff/9716, phabricator/diff/9717, phabricator/diff/9719, phabricator/diff/9720, phabricator/diff/9722, phabricator/diff/9723, phabricator/diff/9724, phabricator/diff/9726, phabricator/diff/9727, phabricator/diff/9728, phabricator/diff/9729, phabricator/diff/9735, phabricator/diff/9736, phabricator/diff/9737, phabricator/diff/9738, phabricator/diff/9739, phabricator/diff/9740, phabricator/diff/9741, phabricator/diff/9742, phabricator/diff/9743, phabricator/diff/9744, phabricator/diff/9745, phabricator/diff/9746, phabricator/diff/9747, phabricator/diff/9752, phabricator/diff/9753, phabricator/diff/9754, phabricator/diff/9755, phabricator/diff/9756, phabricator/diff/9757, phabricator/diff/9758, phabricator/diff/9759, phabricator/diff/9760, phabricator/diff/9761, phabricator/diff/9762, phabricator/diff/9763, phabricator/diff/9764, phabricator/diff/9765, phabricator/diff/9766, phabricator/diff/9767, phabricator/diff/9768, phabricator/diff/9769, phabricator/diff/9770, phabricator/diff/9771, phabricator/diff/9772, phabricator/diff/9776, phabricator/diff/9778, phabricator/diff/9779, phabricator/diff/9780, phabricator/diff/9781, phabricator/diff/9782, phabricator/diff/9783, phabricator/diff/9784, phabricator/diff/9785, phabricator/diff/9786, phabricator/diff/9787, phabricator/diff/9788, phabricator/diff/9789, phabricator/diff/9790, phabricator/diff/9793, phabricator/diff/9794, phabricator/diff/9796, phabricator/diff/9797, phabricator/diff/9798, phabricator/diff/9799, phabricator/diff/9802, phabricator/diff/9803, phabricator/diff/9804, phabricator/diff/9805, phabricator/diff/9806, phabricator/diff/9807, phabricator/diff/9808, phabricator/diff/9809, phabricator/diff/9810, phabricator/diff/9813, phabricator/diff/9814, phabricator/diff/9815, phabricator/diff/9816, phabricator/diff/9820, phabricator/diff/9821, phabricator/diff/9822, phabricator/diff/9823, phabricator/diff/9824, phabricator/diff/9825, phabricator/diff/9826, phabricator/diff/9828, phabricator/diff/9829, phabricator/diff/9830, phabricator/diff/9833, phabricator/diff/9834, phabricator/diff/9835, phabricator/diff/9836, phabricator/diff/9837, phabricator/diff/9838, phabricator/diff/9840, phabricator/diff/9841, phabricator/diff/9842, phabricator/diff/9843, phabricator/diff/9844, phabricator/diff/9845, phabricator/diff/9846, phabricator/diff/9847, phabricator/diff/9848, phabricator/diff/9849, phabricator/diff/9850, phabricator/diff/9851, phabricator/diff/9852, phabricator/diff/9853, phabricator/diff/9854, phabricator/diff/9855, phabricator/diff/9856, phabricator/diff/9857, phabricator/diff/9858, phabricator/diff/9859, phabricator/diff/9860, phabricator/diff/9861, phabricator/diff/9862, phabricator/diff/9863, phabricator/diff/9864, phabricator/diff/9873, phabricator/diff/9874, phabricator/diff/9875, phabricator/diff/9876, phabricator/diff/9877, phabricator/diff/9880, phabricator/diff/9884, phabricator/diff/9885, phabricator/diff/9886, phabricator/diff/9887, phabricator/diff/9888, phabricator/diff/9889, phabricator/diff/9890, phabricator/diff/9891, phabricator/diff/9892, phabricator/diff/9898, phabricator/diff/9899, phabricator/diff/9900, phabricator/diff/9902, phabricator/diff/9903, phabricator/diff/9904, phabricator/diff/9905, phabricator/diff/9906, phabricator/diff/9907, phabricator/diff/9909, phabricator/diff/9911, phabricator/diff/9913, phabricator/diff/9914, phabricator/diff/9915, phabricator/diff/9916, phabricator/diff/9917, phabricator/diff/9918, phabricator/diff/9920, phabricator/diff/9922, phabricator/diff/9923, phabricator/diff/9924, phabricator/diff/9925, phabricator/diff/9926, phabricator/diff/9927, phabricator/diff/9928, phabricator/diff/9929, phabricator/diff/9930, phabricator/diff/9932, phabricator/diff/9933, phabricator/diff/9934, phabricator/diff/9935, phabricator/diff/9936, phabricator/diff/9938, phabricator/diff/9939, phabricator/diff/9940, phabricator/diff/9942, phabricator/diff/9943, phabricator/diff/9945, phabricator/diff/9946, phabricator/diff/9947, phabricator/diff/9948, phabricator/diff/9949, phabricator/diff/9950, phabricator/diff/9951, phabricator/diff/9953, phabricator/diff/9954, phabricator/diff/9955, phabricator/diff/9962, phabricator/diff/9963, phabricator/diff/9964, phabricator/diff/9965, phabricator/diff/9966, phabricator/diff/9967, phabricator/diff/9968, phabricator/diff/9970, phabricator/diff/9971, phabricator/diff/9972, phabricator/diff/9973, phabricator/diff/9974, phabricator/diff/9975, phabricator/diff/9976, phabricator/diff/9977, phabricator/diff/9978, phabricator/diff/9979, phabricator/diff/9980, phabricator/diff/9981, phabricator/diff/9982, phabricator/diff/9983, phabricator/diff/9984, phabricator/diff/9985, phabricator/diff/9986, phabricator/diff/9987, phabricator/diff/9988, phabricator/diff/9989, phabricator/diff/9990, phabricator/diff/9991, phabricator/diff/9992, phabricator/diff/9993, phabricator/diff/9994, phabricator/diff/9995, phabricator/diff/9996, phabricator/diff/9997 AFFECTED FILES /compiler/deSugar/Check.lhs /compiler/deSugar/Match.lhs /compiler/deSugar/MatchLit.lhs USERS simonpj (Author) COMMIT https://phabricator.haskell.org/rGHCDIFFe79e580be5d3 EMAIL PREFERENCES https://phabricator.haskell.org/settings/panel/emailpreferences/ To: simonpj -------------- next part -------------- An HTML attachment was scrubbed... URL: From iavor.diatchki at gmail.com Wed Jul 25 13:01:10 2018 From: iavor.diatchki at gmail.com (Iavor Diatchki) Date: Wed, 25 Jul 2018 16:01:10 +0300 Subject: [Diffusion] [Committed] rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal patterns consistencly In-Reply-To: References: <20180725114504.1.43447C5D5CDE16DA@phabricator.haskell.org> Message-ID: Yep, I just got a whole lot of messages too. On Wed, Jul 25, 2018 at 2:46 PM Simon Peyton Jones via ghc-devs < ghc-devs at haskell.org> wrote: > Is anyone else getting messages like the one below? > > > > I have received over 1,000 of them this morning. It is tiresome. > > > > Thanks > > > > Simon > > > > *From:* noreply at phabricator.haskell.org > *Sent:* 25 July 2018 12:45 > *To:* Simon Peyton Jones > *Subject:* [Diffusion] [Committed] rGHCDIFFe79e580be5d3: Fix Trac #5117: > desugar literal patterns consistencly > > > > simonpj committed rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal > patterns consistencly (authored by simonpj). > > > > Fix Trac *Trac #5117* : > desugar literal patterns consistencly > > > > *TAGS* > > ghc-7.11-start, ghc-7.9-start, ghc-8.0.1-release, ghc-8.1-start, > ghc-8.2.1-release, ghc-8.2.2-release, ghc-8.3-start, > phabricator/base/10007, phabricator/base/10008, phabricator/base/10009, > phabricator/base/10010, phabricator/base/10015, phabricator/base/10016, > phabricator/base/10017, phabricator/base/10021, phabricator/base/10022, > phabricator/base/10023, phabricator/base/10024, phabricator/base/10025, > phabricator/base/10031, phabricator/base/10032, phabricator/base/10033, > phabricator/base/10034, phabricator/base/10035, phabricator/base/10036, > phabricator/base/10037, phabricator/base/10038, phabricator/base/10040, > phabricator/base/10041, phabricator/base/10042, phabricator/base/10048, > phabricator/base/10049, phabricator/base/10050, phabricator/base/10051, > phabricator/base/10056, phabricator/base/10058, phabricator/base/10059, > phabricator/base/10060, phabricator/base/10061, phabricator/base/10062, > phabricator/base/10063, phabricator/base/10064, phabricator/base/10065, > phabricator/base/10067, phabricator/base/10068, phabricator/base/10069, > phabricator/base/10074, phabricator/base/10075, phabricator/base/10077, > phabricator/base/10078, phabricator/base/10079, phabricator/base/10090, > phabricator/base/10091, phabricator/base/10097, phabricator/base/10098, > phabricator/base/10099, phabricator/base/10101, phabricator/base/10102, > phabricator/base/10103, phabricator/base/10104, phabricator/base/10105, > phabricator/base/10106, phabricator/base/10107, phabricator/base/10108, > phabricator/base/10110, phabricator/base/10112, phabricator/base/10113, > phabricator/base/10114, phabricator/base/10115, phabricator/base/10116, > phabricator/base/10117, phabricator/base/10119, phabricator/base/10121, > phabricator/base/10122, phabricator/base/10123, phabricator/base/10125, > phabricator/base/10127, phabricator/base/10128, phabricator/base/10130, > phabricator/base/10131, phabricator/base/10132, phabricator/base/10133, > phabricator/base/10136, phabricator/base/10137, phabricator/base/10138, > phabricator/base/10139, phabricator/base/10143, phabricator/base/10144, > phabricator/base/10145, phabricator/base/10147, phabricator/base/10148, > phabricator/base/10149, phabricator/base/10150, phabricator/base/10151, > phabricator/base/10157, phabricator/base/10158, phabricator/base/10159, > phabricator/base/10160, phabricator/base/10161, phabricator/base/10162, > phabricator/base/10163, phabricator/base/10164, phabricator/base/10165, > phabricator/base/10180, phabricator/base/10184, phabricator/base/10185, > phabricator/base/10188, phabricator/base/10189, phabricator/base/10190, > phabricator/base/10191, phabricator/base/10192, phabricator/base/10193, > phabricator/base/10195, phabricator/base/10196, phabricator/base/10198, > phabricator/base/10201, phabricator/base/10202, phabricator/base/10203, > phabricator/base/10207, phabricator/base/10208, phabricator/base/10212, > phabricator/base/10213, phabricator/base/10214, phabricator/base/10215, > phabricator/base/10216, phabricator/base/10217, phabricator/base/10218, > phabricator/base/10219, phabricator/base/10220, phabricator/base/10221, > phabricator/base/10222, phabricator/base/10223, phabricator/base/10224, > phabricator/base/10225, phabricator/base/10226, phabricator/base/10227, > phabricator/base/10228, phabricator/base/10229, phabricator/base/10235, > phabricator/base/10236, phabricator/base/10239, phabricator/base/10240, > phabricator/base/10241, phabricator/base/10242, phabricator/base/10243, > phabricator/base/10244, phabricator/base/10246, phabricator/base/10247, > phabricator/base/10248, phabricator/base/10249, phabricator/base/10250, > phabricator/base/10258, phabricator/base/10259, phabricator/base/10260, > phabricator/base/10261, phabricator/base/10262, phabricator/base/10265, > phabricator/base/10266, phabricator/base/10267, phabricator/base/10268, > phabricator/base/10269, phabricator/base/10270, phabricator/base/10275, > phabricator/base/10276, phabricator/base/10281, phabricator/base/10282, > phabricator/base/10283, phabricator/base/10286, phabricator/base/10289, > phabricator/base/10290, phabricator/base/10291, phabricator/base/10292, > phabricator/base/10293, phabricator/base/10296, phabricator/base/10297, > phabricator/base/10298, phabricator/base/10299, phabricator/base/10300, > phabricator/base/10301, phabricator/base/10302, phabricator/base/10303, > phabricator/base/10304, phabricator/base/10306, phabricator/base/10308, > phabricator/base/10309, phabricator/base/10310, phabricator/base/10311, > phabricator/base/10313, phabricator/base/10314, phabricator/base/10315, > phabricator/base/10316, phabricator/base/10318, phabricator/base/10319, > phabricator/base/10320, phabricator/base/10321, phabricator/base/10322, > phabricator/base/10324, phabricator/base/10325, phabricator/base/10326, > phabricator/base/10327, phabricator/base/10328, phabricator/base/10329, > phabricator/base/10330, phabricator/base/10331, phabricator/base/10332, > phabricator/base/10333, phabricator/base/10334, phabricator/base/10338, > phabricator/base/10340, phabricator/base/10342, phabricator/base/10343, > phabricator/base/10346, phabricator/base/10350, phabricator/base/10351, > phabricator/base/10352, phabricator/base/10353, phabricator/base/10355, > phabricator/base/10359, phabricator/base/10362, phabricator/base/10364, > phabricator/base/10365, phabricator/base/10366, phabricator/base/10367, > phabricator/base/10368, phabricator/base/10369, phabricator/base/10370, > phabricator/base/10371, phabricator/base/10372, phabricator/base/10373, > phabricator/base/10374, phabricator/base/10375, phabricator/base/10376, > phabricator/base/10394, phabricator/base/10395, phabricator/base/10396, > phabricator/base/10403, phabricator/base/10404, phabricator/base/10408, > phabricator/base/10409, phabricator/base/10410, phabricator/base/10411, > phabricator/base/10412, phabricator/base/10413, phabricator/base/10414, > phabricator/base/10415, phabricator/base/10418, phabricator/base/10419, > phabricator/base/10420, phabricator/base/10421, phabricator/base/10422, > phabricator/base/10423, phabricator/base/10431, phabricator/base/10432, > phabricator/base/10433, phabricator/base/10434, phabricator/base/10435, > phabricator/base/10436, phabricator/base/10437, phabricator/base/10438, > phabricator/base/10439, phabricator/base/10440, phabricator/base/10441, > phabricator/base/10442, phabricator/base/10443, phabricator/base/10444, > phabricator/base/10445, phabricator/base/10446, phabricator/base/10447, > phabricator/base/10448, phabricator/base/10449, phabricator/base/10450, > phabricator/base/10451, phabricator/base/10452, phabricator/base/10456, > phabricator/base/10459, phabricator/base/10461, phabricator/base/10462, > phabricator/base/10464, phabricator/base/10465, phabricator/base/10468, > phabricator/base/10469, phabricator/base/10470, phabricator/base/10471, > phabricator/base/10472, phabricator/base/10473, phabricator/base/10482, > phabricator/base/10483, phabricator/base/10489, phabricator/base/10490, > phabricator/base/10492, phabricator/base/10493, phabricator/base/10494, > phabricator/base/10497, phabricator/base/10498, phabricator/base/10499, > phabricator/base/10500, phabricator/base/10501, phabricator/base/10503, > phabricator/base/10504, phabricator/base/10509, phabricator/base/10510, > phabricator/base/10513, phabricator/base/10521, phabricator/base/10523, > phabricator/base/10524, phabricator/base/10525, phabricator/base/10526, > phabricator/base/10527, phabricator/base/10528, phabricator/base/10530, > phabricator/base/10531, phabricator/base/10532, phabricator/base/10538, > phabricator/base/10540, phabricator/base/10541, phabricator/base/10542, > phabricator/base/10544, phabricator/base/10548, phabricator/base/10549, > phabricator/base/10552, phabricator/base/10554, phabricator/base/10555, > phabricator/base/10562, phabricator/base/10571, phabricator/base/10572, > phabricator/base/10573, phabricator/base/10574, phabricator/base/10577, > phabricator/base/10581, phabricator/base/10586, phabricator/base/10587, > phabricator/base/10588, phabricator/base/10589, phabricator/base/10590, > phabricator/base/10591, phabricator/base/10592, phabricator/base/10593, > phabricator/base/10594, phabricator/base/10595, phabricator/base/10596, > phabricator/base/10597, phabricator/base/10598, phabricator/base/10599, > phabricator/base/10600, phabricator/base/10601, phabricator/base/10602, > phabricator/base/10603, phabricator/base/10604, phabricator/base/10606, > phabricator/base/10609, phabricator/base/10610, phabricator/base/10611, > phabricator/base/10612, phabricator/base/10613, phabricator/base/10614, > phabricator/base/10615, phabricator/base/10616, phabricator/base/10617, > phabricator/base/10618, phabricator/base/10620, phabricator/base/10629, > phabricator/base/10632, phabricator/base/10633, phabricator/base/10634, > phabricator/base/10635, phabricator/base/10636, phabricator/base/10637, > phabricator/base/10641, phabricator/base/10642, phabricator/base/10648, > phabricator/base/10649, phabricator/base/10650, phabricator/base/10656, > phabricator/base/10657, phabricator/base/10658, phabricator/base/10659, > phabricator/base/10660, phabricator/base/10661, phabricator/base/10663, > phabricator/base/10667, phabricator/base/10668, phabricator/base/10669, > phabricator/base/10670, phabricator/base/10671, phabricator/base/10673, > phabricator/base/10677, phabricator/base/10679, phabricator/base/10680, > phabricator/base/10681, phabricator/base/10685, phabricator/base/10686, > phabricator/base/10687, phabricator/base/10688, phabricator/base/10689, > phabricator/base/10690, phabricator/base/10691, phabricator/base/10692, > phabricator/base/10693, phabricator/base/10694, phabricator/base/10695, > phabricator/base/10696, phabricator/base/10697, phabricator/base/10698, > phabricator/base/10699, phabricator/base/10701, phabricator/base/10702, > phabricator/base/10703, phabricator/base/10704, phabricator/base/10705, > phabricator/base/10706, phabricator/base/10707, phabricator/base/10708, > phabricator/base/10711, phabricator/base/10712, phabricator/base/10714, > phabricator/base/10715, phabricator/base/10716, phabricator/base/10717, > phabricator/base/10718, phabricator/base/10719, phabricator/base/10721, > phabricator/base/10726, phabricator/base/10729, phabricator/base/10730, > phabricator/base/10733, phabricator/base/10734, phabricator/base/10735, > phabricator/base/10736, phabricator/base/10737, phabricator/base/10742, > phabricator/base/10743, phabricator/base/10744, phabricator/base/10745, > phabricator/base/10746, phabricator/base/10747, phabricator/base/10748, > phabricator/base/10749, phabricator/base/10750, phabricator/base/10751, > phabricator/base/10752, phabricator/base/10753, phabricator/base/10754, > phabricator/base/10755, phabricator/base/10756, phabricator/base/10757, > phabricator/base/10758, phabricator/base/10759, phabricator/base/10762, > phabricator/base/10763, phabricator/base/10767, phabricator/base/10768, > phabricator/base/10770, phabricator/base/10771, phabricator/base/10772, > phabricator/base/10773, phabricator/base/10774, phabricator/base/10775, > phabricator/base/10776, phabricator/base/10777, phabricator/base/10778, > phabricator/base/10782, phabricator/base/10783, phabricator/base/10785, > phabricator/base/10786, phabricator/base/10787, phabricator/base/10788, > phabricator/base/10789, phabricator/base/10790, phabricator/base/10793, > phabricator/base/10794, phabricator/base/10795, phabricator/base/10796, > phabricator/base/10800, phabricator/base/10801, phabricator/base/10802, > phabricator/base/10814, phabricator/base/10815, phabricator/base/10817, > phabricator/base/10818, phabricator/base/10819, phabricator/base/10820, > phabricator/base/10821, phabricator/base/10822, phabricator/base/10823, > phabricator/base/10824, phabricator/base/10825, phabricator/base/10826, > phabricator/base/10827, phabricator/base/10828, phabricator/base/10830, > phabricator/base/10831, phabricator/base/10832, phabricator/base/10833, > phabricator/base/10834, phabricator/base/10835, phabricator/base/10837, > phabricator/base/10843, phabricator/base/10844, phabricator/base/10845, > phabricator/base/10846, phabricator/base/10847, phabricator/base/10848, > phabricator/base/10850, phabricator/base/10852, phabricator/base/10853, > phabricator/base/10855, phabricator/base/10857, phabricator/base/10858, > phabricator/base/10859, phabricator/base/10860, phabricator/base/10861, > phabricator/base/10862, phabricator/base/10864, phabricator/base/10865, > phabricator/base/10866, phabricator/base/10867, phabricator/base/10868, > phabricator/base/10869, phabricator/base/10870, phabricator/base/10871, > phabricator/base/10872, phabricator/base/10873, phabricator/base/10879, > phabricator/base/10880, phabricator/base/10881, phabricator/base/10882, > phabricator/base/10884, phabricator/base/10885, phabricator/base/10886, > phabricator/base/10887, phabricator/base/10888, phabricator/base/10889, > phabricator/base/10890, phabricator/base/10891, phabricator/base/10892, > phabricator/base/10893, phabricator/base/10894, phabricator/base/10895, > phabricator/base/10896, phabricator/base/10897, phabricator/base/10899, > phabricator/base/10900, phabricator/base/10901, phabricator/base/10902, > phabricator/base/10903, phabricator/base/10904, phabricator/base/10905, > phabricator/base/10906, phabricator/base/10907, phabricator/base/10911, > phabricator/base/10912, phabricator/base/10914, phabricator/base/10915, > phabricator/base/10916, phabricator/base/10918, phabricator/base/10920, > phabricator/base/10922, phabricator/base/10924, phabricator/base/10926, > phabricator/base/10927, phabricator/base/10928, phabricator/base/10934, > phabricator/base/10935, phabricator/base/10936, phabricator/base/10937, > phabricator/base/10938, phabricator/base/10942, phabricator/base/10947, > phabricator/base/10951, phabricator/base/10952, phabricator/base/10953, > phabricator/base/10954, phabricator/base/10955, phabricator/base/10956, > phabricator/base/10957, phabricator/base/10958, phabricator/base/10959, > phabricator/base/10960, phabricator/base/10961, phabricator/base/10962, > phabricator/base/10967, phabricator/base/10968, phabricator/base/10969, > phabricator/base/10970, phabricator/base/10971, phabricator/base/10973, > phabricator/base/10975, phabricator/base/10983, phabricator/base/10985, > phabricator/base/10986, phabricator/base/10987, phabricator/base/10988, > phabricator/base/10991, phabricator/base/10992, phabricator/base/10994, > phabricator/base/10995, phabricator/base/10997, phabricator/base/10998, > phabricator/base/11000, phabricator/base/11001, phabricator/base/11002, > phabricator/base/11005, phabricator/base/11006, phabricator/base/11007, > phabricator/base/11008, phabricator/base/11009, phabricator/base/11011, > phabricator/base/11012, phabricator/base/11013, phabricator/base/11015, > phabricator/base/11016, phabricator/base/11019, phabricator/base/11026, > phabricator/base/11027, phabricator/base/11028, phabricator/base/11029, > phabricator/base/11031, phabricator/base/11032, phabricator/base/11033, > phabricator/base/11034, phabricator/base/11035, phabricator/base/11036, > phabricator/base/11037, phabricator/base/11044, phabricator/base/11045, > phabricator/base/11049, phabricator/base/11050, phabricator/base/11051, > phabricator/base/11052, phabricator/base/11053, phabricator/base/11054, > phabricator/base/11055, phabricator/base/11057, phabricator/base/11058, > phabricator/base/11059, phabricator/base/11060, phabricator/base/11061, > phabricator/base/11064, phabricator/base/11067, phabricator/base/11068, > phabricator/base/11070, phabricator/base/11071, phabricator/base/11077, > phabricator/base/11078, phabricator/base/11079, phabricator/base/11080, > phabricator/base/11082, phabricator/base/11083, phabricator/base/11084, > phabricator/base/11085, phabricator/base/11087, phabricator/base/11088, > phabricator/base/11089, phabricator/base/11091, phabricator/base/11092, > phabricator/base/11094, phabricator/base/11095, phabricator/base/11119, > phabricator/base/11120, phabricator/base/11121, phabricator/base/11122, > phabricator/base/11123, phabricator/base/11126, phabricator/base/11127, > phabricator/base/11130, phabricator/base/11131, phabricator/base/11132, > phabricator/base/11134, phabricator/base/11138, phabricator/base/11148, > phabricator/base/11149, phabricator/base/11150, phabricator/base/11157, > phabricator/base/11158, phabricator/base/11159, phabricator/base/11160, > phabricator/base/11161, phabricator/base/11162, phabricator/base/11163, > phabricator/base/11165, phabricator/base/11167, phabricator/base/11169, > phabricator/base/11170, phabricator/base/11172, phabricator/base/11173, > phabricator/base/11174, phabricator/base/11175, phabricator/base/11178, > phabricator/base/11179, phabricator/base/11180, phabricator/base/11181, > phabricator/base/11185, phabricator/base/11187, phabricator/base/11188, > phabricator/base/11189, phabricator/base/11200, phabricator/base/11201, > phabricator/base/11202, phabricator/base/11203, phabricator/base/11206, > phabricator/base/11207, phabricator/base/11209, phabricator/base/11210, > phabricator/base/11213, phabricator/base/11216, phabricator/base/11217, > phabricator/base/11218, phabricator/base/11221, phabricator/base/11224, > phabricator/base/11225, phabricator/base/11226, phabricator/base/11227, > phabricator/base/11229, phabricator/base/11230, phabricator/base/11231, > phabricator/base/11232, phabricator/base/11234, phabricator/base/11235, > phabricator/base/11236, phabricator/base/11237, phabricator/base/11243, > phabricator/base/11247, phabricator/base/11248, phabricator/base/11249, > phabricator/base/11250, phabricator/base/11251, phabricator/base/11252, > phabricator/base/11253, phabricator/base/11254, phabricator/base/11255, > phabricator/base/11256, phabricator/base/11257, phabricator/base/11258, > phabricator/base/11259, phabricator/base/11260, phabricator/base/11263, > phabricator/base/11272, phabricator/base/11273, phabricator/base/11275, > phabricator/base/11279, phabricator/base/11280, phabricator/base/11281, > phabricator/base/11282, phabricator/base/11283, phabricator/base/11284, > phabricator/base/11285, phabricator/base/11286, phabricator/base/11287, > phabricator/base/11288, phabricator/base/11289, phabricator/base/11290, > phabricator/base/11291, phabricator/base/11292, phabricator/base/11293, > phabricator/base/11294, phabricator/base/11295, phabricator/base/11296, > phabricator/base/11297, phabricator/base/11298, phabricator/base/11299, > phabricator/base/11301, phabricator/base/11302, phabricator/base/11303, > phabricator/base/11304, phabricator/base/11306, phabricator/base/11307, > phabricator/base/11312, phabricator/base/11313, phabricator/base/11315, > phabricator/base/11316, phabricator/base/11317, phabricator/base/11318, > phabricator/base/11319, phabricator/base/11320, phabricator/base/11321, > phabricator/base/11322, phabricator/base/11327, phabricator/base/11328, > phabricator/base/11329, phabricator/base/11335, phabricator/base/11336, > phabricator/base/11343, phabricator/base/11352, phabricator/base/11354, > phabricator/base/11356, phabricator/base/11358, phabricator/base/11359, > phabricator/base/11360, phabricator/base/11365, phabricator/base/11366, > phabricator/base/11369, phabricator/base/11370, phabricator/base/11371, > phabricator/base/11372, phabricator/base/11373, phabricator/base/11374, > phabricator/base/11375, phabricator/base/11376, phabricator/base/11380, > phabricator/base/11381, phabricator/base/11383, phabricator/base/11384, > phabricator/base/11385, phabricator/base/11390, phabricator/base/11391, > phabricator/base/11392, phabricator/base/11393, phabricator/base/11394, > phabricator/base/11395, phabricator/base/11396, phabricator/base/11397, > phabricator/base/11398, phabricator/base/11406, phabricator/base/11408, > phabricator/base/11410, phabricator/base/11411, phabricator/base/11412, > phabricator/base/11415, phabricator/base/11421, phabricator/base/11422, > phabricator/base/11424, phabricator/base/11427, phabricator/base/11429, > phabricator/base/11431, phabricator/base/11433, phabricator/base/11435, > phabricator/base/11437, phabricator/base/11439, phabricator/base/11440, > phabricator/base/11441, phabricator/base/11442, phabricator/base/11443, > phabricator/base/11446, phabricator/base/11447, phabricator/base/11448, > phabricator/base/11450, phabricator/base/11451, phabricator/base/11452, > phabricator/base/11454, phabricator/base/11456, phabricator/base/11458, > phabricator/base/11459, phabricator/base/11460, phabricator/base/11461, > phabricator/base/11462, phabricator/base/11463, phabricator/base/11464, > phabricator/base/11466, phabricator/base/11468, phabricator/base/11472, > phabricator/base/11473, phabricator/base/11474, phabricator/base/11476, > phabricator/base/11477, phabricator/base/11480, phabricator/base/11482, > phabricator/base/11486, phabricator/base/11487, phabricator/base/11488, > phabricator/base/11489, phabricator/base/11490, phabricator/base/11491, > phabricator/base/11492, phabricator/base/11493, phabricator/base/11494, > phabricator/base/11495, phabricator/base/11499, phabricator/base/11500, > phabricator/base/11504, phabricator/base/11505, phabricator/base/11506, > phabricator/base/11521, phabricator/base/11522, phabricator/base/11523, > phabricator/base/11524, phabricator/base/11525, phabricator/base/11526, > phabricator/base/11527, phabricator/base/11528, phabricator/base/11529, > phabricator/base/11530, phabricator/base/11531, phabricator/base/11532, > phabricator/base/11533, phabricator/base/11534, phabricator/base/11538, > phabricator/base/11541, phabricator/base/11543, phabricator/base/11544, > phabricator/base/11545, phabricator/base/11546, phabricator/base/11547, > phabricator/base/11548, phabricator/base/11549, phabricator/base/11557, > phabricator/base/11558, phabricator/base/11559, phabricator/base/11560, > phabricator/base/11561, phabricator/base/11562, phabricator/base/11565, > phabricator/base/11569, phabricator/base/11571, phabricator/base/11572, > phabricator/base/11573, phabricator/base/11574, phabricator/base/11575, > phabricator/base/11576, phabricator/base/11578, phabricator/base/11579, > phabricator/base/11580, phabricator/base/11581, phabricator/base/11582, > phabricator/base/11583, phabricator/base/11584, phabricator/base/11585, > phabricator/base/11586, phabricator/base/11587, phabricator/base/11588, > phabricator/base/11589, phabricator/base/11590, phabricator/base/11593, > phabricator/base/11594, phabricator/base/11602, phabricator/base/11603, > phabricator/base/11604, phabricator/base/11605, phabricator/base/11606, > phabricator/base/11607, phabricator/base/11609, phabricator/base/11610, > phabricator/base/11612, phabricator/base/11613, phabricator/base/11614, > phabricator/base/11617, phabricator/base/11618, phabricator/base/11621, > phabricator/base/11622, phabricator/base/11623, phabricator/base/11624, > phabricator/base/11625, phabricator/base/11626, phabricator/base/11627, > phabricator/base/11628, phabricator/base/11630, phabricator/base/11631, > phabricator/base/11633, phabricator/base/11634, phabricator/base/11635, > phabricator/base/11636, phabricator/base/11637, phabricator/base/11638, > phabricator/base/11639, phabricator/base/11640, phabricator/base/11643, > phabricator/base/11649, phabricator/base/11650, phabricator/base/11651, > phabricator/base/11652, phabricator/base/11653, phabricator/base/11654, > phabricator/base/11655, phabricator/base/11656, phabricator/base/11657, > phabricator/base/11661, phabricator/base/11662, phabricator/base/11663, > phabricator/base/11664, phabricator/base/11665, phabricator/base/11666, > phabricator/base/11667, phabricator/base/11668, phabricator/base/11669, > phabricator/base/11670, phabricator/base/11671, phabricator/base/11672, > phabricator/base/11674, phabricator/base/11675, phabricator/base/11676, > phabricator/base/11677, phabricator/base/11678, phabricator/base/11680, > phabricator/base/11682, phabricator/base/11683, phabricator/base/11685, > phabricator/base/11686, phabricator/base/11688, phabricator/base/11689, > phabricator/base/11690, phabricator/base/11692, phabricator/base/11693, > phabricator/base/11694, phabricator/base/11695, phabricator/base/11696, > phabricator/base/11697, phabricator/base/11698, phabricator/base/11699, > phabricator/base/11700, phabricator/base/11706, phabricator/base/11707, > phabricator/base/11708, phabricator/base/11709, phabricator/base/11711, > phabricator/base/11716, phabricator/base/11737, phabricator/base/11738, > phabricator/base/11739, phabricator/base/11743, phabricator/base/11748, > phabricator/base/11750, phabricator/base/11752, phabricator/base/11754, > phabricator/base/11755, phabricator/base/11767, phabricator/base/11768, > phabricator/base/11769, phabricator/base/11770, phabricator/base/11771, > phabricator/base/11772, phabricator/base/11773, phabricator/base/11774, > phabricator/base/11775, phabricator/base/11776, phabricator/base/11777, > phabricator/base/11778, phabricator/base/11779, phabricator/base/11780, > phabricator/base/11781, phabricator/base/11782, phabricator/base/11783, > phabricator/base/11788, phabricator/base/11789, phabricator/base/11790, > phabricator/base/11792, phabricator/base/11793, phabricator/base/11794, > phabricator/base/11795, phabricator/base/11796, phabricator/base/11797, > phabricator/base/11798, phabricator/base/11799, phabricator/base/11801, > phabricator/base/11802, phabricator/base/11803, phabricator/base/11804, > phabricator/base/11806, phabricator/base/11807, phabricator/base/11808, > phabricator/base/11809, phabricator/base/11810, phabricator/base/11813, > phabricator/base/11815, phabricator/base/11818, phabricator/base/11819, > phabricator/base/11820, phabricator/base/11821, phabricator/base/11822, > phabricator/base/11823, phabricator/base/11824, phabricator/base/11825, > phabricator/base/11827, phabricator/base/11828, phabricator/base/11829, > phabricator/base/11832, phabricator/base/11833, phabricator/base/11834, > phabricator/base/11835, phabricator/base/11836, phabricator/base/11837, > phabricator/base/11838, phabricator/base/11839, phabricator/base/11840, > phabricator/base/11841, phabricator/base/11842, phabricator/base/11843, > phabricator/base/11844, phabricator/base/11846, phabricator/base/11847, > phabricator/base/11848, phabricator/base/11849, phabricator/base/11850, > phabricator/base/11851, phabricator/base/11852, phabricator/base/11853, > phabricator/base/11854, phabricator/base/11855, phabricator/base/11856, > phabricator/base/11857, phabricator/base/11860, phabricator/base/11865, > phabricator/base/11866, phabricator/base/11867, phabricator/base/11868, > phabricator/base/11869, phabricator/base/11872, phabricator/base/11873, > phabricator/base/11874, phabricator/base/11877, phabricator/base/11878, > phabricator/base/11879, phabricator/base/11880, phabricator/base/11888, > phabricator/base/11891, phabricator/base/11892, phabricator/base/11893, > phabricator/base/11894, phabricator/base/11895, phabricator/base/11896, > phabricator/base/11897, phabricator/base/11898, phabricator/base/11906, > phabricator/base/11907, phabricator/base/11909, phabricator/base/11910, > phabricator/base/11911, phabricator/base/11912, phabricator/base/11913, > phabricator/base/11914, phabricator/base/11915, phabricator/base/11916, > phabricator/base/11918, phabricator/base/11928, phabricator/base/11929, > phabricator/base/11930, phabricator/base/11935, phabricator/base/11936, > phabricator/base/11937, phabricator/base/11938, phabricator/base/11939, > phabricator/base/11940, phabricator/base/11941, phabricator/base/11945, > phabricator/base/11946, phabricator/base/11947, phabricator/base/11948, > phabricator/base/11951, phabricator/base/11954, phabricator/base/11956, > phabricator/base/11960, phabricator/base/11961, phabricator/base/11963, > phabricator/base/11968, phabricator/base/11969, phabricator/base/11970, > phabricator/base/11971, phabricator/base/11978, phabricator/base/11979, > phabricator/base/11981, phabricator/base/11983, phabricator/base/11984, > phabricator/base/11986, phabricator/base/11989, phabricator/base/11990, > phabricator/base/11991, phabricator/base/11992, phabricator/base/11993, > phabricator/base/11994, phabricator/base/11995, phabricator/base/11997, > phabricator/base/11998, phabricator/base/11999, phabricator/base/12000, > phabricator/base/12002, phabricator/base/12003, phabricator/base/12014, > phabricator/base/12017, phabricator/base/12018, phabricator/base/12020, > phabricator/base/12021, phabricator/base/12029, phabricator/base/12030, > phabricator/base/12031, phabricator/base/12032, phabricator/base/12033, > phabricator/base/12034, phabricator/base/12035, phabricator/base/12037, > phabricator/base/12038, phabricator/base/12039, phabricator/base/12042, > phabricator/base/12045, phabricator/base/12046, phabricator/base/12048, > phabricator/base/12050, phabricator/base/12051, phabricator/base/12054, > phabricator/base/12055, phabricator/base/12057, phabricator/base/12058, > phabricator/base/12059, phabricator/base/12060, phabricator/base/12061, > phabricator/base/12062, phabricator/base/12063, phabricator/base/12064, > phabricator/base/12068, phabricator/base/12069, phabricator/base/12070, > phabricator/base/12071, phabricator/base/12072, phabricator/base/12073, > phabricator/base/12074, phabricator/base/12075, phabricator/base/12076, > phabricator/base/12077, phabricator/base/12078, phabricator/base/12079, > phabricator/base/12080, phabricator/base/12081, phabricator/base/12082, > phabricator/base/12083, phabricator/base/12084, phabricator/base/12085, > phabricator/base/12087, phabricator/base/12088, phabricator/base/12089, > phabricator/base/12090, phabricator/base/12091, phabricator/base/12092, > phabricator/base/12093, phabricator/base/12094, phabricator/base/12095, > phabricator/base/12097, phabricator/base/12098, phabricator/base/12110, > phabricator/base/12111, phabricator/base/12112, phabricator/base/12113, > phabricator/base/12115, phabricator/base/12116, phabricator/base/12117, > phabricator/base/12118, phabricator/base/12119, phabricator/base/12120, > phabricator/base/12121, phabricator/base/12122, phabricator/base/12123, > phabricator/base/12124, phabricator/base/12125, phabricator/base/12127, > phabricator/base/12128, phabricator/base/12129, phabricator/base/12130, > phabricator/base/12131, phabricator/base/12132, phabricator/base/12133, > phabricator/base/12134, phabricator/base/12135, phabricator/base/12136, > phabricator/base/12137, phabricator/base/12138, phabricator/base/12139, > phabricator/base/12141, phabricator/base/12142, phabricator/base/12143, > phabricator/base/12144, phabricator/base/12145, phabricator/base/12148, > phabricator/base/12149, phabricator/base/12150, phabricator/base/12154, > phabricator/base/12156, phabricator/base/12157, phabricator/base/12158, > phabricator/base/12159, phabricator/base/12160, phabricator/base/12161, > phabricator/base/12170, phabricator/base/12171, phabricator/base/12172, > phabricator/base/12173, phabricator/base/12174, phabricator/base/12178, > phabricator/base/12179, phabricator/base/12180, phabricator/base/12182, > phabricator/base/12183, phabricator/base/12184, phabricator/base/12186, > phabricator/base/12187, phabricator/base/12188, phabricator/base/12189, > phabricator/base/12190, phabricator/base/12191, phabricator/base/12192, > phabricator/base/12193, phabricator/base/12194, phabricator/base/12195, > phabricator/base/12197, phabricator/base/12198, phabricator/base/12199, > phabricator/base/12200, phabricator/base/12201, phabricator/base/12203, > phabricator/base/12206, phabricator/base/12211, phabricator/base/12212, > phabricator/base/12214, phabricator/base/12215, phabricator/base/12216, > phabricator/base/12217, phabricator/base/12218, phabricator/base/12219, > phabricator/base/12221, phabricator/base/12223, phabricator/base/12224, > phabricator/base/12234, phabricator/base/12235, phabricator/base/12236, > phabricator/base/12237, phabricator/base/12238, phabricator/base/12239, > phabricator/base/12240, phabricator/base/12241, phabricator/base/12242, > phabricator/base/12243, phabricator/base/12249, phabricator/base/12250, > phabricator/base/12251, phabricator/base/12252, phabricator/base/12253, > phabricator/base/12255, phabricator/base/12256, phabricator/base/12257, > phabricator/base/12258, phabricator/base/12260, phabricator/base/12261, > phabricator/base/12262, phabricator/base/12263, phabricator/base/12264, > phabricator/base/12272, phabricator/base/12273, phabricator/base/12274, > phabricator/base/12275, phabricator/base/12276, phabricator/base/12277, > phabricator/base/12278, phabricator/base/12279, phabricator/base/12280, > phabricator/base/12282, phabricator/base/12283, phabricator/base/12284, > phabricator/base/12286, phabricator/base/12287, phabricator/base/12288, > phabricator/base/12289, phabricator/base/12290, phabricator/base/12291, > phabricator/base/12292, phabricator/base/12293, phabricator/base/12294, > phabricator/base/12295, phabricator/base/12296, phabricator/base/12297, > phabricator/base/12298, phabricator/base/12299, phabricator/base/12301, > phabricator/base/12307, phabricator/base/12308, phabricator/base/12309, > phabricator/base/12310, phabricator/base/12311, phabricator/base/12315, > phabricator/base/12316, phabricator/base/12318, phabricator/base/12320, > phabricator/base/12322, phabricator/base/12323, phabricator/base/12324, > phabricator/base/12326, phabricator/base/12328, phabricator/base/12329, > phabricator/base/12332, phabricator/base/12333, phabricator/base/12334, > phabricator/base/12338, phabricator/base/12339, phabricator/base/12340, > phabricator/base/12341, phabricator/base/12342, phabricator/base/12343, > phabricator/base/12346, phabricator/base/12347, phabricator/base/12348, > phabricator/base/12349, phabricator/base/12350, phabricator/base/12351, > phabricator/base/12352, phabricator/base/12353, phabricator/base/12354, > phabricator/base/12355, phabricator/base/12356, phabricator/base/12357, > phabricator/base/12358, phabricator/base/12359, phabricator/base/12360, > phabricator/base/12361, phabricator/base/12362, phabricator/base/12363, > phabricator/base/12364, phabricator/base/12365, phabricator/base/12369, > phabricator/base/12371, phabricator/base/12372, phabricator/base/12373, > phabricator/base/12374, phabricator/base/12375, phabricator/base/12376, > phabricator/base/12377, phabricator/base/12378, phabricator/base/12379, > phabricator/base/12381, phabricator/base/12382, phabricator/base/12383, > phabricator/base/12387, phabricator/base/12403, phabricator/base/12404, > phabricator/base/12407, phabricator/base/12411, phabricator/base/12412, > phabricator/base/12413, phabricator/base/12414, phabricator/base/12415, > phabricator/base/12416, phabricator/base/12417, phabricator/base/12418, > phabricator/base/12419, phabricator/base/12420, phabricator/base/12421, > phabricator/base/12424, phabricator/base/12435, phabricator/base/12436, > phabricator/base/12437, phabricator/base/12438, phabricator/base/12439, > phabricator/base/12440, phabricator/base/12448, phabricator/base/12449, > phabricator/base/12450, phabricator/base/12452, phabricator/base/12454, > phabricator/base/12455, phabricator/base/12456, phabricator/base/12457, > phabricator/base/12458, phabricator/base/12459, phabricator/base/12460, > phabricator/base/12461, phabricator/base/12462, phabricator/base/12463, > phabricator/base/12464, phabricator/base/12465, phabricator/base/12467, > phabricator/base/12468, phabricator/base/12469, phabricator/base/12470, > phabricator/base/12471, phabricator/base/12472, phabricator/base/12473, > phabricator/base/12474, phabricator/base/12475, phabricator/base/12476, > phabricator/base/12477, phabricator/base/12478, phabricator/base/12479, > phabricator/base/12480, phabricator/base/12481, phabricator/base/12484, > phabricator/base/12485, phabricator/base/12486, phabricator/base/12487, > phabricator/base/12488, phabricator/base/12489, phabricator/base/12490, > phabricator/base/12491, phabricator/base/12492, phabricator/base/12493, > phabricator/base/12494, phabricator/base/12495, phabricator/base/12496, > phabricator/base/12497, phabricator/base/12498, phabricator/base/12499, > phabricator/base/12509, phabricator/base/12510, phabricator/base/12511, > phabricator/base/12512, phabricator/base/12513, phabricator/base/12514, > phabricator/base/12515, phabricator/base/12517, phabricator/base/12518, > phabricator/base/12519, phabricator/base/12520, phabricator/base/12521, > phabricator/base/12522, phabricator/base/12523, phabricator/base/12534, > phabricator/base/12535, phabricator/base/12536, phabricator/base/12540, > phabricator/base/12541, phabricator/base/12542, phabricator/base/12544, > phabricator/base/12546, phabricator/base/12548, phabricator/base/12549, > phabricator/base/12550, phabricator/base/12551, phabricator/base/12552, > phabricator/base/12553, phabricator/base/12554, phabricator/base/12555, > phabricator/base/12556, phabricator/base/12557, phabricator/base/12558, > phabricator/base/12559, phabricator/base/12560, phabricator/base/12562, > phabricator/base/12563, phabricator/base/12564, phabricator/base/12565, > phabricator/base/12567, phabricator/base/12568, phabricator/base/12569, > phabricator/base/12570, phabricator/base/12571, phabricator/base/12572, > phabricator/base/12573, phabricator/base/12575, phabricator/base/12576, > phabricator/base/12577, phabricator/base/12578, phabricator/base/12579, > phabricator/base/12581, phabricator/base/12582, phabricator/base/12583, > phabricator/base/12584, phabricator/base/12585, phabricator/base/12586, > phabricator/base/12587, phabricator/base/12588, phabricator/base/12589, > phabricator/base/12590, phabricator/base/12591, phabricator/base/12592, > phabricator/base/12601, phabricator/base/12602, phabricator/base/12604, > phabricator/base/12605, phabricator/base/12606, phabricator/base/12607, > phabricator/base/12608, phabricator/base/12609, phabricator/base/12611, > phabricator/base/12612, phabricator/base/12613, phabricator/base/12614, > phabricator/base/12618, phabricator/base/12620, phabricator/base/12621, > phabricator/base/12622, phabricator/base/12623, phabricator/base/12624, > phabricator/base/12626, phabricator/base/12627, phabricator/base/12628, > phabricator/base/12629, phabricator/base/12630, phabricator/base/12632, > phabricator/base/12633, phabricator/base/12634, phabricator/base/12637, > phabricator/base/12638, phabricator/base/12639, phabricator/base/12646, > phabricator/base/12647, phabricator/base/12648, phabricator/base/12649, > phabricator/base/12650, phabricator/base/12651, phabricator/base/12652, > phabricator/base/12653, phabricator/base/12654, phabricator/base/12655, > phabricator/base/12656, phabricator/base/12657, phabricator/base/12658, > phabricator/base/12659, phabricator/base/12660, phabricator/base/12661, > phabricator/base/12662, phabricator/base/12663, phabricator/base/12664, > phabricator/base/12665, phabricator/base/12667, phabricator/base/12668, > phabricator/base/12669, phabricator/base/12680, phabricator/base/12681, > phabricator/base/12682, phabricator/base/12683, phabricator/base/12684, > phabricator/base/12685, phabricator/base/12687, phabricator/base/12689, > phabricator/base/12690, phabricator/base/12691, phabricator/base/12692, > phabricator/base/12693, phabricator/base/12695, phabricator/base/12696, > phabricator/base/12698, phabricator/base/12699, phabricator/base/12700, > phabricator/base/12701, phabricator/base/12702, phabricator/base/12703, > phabricator/base/12704, phabricator/base/12705, phabricator/base/12708, > phabricator/base/12709, phabricator/base/12710, phabricator/base/12711, > phabricator/base/12712, phabricator/base/12713, phabricator/base/12714, > phabricator/base/12715, phabricator/base/12716, phabricator/base/12717, > phabricator/base/12718, phabricator/base/12719, phabricator/base/12720, > phabricator/base/12722, phabricator/base/12723, phabricator/base/12724, > phabricator/base/12725, phabricator/base/12728, phabricator/base/12729, > phabricator/base/12730, phabricator/base/12731, phabricator/base/12732, > phabricator/base/12733, phabricator/base/12734, phabricator/base/12735, > phabricator/base/12736, phabricator/base/12737, phabricator/base/12738, > phabricator/base/12739, phabricator/base/12740, phabricator/base/12741, > phabricator/base/12742, phabricator/base/12743, phabricator/base/12752, > phabricator/base/12753, phabricator/base/12754, phabricator/base/12755, > phabricator/base/12756, phabricator/base/12757, phabricator/base/12758, > phabricator/base/12759, phabricator/base/12760, phabricator/base/12761, > phabricator/base/12762, phabricator/base/12764, phabricator/base/12766, > phabricator/base/12767, phabricator/base/12768, phabricator/base/12769, > phabricator/base/12770, phabricator/base/12771, phabricator/base/12772, > phabricator/base/12773, phabricator/base/12774, phabricator/base/12775, > phabricator/base/12776, phabricator/base/12777, phabricator/base/12778, > phabricator/base/12779, phabricator/base/12780, phabricator/base/12781, > phabricator/base/12782, phabricator/base/12784, phabricator/base/12785, > phabricator/base/12788, phabricator/base/12796, phabricator/base/12797, > phabricator/base/12802, phabricator/base/12804, phabricator/base/12805, > phabricator/base/12806, phabricator/base/12807, phabricator/base/12808, > phabricator/base/12810, phabricator/base/12811, phabricator/base/12812, > phabricator/base/12813, phabricator/base/12815, phabricator/base/12817, > phabricator/base/12826, phabricator/base/12827, phabricator/base/12828, > phabricator/base/12829, phabricator/base/12830, phabricator/base/12831, > phabricator/base/12834, phabricator/base/12839, phabricator/base/12840, > phabricator/base/12842, phabricator/base/12843, phabricator/base/12844, > phabricator/base/12845, phabricator/base/12846, phabricator/base/12847, > phabricator/base/12848, phabricator/base/12849, phabricator/base/12850, > phabricator/base/12851, phabricator/base/12852, phabricator/base/12853, > phabricator/base/12854, phabricator/base/12855, phabricator/base/12856, > phabricator/base/12858, phabricator/base/12860, phabricator/base/12861, > phabricator/base/12862, phabricator/base/12864, phabricator/base/12866, > phabricator/base/12867, phabricator/base/12869, phabricator/base/12870, > phabricator/base/12871, phabricator/base/12872, phabricator/base/12873, > phabricator/base/12875, phabricator/base/12884, phabricator/base/12885, > phabricator/base/12886, phabricator/base/12887, phabricator/base/12888, > phabricator/base/12889, phabricator/base/12890, phabricator/base/12891, > phabricator/base/12892, phabricator/base/12893, phabricator/base/12894, > phabricator/base/12895, phabricator/base/12899, phabricator/base/12900, > phabricator/base/12901, phabricator/base/12902, phabricator/base/12903, > phabricator/base/12904, phabricator/base/12905, phabricator/base/12912, > phabricator/base/12914, phabricator/base/12915, phabricator/base/12916, > phabricator/base/12917, phabricator/base/12918, phabricator/base/12919, > phabricator/base/12920, phabricator/base/12921, phabricator/base/12922, > phabricator/base/12923, phabricator/base/12924, phabricator/base/12925, > phabricator/base/12926, phabricator/base/12927, phabricator/base/12928, > phabricator/base/12929, phabricator/base/12930, phabricator/base/12931, > phabricator/base/12932, phabricator/base/12936, phabricator/base/12937, > phabricator/base/12938, phabricator/base/12939, phabricator/base/12940, > phabricator/base/12941, phabricator/base/12942, phabricator/base/12943, > phabricator/base/12950, phabricator/base/12951, phabricator/base/12952, > phabricator/base/12953, phabricator/base/12954, phabricator/base/12955, > phabricator/base/12956, phabricator/base/12957, phabricator/base/12958, > phabricator/base/12959, phabricator/base/12961, phabricator/base/12962, > phabricator/base/12963, phabricator/base/12964, phabricator/base/12965, > phabricator/base/12966, phabricator/base/12967, phabricator/base/12975, > phabricator/base/12976, phabricator/base/12977, phabricator/base/12978, > phabricator/base/12979, phabricator/base/12982, phabricator/base/12984, > phabricator/base/12985, phabricator/base/12986, phabricator/base/12987, > phabricator/base/12988, phabricator/base/12989, phabricator/base/12990, > phabricator/base/12991, phabricator/base/12992, phabricator/base/12993, > phabricator/base/12994, phabricator/base/12995, phabricator/base/12996, > phabricator/base/12997, phabricator/base/12998, phabricator/base/12999, > phabricator/base/13001, phabricator/base/13003, phabricator/base/13004, > phabricator/base/13005, phabricator/base/13006, phabricator/base/13007, > phabricator/base/13008, phabricator/base/13024, phabricator/base/13027, > phabricator/base/13028, phabricator/base/13029, phabricator/base/13030, > phabricator/base/13031, phabricator/base/13033, phabricator/base/13034, > phabricator/base/13035, phabricator/base/13036, phabricator/base/13037, > phabricator/base/13038, phabricator/base/13039, phabricator/base/13040, > phabricator/base/13041, phabricator/base/13042, phabricator/base/13043, > phabricator/base/13044, phabricator/base/13045, phabricator/base/13046, > phabricator/base/13047, phabricator/base/13048, phabricator/base/13049, > phabricator/base/13050, phabricator/base/13051, phabricator/base/13052, > phabricator/base/13054, phabricator/base/13055, phabricator/base/13056, > phabricator/base/13057, phabricator/base/13058, phabricator/base/13060, > phabricator/base/13061, phabricator/base/13062, phabricator/base/13063, > phabricator/base/13064, phabricator/base/13065, phabricator/base/13066, > phabricator/base/13068, phabricator/base/13069, phabricator/base/13070, > phabricator/base/13071, phabricator/base/13072, phabricator/base/13073, > phabricator/base/13075, phabricator/base/13076, phabricator/base/13077, > phabricator/base/13078, phabricator/base/13079, phabricator/base/13080, > phabricator/base/13081, phabricator/base/13082, phabricator/base/13083, > phabricator/base/13084, phabricator/base/13085, phabricator/base/13086, > phabricator/base/13087, phabricator/base/13088, phabricator/base/13089, > phabricator/base/13090, phabricator/base/13091, phabricator/base/13092, > phabricator/base/13093, phabricator/base/13094, phabricator/base/13105, > phabricator/base/13118, phabricator/base/13122, phabricator/base/13123, > phabricator/base/13124, phabricator/base/13125, phabricator/base/13126, > phabricator/base/13127, phabricator/base/13128, phabricator/base/13130, > phabricator/base/13131, phabricator/base/13132, phabricator/base/13133, > phabricator/base/13134, phabricator/base/13135, phabricator/base/13136, > phabricator/base/13139, phabricator/base/13140, phabricator/base/13141, > phabricator/base/13143, phabricator/base/13144, phabricator/base/13145, > phabricator/base/13146, phabricator/base/13147, phabricator/base/13153, > phabricator/base/13154, phabricator/base/13155, phabricator/base/13156, > phabricator/base/13157, phabricator/base/13158, phabricator/base/13159, > phabricator/base/13160, phabricator/base/13161, phabricator/base/13162, > phabricator/base/13163, phabricator/base/13164, phabricator/base/13165, > phabricator/base/13166, phabricator/base/13167, phabricator/base/13168, > phabricator/base/13169, phabricator/base/13170, phabricator/base/13171, > phabricator/base/13172, phabricator/base/13174, phabricator/base/13175, > phabricator/base/13177, phabricator/base/13180, phabricator/base/13181, > phabricator/base/13182, phabricator/base/13183, phabricator/base/13184, > phabricator/base/13185, phabricator/base/13186, phabricator/base/13187, > phabricator/base/13188, phabricator/base/13189, phabricator/base/13190, > phabricator/base/13191, phabricator/base/13192, phabricator/base/13193, > phabricator/base/13194, phabricator/base/13195, phabricator/base/13196, > phabricator/base/13197, phabricator/base/13198, phabricator/base/13199, > phabricator/base/13200, phabricator/base/13201, phabricator/base/13202, > phabricator/base/13203, phabricator/base/13204, phabricator/base/13205, > phabricator/base/13206, phabricator/base/13208, phabricator/base/13213, > phabricator/base/13214, phabricator/base/13215, phabricator/base/13216, > phabricator/base/13217, phabricator/base/13218, phabricator/base/13220, > phabricator/base/13221, phabricator/base/13222, phabricator/base/13223, > phabricator/base/13224, phabricator/base/13225, phabricator/base/13226, > phabricator/base/13228, phabricator/base/13229, phabricator/base/13230, > phabricator/base/13233, phabricator/base/13234, phabricator/base/13235, > phabricator/base/13236, phabricator/base/13237, phabricator/base/13238, > phabricator/base/13239, phabricator/base/13240, phabricator/base/13241, > phabricator/base/13242, phabricator/base/13243, phabricator/base/13244, > phabricator/base/13251, phabricator/base/13253, phabricator/base/13254, > phabricator/base/13257, phabricator/base/13265, phabricator/base/13266, > phabricator/base/13267, phabricator/base/13268, phabricator/base/13269, > phabricator/base/13271, phabricator/base/13272, phabricator/base/13273, > phabricator/base/13274, phabricator/base/13275, phabricator/base/13276, > phabricator/base/13277, phabricator/base/13279, phabricator/base/13280, > phabricator/base/13281, phabricator/base/13282, phabricator/base/13284, > phabricator/base/13285, phabricator/base/13286, phabricator/base/13287, > phabricator/base/13289, phabricator/base/13291, phabricator/base/13292, > phabricator/base/13295, phabricator/base/13296, phabricator/base/13297, > phabricator/base/13298, phabricator/base/13299, phabricator/base/13303, > phabricator/base/13305, phabricator/base/13306, phabricator/base/13307, > phabricator/base/13308, phabricator/base/13309, phabricator/base/13310, > phabricator/base/13313, phabricator/base/13314, phabricator/base/13322, > phabricator/base/13323, phabricator/base/13324, phabricator/base/13325, > phabricator/base/13326, phabricator/base/13328, phabricator/base/13329, > phabricator/base/13330, phabricator/base/13331, phabricator/base/13332, > phabricator/base/13334, phabricator/base/13335, phabricator/base/13337, > phabricator/base/13338, phabricator/base/13339, phabricator/base/13342, > phabricator/base/13343, phabricator/base/13344, phabricator/base/13345, > phabricator/base/13346, phabricator/base/13347, phabricator/base/13348, > phabricator/base/13351, phabricator/base/13352, phabricator/base/13353, > phabricator/base/13354, phabricator/base/13355, phabricator/base/13356, > phabricator/base/13357, phabricator/base/13358, phabricator/base/13359, > phabricator/base/13360, phabricator/base/13361, phabricator/base/13362, > phabricator/base/13363, phabricator/base/13364, phabricator/base/13368, > phabricator/base/13369, phabricator/base/13376, phabricator/base/13377, > phabricator/base/13378, phabricator/base/13379, phabricator/base/13380, > phabricator/base/13381, phabricator/base/13389, phabricator/base/13390, > phabricator/base/13391, phabricator/base/13392, phabricator/base/13393, > phabricator/base/13395, phabricator/base/13396, phabricator/base/13397, > phabricator/base/13398, phabricator/base/13400, phabricator/base/13401, > phabricator/base/13402, phabricator/base/13403, phabricator/base/13404, > phabricator/base/13419, phabricator/base/13420, phabricator/base/13422, > phabricator/base/13424, phabricator/base/13426, phabricator/base/13427, > phabricator/base/13430, phabricator/base/13431, phabricator/base/13432, > phabricator/base/13433, phabricator/base/13434, phabricator/base/13439, > phabricator/base/13440, phabricator/base/13441, phabricator/base/13443, > phabricator/base/13444, phabricator/base/13445, phabricator/base/13449, > phabricator/base/13451, phabricator/base/13453, phabricator/base/13454, > phabricator/base/13455, phabricator/base/13456, phabricator/base/13457, > phabricator/base/13458, phabricator/base/13459, phabricator/base/13460, > phabricator/base/13461, phabricator/base/13462, phabricator/base/13463, > phabricator/base/13464, phabricator/base/13465, phabricator/base/13466, > phabricator/base/13467, phabricator/base/13468, phabricator/base/13469, > phabricator/base/13470, phabricator/base/13471, phabricator/base/13472, > phabricator/base/13473, phabricator/base/13474, phabricator/base/13475, > phabricator/base/13476, phabricator/base/13477, phabricator/base/13478, > phabricator/base/13479, phabricator/base/13480, phabricator/base/13486, > phabricator/base/13487, phabricator/base/13488, phabricator/base/13489, > phabricator/base/13495, phabricator/base/13497, phabricator/base/13498, > phabricator/base/13499, phabricator/base/13501, phabricator/base/13503, > phabricator/base/13504, phabricator/base/13505, phabricator/base/13513, > phabricator/base/13514, phabricator/base/13519, phabricator/base/13520, > phabricator/base/13521, phabricator/base/13522, phabricator/base/13523, > phabricator/base/13524, phabricator/base/13525, phabricator/base/13526, > phabricator/base/13527, phabricator/base/13528, phabricator/base/13529, > phabricator/base/13531, phabricator/base/13532, phabricator/base/13533, > phabricator/base/13534, phabricator/base/13535, phabricator/base/13538, > phabricator/base/13539, phabricator/base/13540, phabricator/base/13544, > phabricator/base/13545, phabricator/base/13546, phabricator/base/13548, > phabricator/base/13556, phabricator/base/13557, phabricator/base/13558, > phabricator/base/13559, phabricator/base/13560, phabricator/base/13561, > phabricator/base/13562, phabricator/base/13563, phabricator/base/13567, > phabricator/base/13568, phabricator/base/13569, phabricator/base/13571, > phabricator/base/13572, phabricator/base/13573, phabricator/base/13574, > phabricator/base/13575, phabricator/base/13576, phabricator/base/13577, > phabricator/base/13578, phabricator/base/13579, phabricator/base/13580, > phabricator/base/13581, phabricator/base/13582, phabricator/base/13583, > phabricator/base/13584, phabricator/base/13585, phabricator/base/13586, > phabricator/base/13587, phabricator/base/13588, phabricator/base/13590, > phabricator/base/13591, phabricator/base/13592, phabricator/base/13593, > phabricator/base/13594, phabricator/base/13604, phabricator/base/13605, > phabricator/base/13608, phabricator/base/13609, phabricator/base/13610, > phabricator/base/13614, phabricator/base/13615, phabricator/base/13616, > phabricator/base/13617, phabricator/base/13618, phabricator/base/13619, > phabricator/base/13622, phabricator/base/13628, phabricator/base/13629, > phabricator/base/13630, phabricator/base/13631, phabricator/base/13639, > phabricator/base/13641, phabricator/base/13642, phabricator/base/13643, > phabricator/base/13645, phabricator/base/13646, phabricator/base/13647, > phabricator/base/13648, phabricator/base/13649, phabricator/base/13650, > phabricator/base/13651, phabricator/base/13652, phabricator/base/13653, > phabricator/base/13654, phabricator/base/13655, phabricator/base/13656, > phabricator/base/13657, phabricator/base/13659, phabricator/base/13660, > phabricator/base/13665, phabricator/base/13666, phabricator/base/13667, > phabricator/base/13668, phabricator/base/13674, phabricator/base/13676, > phabricator/base/13680, phabricator/base/13681, phabricator/base/13682, > phabricator/base/13684, phabricator/base/13685, phabricator/base/13686, > phabricator/base/13687, phabricator/base/13688, phabricator/base/13689, > phabricator/base/13690, phabricator/base/13691, phabricator/base/13692, > phabricator/base/13693, phabricator/base/13695, phabricator/base/13696, > phabricator/base/13697, phabricator/base/13700, phabricator/base/13701, > phabricator/base/13702, phabricator/base/13703, phabricator/base/13704, > phabricator/base/13705, phabricator/base/13706, phabricator/base/13707, > phabricator/base/13708, phabricator/base/13709, phabricator/base/13713, > phabricator/base/13714, phabricator/base/13717, phabricator/base/13718, > phabricator/base/13719, phabricator/base/13725, phabricator/base/13726, > phabricator/base/13727, phabricator/base/13728, phabricator/base/13729, > phabricator/base/13730, phabricator/base/13731, phabricator/base/13732, > phabricator/base/13733, phabricator/base/13734, phabricator/base/13735, > phabricator/base/13736, phabricator/base/13737, phabricator/base/13738, > phabricator/base/13751, phabricator/base/13752, phabricator/base/13753, > phabricator/base/13754, phabricator/base/13755, phabricator/base/13757, > phabricator/base/13758, phabricator/base/13759, phabricator/base/13760, > phabricator/base/13761, phabricator/base/13762, phabricator/base/13766, > phabricator/base/13768, phabricator/base/13769, phabricator/base/13770, > phabricator/base/13771, phabricator/base/13772, phabricator/base/13774, > phabricator/base/13775, phabricator/base/13776, phabricator/base/13779, > phabricator/base/13780, phabricator/base/13784, phabricator/base/13785, > phabricator/base/13786, phabricator/base/13787, phabricator/base/13788, > phabricator/base/13789, phabricator/base/13790, phabricator/base/13791, > phabricator/base/13792, phabricator/base/13793, phabricator/base/13794, > phabricator/base/13795, phabricator/base/13796, phabricator/base/13797, > phabricator/base/13798, phabricator/base/13799, phabricator/base/13800, > phabricator/base/13801, phabricator/base/13802, phabricator/base/13803, > phabricator/base/13804, phabricator/base/13809, phabricator/base/13810, > phabricator/base/13811, phabricator/base/13813, phabricator/base/13814, > phabricator/base/13815, phabricator/base/13817, phabricator/base/13819, > phabricator/base/13820, phabricator/base/13825, phabricator/base/13826, > phabricator/base/13829, phabricator/base/13831, phabricator/base/13835, > phabricator/base/13836, phabricator/base/13840, phabricator/base/13841, > phabricator/base/13842, phabricator/base/13843, phabricator/base/13844, > phabricator/base/13845, phabricator/base/13846, phabricator/base/13855, > phabricator/base/13857, phabricator/base/13858, phabricator/base/13859, > phabricator/base/13865, phabricator/base/13866, phabricator/base/13867, > phabricator/base/13869, phabricator/base/13870, phabricator/base/13871, > phabricator/base/13872, phabricator/base/13873, phabricator/base/13874, > phabricator/base/13875, phabricator/base/13876, phabricator/base/13877, > phabricator/base/13878, phabricator/base/13879, phabricator/base/13880, > phabricator/base/13881, phabricator/base/13882, phabricator/base/13883, > phabricator/base/13884, phabricator/base/13885, phabricator/base/13886, > phabricator/base/13887, phabricator/base/13888, phabricator/base/13890, > phabricator/base/13891, phabricator/base/13893, phabricator/base/13894, > phabricator/base/13895, phabricator/base/13896, phabricator/base/13897, > phabricator/base/13898, phabricator/base/13899, phabricator/base/13901, > phabricator/base/13902, phabricator/base/13903, phabricator/base/13904, > phabricator/base/13905, phabricator/base/13906, phabricator/base/13907, > phabricator/base/13908, phabricator/base/13915, phabricator/base/13916, > phabricator/base/13917, phabricator/base/13918, phabricator/base/13919, > phabricator/base/13920, phabricator/base/13921, phabricator/base/13922, > phabricator/base/13923, phabricator/base/13924, phabricator/base/13925, > phabricator/base/13926, phabricator/base/13927, phabricator/base/13928, > phabricator/base/13929, phabricator/base/13930, phabricator/base/13931, > phabricator/base/13932, phabricator/base/13933, phabricator/base/13934, > phabricator/base/13935, phabricator/base/13936, phabricator/base/13937, > phabricator/base/13939, phabricator/base/13940, phabricator/base/13941, > phabricator/base/13943, phabricator/base/13944, phabricator/base/13945, > phabricator/base/13946, phabricator/base/13947, phabricator/base/13948, > phabricator/base/13949, phabricator/base/13950, phabricator/base/13951, > phabricator/base/13952, phabricator/base/13955, phabricator/base/13956, > phabricator/base/13958, phabricator/base/13959, phabricator/base/13960, > phabricator/base/13961, phabricator/base/13962, phabricator/base/13965, > phabricator/base/13966, phabricator/base/13967, phabricator/base/13968, > phabricator/base/13969, phabricator/base/13973, phabricator/base/13974, > phabricator/base/13976, phabricator/base/13977, phabricator/base/13978, > phabricator/base/13979, phabricator/base/13980, phabricator/base/13989, > phabricator/base/13995, phabricator/base/13996, phabricator/base/13997, > phabricator/base/13998, phabricator/base/13999, phabricator/base/14000, > phabricator/base/14001, phabricator/base/14002, phabricator/base/14003, > phabricator/base/14006, phabricator/base/14007, phabricator/base/14008, > phabricator/base/14013, phabricator/base/14015, phabricator/base/14016, > phabricator/base/14017, phabricator/base/14018, phabricator/base/14019, > phabricator/base/14020, phabricator/base/14021, phabricator/base/14022, > phabricator/base/14023, phabricator/base/14024, phabricator/base/14030, > phabricator/base/14033, phabricator/base/14034, phabricator/base/14035, > phabricator/base/14041, phabricator/base/14042, phabricator/base/14043, > phabricator/base/14044, phabricator/base/14045, phabricator/base/14046, > phabricator/base/14047, phabricator/base/14048, phabricator/base/14049, > phabricator/base/14050, phabricator/base/14051, phabricator/base/14052, > phabricator/base/14053, phabricator/base/14055, phabricator/base/14056, > phabricator/base/14057, phabricator/base/14058, phabricator/base/14059, > phabricator/base/14060, phabricator/base/14061, phabricator/base/14062, > phabricator/base/14063, phabricator/base/14064, phabricator/base/14067, > phabricator/base/14068, phabricator/base/14071, phabricator/base/14072, > phabricator/base/14073, phabricator/base/14075, phabricator/base/14076, > phabricator/base/14078, phabricator/base/14081, phabricator/base/14082, > phabricator/base/14083, phabricator/base/14084, phabricator/base/14085, > phabricator/base/14086, phabricator/base/14087, phabricator/base/14088, > phabricator/base/14089, phabricator/base/14090, phabricator/base/14091, > phabricator/base/14095, phabricator/base/14096, phabricator/base/14097, > phabricator/base/14098, phabricator/base/14099, phabricator/base/14100, > phabricator/base/14101, phabricator/base/14102, phabricator/base/14103, > phabricator/base/14115, phabricator/base/14116, phabricator/base/14117, > phabricator/base/14118, phabricator/base/14119, phabricator/base/14120, > phabricator/base/14121, phabricator/base/14122, phabricator/base/14123, > phabricator/base/14124, phabricator/base/14125, phabricator/base/14126, > phabricator/base/14127, phabricator/base/14128, phabricator/base/14129, > phabricator/base/14136, phabricator/base/14137, phabricator/base/14138, > phabricator/base/14139, phabricator/base/14140, phabricator/base/14141, > phabricator/base/14146, phabricator/base/14147, phabricator/base/14148, > phabricator/base/14150, phabricator/base/14151, phabricator/base/14152, > phabricator/base/14153, phabricator/base/14154, phabricator/base/14155, > phabricator/base/14156, phabricator/base/14159, phabricator/base/14160, > phabricator/base/14161, phabricator/base/14162, phabricator/base/14163, > phabricator/base/14164, phabricator/base/14165, phabricator/base/14166, > phabricator/base/14167, phabricator/base/14173, phabricator/base/14174, > phabricator/base/14175, phabricator/base/14176, phabricator/base/14177, > phabricator/base/14178, phabricator/base/14181, phabricator/base/14183, > phabricator/base/14184, phabricator/base/14186, phabricator/base/14187, > phabricator/base/14189, phabricator/base/14191, phabricator/base/14192, > phabricator/base/14193, phabricator/base/14194, phabricator/base/14195, > phabricator/base/14196, phabricator/base/14197, phabricator/base/14198, > phabricator/base/14199, phabricator/base/14201, phabricator/base/14202, > phabricator/base/14203, phabricator/base/14204, phabricator/base/14210, > phabricator/base/14211, phabricator/base/14212, phabricator/base/14213, > phabricator/base/14214, phabricator/base/14215, phabricator/base/14216, > phabricator/base/14217, phabricator/base/14218, phabricator/base/14219, > phabricator/base/14220, phabricator/base/14221, phabricator/base/14222, > phabricator/base/14223, phabricator/base/14224, phabricator/base/14226, > phabricator/base/14228, phabricator/base/14229, phabricator/base/14231, > phabricator/base/14233, phabricator/base/14234, phabricator/base/14236, > phabricator/base/14237, phabricator/base/14238, phabricator/base/14239, > phabricator/base/14241, phabricator/base/14252, phabricator/base/14253, > phabricator/base/14254, phabricator/base/14255, phabricator/base/14256, > phabricator/base/14257, phabricator/base/14259, phabricator/base/14260, > phabricator/base/14261, phabricator/base/14262, phabricator/base/14263, > phabricator/base/14264, phabricator/base/14265, phabricator/base/14266, > phabricator/base/14267, phabricator/base/14268, phabricator/base/14269, > phabricator/base/14271, phabricator/base/14273, phabricator/base/14275, > phabricator/base/14276, phabricator/base/14277, phabricator/base/14279, > phabricator/base/14280, phabricator/base/14284, phabricator/base/14285, > phabricator/base/14286, phabricator/base/14289, phabricator/base/14290, > phabricator/base/14291, phabricator/base/14293, phabricator/base/14294, > phabricator/base/14298, phabricator/base/14302, phabricator/base/14303, > phabricator/base/14305, phabricator/base/14308, phabricator/base/14309, > phabricator/base/14310, phabricator/base/14312, phabricator/base/14313, > phabricator/base/14314, phabricator/base/14315, phabricator/base/14318, > phabricator/base/14319, phabricator/base/14320, phabricator/base/14321, > phabricator/base/14323, phabricator/base/14324, phabricator/base/14325, > phabricator/base/14328, phabricator/base/14329, phabricator/base/14330, > phabricator/base/14331, phabricator/base/14332, phabricator/base/14333, > phabricator/base/14334, phabricator/base/14335, phabricator/base/14336, > phabricator/base/14337, phabricator/base/14338, phabricator/base/14339, > phabricator/base/14340, phabricator/base/14342, phabricator/base/14343, > phabricator/base/14344, phabricator/base/14345, phabricator/base/14347, > phabricator/base/14348, phabricator/base/14349, phabricator/base/14350, > phabricator/base/14351, phabricator/base/14352, phabricator/base/14353, > phabricator/base/14355, phabricator/base/14356, phabricator/base/14357, > phabricator/base/14358, phabricator/base/14359, phabricator/base/14360, > phabricator/base/14361, phabricator/base/14364, phabricator/base/14369, > phabricator/base/14375, phabricator/base/14376, phabricator/base/14377, > phabricator/base/14378, phabricator/base/14379, phabricator/base/14380, > phabricator/base/14381, phabricator/base/14382, phabricator/base/14383, > phabricator/base/14384, phabricator/base/14385, phabricator/base/14386, > phabricator/base/14387, phabricator/base/14388, phabricator/base/14389, > phabricator/base/14390, phabricator/base/14391, phabricator/base/14392, > phabricator/base/14396, phabricator/base/14397, phabricator/base/14400, > phabricator/base/14401, phabricator/base/14403, phabricator/base/14404, > phabricator/base/14405, phabricator/base/14410, phabricator/base/14411, > phabricator/base/14412, phabricator/base/14413, phabricator/base/14416, > phabricator/base/14417, phabricator/base/14418, phabricator/base/14419, > phabricator/base/14420, phabricator/base/14421, phabricator/base/14422, > phabricator/base/14423, phabricator/base/14424, phabricator/base/14425, > phabricator/base/14426, phabricator/base/14427, phabricator/base/14428, > phabricator/base/14429, phabricator/base/14434, phabricator/base/14435, > phabricator/base/14436, phabricator/base/14438, phabricator/base/14439, > phabricator/base/14440, phabricator/base/14443, phabricator/base/14444, > phabricator/base/14446, phabricator/base/14447, phabricator/base/14448, > phabricator/base/14449, phabricator/base/14450, phabricator/base/14451, > phabricator/base/14454, phabricator/base/14456, phabricator/base/14457, > phabricator/base/14458, phabricator/base/14467, phabricator/base/14474, > phabricator/base/14475, phabricator/base/14476, phabricator/base/14477, > phabricator/base/14479, phabricator/base/14480, phabricator/base/14481, > phabricator/base/14482, phabricator/base/14484, phabricator/base/14489, > phabricator/base/14494, phabricator/base/14495, phabricator/base/14496, > phabricator/base/14499, phabricator/base/14500, phabricator/base/14501, > phabricator/base/14502, phabricator/base/14503, phabricator/base/14505, > phabricator/base/14506, phabricator/base/14512, phabricator/base/14513, > phabricator/base/14514, phabricator/base/14515, phabricator/base/14516, > phabricator/base/14517, phabricator/base/14518, phabricator/base/14519, > phabricator/base/14520, phabricator/base/14521, phabricator/base/14522, > phabricator/base/14523, phabricator/base/14524, phabricator/base/14525, > phabricator/base/14526, phabricator/base/14527, phabricator/base/14528, > phabricator/base/14529, phabricator/base/14530, phabricator/base/14531, > phabricator/base/14532, phabricator/base/14533, phabricator/base/14534, > phabricator/base/14535, phabricator/base/14536, phabricator/base/14537, > phabricator/base/14544, phabricator/base/14545, phabricator/base/14546, > phabricator/base/14549, phabricator/base/14555, phabricator/base/14556, > phabricator/base/14557, phabricator/base/14558, phabricator/base/14559, > phabricator/base/14560, phabricator/base/14561, phabricator/base/14562, > phabricator/base/14563, phabricator/base/14564, phabricator/base/14565, > phabricator/base/14566, phabricator/base/14567, phabricator/base/14568, > phabricator/base/14570, phabricator/base/14571, phabricator/base/14572, > phabricator/base/14573, phabricator/base/14574, phabricator/base/14575, > phabricator/base/14576, phabricator/base/14577, phabricator/base/14578, > phabricator/base/14579, phabricator/base/14580, phabricator/base/14581, > phabricator/base/14582, phabricator/base/14583, phabricator/base/14584, > phabricator/base/14585, phabricator/base/14594, phabricator/base/14595, > phabricator/base/14596, phabricator/base/14598, phabricator/base/14599, > phabricator/base/14601, phabricator/base/14602, phabricator/base/14604, > phabricator/base/14605, phabricator/base/14614, phabricator/base/14615, > phabricator/base/14616, phabricator/base/14617, phabricator/base/14618, > phabricator/base/14619, phabricator/base/14620, phabricator/base/14621, > phabricator/base/14622, phabricator/base/14623, phabricator/base/14624, > phabricator/base/14633, phabricator/base/14634, phabricator/base/14635, > phabricator/base/14636, phabricator/base/14638, phabricator/base/14639, > phabricator/base/14640, phabricator/base/14641, phabricator/base/14642, > phabricator/base/14643, phabricator/base/14644, phabricator/base/14645, > phabricator/base/14646, phabricator/base/14647, phabricator/base/14648, > phabricator/base/14649, phabricator/base/14650, phabricator/base/14651, > phabricator/base/14652, phabricator/base/14653, phabricator/base/14654, > phabricator/base/14655, phabricator/base/14656, phabricator/base/14657, > phabricator/base/14658, phabricator/base/14659, phabricator/base/14660, > phabricator/base/14661, phabricator/base/14662, phabricator/base/14663, > phabricator/base/14664, phabricator/base/14665, phabricator/base/14666, > phabricator/base/14667, phabricator/base/14668, phabricator/base/14669, > phabricator/base/14670, phabricator/base/14672, phabricator/base/14673, > phabricator/base/14674, phabricator/base/14676, phabricator/base/14677, > phabricator/base/14678, phabricator/base/14679, phabricator/base/14680, > phabricator/base/14681, phabricator/base/14682, phabricator/base/14683, > phabricator/base/14684, phabricator/base/14686, phabricator/base/14699, > phabricator/base/14700, phabricator/base/14701, phabricator/base/14702, > phabricator/base/14703, phabricator/base/14704, phabricator/base/14705, > phabricator/base/14706, phabricator/base/14708, phabricator/base/14709, > phabricator/base/14710, phabricator/base/14711, phabricator/base/14712, > phabricator/base/14713, phabricator/base/14714, phabricator/base/14715, > phabricator/base/14716, phabricator/base/14717, phabricator/base/14718, > phabricator/base/14719, phabricator/base/14720, phabricator/base/14721, > phabricator/base/14722, phabricator/base/14723, phabricator/base/14724, > phabricator/base/14728, phabricator/base/14729, phabricator/base/14730, > phabricator/base/14736, phabricator/base/14737, phabricator/base/14738, > phabricator/base/14739, phabricator/base/14741, phabricator/base/14742, > phabricator/base/14743, phabricator/base/14744, phabricator/base/14745, > phabricator/base/14746, phabricator/base/14748, phabricator/base/14749, > phabricator/base/14750, phabricator/base/14753, phabricator/base/14754, > phabricator/base/14755, phabricator/base/14756, phabricator/base/14757, > phabricator/base/14758, phabricator/base/14768, phabricator/base/14769, > phabricator/base/14770, phabricator/base/14771, phabricator/base/14774, > phabricator/base/14775, phabricator/base/14776, phabricator/base/14777, > phabricator/base/14778, phabricator/base/14779, phabricator/base/14780, > phabricator/base/14781, phabricator/base/14782, phabricator/base/14783, > phabricator/base/14784, phabricator/base/14786, phabricator/base/14787, > phabricator/base/14788, phabricator/base/14789, phabricator/base/14790, > phabricator/base/14791, phabricator/base/14792, phabricator/base/14793, > phabricator/base/14794, phabricator/base/14795, phabricator/base/14796, > phabricator/base/14797, phabricator/base/14798, phabricator/base/14799, > phabricator/base/14800, phabricator/base/14801, phabricator/base/14802, > phabricator/base/14803, phabricator/base/14810, phabricator/base/14811, > phabricator/base/14812, phabricator/base/14813, phabricator/base/14814, > phabricator/base/14815, phabricator/base/14816, phabricator/base/14817, > phabricator/base/14818, phabricator/base/14819, phabricator/base/14820, > phabricator/base/14821, phabricator/base/14822, phabricator/base/14823, > phabricator/base/14824, phabricator/base/14825, phabricator/base/14826, > phabricator/base/14827, phabricator/base/14828, phabricator/base/14829, > phabricator/base/14834, phabricator/base/14835, phabricator/base/14836, > phabricator/base/14837, phabricator/base/14842, phabricator/base/14843, > phabricator/base/14844, phabricator/base/14845, phabricator/base/14846, > phabricator/base/14847, phabricator/base/14849, phabricator/base/14850, > phabricator/base/14852, phabricator/base/14853, phabricator/base/14854, > phabricator/base/14855, phabricator/base/14856, phabricator/base/14857, > phabricator/base/14859, phabricator/base/14860, phabricator/base/14861, > phabricator/base/14862, phabricator/base/14863, phabricator/base/14864, > phabricator/base/14865, phabricator/base/14866, phabricator/base/14869, > phabricator/base/14870, phabricator/base/14872, phabricator/base/14876, > phabricator/base/14877, phabricator/base/14879, phabricator/base/14882, > phabricator/base/14883, phabricator/base/14884, phabricator/base/14885, > phabricator/base/14886, phabricator/base/14887, phabricator/base/14888, > phabricator/base/14889, phabricator/base/14890, phabricator/base/14891, > phabricator/base/14892, phabricator/base/14893, phabricator/base/14894, > phabricator/base/14895, phabricator/base/14896, phabricator/base/14898, > phabricator/base/14899, phabricator/base/14900, phabricator/base/14901, > phabricator/base/14902, phabricator/base/14903, phabricator/base/14904, > phabricator/base/14905, phabricator/base/14906, phabricator/base/14907, > phabricator/base/14908, phabricator/base/14909, phabricator/base/14910, > phabricator/base/14919, phabricator/base/14920, phabricator/base/14930, > phabricator/base/14931, phabricator/base/14932, phabricator/base/14933, > phabricator/base/14934, phabricator/base/14935, phabricator/base/14936, > phabricator/base/14942, phabricator/base/14943, phabricator/base/14944, > phabricator/base/14946, phabricator/base/14948, phabricator/base/14949, > phabricator/base/14950, phabricator/base/14951, phabricator/base/14952, > phabricator/base/14953, phabricator/base/14956, phabricator/base/14958, > phabricator/base/14960, phabricator/base/14961, phabricator/base/14962, > phabricator/base/14968, phabricator/base/14969, phabricator/base/14971, > phabricator/base/14974, phabricator/base/14975, phabricator/base/14976, > phabricator/base/14977, phabricator/base/14979, phabricator/base/14980, > phabricator/base/14981, phabricator/base/14983, phabricator/base/14987, > phabricator/base/14999, phabricator/base/15000, phabricator/base/15001, > phabricator/base/15004, phabricator/base/15005, phabricator/base/15027, > phabricator/base/15029, phabricator/base/15030, phabricator/base/15031, > phabricator/base/15032, phabricator/base/15033, phabricator/base/15034, > phabricator/base/15035, phabricator/base/15036, phabricator/base/15037, > phabricator/base/15038, phabricator/base/15039, phabricator/base/15042, > phabricator/base/15043, phabricator/base/15046, phabricator/base/15047, > phabricator/base/15049, phabricator/base/15050, phabricator/base/15051, > phabricator/base/15052, phabricator/base/15053, phabricator/base/15055, > phabricator/base/15056, phabricator/base/15057, phabricator/base/15058, > phabricator/base/15060, phabricator/base/15061, phabricator/base/15063, > phabricator/base/15064, phabricator/base/15065, phabricator/base/15066, > phabricator/base/15067, phabricator/base/15068, phabricator/base/15069, > phabricator/base/15070, phabricator/base/15071, phabricator/base/15074, > phabricator/base/15075, phabricator/base/15076, phabricator/base/15077, > phabricator/base/15078, phabricator/base/15079, phabricator/base/15080, > phabricator/base/15082, phabricator/base/15083, phabricator/base/15084, > phabricator/base/15086, phabricator/base/15087, phabricator/base/15088, > phabricator/base/15090, phabricator/base/15091, phabricator/base/15092, > phabricator/base/15093, phabricator/base/15094, phabricator/base/15095, > phabricator/base/15096, phabricator/base/15097, phabricator/base/15098, > phabricator/base/15099, phabricator/base/15119, phabricator/base/15124, > phabricator/base/15125, phabricator/base/15126, phabricator/base/15127, > phabricator/base/15128, phabricator/base/15129, phabricator/base/15133, > phabricator/base/15134, phabricator/base/15135, phabricator/base/15136, > phabricator/base/15137, phabricator/base/15139, phabricator/base/15140, > phabricator/base/15141, phabricator/base/15144, phabricator/base/15153, > phabricator/base/15154, phabricator/base/15155, phabricator/base/15157, > phabricator/base/15160, phabricator/base/15161, phabricator/base/15162, > phabricator/base/15163, phabricator/base/15164, phabricator/base/15165, > phabricator/base/15169, phabricator/base/15172, phabricator/base/15173, > phabricator/base/15174, phabricator/base/15175, phabricator/base/15176, > phabricator/base/15185, phabricator/base/15188, phabricator/base/15189, > phabricator/base/15190, phabricator/base/15191, phabricator/base/15193, > phabricator/base/15194, phabricator/base/15195, phabricator/base/15197, > phabricator/base/15198, phabricator/base/15199, phabricator/base/15200, > phabricator/base/15201, phabricator/base/15204, phabricator/base/15205, > phabricator/base/15206, phabricator/base/15207, phabricator/base/15209, > phabricator/base/15211, phabricator/base/15213, phabricator/base/15214, > phabricator/base/15215, phabricator/base/15216, phabricator/base/15217, > phabricator/base/15218, phabricator/base/15219, phabricator/base/15221, > phabricator/base/15222, phabricator/base/15223, phabricator/base/15225, > phabricator/base/15226, phabricator/base/15228, phabricator/base/15229, > phabricator/base/15230, phabricator/base/15243, phabricator/base/15245, > phabricator/base/15246, phabricator/base/15247, phabricator/base/15248, > phabricator/base/15249, phabricator/base/15250, phabricator/base/15251, > phabricator/base/15252, phabricator/base/15253, phabricator/base/15254, > phabricator/base/15256, phabricator/base/15257, phabricator/base/15259, > phabricator/base/15266, phabricator/base/15267, phabricator/base/15268, > phabricator/base/15269, phabricator/base/15270, phabricator/base/15271, > phabricator/base/15272, phabricator/base/15273, phabricator/base/15274, > phabricator/base/15275, phabricator/base/15276, phabricator/base/15277, > phabricator/base/15278, phabricator/base/15279, phabricator/base/15280, > phabricator/base/15282, phabricator/base/15287, phabricator/base/15288, > phabricator/base/15291, phabricator/base/15293, phabricator/base/15302, > phabricator/base/15303, phabricator/base/15304, phabricator/base/15305, > phabricator/base/15306, phabricator/base/15307, phabricator/base/15308, > phabricator/base/15309, phabricator/base/15310, phabricator/base/15311, > phabricator/base/15312, phabricator/base/15313, phabricator/base/15314, > phabricator/base/15315, phabricator/base/15317, phabricator/base/15318, > phabricator/base/15320, phabricator/base/15321, phabricator/base/15322, > phabricator/base/15323, phabricator/base/15328, phabricator/base/15329, > phabricator/base/15331, phabricator/base/15332, phabricator/base/15339, > phabricator/base/15342, phabricator/base/15343, phabricator/base/15344, > phabricator/base/15345, phabricator/base/15347, phabricator/base/15348, > phabricator/base/15349, phabricator/base/15350, phabricator/base/15351, > phabricator/base/15352, phabricator/base/15353, phabricator/base/15354, > phabricator/base/15355, phabricator/base/15356, phabricator/base/15357, > phabricator/base/15359, phabricator/base/15360, phabricator/base/15361, > phabricator/base/15362, phabricator/base/15363, phabricator/base/15364, > phabricator/base/15365, phabricator/base/15366, phabricator/base/15367, > phabricator/base/15377, phabricator/base/15378, phabricator/base/15379, > phabricator/base/15380, phabricator/base/15381, phabricator/base/15382, > phabricator/base/15385, phabricator/base/15386, phabricator/base/15387, > phabricator/base/15389, phabricator/base/15390, phabricator/base/15391, > phabricator/base/15392, phabricator/base/15393, phabricator/base/15394, > phabricator/base/15395, phabricator/base/15396, phabricator/base/15397, > phabricator/base/15398, phabricator/base/15399, phabricator/base/15400, > phabricator/base/15401, phabricator/base/15404, phabricator/base/15405, > phabricator/base/15406, phabricator/base/15407, phabricator/base/15408, > phabricator/base/15409, phabricator/base/15410, phabricator/base/15411, > phabricator/base/15413, phabricator/base/15414, phabricator/base/15415, > phabricator/base/15416, phabricator/base/15417, phabricator/base/15418, > phabricator/base/15419, phabricator/base/15421, phabricator/base/15422, > phabricator/base/15423, phabricator/base/15425, phabricator/base/15427, > phabricator/base/15429, phabricator/base/15430, phabricator/base/15431, > phabricator/base/15432, phabricator/base/15433, phabricator/base/15434, > phabricator/base/15435, phabricator/base/15437, phabricator/base/15438, > phabricator/base/15441, phabricator/base/15442, phabricator/base/15443, > phabricator/base/15444, phabricator/base/15445, phabricator/base/15446, > phabricator/base/15449, phabricator/base/15450, phabricator/base/15451, > phabricator/base/15452, phabricator/base/15453, phabricator/base/15454, > phabricator/base/15455, phabricator/base/15456, phabricator/base/15457, > phabricator/base/15458, phabricator/base/15460, phabricator/base/15463, > phabricator/base/15465, phabricator/base/15467, phabricator/base/15468, > phabricator/base/15470, phabricator/base/15471, phabricator/base/15472, > phabricator/base/15474, phabricator/base/15475, phabricator/base/15476, > phabricator/base/15477, phabricator/base/15478, phabricator/base/15479, > phabricator/base/15496, phabricator/base/15497, phabricator/base/15498, > phabricator/base/15499, phabricator/base/15500, phabricator/base/15501, > phabricator/base/15507, phabricator/base/15508, phabricator/base/15509, > phabricator/base/15511, phabricator/base/15512, phabricator/base/15513, > phabricator/base/15514, phabricator/base/15515, phabricator/base/15519, > phabricator/base/15521, phabricator/base/15522, phabricator/base/15523, > phabricator/base/15524, phabricator/base/15526, phabricator/base/15527, > phabricator/base/15528, phabricator/base/15529, phabricator/base/15530, > phabricator/base/15531, phabricator/base/15532, phabricator/base/15533, > phabricator/base/15534, phabricator/base/15535, phabricator/base/15536, > phabricator/base/15537, phabricator/base/15538, phabricator/base/15539, > phabricator/base/15540, phabricator/base/15541, phabricator/base/15542, > phabricator/base/15543, phabricator/base/15544, phabricator/base/15545, > phabricator/base/15546, phabricator/base/15547, phabricator/base/15550, > phabricator/base/15551, phabricator/base/15552, phabricator/base/15554, > phabricator/base/15555, phabricator/base/15556, phabricator/base/15561, > phabricator/base/15566, phabricator/base/15568, phabricator/base/15569, > phabricator/base/15570, phabricator/base/15571, phabricator/base/15572, > phabricator/base/15574, phabricator/base/15575, phabricator/base/15577, > phabricator/base/15578, phabricator/base/15579, phabricator/base/15580, > phabricator/base/15584, phabricator/base/15585, phabricator/base/15586, > phabricator/base/15587, phabricator/base/15588, phabricator/base/15589, > phabricator/base/15591, phabricator/base/15599, phabricator/base/15609, > phabricator/base/15623, phabricator/base/15624, phabricator/base/15625, > phabricator/base/15626, phabricator/base/15627, phabricator/base/15628, > phabricator/base/15629, phabricator/base/15630, phabricator/base/15631, > phabricator/base/15633, phabricator/base/15634, phabricator/base/15636, > phabricator/base/15637, phabricator/base/15638, phabricator/base/15639, > phabricator/base/15640, phabricator/base/15641, phabricator/base/15643, > phabricator/base/15644, phabricator/base/15646, phabricator/base/15647, > phabricator/base/15648, phabricator/base/15649, phabricator/base/15657, > phabricator/base/15659, phabricator/base/15660, phabricator/base/15661, > phabricator/base/15663, phabricator/base/15664, phabricator/base/15667, > phabricator/base/15669, phabricator/base/15671, phabricator/base/15673, > phabricator/base/15674, phabricator/base/15675, phabricator/base/15676, > phabricator/base/15677, phabricator/base/15678, phabricator/base/15679, > phabricator/base/15680, phabricator/base/15681, phabricator/base/15682, > phabricator/base/15683, phabricator/base/15684, phabricator/base/15685, > phabricator/base/15686, phabricator/base/15687, phabricator/base/15688, > phabricator/base/15689, phabricator/base/15690, phabricator/base/15691, > phabricator/base/15692, phabricator/base/15693, phabricator/base/15696, > phabricator/base/15698, phabricator/base/15699, phabricator/base/15700, > phabricator/base/15701, phabricator/base/15702, phabricator/base/15704, > phabricator/base/15705, phabricator/base/15708, phabricator/base/15712, > phabricator/base/15713, phabricator/base/15714, phabricator/base/15715, > phabricator/base/15717, phabricator/base/15719, phabricator/base/15720, > phabricator/base/15721, phabricator/base/15723, phabricator/base/15724, > phabricator/base/15725, phabricator/base/15726, phabricator/base/15727, > phabricator/base/15728, phabricator/base/15729, phabricator/base/15730, > phabricator/base/15733, phabricator/base/15734, phabricator/base/15735, > phabricator/base/15737, phabricator/base/15739, phabricator/base/15740, > phabricator/base/15741, phabricator/base/15743, phabricator/base/15744, > phabricator/base/15745, phabricator/base/15746, phabricator/base/15748, > phabricator/base/15749, phabricator/base/15751, phabricator/base/15752, > phabricator/base/15753, phabricator/base/15754, phabricator/base/15755, > phabricator/base/15756, phabricator/base/15757, phabricator/base/15758, > phabricator/base/15760, phabricator/base/15761, phabricator/base/15762, > phabricator/base/15763, phabricator/base/15764, phabricator/base/15783, > phabricator/base/15785, phabricator/base/15787, phabricator/base/15794, > phabricator/base/15795, phabricator/base/15796, phabricator/base/15797, > phabricator/base/15798, phabricator/base/15799, phabricator/base/15800, > phabricator/base/15801, phabricator/base/15802, phabricator/base/15803, > phabricator/base/15804, phabricator/base/15807, phabricator/base/15808, > phabricator/base/15809, phabricator/base/15810, phabricator/base/15812, > phabricator/base/15813, phabricator/base/15814, phabricator/base/15815, > phabricator/base/15817, phabricator/base/15818, phabricator/base/15822, > phabricator/base/15823, phabricator/base/15824, phabricator/base/15825, > phabricator/base/15826, phabricator/base/15827, phabricator/base/15829, > phabricator/base/15830, phabricator/base/15839, phabricator/base/15840, > phabricator/base/15841, phabricator/base/15842, phabricator/base/15849, > phabricator/base/15853, phabricator/base/15854, phabricator/base/15855, > phabricator/base/15856, phabricator/base/15857, phabricator/base/15858, > phabricator/base/15859, phabricator/base/15860, phabricator/base/15862, > phabricator/base/15864, phabricator/base/15865, phabricator/base/15866, > phabricator/base/15867, phabricator/base/15870, phabricator/base/15871, > phabricator/base/15872, phabricator/base/15873, phabricator/base/15874, > phabricator/base/15875, phabricator/base/15876, phabricator/base/15877, > phabricator/base/15878, phabricator/base/15879, phabricator/base/15880, > phabricator/base/15882, phabricator/base/15883, phabricator/base/15884, > phabricator/base/15885, phabricator/base/15886, phabricator/base/15887, > phabricator/base/15888, phabricator/base/15889, phabricator/base/15890, > phabricator/base/15892, phabricator/base/15893, phabricator/base/15894, > phabricator/base/15895, phabricator/base/15896, phabricator/base/15897, > phabricator/base/15899, phabricator/base/15904, phabricator/base/15905, > phabricator/base/15906, phabricator/base/15907, phabricator/base/15908, > phabricator/base/15909, phabricator/base/15910, phabricator/base/15911, > phabricator/base/15912, phabricator/base/15913, phabricator/base/15914, > phabricator/base/15916, phabricator/base/15917, phabricator/base/15918, > phabricator/base/15919, phabricator/base/15920, phabricator/base/15921, > phabricator/base/15922, phabricator/base/15923, phabricator/base/15926, > phabricator/base/15927, phabricator/base/15928, phabricator/base/15930, > phabricator/base/15935, phabricator/base/15936, phabricator/base/15937, > phabricator/base/15938, phabricator/base/15939, phabricator/base/15940, > phabricator/base/15941, phabricator/base/15942, phabricator/base/15943, > phabricator/base/15944, phabricator/base/15946, phabricator/base/15950, > phabricator/base/15955, phabricator/base/15961, phabricator/base/15962, > phabricator/base/15964, phabricator/base/15965, phabricator/base/15967, > phabricator/base/15971, phabricator/base/15973, phabricator/base/15974, > phabricator/base/15975, phabricator/base/15979, phabricator/base/15981, > phabricator/base/15985, phabricator/base/15987, phabricator/base/15996, > phabricator/base/15997, phabricator/base/15998, phabricator/base/16001, > phabricator/base/16002, phabricator/base/16003, phabricator/base/16004, > phabricator/base/16005, phabricator/base/16007, phabricator/base/16008, > phabricator/base/16010, phabricator/base/16035, phabricator/base/16036, > phabricator/base/16037, phabricator/base/16039, phabricator/base/16042, > phabricator/base/16043, phabricator/base/16044, phabricator/base/16045, > phabricator/base/16046, phabricator/base/16047, phabricator/base/16048, > phabricator/base/16049, phabricator/base/16050, phabricator/base/16051, > phabricator/base/16052, phabricator/base/16053, phabricator/base/16055, > phabricator/base/16056, phabricator/base/16057, phabricator/base/16058, > phabricator/base/16059, phabricator/base/16060, phabricator/base/16061, > phabricator/base/16062, phabricator/base/16064, phabricator/base/16071, > phabricator/base/16074, phabricator/base/16079, phabricator/base/16091, > phabricator/base/16092, phabricator/base/16093, phabricator/base/16095, > phabricator/base/16100, phabricator/base/16101, phabricator/base/16102, > phabricator/base/16103, phabricator/base/16104, phabricator/base/16105, > phabricator/base/16110, phabricator/base/16111, phabricator/base/16112, > phabricator/base/16116, phabricator/base/16119, phabricator/base/16120, > phabricator/base/16121, phabricator/base/16125, phabricator/base/16126, > phabricator/base/16127, phabricator/base/16128, phabricator/base/16131, > phabricator/base/16132, phabricator/base/16133, phabricator/base/16134, > phabricator/base/16135, phabricator/base/16136, phabricator/base/16137, > phabricator/base/16138, phabricator/base/16143, phabricator/base/16144, > phabricator/base/16145, phabricator/base/16146, phabricator/base/16147, > phabricator/base/16148, phabricator/base/16149, phabricator/base/16150, > phabricator/base/16151, phabricator/base/16153, phabricator/base/16154, > phabricator/base/16155, phabricator/base/16157, phabricator/base/16160, > phabricator/base/16161, phabricator/base/16163, phabricator/base/16164, > phabricator/base/16165, phabricator/base/16166, phabricator/base/16167, > phabricator/base/16168, phabricator/base/16172, phabricator/base/16173, > phabricator/base/16175, phabricator/base/16176, phabricator/base/16177, > phabricator/base/16179, phabricator/base/16180, phabricator/base/16181, > phabricator/base/16182, phabricator/base/16184, phabricator/base/16185, > phabricator/base/16186, phabricator/base/16187, phabricator/base/16188, > phabricator/base/16189, phabricator/base/16190, phabricator/base/16191, > phabricator/base/16192, phabricator/base/16193, phabricator/base/16194, > phabricator/base/16195, phabricator/base/16196, phabricator/base/16197, > phabricator/base/16198, phabricator/base/16199, phabricator/base/16200, > phabricator/base/16201, phabricator/base/16202, phabricator/base/16203, > phabricator/base/16204, phabricator/base/16208, phabricator/base/16209, > phabricator/base/16211, phabricator/base/16212, phabricator/base/16213, > phabricator/base/16214, phabricator/base/16215, phabricator/base/16216, > phabricator/base/16217, phabricator/base/16218, phabricator/base/16220, > phabricator/base/16221, phabricator/base/16222, phabricator/base/16223, > phabricator/base/16224, phabricator/base/16225, phabricator/base/16226, > phabricator/base/16227, phabricator/base/16228, phabricator/base/16229, > phabricator/base/16230, phabricator/base/16231, phabricator/base/16232, > phabricator/base/16233, phabricator/base/16234, phabricator/base/16235, > phabricator/base/16237, phabricator/base/16238, phabricator/base/16240, > phabricator/base/16241, phabricator/base/16242, phabricator/base/16243, > phabricator/base/16244, phabricator/base/16246, phabricator/base/16247, > phabricator/base/16249, phabricator/base/16251, phabricator/base/16252, > phabricator/base/16253, phabricator/base/16254, phabricator/base/16255, > phabricator/base/16256, phabricator/base/16259, phabricator/base/16260, > phabricator/base/16264, phabricator/base/16265, phabricator/base/16266, > phabricator/base/16267, phabricator/base/16268, phabricator/base/16269, > phabricator/base/16271, phabricator/base/16272, phabricator/base/16273, > phabricator/base/16275, phabricator/base/16276, phabricator/base/16277, > phabricator/base/16279, phabricator/base/16281, phabricator/base/16282, > phabricator/base/16283, phabricator/base/16284, phabricator/base/16293, > phabricator/base/16296, phabricator/base/16297, phabricator/base/16298, > phabricator/base/16299, phabricator/base/16300, phabricator/base/16301, > phabricator/base/16302, phabricator/base/16303, phabricator/base/16304, > phabricator/base/16305, phabricator/base/16306, phabricator/base/16307, > phabricator/base/16308, phabricator/base/16309, phabricator/base/16310, > phabricator/base/16311, phabricator/base/16312, phabricator/base/16314, > phabricator/base/16315, phabricator/base/16317, phabricator/base/16324, > phabricator/base/16325, phabricator/base/16326, phabricator/base/16330, > phabricator/base/16332, phabricator/base/16333, phabricator/base/16334, > phabricator/base/16335, phabricator/base/16336, phabricator/base/16337, > phabricator/base/16340, phabricator/base/16341, phabricator/base/16342, > phabricator/base/16343, phabricator/base/16344, phabricator/base/16345, > phabricator/base/16346, phabricator/base/16347, phabricator/base/16352, > phabricator/base/16353, phabricator/base/16355, phabricator/base/16356, > phabricator/base/16361, phabricator/base/16362, phabricator/base/16363, > phabricator/base/16364, phabricator/base/16365, phabricator/base/16366, > phabricator/base/16368, phabricator/base/16369, phabricator/base/16370, > phabricator/base/16371, phabricator/base/16372, phabricator/base/16373, > phabricator/base/16374, phabricator/base/16377, phabricator/base/16378, > phabricator/base/16380, phabricator/base/16381, phabricator/base/16382, > phabricator/base/16384, phabricator/base/16386, phabricator/base/16404, > phabricator/base/16405, phabricator/base/16406, phabricator/base/16407, > phabricator/base/16408, phabricator/base/16411, phabricator/base/16413, > phabricator/base/16414, phabricator/base/16415, phabricator/base/16421, > phabricator/base/16422, phabricator/base/16423, phabricator/base/16427, > phabricator/base/16428, phabricator/base/16429, phabricator/base/16430, > phabricator/base/16434, phabricator/base/16435, phabricator/base/16437, > phabricator/base/16438, phabricator/base/16439, phabricator/base/16445, > phabricator/base/16446, phabricator/base/16449, phabricator/base/16450, > phabricator/base/16455, phabricator/base/16456, phabricator/base/16457, > phabricator/base/16458, phabricator/base/16459, phabricator/base/16460, > phabricator/base/16461, phabricator/base/16463, phabricator/base/16464, > phabricator/base/16465, phabricator/base/16466, phabricator/base/16467, > phabricator/base/16468, phabricator/base/16469, phabricator/base/16472, > phabricator/base/16473, phabricator/base/16477, phabricator/base/16479, > phabricator/base/16480, phabricator/base/16481, phabricator/base/16482, > phabricator/base/16483, phabricator/base/16484, phabricator/base/16485, > phabricator/base/16491, phabricator/base/16492, phabricator/base/16496, > phabricator/base/16497, phabricator/base/16498, phabricator/base/16499, > phabricator/base/16500, phabricator/base/16501, phabricator/base/16502, > phabricator/base/16504, phabricator/base/16506, phabricator/base/16507, > phabricator/base/16508, phabricator/base/16509, phabricator/base/16510, > phabricator/base/16511, phabricator/base/16512, phabricator/base/16514, > phabricator/base/16515, phabricator/base/16516, phabricator/base/16518, > phabricator/base/16519, phabricator/base/16520, phabricator/base/16521, > phabricator/base/16522, phabricator/base/16528, phabricator/base/16529, > phabricator/base/16530, phabricator/base/16531, phabricator/base/16532, > phabricator/base/16533, phabricator/base/16534, phabricator/base/ > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at smart-cactus.org Wed Jul 25 15:19:55 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Wed, 25 Jul 2018 11:19:55 -0400 Subject: [Diffusion] [Committed] rGHCDIFFe79e580be5d3: Fix Trac #5117: desugar literal patterns consistencly In-Reply-To: References: <20180725114504.1.43447C5D5CDE16DA@phabricator.haskell.org> Message-ID: <87fu07jqav.fsf@smart-cactus.org> Simon Peyton Jones via ghc-devs writes: > Is anyone else getting messages like the one below? > > I have received over 1,000 of them this morning. It is tiresome. > I have also received a few. I'm looking into it. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From michal.terepeta at gmail.com Wed Jul 25 19:03:08 2018 From: michal.terepeta at gmail.com (Michal Terepeta) Date: Wed, 25 Jul 2018 21:03:08 +0200 Subject: understanding assertions, part deux :) Re: whither built in unlifted Word32# / Word64# etc? In-Reply-To: References: Message-ID: Hi Carter, I didn't write this assertion. I only validated locally (IIRC at the time I uploaded the diff, harbormaster was failing for some other reasons). I'll try to have a look at it this weekend. Cheers! - Michal On Wed, Jul 25, 2018 at 2:16 AM Carter Schonwald wrote: > Michal: did you write this Assert about width? and if so could you explain > it so we can understand? > > hrmm... that code is in the procedure for generating C calls for 64bit > intel systems > > https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2541 > is the top of that routine > > and width is defined right below the spot in question > > https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2764-L2774 > > it seems like the code/assertion likely predates michal's work? (eg, a > trick to make sure that genCCall64 doesn't get invoked by 32bit platforms?) > > On Mon, Jul 23, 2018 at 8:54 PM Abhiroop Sarkar > wrote: > >> Hi Michal, >> >> In the tests that you have added to D4475, are all the tests running fine? >> >> On my machine, I was running the FFI tests( >> https://github.com/michalt/ghc/blob/int8/testsuite/tests/ffi/should_run/PrimFFIInt8.hs) >> and they seem to fail at a particular assert statement in the code >> generator. >> >> To be precise this one: >> https://github.com/michalt/ghc/blob/int8/compiler/nativeGen/X86/CodeGen.hs#L2764 >> >> Upon commenting that assert the tests run fine. Am I missing something or >> is the failure expected? >> >> Thanks, >> Abhiroop >> >> On Mon, Jul 9, 2018 at 8:31 PM Michal Terepeta >> wrote: >> >>> Just for the record, I've uploaded the changes to binary: >>> https://github.com/michalt/packages-binary/tree/int8 >>> >>> - Michal >>> >>> On Wed, Jul 4, 2018 at 11:07 AM Michal Terepeta < >>> michal.terepeta at gmail.com> wrote: >>> >>>> Yeah, if you look at the linked diff, there are a few tiny changes to >>>> binary that are necessary. >>>> >>>> I'll try to upload them to github later this week. >>>> >>>> Ben, is something blocking the review of the diff? I think I addressed >>>> all comments so far. >>>> >>>> - Michal >>>> >>>> On Wed, Jul 4, 2018 at 1:38 AM Abhiroop Sarkar >>>> wrote: >>>> >>>>> Hello Michal, >>>>> >>>>> I was looking at your diff https://phabricator.haskell.org/D4475 and >>>>> there seems to be some changes that you perhaps made in the binary package ( >>>>> https://phabricator.haskell.org/differential/changeset/?ref=199152&whitespace=ignore-most). >>>>> I could not find your version of binary on your github repos list. Is it >>>>> possible for you to upload that so I can pull those changes? >>>>> >>>>> Thanks >>>>> >>>>> Abhiroop >>>>> >>>>> On Mon, May 28, 2018 at 10:45 PM Carter Schonwald < >>>>> carter.schonwald at gmail.com> wrote: >>>>> >>>>>> Abhiroop has the gist, though the size of word args for simd is more >>>>>> something we want to be consistent between 32/64 bit modes aka ghc >>>>>> targeting 32 or 64 bit intel with simd support :). It would be best if the >>>>>> unpack and pack operations that map to and from unboxed tuples where >>>>>> consistent and precise type wise. >>>>>> >>>>>> >>>>>> >>>>>> -Carter >>>>>> >>>>>> On May 28, 2018, at 5:02 PM, Abhiroop Sarkar >>>>>> wrote: >>>>>> >>>>>> Hello Michal, >>>>>> >>>>>> My understanding of the issues are much lesser compared to Carter. >>>>>> However, I will state whatever I understood from discussions with him. Be >>>>>> warned my understanding might be wrong and Carter might be asking this for >>>>>> some completely different reason. >>>>>> >>>>>> > Out of curiosity, why do you need Word64#/Word32# story to be fixed >>>>>> for SIMD? >>>>>> >>>>>> One of the issues we are dealing with is multiple >>>>>> microarchitectures(SSE, AVX, AVX2 etc). As a result different >>>>>> microarchitectures has different ways of handling an 8 bit or 16 bit or 32 >>>>>> bit unsigned integer. An example I can provide is the vector multiply >>>>>> instruction which has different semantics of multiplying and storing the >>>>>> first 16 bits of a 32 bit unsigned integer compared to the lower 16 bits >>>>>> for each of the elements in its SIMD registers. There will be some other >>>>>> intricacies around handling a byte sized integer or a 64 bit integer which >>>>>> will be different from the 32 bit version. >>>>>> >>>>>> Basically a 128 bit vector instruction will make some minor >>>>>> differences when dealing with 2 64 bit integers or 4 32 bit integer or 8 16 >>>>>> bit integers. >>>>>> >>>>>> So I think at the higher level we would want to be as precise as >>>>>> possible when specifying the datatypes and want things like Word8#, >>>>>> Word16#, Word32#, Word64# rather than a single ambiguous type like Word. >>>>>> >>>>>> One more example is this vector operation like : broadcastWord64X2# >>>>>> :: Word# >>>>>> >>>>>> -> Word64X2# >>>>>> which >>>>>> should rather be broadcastWord64X2# :: Word64# >>>>>> >>>>>> -> Word64X2# >>>>>> >>>>>> >>>>>> Another reason could be improving the space efficiency of packing >>>>>> various datatypes. This was explained in some detail in this comment: >>>>>> https://github.com/ghc-proposals/ghc-proposals/pull/74#issuecomment-333951559 >>>>>> >>>>>> Thanks, >>>>>> Abhiroop >>>>>> >>>>>> On Mon, May 28, 2018 at 6:06 PM, Michal Terepeta < >>>>>> michal.terepeta at gmail.com> wrote: >>>>>> >>>>>>> Hey Carter, >>>>>>> >>>>>>> Yeah, I'm totally snowed under with personal stuff at the moment, so >>>>>>> not much time to hack on >>>>>>> anything. I've managed to make some progress on >>>>>>> https://phabricator.haskell.org/D4475 (prototype >>>>>>> that adds Int8#/Word8#; waiting for another round of review). Sadly >>>>>>> June still looks a bit crazy for >>>>>>> me, so I can't promise anything for Word64#/Word32# (and >>>>>>> Int64#/Int32#). I hope to have some more >>>>>>> time in July. >>>>>>> >>>>>>> If this is blocking you, then please don't wait for me and go ahead >>>>>>> (my diff for Int8#/Word8# might >>>>>>> be a decent starting point to see which places might need changes). >>>>>>> >>>>>>> Out of curiosity, why do you need Word64#/Word32# story to be fixed >>>>>>> for SIMD? Cmm already has >>>>>>> separate types for vector types (see TyCon.hs and VecRep constructor >>>>>>> of PrimRep). >>>>>>> >>>>>>> Cheers! >>>>>>> >>>>>>> - Michal >>>>>>> >>>>>>> PS. Are you coming to ZuriHac by any chance? >>>>>>> >>>>>>> On Mon, May 28, 2018 at 12:37 AM Carter Schonwald < >>>>>>> carter.schonwald at gmail.com> wrote: >>>>>>> >>>>>>>> Hey Michal! >>>>>>>> So i'm mentoring Abhiroop around getting SIMD all nice and awesome, >>>>>>>> and I realized we still dont quite yet have the nice Word32# and Word64# >>>>>>>> etc story in ghc as yet. >>>>>>>> >>>>>>>> Whats the status on that and or is there a way we can help get that >>>>>>>> over the hump for ghc? These different sized in register ints and friends >>>>>>>> have a tight partnership with any nice SIMD iterating over the summer, and >>>>>>>> hopefully helps inform the design >>>>>>>> >>>>>>>> -Carter >>>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Kloona - Coming Soon! >>>>>> >>>>>> >>>>> >>>>> -- >>>>> Kloona - Coming Soon! >>>>> >>>> >> >> -- >> Kloona - Coming Soon! >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: From saurabhnanda at gmail.com Thu Jul 26 14:53:20 2018 From: saurabhnanda at gmail.com (Saurabh Nanda) Date: Thu, 26 Jul 2018 20:23:20 +0530 Subject: [Haskell-cafe] Access violation when stack haddock haskell-src-exts since LTS 12.0 In-Reply-To: References: Message-ID: Hi, How does confirm that this bug is being hit. `stack haddock haskell-src-exts` on LTS-12.1 fails with the following cryptic error: -- While building custom Setup.hs for package haskell-src-exts-1.20.2 using: /home/vl/.stack/setup-exe-cache/x86_64-linux/Cabal-simple_mPHDZzAJ_2.2.0.1_ghc-8.4.3 --builddir=.stack-work/dist/x86_64-linux/Cabal-2.2.0.1 haddock --html --hoogle --html-location=../$pkg-$version/ --haddock-option=--hyperlinked-source Process exited with code: ExitFailure (-11) Logs have been written to: /home/vl/vacationlabs/haskell/.stack-work/logs/haskell-src-exts-1.20.2.log The log file doesn't contain an error. How does one upgrade the haddock version and get stack to use it? -- Saurabh. On Mon, Jul 23, 2018 at 11:58 AM Sven Panne wrote: > Am Mo., 23. Juli 2018 um 05:49 Uhr schrieb Yuji Yamamoto < > whosekiteneverfly at gmail.com>: > >> Thank you very much! >> >> I confirmed the replaced haddock executable can successfully generate the >> docs! >> > > Yesterday I had quite some trouble because of the Haddock problem, too, > and I guess I'm not alone: haskell-src-exts has 165 direct reverse > dependencies, so probably hundreds of Hackage packages are affected by > this. The workaround is simple (don't use --haddock with stack), but far > from satisfying and not very obvious. > > Given the fact that this affects a very central piece of the Haskell > infrastructure in its latest stable incarnation (GHC 8.4.3): Can we have an > 8.4.4 with a fixed Haddock? > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > -- http://www.saurabhnanda.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From pi.boy.travis at gmail.com Fri Jul 27 08:13:33 2018 From: pi.boy.travis at gmail.com (Travis Whitaker) Date: Fri, 27 Jul 2018 01:13:33 -0700 Subject: Nondeterministic Failure on aarch64 with -jn, n > 1 Message-ID: Hello GHC Devs, It seems to me that GHC is rather broken on aarch64, at least since 8.2.1 (and at least on the machines I have access to). I first noticed this issue with Nixpkgs (https://github.com/NixOS/nixpkgs/issues/40301), so to check that this isn't some Nixpkgs idiosyncrasy I went ahead and built my own GHC 8.4.3 for aarch64 (there's no binary release at https://www.haskell.org/ghc/download_ghc_8_4_3.html to try, but perhaps I've missed something. It seems the only Nix idiosyncrasy was passing "--ghc-option=-j${cores}" to "./Setup.hs configure". The issue is triggered by using '-jn' for any n greater than one when building any non-trivial package, but I've found hscolour1.24.4 reproduces it very reliably (perhaps because there are opportunities for parallelism early in its module dependency graph?). GHC very often (although not always) will fail with one of: - Segmentation fault. - Bus fault - : error: ghc: panic! (the 'impossible' happened) (GHC version 8.4.3 for aarch64-unknown-linux): Binary.UserData: no put_binding_name - ghc: internal error: MUT_VAR_CLEAN object entered! (GHC version 8.4.3 for aarch64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Aborted (core dumped) The fix, excruciating as it may be on already slow arm machines, is to use '-j1'. This issue seems present on each GHC release since 8.2.1 (although I haven't tried HEAD yet). I haven't noticed any issues with any other concurrent Haskell programs on aarch64. There are some umbrella bugs for aarch64 in Trac, so I wanted to ask here before filing a ticket. Has anyone else noticed this behavior on aarch64? What's more, are there any tips for using GDB to hunt down synchronization issues in GHC? Thanks for all your hard work! Travis -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at smart-cactus.org Fri Jul 27 13:51:59 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Fri, 27 Jul 2018 09:51:59 -0400 Subject: Nondeterministic Failure on aarch64 with -jn, n > 1 In-Reply-To: References: Message-ID: <8760104whx.fsf@smart-cactus.org> Travis Whitaker writes: > Hello GHC Devs, > > It seems to me that GHC is rather broken on aarch64, at least since 8.2.1 > (and at least on the machines I have access to). I first noticed this issue > with Nixpkgs (https://github.com/NixOS/nixpkgs/issues/40301), so to check > that this isn't some Nixpkgs idiosyncrasy I went ahead and built my own GHC > 8.4.3 for aarch64 (there's no binary release at > https://www.haskell.org/ghc/download_ghc_8_4_3.html to try, but perhaps > I've missed something. > > It seems the only Nix idiosyncrasy was passing "--ghc-option=-j${cores}" to > "./Setup.hs configure". The issue is triggered by using '-jn' for any n > greater than one when building any non-trivial package, but I've found > hscolour1.24.4 reproduces it very reliably (perhaps because there are > opportunities for parallelism early in its module dependency graph?). GHC > very often (although not always) will fail with one of: > > - Segmentation fault. > - Bus fault > - : error: > ghc: panic! (the 'impossible' happened) > (GHC version 8.4.3 for aarch64-unknown-linux): > Binary.UserData: no put_binding_name > > - ghc: internal error: MUT_VAR_CLEAN object entered! > (GHC version 8.4.3 for aarch64_unknown_linux) > Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug > Aborted (core dumped) > Ugh, that is awful. > The fix, excruciating as it may be on already slow arm machines, is to use > '-j1'. This issue seems present on each GHC release since 8.2.1 (although I > haven't tried HEAD yet). I haven't noticed any issues with any other > concurrent Haskell programs on aarch64. > > There are some umbrella bugs for aarch64 in Trac, so I wanted to ask here > before filing a ticket. Has anyone else noticed this behavior on aarch64? > What's more, are there any tips for using GDB to hunt down synchronization > issues in GHC? > Definitely open a new ticket. The methodology for tracking down issues like this is quite case-specific but I do have some general recommendations: On x86-64 I use rr [1], which is an invaluable tool. Sadly this isn't an option on AArch64 AFAIK. I also have some gdb extensions to take much of the monotony away from inspecting GHC's heap and internal data structures [2]. I've not used them on AArch64 so there may be a few compatibility issues but I suspect they wouldn't be hard to fix. I know it may be hard in this case but I would at least try to reduce the size of the failing program to something that fits in less than a few hundred lines. Low-level debugging is hard enough when you can keep the program in your head; debugging all of GHC this way is possible but much harder. Given that this appears to be threading-specific, I would also pay particular attention to the GHC and base's use of barriers and atomics. It's possible that we are just missing a barrier somewhere. Finally, you might quickly try building 8.0 to see whether bisection is a possibility. It would be a slow process, given the speed of the hardware involved, but ultimately it can be much more time efficient once you have it setup since you can replace human debugging time (a very finite commodity) with computation. Good luck and let us know if you get stuck, - Ben [1] http://rr-project.org/ [2] https://github.com/bgamari/ghc-utils/tree/master/gdb -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From pi.boy.travis at gmail.com Fri Jul 27 20:18:27 2018 From: pi.boy.travis at gmail.com (Travis Whitaker) Date: Fri, 27 Jul 2018 13:18:27 -0700 Subject: Nondeterministic Failure on aarch64 with -jn, n > 1 In-Reply-To: <8760104whx.fsf@smart-cactus.org> References: <8760104whx.fsf@smart-cactus.org> Message-ID: Thanks so much for the pointers, Ben. I opened a ticket here https://ghc.haskell.org/trac/ghc/ticket/15449 On Fri, Jul 27, 2018 at 6:51 AM, Ben Gamari wrote: > Travis Whitaker writes: > > > Hello GHC Devs, > > > > It seems to me that GHC is rather broken on aarch64, at least since 8.2.1 > > (and at least on the machines I have access to). I first noticed this > issue > > with Nixpkgs (https://github.com/NixOS/nixpkgs/issues/40301), so to > check > > that this isn't some Nixpkgs idiosyncrasy I went ahead and built my own > GHC > > 8.4.3 for aarch64 (there's no binary release at > > https://www.haskell.org/ghc/download_ghc_8_4_3.html to try, but perhaps > > I've missed something. > > > > It seems the only Nix idiosyncrasy was passing "--ghc-option=-j${cores}" > to > > "./Setup.hs configure". The issue is triggered by using '-jn' for any n > > greater than one when building any non-trivial package, but I've found > > hscolour1.24.4 reproduces it very reliably (perhaps because there are > > opportunities for parallelism early in its module dependency graph?). GHC > > very often (although not always) will fail with one of: > > > > - Segmentation fault. > > - Bus fault > > - : error: > > ghc: panic! (the 'impossible' happened) > > (GHC version 8.4.3 for aarch64-unknown-linux): > > Binary.UserData: no put_binding_name > > > > - ghc: internal error: MUT_VAR_CLEAN object entered! > > (GHC version 8.4.3 for aarch64_unknown_linux) > > Please report this as a GHC bug: http://www.haskell.org/ghc/ > reportabug > > Aborted (core dumped) > > > Ugh, that is awful. > > > The fix, excruciating as it may be on already slow arm machines, is to > use > > '-j1'. This issue seems present on each GHC release since 8.2.1 > (although I > > haven't tried HEAD yet). I haven't noticed any issues with any other > > concurrent Haskell programs on aarch64. > > > > There are some umbrella bugs for aarch64 in Trac, so I wanted to ask here > > before filing a ticket. Has anyone else noticed this behavior on aarch64? > > What's more, are there any tips for using GDB to hunt down > synchronization > > issues in GHC? > > > Definitely open a new ticket. > > The methodology for tracking down issues like this is quite > case-specific but I do have some general recommendations: On x86-64 I > use rr [1], which is an invaluable tool. Sadly this isn't an option on > AArch64 AFAIK. I also have some gdb extensions to take much of the > monotony away from inspecting GHC's heap and internal data structures > [2]. I've not used them on AArch64 so there may be a few compatibility > issues but I suspect they wouldn't be hard to fix. > > I know it may be hard in this case but I would at least try to reduce > the size of the failing program to something that fits in less than a > few hundred lines. Low-level debugging is hard enough when you can keep > the program in your head; debugging all of GHC this way is possible but > much harder. Given that this appears to be threading-specific, I would > also pay particular attention to the GHC and base's use of barriers and > atomics. It's possible that we are just missing a barrier somewhere. > > Finally, you might quickly try building 8.0 to see whether bisection is > a possibility. It would be a slow process, given the speed of the > hardware involved, but ultimately it can be much more time efficient > once you have it setup since you can replace human debugging time (a > very finite commodity) with computation. > > Good luck and let us know if you get stuck, > > - Ben > > > [1] http://rr-project.org/ > [2] https://github.com/bgamari/ghc-utils/tree/master/gdb > -------------- next part -------------- An HTML attachment was scrubbed... URL: From mgsloan at gmail.com Sun Jul 29 04:18:07 2018 From: mgsloan at gmail.com (Michael Sloan) Date: Sat, 28 Jul 2018 21:18:07 -0700 Subject: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations Message-ID: Hello GHC developers! Now that D4904 and D4986 are merged, if you have recently built GHC then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load GHC into GHCi (throwing on a "-j8" helps too). For me, this makes development far more pleasant, as often I can make a change and try it out in only 15 or 20 seconds. Thanks to Csongor Kiss for writing the initial ghci script, and Matthew Pickering for posting about it to the mailinglist, as otherwise I probably wouldn't have known about it. I wrote a blog post about the topic on my new blog: http://www.mgsloan.com/posts/ghcinception/ Once D5015 is merged, the explicit "-fobject-code" won't be needed. Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it might not be needed at all, leading to even faster loading ;) Happy ghci-ing! -Michael From matthewtpickering at gmail.com Sun Jul 29 07:41:40 2018 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Sun, 29 Jul 2018 09:41:40 +0200 Subject: Scripts merged for easily loading and running GHC in GHCi, for fast development iterations In-Reply-To: References: Message-ID: Can you please update the wiki page? https://ghc.haskell.org/trac/ghc/wiki/Building/InGhci Matt On Sun, Jul 29, 2018 at 6:18 AM, Michael Sloan wrote: > Hello GHC developers! > > Now that D4904 and D4986 are merged, if you have recently built GHC > then you can use "./utils/ghc-in-ghci/run.sh -fobject-code" to load > GHC into GHCi (throwing on a "-j8" helps too). For me, this makes > development far more pleasant, as often I can make a change and try it > out in only 15 or 20 seconds. Thanks to Csongor Kiss for writing the > initial ghci script, and Matthew Pickering for posting about it to the > mailinglist, as otherwise I probably wouldn't have known about it. > > I wrote a blog post about the topic on my new blog: > http://www.mgsloan.com/posts/ghcinception/ > > Once D5015 is merged, the explicit "-fobject-code" won't be needed. > Once https://ghc.haskell.org/trac/ghc/ticket/15454 is addressed, it > might not be needed at all, leading to even faster loading ;) > > Happy ghci-ing! > -Michael > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs From me at ara.io Tue Jul 31 14:34:01 2018 From: me at ara.io (Ara Adkins) Date: Tue, 31 Jul 2018 15:34:01 +0100 Subject: Failure to Build Message-ID: Hey Devs, I'm having trouble building the head of the ghc-8.6 branch (`26a7f850d1`) on my Arch Linux machine. The essence of the error is this as follows, though the full result of make (to the point of error) is attached. ``` Configuring template-haskell-2.14.0.0... ghc-cabal: Encountered missing dependencies: ghc-boot-th ==8.6.* && ==8.7 ``` The output of configure is as follows: ``` ---------------------------------------------------------------------- Configure completed successfully. Building GHC version : 8.7.20180730 Git commit id : 26a7f850d15b91ad68d1e28d467faba00bb79144 Build platform : x86_64-unknown-linux Host platform : x86_64-unknown-linux Target platform : x86_64-unknown-linux Bootstrapping using : /usr/bin/ghc which is version : 8.4.3 Using (for bootstrapping) : gcc Using gcc : gcc which is version : 8.1.1 Building a cross compiler : NO Unregisterised : NO hs-cpp : gcc hs-cpp-flags : -E -undef -traditional ar : ar ld : ld.gold nm : nm libtool : libtool objdump : objdump ranlib : ranlib windres : dllwrap : genlib : Happy : /home/ara/.local/bin/happy (1.19.9) Alex : /usr/bin/alex (3.2.4) Perl : /usr/bin/perl sphinx-build : /usr/bin/sphinx-build xelatex : /usr/bin/xelatex Using LLVM tools clang : clang llc : opt : HsColour : /usr/bin/HsColour Tools to build Sphinx HTML documentation available: YES Tools to build Sphinx PDF documentation available: YES ---------------------------------------------------------------------- ``` Any help would be most appreciated. Best, _ara -------------- next part -------------- An HTML attachment was scrubbed... URL: -------------- next part -------------- + test -f mk/config.mk.old + cp -p mk/config.mk mk/config.mk.old touch -r mk/config.mk.old mk/config.mk + test -f mk/project.mk.old + cp -p mk/project.mk mk/project.mk.old touch -r mk/project.mk.old mk/project.mk + test -f compiler/ghc.cabal.old + cp -p compiler/ghc.cabal compiler/ghc.cabal.old touch -r compiler/ghc.cabal.old compiler/ghc.cabal ===--- building phase 0 make --no-print-directory -f ghc.mk phase=0 phase_0_builds mkdir -p inplace/bin mkdir -p inplace/lib "rm" -f inplace/bin/mkdirhier echo '#!/bin/sh' >> inplace/bin/mkdirhier cat utils/mkdirhier/mkdirhier.sh >> inplace/bin/mkdirhier chmod +x inplace/bin/mkdirhier "inplace/bin/mkdirhier" utils/ghc-cabal/dist/build/tmp//. "inplace/bin/mkdirhier" bootstrapping/. "inplace/bin/mkdirhier" compiler/stage1/build//. "inplace/bin/mkdirhier" utils/ghc-pkg/dist/build//. "/usr/bin/ghc" -O -H64m -Wall \ -optc-Wall -optc-fno-stack-protector \ \ -hide-all-packages \ -package ghc-prim -package base -package array -package transformers -package time -package containers -package bytestring -package deepseq -package process -package pretty -package directory -package unix \ --make utils/ghc-cabal/Main.hs -o utils/ghc-cabal/dist/build/tmp/ghc-cabal \ -no-user-package-db \ -Wall -fno-warn-unused-imports -fno-warn-warnings-deprecations \ -DCABAL_VERSION=2,3,0,0 \ -DCABAL_PARSEC \ -DBOOTSTRAPPING \ -odir bootstrapping \ -hidir bootstrapping \ libraries/Cabal/Cabal/Distribution/Parsec/Lexer.hs \ -ilibraries/Cabal/Cabal \ -ilibraries/binary/src \ -ilibraries/filepath \ -ilibraries/hpc \ -ilibraries/mtl \ -ilibraries/text \ libraries/text/cbits/cbits.c \ -Ilibraries/text/include \ -ilibraries/parsec/src \ \ "rm" -f compiler/stage1/build/Config.hs "rm" -f utils/ghc-pkg/dist/build/Version.hs Creating compiler/stage1/build/Config.hs ... echo "module Version where" >> utils/ghc-pkg/dist/build/Version.hs echo "version, targetOS, targetARCH :: String" >> utils/ghc-pkg/dist/build/Version.hs echo "version = \"8.7.20180730\"" >> utils/ghc-pkg/dist/build/Version.hs echo "targetOS = \"linux\"" >> utils/ghc-pkg/dist/build/Version.hs echo "targetARCH = \"x86_64\"" >> utils/ghc-pkg/dist/build/Version.hs done. [ 1 of 271] Compiling Control.Monad.Cont.Class ( libraries/mtl/Control/Monad/Cont/Class.hs, bootstrapping/Control/Monad/Cont/Class.o ) [ 2 of 271] Compiling Control.Monad.Error.Class ( libraries/mtl/Control/Monad/Error/Class.hs, bootstrapping/Control/Monad/Error/Class.o ) [ 3 of 271] Compiling Control.Monad.Identity ( libraries/mtl/Control/Monad/Identity.hs, bootstrapping/Control/Monad/Identity.o ) [ 4 of 271] Compiling Control.Monad.Reader.Class ( libraries/mtl/Control/Monad/Reader/Class.hs, bootstrapping/Control/Monad/Reader/Class.o ) [ 5 of 271] Compiling Control.Monad.State.Class ( libraries/mtl/Control/Monad/State/Class.hs, bootstrapping/Control/Monad/State/Class.o ) [ 6 of 271] Compiling Control.Monad.Trans ( libraries/mtl/Control/Monad/Trans.hs, bootstrapping/Control/Monad/Trans.o ) [ 7 of 271] Compiling Control.Monad.State.Strict ( libraries/mtl/Control/Monad/State/Strict.hs, bootstrapping/Control/Monad/State/Strict.o ) [ 8 of 271] Compiling Data.Binary.Builder ( libraries/binary/src/Data/Binary/Builder.hs, bootstrapping/Data/Binary/Builder.o ) [ 9 of 271] Compiling Data.Binary.FloatCast ( libraries/binary/src/Data/Binary/FloatCast.hs, bootstrapping/Data/Binary/FloatCast.o ) [ 10 of 271] Compiling Data.Binary.Internal ( libraries/binary/src/Data/Binary/Internal.hs, bootstrapping/Data/Binary/Internal.o ) [ 11 of 271] Compiling Data.Binary.Get.Internal ( libraries/binary/src/Data/Binary/Get/Internal.hs, bootstrapping/Data/Binary/Get/Internal.o ) [ 12 of 271] Compiling Data.Binary.Get ( libraries/binary/src/Data/Binary/Get.hs, bootstrapping/Data/Binary/Get.o ) [ 13 of 271] Compiling Data.Binary.Put ( libraries/binary/src/Data/Binary/Put.hs, bootstrapping/Data/Binary/Put.o ) [ 14 of 271] Compiling Data.Binary.Class ( libraries/binary/src/Data/Binary/Class.hs, bootstrapping/Data/Binary/Class.o ) [ 15 of 271] Compiling Data.Binary.Generic ( libraries/binary/src/Data/Binary/Generic.hs, bootstrapping/Data/Binary/Generic.o ) [ 16 of 271] Compiling Data.Binary ( libraries/binary/src/Data/Binary.hs, bootstrapping/Data/Binary.o ) [ 17 of 271] Compiling Data.Text.Encoding.Error ( libraries/text/Data/Text/Encoding/Error.hs, bootstrapping/Data/Text/Encoding/Error.o ) [ 18 of 271] Compiling Data.Text.Internal.Encoding.Utf16 ( libraries/text/Data/Text/Internal/Encoding/Utf16.hs, bootstrapping/Data/Text/Internal/Encoding/Utf16.o ) [ 19 of 271] Compiling Data.Text.Internal.Encoding.Utf32 ( libraries/text/Data/Text/Internal/Encoding/Utf32.hs, bootstrapping/Data/Text/Internal/Encoding/Utf32.o ) [ 20 of 271] Compiling Data.Text.Internal.Functions ( libraries/text/Data/Text/Internal/Functions.hs, bootstrapping/Data/Text/Internal/Functions.o ) [ 21 of 271] Compiling Data.Text.Internal.Unsafe ( libraries/text/Data/Text/Internal/Unsafe.hs, bootstrapping/Data/Text/Internal/Unsafe.o ) [ 22 of 271] Compiling Data.Text.Internal.Unsafe.Shift ( libraries/text/Data/Text/Internal/Unsafe/Shift.hs, bootstrapping/Data/Text/Internal/Unsafe/Shift.o ) [ 23 of 271] Compiling Data.Text.Array ( libraries/text/Data/Text/Array.hs, bootstrapping/Data/Text/Array.o ) [ 24 of 271] Compiling Data.Text.Internal.Unsafe.Char ( libraries/text/Data/Text/Internal/Unsafe/Char.hs, bootstrapping/Data/Text/Internal/Unsafe/Char.o ) [ 25 of 271] Compiling Data.Text.Internal.Encoding.Utf8 ( libraries/text/Data/Text/Internal/Encoding/Utf8.hs, bootstrapping/Data/Text/Internal/Encoding/Utf8.o ) [ 26 of 271] Compiling Data.Text.Internal ( libraries/text/Data/Text/Internal.hs, bootstrapping/Data/Text/Internal.o ) [ 27 of 271] Compiling Data.Text.Internal.Search ( libraries/text/Data/Text/Internal/Search.hs, bootstrapping/Data/Text/Internal/Search.o ) [ 28 of 271] Compiling Data.Text.Internal.Fusion.Size ( libraries/text/Data/Text/Internal/Fusion/Size.hs, bootstrapping/Data/Text/Internal/Fusion/Size.o ) [ 29 of 271] Compiling Data.Text.Internal.Fusion.Types ( libraries/text/Data/Text/Internal/Fusion/Types.hs, bootstrapping/Data/Text/Internal/Fusion/Types.o ) [ 30 of 271] Compiling Data.Text.Internal.Fusion.CaseMapping ( libraries/text/Data/Text/Internal/Fusion/CaseMapping.hs, bootstrapping/Data/Text/Internal/Fusion/CaseMapping.o ) [ 31 of 271] Compiling Data.Text.Internal.Fusion.Common ( libraries/text/Data/Text/Internal/Fusion/Common.hs, bootstrapping/Data/Text/Internal/Fusion/Common.o ) [ 32 of 271] Compiling Data.Text.Unsafe ( libraries/text/Data/Text/Unsafe.hs, bootstrapping/Data/Text/Unsafe.o ) [ 33 of 271] Compiling Data.Text.Internal.Private ( libraries/text/Data/Text/Internal/Private.hs, bootstrapping/Data/Text/Internal/Private.o ) [ 34 of 271] Compiling Data.Text.Internal.Fusion ( libraries/text/Data/Text/Internal/Fusion.hs, bootstrapping/Data/Text/Internal/Fusion.o ) [ 35 of 271] Compiling Data.Text.Show ( libraries/text/Data/Text/Show.hs, bootstrapping/Data/Text/Show.o ) [ 36 of 271] Compiling Data.Text.Internal.Encoding.Fusion.Common ( libraries/text/Data/Text/Internal/Encoding/Fusion/Common.hs, bootstrapping/Data/Text/Internal/Encoding/Fusion/Common.o ) [ 37 of 271] Compiling Data.Text.Internal.Lazy.Encoding.Fusion ( libraries/text/Data/Text/Internal/Lazy/Encoding/Fusion.hs, bootstrapping/Data/Text/Internal/Lazy/Encoding/Fusion.o ) [ 38 of 271] Compiling Data.Text.Internal.Encoding.Fusion ( libraries/text/Data/Text/Internal/Encoding/Fusion.hs, bootstrapping/Data/Text/Internal/Encoding/Fusion.o ) [ 39 of 271] Compiling Data.Text.Encoding ( libraries/text/Data/Text/Encoding.hs, bootstrapping/Data/Text/Encoding.o ) [ 40 of 271] Compiling Data.Text ( libraries/text/Data/Text.hs, bootstrapping/Data/Text.o ) [ 41 of 271] Compiling Data.Text.Internal.Lazy ( libraries/text/Data/Text/Internal/Lazy.hs, bootstrapping/Data/Text/Internal/Lazy.o ) [ 42 of 271] Compiling Data.Text.Internal.Lazy.Search ( libraries/text/Data/Text/Internal/Lazy/Search.hs, bootstrapping/Data/Text/Internal/Lazy/Search.o ) [ 43 of 271] Compiling Data.Text.Internal.Lazy.Fusion ( libraries/text/Data/Text/Internal/Lazy/Fusion.hs, bootstrapping/Data/Text/Internal/Lazy/Fusion.o ) [ 44 of 271] Compiling Data.Text.Lazy.Encoding ( libraries/text/Data/Text/Lazy/Encoding.hs, bootstrapping/Data/Text/Lazy/Encoding.o ) [ 45 of 271] Compiling Data.Text.Lazy ( libraries/text/Data/Text/Lazy.hs, bootstrapping/Data/Text/Lazy.o ) [ 46 of 271] Compiling Distribution.Compat.Binary ( libraries/Cabal/Cabal/Distribution/Compat/Binary.hs, bootstrapping/Distribution/Compat/Binary.o ) [ 47 of 271] Compiling Distribution.Compat.Directory ( libraries/Cabal/Cabal/Distribution/Compat/Directory.hs, bootstrapping/Distribution/Compat/Directory.o ) [ 48 of 271] Compiling Distribution.Compat.Exception ( libraries/Cabal/Cabal/Distribution/Compat/Exception.hs, bootstrapping/Distribution/Compat/Exception.o ) [ 49 of 271] Compiling Distribution.Compat.Map.Lazy ( libraries/Cabal/Cabal/Distribution/Compat/Map/Lazy.hs, bootstrapping/Distribution/Compat/Map/Lazy.o ) [ 50 of 271] Compiling Distribution.Compat.Map.Strict ( libraries/Cabal/Cabal/Distribution/Compat/Map/Strict.hs, bootstrapping/Distribution/Compat/Map/Strict.o ) [ 51 of 271] Compiling Distribution.Compat.MonadFail ( libraries/Cabal/Cabal/Distribution/Compat/MonadFail.hs, bootstrapping/Distribution/Compat/MonadFail.o ) [ 52 of 271] Compiling Distribution.Compat.Newtype ( libraries/Cabal/Cabal/Distribution/Compat/Newtype.hs, bootstrapping/Distribution/Compat/Newtype.o ) [ 53 of 271] Compiling Distribution.Compat.Semigroup ( libraries/Cabal/Cabal/Distribution/Compat/Semigroup.hs, bootstrapping/Distribution/Compat/Semigroup.o ) [ 54 of 271] Compiling Distribution.Compat.Stack ( libraries/Cabal/Cabal/Distribution/Compat/Stack.hs, bootstrapping/Distribution/Compat/Stack.o ) [ 55 of 271] Compiling Distribution.Compat.Prelude ( libraries/Cabal/Cabal/Distribution/Compat/Prelude.hs, bootstrapping/Distribution/Compat/Prelude.o ) [ 56 of 271] Compiling Distribution.Compat.ReadP ( libraries/Cabal/Cabal/Distribution/Compat/ReadP.hs, bootstrapping/Distribution/Compat/ReadP.o ) [ 57 of 271] Compiling Distribution.Compat.Graph ( libraries/Cabal/Cabal/Distribution/Compat/Graph.hs, bootstrapping/Distribution/Compat/Graph.o ) [ 58 of 271] Compiling Distribution.Compat.GetShortPathName ( libraries/Cabal/Cabal/Distribution/Compat/GetShortPathName.hs, bootstrapping/Distribution/Compat/GetShortPathName.o ) [ 59 of 271] Compiling Distribution.Compat.DList ( libraries/Cabal/Cabal/Distribution/Compat/DList.hs, bootstrapping/Distribution/Compat/DList.o ) [ 60 of 271] Compiling Distribution.Compat.Lens ( libraries/Cabal/Cabal/Distribution/Compat/Lens.hs, bootstrapping/Distribution/Compat/Lens.o ) [ 61 of 271] Compiling Distribution.CabalSpecVersion ( libraries/Cabal/Cabal/Distribution/CabalSpecVersion.hs, bootstrapping/Distribution/CabalSpecVersion.o ) [ 62 of 271] Compiling Distribution.Compat.Environment ( libraries/Cabal/Cabal/Distribution/Compat/Environment.hs, bootstrapping/Distribution/Compat/Environment.o ) [ 63 of 271] Compiling Distribution.Compat.CreatePipe ( libraries/Cabal/Cabal/Distribution/Compat/CreatePipe.hs, bootstrapping/Distribution/Compat/CreatePipe.o ) [ 64 of 271] Compiling Distribution.GetOpt ( libraries/Cabal/Cabal/Distribution/GetOpt.hs, bootstrapping/Distribution/GetOpt.o ) [ 65 of 271] Compiling Distribution.Lex ( libraries/Cabal/Cabal/Distribution/Lex.hs, bootstrapping/Distribution/Lex.o ) [ 66 of 271] Compiling Distribution.PackageDescription.Quirks ( libraries/Cabal/Cabal/Distribution/PackageDescription/Quirks.hs, bootstrapping/Distribution/PackageDescription/Quirks.o ) [ 67 of 271] Compiling Distribution.PackageDescription.Utils ( libraries/Cabal/Cabal/Distribution/PackageDescription/Utils.hs, bootstrapping/Distribution/PackageDescription/Utils.o ) [ 68 of 271] Compiling Distribution.Parsec.Field ( libraries/Cabal/Cabal/Distribution/Parsec/Field.hs, bootstrapping/Distribution/Parsec/Field.o ) [ 69 of 271] Compiling Distribution.Pretty ( libraries/Cabal/Cabal/Distribution/Pretty.hs, bootstrapping/Distribution/Pretty.o ) [ 70 of 271] Compiling Distribution.Simple.Flag ( libraries/Cabal/Cabal/Distribution/Simple/Flag.hs, bootstrapping/Distribution/Simple/Flag.o ) [ 71 of 271] Compiling Distribution.Simple.PreProcess.Unlit ( libraries/Cabal/Cabal/Distribution/Simple/PreProcess/Unlit.hs, bootstrapping/Distribution/Simple/PreProcess/Unlit.o ) [ 72 of 271] Compiling Distribution.Simple.Program.Internal ( libraries/Cabal/Cabal/Distribution/Simple/Program/Internal.hs, bootstrapping/Distribution/Simple/Program/Internal.o ) [ 73 of 271] Compiling Distribution.TestSuite ( libraries/Cabal/Cabal/Distribution/TestSuite.hs, bootstrapping/Distribution/TestSuite.o ) [ 74 of 271] Compiling Distribution.Types.Condition ( libraries/Cabal/Cabal/Distribution/Types/Condition.hs, bootstrapping/Distribution/Types/Condition.o ) [ 75 of 271] Compiling Distribution.Types.CondTree ( libraries/Cabal/Cabal/Distribution/Types/CondTree.hs, bootstrapping/Distribution/Types/CondTree.o ) [ 76 of 271] Compiling Distribution.Utils.Base62 ( libraries/Cabal/Cabal/Distribution/Utils/Base62.hs, bootstrapping/Distribution/Utils/Base62.o ) [ 77 of 271] Compiling Distribution.Utils.IOData ( libraries/Cabal/Cabal/Distribution/Utils/IOData.hs, bootstrapping/Distribution/Utils/IOData.o ) [ 78 of 271] Compiling Distribution.Utils.MapAccum ( libraries/Cabal/Cabal/Distribution/Utils/MapAccum.hs, bootstrapping/Distribution/Utils/MapAccum.o ) [ 79 of 271] Compiling Distribution.Utils.Progress ( libraries/Cabal/Cabal/Distribution/Utils/Progress.hs, bootstrapping/Distribution/Utils/Progress.o ) [ 80 of 271] Compiling Distribution.Utils.String ( libraries/Cabal/Cabal/Distribution/Utils/String.hs, bootstrapping/Distribution/Utils/String.o ) [ 81 of 271] Compiling Distribution.Utils.ShortText ( libraries/Cabal/Cabal/Distribution/Utils/ShortText.hs, bootstrapping/Distribution/Utils/ShortText.o ) [ 82 of 271] Compiling Distribution.Utils.UnionFind ( libraries/Cabal/Cabal/Distribution/Utils/UnionFind.hs, bootstrapping/Distribution/Utils/UnionFind.o ) [ 83 of 271] Compiling System.FilePath.Posix ( libraries/filepath/System/FilePath/Posix.hs, bootstrapping/System/FilePath/Posix.o ) [ 84 of 271] Compiling System.FilePath ( libraries/filepath/System/FilePath.hs, bootstrapping/System/FilePath.o ) [ 85 of 271] Compiling Distribution.Utils.Generic ( libraries/Cabal/Cabal/Distribution/Utils/Generic.hs, bootstrapping/Distribution/Utils/Generic.o ) [ 86 of 271] Compiling Distribution.Simple.CCompiler ( libraries/Cabal/Cabal/Distribution/Simple/CCompiler.hs, bootstrapping/Distribution/Simple/CCompiler.o ) [ 87 of 271] Compiling Distribution.Parsec.Common ( libraries/Cabal/Cabal/Distribution/Parsec/Common.hs, bootstrapping/Distribution/Parsec/Common.o ) [ 88 of 271] Compiling Distribution.Parsec.LexerMonad ( libraries/Cabal/Cabal/Distribution/Parsec/LexerMonad.hs, bootstrapping/Distribution/Parsec/LexerMonad.o ) [ 89 of 271] Compiling Distribution.Parsec.Lexer ( libraries/Cabal/Cabal/Distribution/Parsec/Lexer.hs, bootstrapping/Distribution/Parsec/Lexer.o ) [ 90 of 271] Compiling Distribution.Compat.Internal.TempFile ( libraries/Cabal/Cabal/Distribution/Compat/Internal/TempFile.hs, bootstrapping/Distribution/Compat/Internal/TempFile.o ) [ 91 of 271] Compiling Distribution.Compat.CopyFile ( libraries/Cabal/Cabal/Distribution/Compat/CopyFile.hs, bootstrapping/Distribution/Compat/CopyFile.o ) [ 92 of 271] Compiling System.FilePath.Windows ( libraries/filepath/System/FilePath/Windows.hs, bootstrapping/System/FilePath/Windows.o ) [ 93 of 271] Compiling Text.Parsec.Pos ( libraries/parsec/src/Text/Parsec/Pos.hs, bootstrapping/Text/Parsec/Pos.o ) [ 94 of 271] Compiling Text.Parsec.Error ( libraries/parsec/src/Text/Parsec/Error.hs, bootstrapping/Text/Parsec/Error.o ) [ 95 of 271] Compiling Text.Parsec.Prim ( libraries/parsec/src/Text/Parsec/Prim.hs, bootstrapping/Text/Parsec/Prim.o ) [ 96 of 271] Compiling Text.Parsec.Combinator ( libraries/parsec/src/Text/Parsec/Combinator.hs, bootstrapping/Text/Parsec/Combinator.o ) [ 97 of 271] Compiling Text.Parsec.Char ( libraries/parsec/src/Text/Parsec/Char.hs, bootstrapping/Text/Parsec/Char.o ) [ 98 of 271] Compiling Text.Parsec ( libraries/parsec/src/Text/Parsec.hs, bootstrapping/Text/Parsec.o ) [ 99 of 271] Compiling Distribution.Parsec.FieldLineStream ( libraries/Cabal/Cabal/Distribution/Parsec/FieldLineStream.hs, bootstrapping/Distribution/Parsec/FieldLineStream.o ) [100 of 271] Compiling Distribution.Compat.Parsing ( libraries/Cabal/Cabal/Distribution/Compat/Parsing.hs, bootstrapping/Distribution/Compat/Parsing.o ) [101 of 271] Compiling Distribution.Compat.CharParsing ( libraries/Cabal/Cabal/Distribution/Compat/CharParsing.hs, bootstrapping/Distribution/Compat/CharParsing.o ) [102 of 271] Compiling Distribution.Parsec.Class ( libraries/Cabal/Cabal/Distribution/Parsec/Class.hs, bootstrapping/Distribution/Parsec/Class.o ) [103 of 271] Compiling Distribution.Text ( libraries/Cabal/Cabal/Distribution/Text.hs, bootstrapping/Distribution/Text.o ) [104 of 271] Compiling Language.Haskell.Extension ( libraries/Cabal/Cabal/Language/Haskell/Extension.hs, bootstrapping/Language/Haskell/Extension.o ) [105 of 271] Compiling Distribution.Types.Version ( libraries/Cabal/Cabal/Distribution/Types/Version.hs, bootstrapping/Distribution/Types/Version.o ) [106 of 271] Compiling Distribution.Types.VersionRange ( libraries/Cabal/Cabal/Distribution/Types/VersionRange.hs, bootstrapping/Distribution/Types/VersionRange.o ) [107 of 271] Compiling Distribution.Types.VersionInterval ( libraries/Cabal/Cabal/Distribution/Types/VersionInterval.hs, bootstrapping/Distribution/Types/VersionInterval.o ) [108 of 271] Compiling Distribution.Version ( libraries/Cabal/Cabal/Distribution/Version.hs, bootstrapping/Distribution/Version.o ) [109 of 271] Compiling Distribution.Parsec.ParseResult ( libraries/Cabal/Cabal/Distribution/Parsec/ParseResult.hs, bootstrapping/Distribution/Parsec/ParseResult.o ) [110 of 271] Compiling Distribution.Types.TestType ( libraries/Cabal/Cabal/Distribution/Types/TestType.hs, bootstrapping/Distribution/Types/TestType.o ) [111 of 271] Compiling Distribution.Types.SourceRepo ( libraries/Cabal/Cabal/Distribution/Types/SourceRepo.hs, bootstrapping/Distribution/Types/SourceRepo.o ) [112 of 271] Compiling Distribution.Types.SourceRepo.Lens ( libraries/Cabal/Cabal/Distribution/Types/SourceRepo/Lens.hs, bootstrapping/Distribution/Types/SourceRepo/Lens.o ) [113 of 271] Compiling Distribution.Types.PkgconfigName ( libraries/Cabal/Cabal/Distribution/Types/PkgconfigName.hs, bootstrapping/Distribution/Types/PkgconfigName.o ) [114 of 271] Compiling Distribution.Types.PkgconfigDependency ( libraries/Cabal/Cabal/Distribution/Types/PkgconfigDependency.hs, bootstrapping/Distribution/Types/PkgconfigDependency.o ) [115 of 271] Compiling Distribution.Types.ForeignLibType ( libraries/Cabal/Cabal/Distribution/Types/ForeignLibType.hs, bootstrapping/Distribution/Types/ForeignLibType.o ) [116 of 271] Compiling Distribution.Types.ForeignLibOption ( libraries/Cabal/Cabal/Distribution/Types/ForeignLibOption.hs, bootstrapping/Distribution/Types/ForeignLibOption.o ) [117 of 271] Compiling Distribution.Types.ExecutableScope ( libraries/Cabal/Cabal/Distribution/Types/ExecutableScope.hs, bootstrapping/Distribution/Types/ExecutableScope.o ) [118 of 271] Compiling Distribution.Types.ComponentId ( libraries/Cabal/Cabal/Distribution/Types/ComponentId.hs, bootstrapping/Distribution/Types/ComponentId.o ) [119 of 271] Compiling Distribution.Types.BuildType ( libraries/Cabal/Cabal/Distribution/Types/BuildType.hs, bootstrapping/Distribution/Types/BuildType.o ) [120 of 271] Compiling Distribution.Types.BenchmarkType ( libraries/Cabal/Cabal/Distribution/Types/BenchmarkType.hs, bootstrapping/Distribution/Types/BenchmarkType.o ) [121 of 271] Compiling Distribution.Types.BenchmarkInterface ( libraries/Cabal/Cabal/Distribution/Types/BenchmarkInterface.hs, bootstrapping/Distribution/Types/BenchmarkInterface.o ) [122 of 271] Compiling Distribution.Types.AbiHash ( libraries/Cabal/Cabal/Distribution/Types/AbiHash.hs, bootstrapping/Distribution/Types/AbiHash.o ) [123 of 271] Compiling Distribution.System ( libraries/Cabal/Cabal/Distribution/System.hs, bootstrapping/Distribution/System.o ) [124 of 271] Compiling Distribution.SPDX.LicenseReference ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseReference.hs, bootstrapping/Distribution/SPDX/LicenseReference.o ) [125 of 271] Compiling Distribution.SPDX.LicenseId ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseId.hs, bootstrapping/Distribution/SPDX/LicenseId.o ) [126 of 271] Compiling Distribution.SPDX.LicenseExceptionId ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseExceptionId.hs, bootstrapping/Distribution/SPDX/LicenseExceptionId.o ) [127 of 271] Compiling Distribution.SPDX.LicenseExpression ( libraries/Cabal/Cabal/Distribution/SPDX/LicenseExpression.hs, bootstrapping/Distribution/SPDX/LicenseExpression.o ) [128 of 271] Compiling Distribution.SPDX.License ( libraries/Cabal/Cabal/Distribution/SPDX/License.hs, bootstrapping/Distribution/SPDX/License.o ) [129 of 271] Compiling Distribution.SPDX ( libraries/Cabal/Cabal/Distribution/SPDX.hs, bootstrapping/Distribution/SPDX.o ) [130 of 271] Compiling Distribution.ReadE ( libraries/Cabal/Cabal/Distribution/ReadE.hs, bootstrapping/Distribution/ReadE.o ) [131 of 271] Compiling Distribution.Verbosity ( libraries/Cabal/Cabal/Distribution/Verbosity.hs, bootstrapping/Distribution/Verbosity.o ) [132 of 271] Compiling Distribution.FieldGrammar.Class ( libraries/Cabal/Cabal/Distribution/FieldGrammar/Class.hs, bootstrapping/Distribution/FieldGrammar/Class.o ) [133 of 271] Compiling Distribution.ModuleName ( libraries/Cabal/Cabal/Distribution/ModuleName.hs, bootstrapping/Distribution/ModuleName.o ) [134 of 271] Compiling Distribution.Types.TestSuiteInterface ( libraries/Cabal/Cabal/Distribution/Types/TestSuiteInterface.hs, bootstrapping/Distribution/Types/TestSuiteInterface.o ) [135 of 271] Compiling Distribution.Types.ModuleRenaming ( libraries/Cabal/Cabal/Distribution/Types/ModuleRenaming.hs, bootstrapping/Distribution/Types/ModuleRenaming.o ) [136 of 271] Compiling Distribution.Types.IncludeRenaming ( libraries/Cabal/Cabal/Distribution/Types/IncludeRenaming.hs, bootstrapping/Distribution/Types/IncludeRenaming.o ) [137 of 271] Compiling Distribution.License ( libraries/Cabal/Cabal/Distribution/License.hs, bootstrapping/Distribution/License.o ) [138 of 271] Compiling Distribution.Compiler ( libraries/Cabal/Cabal/Distribution/Compiler.hs, bootstrapping/Distribution/Compiler.o ) [139 of 271] Compiling Distribution.Parsec.Newtypes ( libraries/Cabal/Cabal/Distribution/Parsec/Newtypes.hs, bootstrapping/Distribution/Parsec/Newtypes.o ) [140 of 271] Compiling Distribution.ParseUtils ( libraries/Cabal/Cabal/Distribution/ParseUtils.hs, bootstrapping/Distribution/ParseUtils.o ) [141 of 271] Compiling Distribution.Types.PackageName ( libraries/Cabal/Cabal/Distribution/Types/PackageName.hs, bootstrapping/Distribution/Types/PackageName.o ) [142 of 271] Compiling Distribution.Types.UnqualComponentName ( libraries/Cabal/Cabal/Distribution/Types/UnqualComponentName.hs, bootstrapping/Distribution/Types/UnqualComponentName.o ) [143 of 271] Compiling Distribution.Types.ComponentName ( libraries/Cabal/Cabal/Distribution/Types/ComponentName.hs, bootstrapping/Distribution/Types/ComponentName.o ) [144 of 271] Compiling Distribution.Types.PackageId ( libraries/Cabal/Cabal/Distribution/Types/PackageId.hs, bootstrapping/Distribution/Types/PackageId.o ) [145 of 271] Compiling Distribution.Types.UnitId ( libraries/Cabal/Cabal/Distribution/Types/UnitId.hs, bootstrapping/Distribution/Types/UnitId.o ) [146 of 271] Compiling Distribution.Types.Module ( libraries/Cabal/Cabal/Distribution/Types/Module.hs, bootstrapping/Distribution/Types/Module.o ) [147 of 271] Compiling Distribution.Types.PackageId.Lens ( libraries/Cabal/Cabal/Distribution/Types/PackageId/Lens.hs, bootstrapping/Distribution/Types/PackageId/Lens.o ) [148 of 271] Compiling Distribution.Simple.Utils ( libraries/Cabal/Cabal/Distribution/Simple/Utils.hs, bootstrapping/Distribution/Simple/Utils.o ) [149 of 271] Compiling Distribution.Utils.NubList ( libraries/Cabal/Cabal/Distribution/Utils/NubList.hs, bootstrapping/Distribution/Utils/NubList.o ) [150 of 271] Compiling Distribution.Utils.LogProgress ( libraries/Cabal/Cabal/Distribution/Utils/LogProgress.hs, bootstrapping/Distribution/Utils/LogProgress.o ) [151 of 271] Compiling Distribution.Simple.Program.ResponseFile ( libraries/Cabal/Cabal/Distribution/Simple/Program/ResponseFile.hs, bootstrapping/Distribution/Simple/Program/ResponseFile.o ) [152 of 271] Compiling Distribution.Simple.Program.Find ( libraries/Cabal/Cabal/Distribution/Simple/Program/Find.hs, bootstrapping/Distribution/Simple/Program/Find.o ) [153 of 271] Compiling Distribution.Simple.Glob ( libraries/Cabal/Cabal/Distribution/Simple/Glob.hs, bootstrapping/Distribution/Simple/Glob.o ) [154 of 271] Compiling Distribution.Simple.Compiler ( libraries/Cabal/Cabal/Distribution/Simple/Compiler.hs, bootstrapping/Distribution/Simple/Compiler.o ) [155 of 271] Compiling Distribution.Simple.GHC.ImplInfo ( libraries/Cabal/Cabal/Distribution/Simple/GHC/ImplInfo.hs, bootstrapping/Distribution/Simple/GHC/ImplInfo.o ) [156 of 271] Compiling Distribution.FieldGrammar.Parsec ( libraries/Cabal/Cabal/Distribution/FieldGrammar/Parsec.hs, bootstrapping/Distribution/FieldGrammar/Parsec.o ) [157 of 271] Compiling Distribution.Backpack.DescribeUnitId ( libraries/Cabal/Cabal/Distribution/Backpack/DescribeUnitId.hs, bootstrapping/Distribution/Backpack/DescribeUnitId.o ) [158 of 271] Compiling Distribution.Types.ModuleReexport ( libraries/Cabal/Cabal/Distribution/Types/ModuleReexport.hs, bootstrapping/Distribution/Types/ModuleReexport.o ) [159 of 271] Compiling Distribution.Types.Mixin ( libraries/Cabal/Cabal/Distribution/Types/Mixin.hs, bootstrapping/Distribution/Types/Mixin.o ) [160 of 271] Compiling Distribution.Types.ExeDependency ( libraries/Cabal/Cabal/Distribution/Types/ExeDependency.hs, bootstrapping/Distribution/Types/ExeDependency.o ) [161 of 271] Compiling Distribution.Types.Dependency ( libraries/Cabal/Cabal/Distribution/Types/Dependency.hs, bootstrapping/Distribution/Types/Dependency.o ) [162 of 271] Compiling Distribution.Types.SetupBuildInfo ( libraries/Cabal/Cabal/Distribution/Types/SetupBuildInfo.hs, bootstrapping/Distribution/Types/SetupBuildInfo.o ) [163 of 271] Compiling Distribution.Types.SetupBuildInfo.Lens ( libraries/Cabal/Cabal/Distribution/Types/SetupBuildInfo/Lens.hs, bootstrapping/Distribution/Types/SetupBuildInfo/Lens.o ) [164 of 271] Compiling Distribution.Types.DependencyMap ( libraries/Cabal/Cabal/Distribution/Types/DependencyMap.hs, bootstrapping/Distribution/Types/DependencyMap.o ) [165 of 271] Compiling Distribution.Simple.GHC.IPIConvert ( libraries/Cabal/Cabal/Distribution/Simple/GHC/IPIConvert.hs, bootstrapping/Distribution/Simple/GHC/IPIConvert.o ) [166 of 271] Compiling Distribution.Types.MungedPackageName ( libraries/Cabal/Cabal/Distribution/Types/MungedPackageName.hs, bootstrapping/Distribution/Types/MungedPackageName.o ) [167 of 271] Compiling Distribution.Types.MungedPackageId ( libraries/Cabal/Cabal/Distribution/Types/MungedPackageId.hs, bootstrapping/Distribution/Types/MungedPackageId.o ) [168 of 271] Compiling Distribution.Package ( libraries/Cabal/Cabal/Distribution/Package.hs, bootstrapping/Distribution/Package.o ) [169 of 271] Compiling Distribution.Types.AnnotatedId ( libraries/Cabal/Cabal/Distribution/Types/AnnotatedId.hs, bootstrapping/Distribution/Types/AnnotatedId.o ) [170 of 271] Compiling Distribution.Types.ComponentInclude ( libraries/Cabal/Cabal/Distribution/Types/ComponentInclude.hs, bootstrapping/Distribution/Types/ComponentInclude.o ) [171 of 271] Compiling Distribution.Types.AbiDependency ( libraries/Cabal/Cabal/Distribution/Types/AbiDependency.hs, bootstrapping/Distribution/Types/AbiDependency.o ) [172 of 271] Compiling Distribution.Simple.InstallDirs ( libraries/Cabal/Cabal/Distribution/Simple/InstallDirs.hs, bootstrapping/Distribution/Simple/InstallDirs.o ) [173 of 271] Compiling Distribution.Types.LegacyExeDependency ( libraries/Cabal/Cabal/Distribution/Types/LegacyExeDependency.hs, bootstrapping/Distribution/Types/LegacyExeDependency.o ) [174 of 271] Compiling Distribution.Types.BuildInfo ( libraries/Cabal/Cabal/Distribution/Types/BuildInfo.hs, bootstrapping/Distribution/Types/BuildInfo.o ) [175 of 271] Compiling Distribution.Types.HookedBuildInfo ( libraries/Cabal/Cabal/Distribution/Types/HookedBuildInfo.hs, bootstrapping/Distribution/Types/HookedBuildInfo.o ) [176 of 271] Compiling Distribution.Types.BuildInfo.Lens ( libraries/Cabal/Cabal/Distribution/Types/BuildInfo/Lens.hs, bootstrapping/Distribution/Types/BuildInfo/Lens.o ) [177 of 271] Compiling Distribution.Types.TestSuite ( libraries/Cabal/Cabal/Distribution/Types/TestSuite.hs, bootstrapping/Distribution/Types/TestSuite.o ) [178 of 271] Compiling Distribution.Types.TestSuite.Lens ( libraries/Cabal/Cabal/Distribution/Types/TestSuite/Lens.hs, bootstrapping/Distribution/Types/TestSuite/Lens.o ) [179 of 271] Compiling Distribution.Types.Library ( libraries/Cabal/Cabal/Distribution/Types/Library.hs, bootstrapping/Distribution/Types/Library.o ) [180 of 271] Compiling Distribution.Types.Library.Lens ( libraries/Cabal/Cabal/Distribution/Types/Library/Lens.hs, bootstrapping/Distribution/Types/Library/Lens.o ) [181 of 271] Compiling Distribution.Types.ForeignLib ( libraries/Cabal/Cabal/Distribution/Types/ForeignLib.hs, bootstrapping/Distribution/Types/ForeignLib.o ) [182 of 271] Compiling Distribution.Types.ForeignLib.Lens ( libraries/Cabal/Cabal/Distribution/Types/ForeignLib/Lens.hs, bootstrapping/Distribution/Types/ForeignLib/Lens.o ) [183 of 271] Compiling Distribution.Types.Executable ( libraries/Cabal/Cabal/Distribution/Types/Executable.hs, bootstrapping/Distribution/Types/Executable.o ) [184 of 271] Compiling Distribution.Types.Executable.Lens ( libraries/Cabal/Cabal/Distribution/Types/Executable/Lens.hs, bootstrapping/Distribution/Types/Executable/Lens.o ) [185 of 271] Compiling Distribution.Types.Benchmark ( libraries/Cabal/Cabal/Distribution/Types/Benchmark.hs, bootstrapping/Distribution/Types/Benchmark.o ) [186 of 271] Compiling Distribution.Types.Component ( libraries/Cabal/Cabal/Distribution/Types/Component.hs, bootstrapping/Distribution/Types/Component.o ) [187 of 271] Compiling Distribution.Types.ComponentRequestedSpec ( libraries/Cabal/Cabal/Distribution/Types/ComponentRequestedSpec.hs, bootstrapping/Distribution/Types/ComponentRequestedSpec.o ) [188 of 271] Compiling Distribution.Types.PackageDescription ( libraries/Cabal/Cabal/Distribution/Types/PackageDescription.hs, bootstrapping/Distribution/Types/PackageDescription.o ) [189 of 271] Compiling Distribution.Types.PackageDescription.Lens ( libraries/Cabal/Cabal/Distribution/Types/PackageDescription/Lens.hs, bootstrapping/Distribution/Types/PackageDescription/Lens.o ) [190 of 271] Compiling Distribution.Types.GenericPackageDescription ( libraries/Cabal/Cabal/Distribution/Types/GenericPackageDescription.hs, bootstrapping/Distribution/Types/GenericPackageDescription.o ) [191 of 271] Compiling Distribution.Types.GenericPackageDescription.Lens ( libraries/Cabal/Cabal/Distribution/Types/GenericPackageDescription/Lens.hs, bootstrapping/Distribution/Types/GenericPackageDescription/Lens.o ) [192 of 271] Compiling Distribution.Parsec.ConfVar ( libraries/Cabal/Cabal/Distribution/Parsec/ConfVar.hs, bootstrapping/Distribution/Parsec/ConfVar.o ) [193 of 271] Compiling Distribution.Types.Benchmark.Lens ( libraries/Cabal/Cabal/Distribution/Types/Benchmark/Lens.hs, bootstrapping/Distribution/Types/Benchmark/Lens.o ) [194 of 271] Compiling Distribution.Types.Lens ( libraries/Cabal/Cabal/Distribution/Types/Lens.hs, bootstrapping/Distribution/Types/Lens.o ) [195 of 271] Compiling Distribution.PackageDescription ( libraries/Cabal/Cabal/Distribution/PackageDescription.hs, bootstrapping/Distribution/PackageDescription.o ) [196 of 271] Compiling Distribution.Simple.Program.Types ( libraries/Cabal/Cabal/Distribution/Simple/Program/Types.hs, bootstrapping/Distribution/Simple/Program/Types.o ) [197 of 271] Compiling Distribution.Simple.Program.Run ( libraries/Cabal/Cabal/Distribution/Simple/Program/Run.hs, bootstrapping/Distribution/Simple/Program/Run.o ) [198 of 271] Compiling Distribution.Simple.Program.Script ( libraries/Cabal/Cabal/Distribution/Simple/Program/Script.hs, bootstrapping/Distribution/Simple/Program/Script.o ) [199 of 271] Compiling Distribution.Simple.Program.Hpc ( libraries/Cabal/Cabal/Distribution/Simple/Program/Hpc.hs, bootstrapping/Distribution/Simple/Program/Hpc.o ) [200 of 271] Compiling Distribution.Simple.BuildToolDepends ( libraries/Cabal/Cabal/Distribution/Simple/BuildToolDepends.hs, bootstrapping/Distribution/Simple/BuildToolDepends.o ) [201 of 271] Compiling Distribution.Simple.Command ( libraries/Cabal/Cabal/Distribution/Simple/Command.hs, bootstrapping/Distribution/Simple/Command.o ) [202 of 271] Compiling Distribution.FieldGrammar.Pretty ( libraries/Cabal/Cabal/Distribution/FieldGrammar/Pretty.hs, bootstrapping/Distribution/FieldGrammar/Pretty.o ) [203 of 271] Compiling Distribution.FieldGrammar ( libraries/Cabal/Cabal/Distribution/FieldGrammar.hs, bootstrapping/Distribution/FieldGrammar.o ) [204 of 271] Compiling Distribution.FieldGrammar.FieldDescrs ( libraries/Cabal/Cabal/Distribution/FieldGrammar/FieldDescrs.hs, bootstrapping/Distribution/FieldGrammar/FieldDescrs.o ) [205 of 271] Compiling Distribution.PackageDescription.FieldGrammar ( libraries/Cabal/Cabal/Distribution/PackageDescription/FieldGrammar.hs, bootstrapping/Distribution/PackageDescription/FieldGrammar.o ) [206 of 271] Compiling Distribution.PackageDescription.PrettyPrint ( libraries/Cabal/Cabal/Distribution/PackageDescription/PrettyPrint.hs, bootstrapping/Distribution/PackageDescription/PrettyPrint.o ) [207 of 271] Compiling Distribution.PackageDescription.Configuration ( libraries/Cabal/Cabal/Distribution/PackageDescription/Configuration.hs, bootstrapping/Distribution/PackageDescription/Configuration.o ) [208 of 271] Compiling Distribution.Backpack ( libraries/Cabal/Cabal/Distribution/Backpack.hs, bootstrapping/Distribution/Backpack.o ) [209 of 271] Compiling Distribution.Types.ExposedModule ( libraries/Cabal/Cabal/Distribution/Types/ExposedModule.hs, bootstrapping/Distribution/Types/ExposedModule.o ) [210 of 271] Compiling Distribution.Types.InstalledPackageInfo ( libraries/Cabal/Cabal/Distribution/Types/InstalledPackageInfo.hs, bootstrapping/Distribution/Types/InstalledPackageInfo.o ) [211 of 271] Compiling Distribution.Types.InstalledPackageInfo.Lens ( libraries/Cabal/Cabal/Distribution/Types/InstalledPackageInfo/Lens.hs, bootstrapping/Distribution/Types/InstalledPackageInfo/Lens.o ) [212 of 271] Compiling Distribution.Types.InstalledPackageInfo.FieldGrammar ( libraries/Cabal/Cabal/Distribution/Types/InstalledPackageInfo/FieldGrammar.hs, bootstrapping/Distribution/Types/InstalledPackageInfo/FieldGrammar.o ) [213 of 271] Compiling Distribution.Simple.Program.GHC ( libraries/Cabal/Cabal/Distribution/Simple/Program/GHC.hs, bootstrapping/Distribution/Simple/Program/GHC.o ) [214 of 271] Compiling Distribution.Simple.Program.Builtin ( libraries/Cabal/Cabal/Distribution/Simple/Program/Builtin.hs, bootstrapping/Distribution/Simple/Program/Builtin.o ) [215 of 271] Compiling Distribution.Simple.Program.Db ( libraries/Cabal/Cabal/Distribution/Simple/Program/Db.hs, bootstrapping/Distribution/Simple/Program/Db.o ) [216 of 271] Compiling Distribution.Simple.Program ( libraries/Cabal/Cabal/Distribution/Simple/Program.hs, bootstrapping/Distribution/Simple/Program.o ) [217 of 271] Compiling Distribution.Simple.Setup ( libraries/Cabal/Cabal/Distribution/Simple/Setup.hs, bootstrapping/Distribution/Simple/Setup.o ) [218 of 271] Compiling Distribution.Simple.Program.Strip ( libraries/Cabal/Cabal/Distribution/Simple/Program/Strip.hs, bootstrapping/Distribution/Simple/Program/Strip.o ) [219 of 271] Compiling Distribution.Backpack.ModSubst ( libraries/Cabal/Cabal/Distribution/Backpack/ModSubst.hs, bootstrapping/Distribution/Backpack/ModSubst.o ) [220 of 271] Compiling Distribution.Backpack.ModuleScope ( libraries/Cabal/Cabal/Distribution/Backpack/ModuleScope.hs, bootstrapping/Distribution/Backpack/ModuleScope.o ) [221 of 271] Compiling Distribution.Backpack.FullUnitId ( libraries/Cabal/Cabal/Distribution/Backpack/FullUnitId.hs, bootstrapping/Distribution/Backpack/FullUnitId.o ) [222 of 271] Compiling Distribution.Parsec.Parser ( libraries/Cabal/Cabal/Distribution/Parsec/Parser.hs, bootstrapping/Distribution/Parsec/Parser.o ) [223 of 271] Compiling Distribution.PackageDescription.Parsec ( libraries/Cabal/Cabal/Distribution/PackageDescription/Parsec.hs, bootstrapping/Distribution/PackageDescription/Parsec.o ) [224 of 271] Compiling Distribution.InstalledPackageInfo ( libraries/Cabal/Cabal/Distribution/InstalledPackageInfo.hs, bootstrapping/Distribution/InstalledPackageInfo.o ) [225 of 271] Compiling Distribution.Types.ComponentLocalBuildInfo ( libraries/Cabal/Cabal/Distribution/Types/ComponentLocalBuildInfo.hs, bootstrapping/Distribution/Types/ComponentLocalBuildInfo.o ) [226 of 271] Compiling Distribution.Types.TargetInfo ( libraries/Cabal/Cabal/Distribution/Types/TargetInfo.hs, bootstrapping/Distribution/Types/TargetInfo.o ) [227 of 271] Compiling Distribution.Simple.Program.HcPkg ( libraries/Cabal/Cabal/Distribution/Simple/Program/HcPkg.hs, bootstrapping/Distribution/Simple/Program/HcPkg.o ) [228 of 271] Compiling Distribution.Simple.PackageIndex ( libraries/Cabal/Cabal/Distribution/Simple/PackageIndex.hs, bootstrapping/Distribution/Simple/PackageIndex.o ) [229 of 271] Compiling Distribution.Types.LocalBuildInfo ( libraries/Cabal/Cabal/Distribution/Types/LocalBuildInfo.hs, bootstrapping/Distribution/Types/LocalBuildInfo.o ) [230 of 271] Compiling Distribution.Simple.LocalBuildInfo ( libraries/Cabal/Cabal/Distribution/Simple/LocalBuildInfo.hs, bootstrapping/Distribution/Simple/LocalBuildInfo.o ) [231 of 271] Compiling Distribution.Simple.Test.Log ( libraries/Cabal/Cabal/Distribution/Simple/Test/Log.hs, bootstrapping/Distribution/Simple/Test/Log.o ) [232 of 271] Compiling Distribution.Simple.Program.Ld ( libraries/Cabal/Cabal/Distribution/Simple/Program/Ld.hs, bootstrapping/Distribution/Simple/Program/Ld.o ) [233 of 271] Compiling Distribution.Simple.Program.Ar ( libraries/Cabal/Cabal/Distribution/Simple/Program/Ar.hs, bootstrapping/Distribution/Simple/Program/Ar.o ) [234 of 271] Compiling Distribution.Simple.Hpc ( libraries/Cabal/Cabal/Distribution/Simple/Hpc.hs, bootstrapping/Distribution/Simple/Hpc.o ) [235 of 271] Compiling Distribution.Simple.BuildTarget ( libraries/Cabal/Cabal/Distribution/Simple/BuildTarget.hs, bootstrapping/Distribution/Simple/BuildTarget.o ) [236 of 271] Compiling Distribution.Simple.BuildPaths ( libraries/Cabal/Cabal/Distribution/Simple/BuildPaths.hs, bootstrapping/Distribution/Simple/BuildPaths.o ) [237 of 271] Compiling Distribution.Simple.UHC ( libraries/Cabal/Cabal/Distribution/Simple/UHC.hs, bootstrapping/Distribution/Simple/UHC.o ) [238 of 271] Compiling Distribution.PackageDescription.Check ( libraries/Cabal/Cabal/Distribution/PackageDescription/Check.hs, bootstrapping/Distribution/PackageDescription/Check.o ) [239 of 271] Compiling Distribution.Simple.Build.PathsModule ( libraries/Cabal/Cabal/Distribution/Simple/Build/PathsModule.hs, bootstrapping/Distribution/Simple/Build/PathsModule.o ) [240 of 271] Compiling Distribution.Simple.Test.LibV09 ( libraries/Cabal/Cabal/Distribution/Simple/Test/LibV09.hs, bootstrapping/Distribution/Simple/Test/LibV09.o ) [241 of 271] Compiling Distribution.Simple.PreProcess ( libraries/Cabal/Cabal/Distribution/Simple/PreProcess.hs, bootstrapping/Distribution/Simple/PreProcess.o ) [242 of 271] Compiling Distribution.Simple.UserHooks ( libraries/Cabal/Cabal/Distribution/Simple/UserHooks.hs, bootstrapping/Distribution/Simple/UserHooks.o ) [243 of 271] Compiling Distribution.Simple.SrcDist ( libraries/Cabal/Cabal/Distribution/Simple/SrcDist.hs, bootstrapping/Distribution/Simple/SrcDist.o ) [244 of 271] Compiling Distribution.Simple.Test.ExeV10 ( libraries/Cabal/Cabal/Distribution/Simple/Test/ExeV10.hs, bootstrapping/Distribution/Simple/Test/ExeV10.o ) [245 of 271] Compiling Distribution.Simple.Test ( libraries/Cabal/Cabal/Distribution/Simple/Test.hs, bootstrapping/Distribution/Simple/Test.o ) [246 of 271] Compiling Distribution.Simple.Build.Macros ( libraries/Cabal/Cabal/Distribution/Simple/Build/Macros.hs, bootstrapping/Distribution/Simple/Build/Macros.o ) [247 of 271] Compiling Distribution.Simple.Bench ( libraries/Cabal/Cabal/Distribution/Simple/Bench.hs, bootstrapping/Distribution/Simple/Bench.o ) [248 of 271] Compiling Distribution.Backpack.Id ( libraries/Cabal/Cabal/Distribution/Backpack/Id.hs, bootstrapping/Distribution/Backpack/Id.o ) [249 of 271] Compiling Distribution.Backpack.ConfiguredComponent ( libraries/Cabal/Cabal/Distribution/Backpack/ConfiguredComponent.hs, bootstrapping/Distribution/Backpack/ConfiguredComponent.o ) [250 of 271] Compiling Distribution.Backpack.ComponentsGraph ( libraries/Cabal/Cabal/Distribution/Backpack/ComponentsGraph.hs, bootstrapping/Distribution/Backpack/ComponentsGraph.o ) [251 of 271] Compiling Distribution.Simple.HaskellSuite ( libraries/Cabal/Cabal/Distribution/Simple/HaskellSuite.hs, bootstrapping/Distribution/Simple/HaskellSuite.o ) [252 of 271] Compiling Distribution.Simple.GHC.Internal ( libraries/Cabal/Cabal/Distribution/Simple/GHC/Internal.hs, bootstrapping/Distribution/Simple/GHC/Internal.o ) [253 of 271] Compiling Distribution.Simple.GHCJS ( libraries/Cabal/Cabal/Distribution/Simple/GHCJS.hs, bootstrapping/Distribution/Simple/GHCJS.o ) [254 of 271] Compiling Distribution.Simple.GHC.IPI642 ( libraries/Cabal/Cabal/Distribution/Simple/GHC/IPI642.hs, bootstrapping/Distribution/Simple/GHC/IPI642.o ) [255 of 271] Compiling Distribution.Simple.GHC ( libraries/Cabal/Cabal/Distribution/Simple/GHC.hs, bootstrapping/Distribution/Simple/GHC.o ) [256 of 271] Compiling Distribution.Simple.Register ( libraries/Cabal/Cabal/Distribution/Simple/Register.hs, bootstrapping/Distribution/Simple/Register.o ) [257 of 271] Compiling Distribution.Simple.Install ( libraries/Cabal/Cabal/Distribution/Simple/Install.hs, bootstrapping/Distribution/Simple/Install.o ) [258 of 271] Compiling Distribution.Backpack.ModuleShape ( libraries/Cabal/Cabal/Distribution/Backpack/ModuleShape.hs, bootstrapping/Distribution/Backpack/ModuleShape.o ) [259 of 271] Compiling Distribution.Backpack.UnifyM ( libraries/Cabal/Cabal/Distribution/Backpack/UnifyM.hs, bootstrapping/Distribution/Backpack/UnifyM.o ) [260 of 271] Compiling Distribution.Backpack.MixLink ( libraries/Cabal/Cabal/Distribution/Backpack/MixLink.hs, bootstrapping/Distribution/Backpack/MixLink.o ) [261 of 271] Compiling Distribution.Backpack.PreModuleShape ( libraries/Cabal/Cabal/Distribution/Backpack/PreModuleShape.hs, bootstrapping/Distribution/Backpack/PreModuleShape.o ) [262 of 271] Compiling Distribution.Backpack.PreExistingComponent ( libraries/Cabal/Cabal/Distribution/Backpack/PreExistingComponent.hs, bootstrapping/Distribution/Backpack/PreExistingComponent.o ) [263 of 271] Compiling Distribution.Backpack.LinkedComponent ( libraries/Cabal/Cabal/Distribution/Backpack/LinkedComponent.hs, bootstrapping/Distribution/Backpack/LinkedComponent.o ) [264 of 271] Compiling Distribution.Backpack.ReadyComponent ( libraries/Cabal/Cabal/Distribution/Backpack/ReadyComponent.hs, bootstrapping/Distribution/Backpack/ReadyComponent.o ) [265 of 271] Compiling Distribution.Backpack.Configure ( libraries/Cabal/Cabal/Distribution/Backpack/Configure.hs, bootstrapping/Distribution/Backpack/Configure.o ) [266 of 271] Compiling Distribution.Simple.Configure ( libraries/Cabal/Cabal/Distribution/Simple/Configure.hs, bootstrapping/Distribution/Simple/Configure.o ) [267 of 271] Compiling Distribution.Simple.Build ( libraries/Cabal/Cabal/Distribution/Simple/Build.hs, bootstrapping/Distribution/Simple/Build.o ) [268 of 271] Compiling Distribution.Simple.Haddock ( libraries/Cabal/Cabal/Distribution/Simple/Haddock.hs, bootstrapping/Distribution/Simple/Haddock.o ) [269 of 271] Compiling Distribution.Simple.Doctest ( libraries/Cabal/Cabal/Distribution/Simple/Doctest.hs, bootstrapping/Distribution/Simple/Doctest.o ) [270 of 271] Compiling Distribution.Simple ( libraries/Cabal/Cabal/Distribution/Simple.hs, bootstrapping/Distribution/Simple.o ) [271 of 271] Compiling Main ( utils/ghc-cabal/Main.hs, bootstrapping/Main.o ) Linking utils/ghc-cabal/dist/build/tmp/ghc-cabal ... "touch" utils/ghc-cabal/dist/build/tmp/ghc-cabal "cp" utils/ghc-cabal/dist/build/tmp/ghc-cabal inplace/bin/ghc-cabal "inplace/bin/ghc-cabal" configure libraries/binary dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" "inplace/bin/ghc-cabal" configure utils/hsc2hs dist --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --disable-library-vanilla --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" "inplace/bin/ghc-cabal" configure utils/genapply dist --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --disable-library-vanilla --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" "inplace/bin/ghc-cabal" configure utils/deriveConstants dist --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --disable-library-vanilla --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" "inplace/bin/ghc-cabal" configure utils/genprimopcode dist --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --disable-library-vanilla --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring genprimopcode-0.1... Configuring genapply-0.1... Configuring deriveConstants-0.1... Configuring hsc2hs-0.68.3... Configuring binary-0.8.5.1... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/binary/dist-boot/inplace-pkg-config binary-0.8.5.1: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/binary/dist-boot/doc/html/binary/binary.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/text dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Warning: text.cabal:4:1: The field "bug-reports" is specified more than once at positions 4:1, 42:1 Warning: text.cabal:4:1: The field "bug-reports" is specified more than once at positions 4:1, 42:1 Configuring text-1.2.3.0... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/text/dist-boot/inplace-pkg-config text-1.2.3.0: Warning: include-dirs: /home/ara/development/haskell/ghc/libraries/text/dist-boot/build/include doesn't exist or isn't a directory text-1.2.3.0: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/text/dist-boot/doc/html/text/text.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/transformers dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring transformers-0.5.5.0... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/transformers/dist-boot/inplace-pkg-config transformers-0.5.5.0: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/transformers/dist-boot/doc/html/transformers/transformers.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/mtl dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring mtl-2.2.2... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/mtl/dist-boot/inplace-pkg-config mtl-2.2.2: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/mtl/dist-boot/doc/html/mtl/mtl.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/parsec dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring parsec-3.1.13.0.0.0.0.0... Warning: The package has an extraneous version range for a dependency on an internal library: parsec -any && ==3.1.13.0.0.0.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/parsec/dist-boot/inplace-pkg-config parsec-3.1.13.0.0.0.0.0: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/parsec/dist-boot/doc/html/parsec/parsec.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/Cabal/Cabal dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --flag parsec --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring Cabal-2.3.0.0... Warning: The package has an extraneous version range for a dependency on an internal library: Cabal -any && ==2.3.0.0, Cabal -any && ==2.3.0.0, Cabal -any && ==2.3.0.0, Cabal -any && ==2.3.0.0, Cabal -any && ==2.3.0.0. This version range includes the current package but isn't needed as the current package's library will always be used. "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/Cabal/Cabal/dist-boot/inplace-pkg-config Cabal-2.3.0.0: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/Cabal/Cabal/dist-boot/doc/html/Cabal/Cabal.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/hpc dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring hpc-0.6.0.3... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/hpc/dist-boot/inplace-pkg-config hpc-0.6.0.3: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/hpc/dist-boot/doc/html/hpc/hpc.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/ghc-boot-th dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring ghc-boot-th-8.7... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/ghc-boot-th/dist-boot/inplace-pkg-config ghc-boot-th-8.7: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/ghc-boot-th/dist-boot/doc/html/ghc-boot-th/ghc-boot-th.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/ghc-boot dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring ghc-boot-8.7... "/usr/bin/ghc-pkg" update -v0 --force --package-db=libraries/bootstrapping.conf libraries/ghc-boot/dist-boot/inplace-pkg-config ghc-boot-8.7: Warning: haddock-interfaces: /home/ara/development/haskell/ghc/libraries/ghc-boot/dist-boot/doc/html/ghc-boot/ghc-boot.haddock doesn't exist or isn't a file ignoring (possibly broken) abi-depends field for packages "inplace/bin/ghc-cabal" configure libraries/template-haskell dist-boot --with-ghc="/usr/bin/ghc" --with-ghc-pkg="/usr/bin/ghc-pkg" --package-db=/home/ara/development/haskell/ghc/libraries/bootstrapping.conf --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci --disable-library-profiling --disable-shared --with-hscolour="/usr/bin/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" " --gcc-options="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline " --constraint "binary == 0.8.5.1" --constraint "text == 1.2.3.0" --constraint "transformers == 0.5.5.0" --constraint "mtl == 2.2.2" --constraint "parsec == 3.1.13.0.0.0.0.0" --constraint "Cabal == 2.3.0.0" --constraint "hpc == 0.6.0.3" --constraint "ghc-boot-th == 8.7" --constraint "ghc-boot == 8.7" --constraint "template-haskell == 2.14.0.0" --constraint "ghc-heap == 8.7" --constraint "ghci == 8.7" --constraint "terminfo == 0.4.1.2" --with-gcc="gcc" --with-ld="ld.gold" --with-ar="ar" --with-alex="/usr/bin/alex" --with-happy="/home/ara/.local/bin/happy" Configuring template-haskell-2.14.0.0... ghc-cabal: Encountered missing dependencies: ghc-boot-th ==8.6.* && ==8.7 libraries/ghc-boot/ghc.mk:3: libraries/ghc-boot/dist-boot/package-data.mk: No such file or directory make[1]: *** [libraries/template-haskell/ghc.mk:3: libraries/template-haskell/dist-boot/package-data.mk] Error 1 make: *** [Makefile:123: all] Error 2 From matthewtpickering at gmail.com Tue Jul 31 14:53:59 2018 From: matthewtpickering at gmail.com (Matthew Pickering) Date: Tue, 31 Jul 2018 15:53:59 +0100 Subject: Failure to Build In-Reply-To: References: Message-ID: Are you starting from a completely clean tree? (achieved by `make maintainer-clean`)? On Tue, Jul 31, 2018 at 3:34 PM, Ara Adkins wrote: > Hey Devs, > > I'm having trouble building the head of the ghc-8.6 branch (`26a7f850d1`) on > my Arch Linux machine. The essence of the error is this as follows, though > the full result of make (to the point of error) is attached. > > ``` > Configuring template-haskell-2.14.0.0... > ghc-cabal: Encountered missing dependencies: > ghc-boot-th ==8.6.* && ==8.7 > ``` > > The output of configure is as follows: > ``` > ---------------------------------------------------------------------- > Configure completed successfully. > > Building GHC version : 8.7.20180730 > Git commit id : 26a7f850d15b91ad68d1e28d467faba00bb79144 > > Build platform : x86_64-unknown-linux > Host platform : x86_64-unknown-linux > Target platform : x86_64-unknown-linux > > Bootstrapping using : /usr/bin/ghc > which is version : 8.4.3 > > Using (for bootstrapping) : gcc > Using gcc : gcc > which is version : 8.1.1 > Building a cross compiler : NO > Unregisterised : NO > hs-cpp : gcc > hs-cpp-flags : -E -undef -traditional > ar : ar > ld : ld.gold > nm : nm > libtool : libtool > objdump : objdump > ranlib : ranlib > windres : > dllwrap : > genlib : > Happy : /home/ara/.local/bin/happy (1.19.9) > Alex : /usr/bin/alex (3.2.4) > Perl : /usr/bin/perl > sphinx-build : /usr/bin/sphinx-build > xelatex : /usr/bin/xelatex > > Using LLVM tools > clang : clang > llc : > opt : > HsColour : /usr/bin/HsColour > > Tools to build Sphinx HTML documentation available: YES > Tools to build Sphinx PDF documentation available: YES > ---------------------------------------------------------------------- > ``` > > Any help would be most appreciated. > > Best, > _ara > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs > From sylvain at haskus.fr Tue Jul 31 15:03:57 2018 From: sylvain at haskus.fr (Sylvain Henry) Date: Tue, 31 Jul 2018 17:03:57 +0200 Subject: Failure to Build In-Reply-To: References: Message-ID: When something like this fails, I usually do: make maintainer-clean git submodule update --init ./boot ./configure make -j On 31/07/2018 16:34, Ara Adkins wrote: > Hey Devs, > > I'm having trouble building the head of the ghc-8.6 branch > (`26a7f850d1`) on my Arch Linux machine. The essence of the error is > this as follows, though the full result of make (to the point of > error) is attached. > > ``` > Configuring template-haskell-2.14.0.0... > ghc-cabal: Encountered missing dependencies: > ghc-boot-th ==8.6.* && ==8.7 > ``` > > The output of configure is as follows: > ``` > ---------------------------------------------------------------------- > Configure completed successfully. > >    Building GHC version  : 8.7.20180730 >           Git commit id  : 26a7f850d15b91ad68d1e28d467faba00bb79144 > >    Build platform        : x86_64-unknown-linux >    Host platform         : x86_64-unknown-linux >    Target platform       : x86_64-unknown-linux > >    Bootstrapping using   : /usr/bin/ghc >       which is version   : 8.4.3 > >    Using (for bootstrapping) : gcc >    Using gcc                 : gcc >       which is version       : 8.1.1 >    Building a cross compiler : NO >    Unregisterised            : NO >    hs-cpp       : gcc >    hs-cpp-flags : -E -undef -traditional >    ar           : ar >    ld           : ld.gold >    nm           : nm >    libtool      : libtool >    objdump      : objdump >    ranlib       : ranlib >    windres      : >    dllwrap      : >    genlib       : >    Happy        : /home/ara/.local/bin/happy (1.19.9) >    Alex         : /usr/bin/alex (3.2.4) >    Perl         : /usr/bin/perl >    sphinx-build : /usr/bin/sphinx-build >    xelatex      : /usr/bin/xelatex > >    Using LLVM tools >       clang : clang >       llc   : >       opt   : >    HsColour : /usr/bin/HsColour > >    Tools to build Sphinx HTML documentation available: YES >    Tools to build Sphinx PDF documentation available: YES > ---------------------------------------------------------------------- > ``` > > Any help would be most appreciated. > > Best, > _ara > > > _______________________________________________ > ghc-devs mailing list > ghc-devs at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs -------------- next part -------------- An HTML attachment was scrubbed... URL: From sylvain at haskus.fr Tue Jul 31 14:59:26 2018 From: sylvain at haskus.fr (Sylvain Henry) Date: Tue, 31 Jul 2018 16:59:26 +0200 Subject: Type constraint: isOneOf Message-ID: <55f6d605-7e22-e0dd-f779-9eca72e9e837@haskus.fr> Hi, Motivating example: I have an open sum type (Variant, or V) which can be used to store values of different types: x,y :: V '[String,Int] x = V "test" y = V @Int 10 f :: V '[String,Int] -> String f = \case    V s            -> "Found string: " ++ s    V (i :: Int)   -> "Found int: " ++ show (i+10) V is a pattern synonym defined like this (you don't need to understand the details): pattern V :: forall c cs. (c :< cs) => c -> Variant cs pattern V x <- (fromVariant -> Just x)    where V x = toVariant x Where the (:<) constraint checks that we are not doing anything wrong: z :: V '[String,Int] z = V @Float 10 Test.hs:15:5: error:     • `Float' is not a member of '[String, Int]     • In the expression: V @Float 10       In an equation for ‘z’: z = V @Float 10 f :: V '[String,Int] -> String f = \case    ...    V (i :: Float) -> "Found float: " ++ show i Test.hs:20:4: error:     • `Float' is not a member of '[String, Int]     • In the pattern: V (i :: Float)       In a case alternative: V (i :: Float) -> "Found float: " ++ show i So far so good, it works well. Now the issues: 1) The case-expression in "f" is reported as non-exhaustive 2) We have to disambiguate the type of "10" in the definition of "y" and in the match "(V (i :: Int))" Both of these issues are caused by the fact that even with the (c :< cs) constraint, GHC doesn't know/use the fact that the type "c" is really one of the types in "cs". Would it make sense to add the following built-in "isOneOf" constraint: ∈ :: k -> [k] ->Constraint pattern V :: forall c cs. (c :< cs, c ∈ cs) => c -> Variant cs 1) GHC could infer pattern completeness information when the V pattern is used depending on the type list "cs" 2) GHC might use the "c ∈ cs" constraint in the last resort to infer "c" if it remains ambiguous: try to type-check with c~c' forall c' in cs and if there is only one valid and unambiguous c', then infer c~c'. Has it already been considered? I don't know how hard it would be to implement nor if it is sound to add something like this. 1 seems simpler/safer than 2, though (it is similar to a new kind of COMPLETE pragma), and it would already be great! Any thoughts? Best regards, Sylvain -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at smart-cactus.org Tue Jul 31 15:06:50 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Tue, 31 Jul 2018 11:06:50 -0400 Subject: Failure to Build In-Reply-To: References: Message-ID: <871sbj1m2g.fsf@smart-cactus.org> Sylvain Henry writes: > When something like this fails, I usually do: > > make maintainer-clean > git submodule update --init > ./boot > ./configure > make -j > Right, it sounds like there are some stale files. I'd bet this fixes it. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: From me at ara.io Tue Jul 31 15:41:24 2018 From: me at ara.io (Ara Adkins) Date: Tue, 31 Jul 2018 16:41:24 +0100 Subject: Failure to Build In-Reply-To: <871sbj1m2g.fsf@smart-cactus.org> References: <871sbj1m2g.fsf@smart-cactus.org> Message-ID: Thanks all for the insight so far! Doing that has got me further along in the build, but it is still failing. Amongst the output of `make` it seems that the offending error is as follows: ``` happy: /home/ara/.stack/snapshots/x86_64-linux-tinfo6-nopie/nightly-2018-02-20/8.2.2/share/x86_64-linux-ghc-8.2.2/happy-1.19.9/HappyTemplate-arrays-coerce: openFile: does not exist (No such file or directory) make[1]: *** [utils/genprimopcode/ghc.mk:19: utils/genprimopcode/dist/build/Parser.hs] Error 1 make[1]: *** Waiting for unfinished jobs.... ``` Any further thoughts appreciated, as always! <3 Best, _ara On Tue, 31 Jul 2018 at 16:06, Ben Gamari wrote: > Sylvain Henry writes: > > > When something like this fails, I usually do: > > > > make maintainer-clean > > git submodule update --init > > ./boot > > ./configure > > make -j > > > Right, it sounds like there are some stale files. I'd bet this fixes it. > > Cheers, > > - Ben > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ben at smart-cactus.org Tue Jul 31 15:56:47 2018 From: ben at smart-cactus.org (Ben Gamari) Date: Tue, 31 Jul 2018 11:56:47 -0400 Subject: Failure to Build In-Reply-To: References: <871sbj1m2g.fsf@smart-cactus.org> Message-ID: <87sh3zz9dx.fsf@smart-cactus.org> Ara Adkins writes: > Thanks all for the insight so far! > > Doing that has got me further along in the build, but it is still failing. > Amongst the output of `make` it seems that the offending error is as > follows: > ``` > happy: > /home/ara/.stack/snapshots/x86_64-linux-tinfo6-nopie/nightly-2018-02-20/8.2.2/share/x86_64-linux-ghc-8.2.2/happy-1.19.9/HappyTemplate-arrays-coerce: > openFile: does not exist (No such file or directory) > It looks like your happy installation is incomplete. Is it possible you deleted that file? If not, it sounds like a stack issue. Perhaps try installing happy with cabal or your system's package manager. Cheers, - Ben -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 487 bytes Desc: not available URL: