back to article Black screen of death after Win10 update? Microsoft blames HP

Microsoft is pointing the finger of blame at HP Inc's factory image for black screens of death appearing after a Windows Update. Scores of PC owners took to the HP forums last week to report that Windows 10 updates released September 12 were slowing down the login process. Users stated that once they downloaded the updates and …

  1. Steve Davies 3 Silver badge

    The 'Registry'

    Is IMHO the achilles heel of Windows systems. A single point of failure if ever there was one.

    I'm surprised that there have not been more attacks on it in the past.

    Perhaps this news will spur the bad guys to target it in the future.

    So much crud gets put in it that is really becomes unmanagable pretty Quickly

    Group Policies is another area that IMHO gets used for all sorts of things it shouldn't

    Perhaps (wishful thinking I know) one day MS will remove the registry and replace it with something more appropriate?

    1. Lysenko

      Re: replace it with something more appropriate?

      You are thinking of a port of SystemD perhaps ???

      1. Hans 1 Silver badge

        Re: replace it with something more appropriate?

        You are thinking of a port of SystemD perhaps ???

        AFAIK, systemd is not a repository for system and app settings ... though I came up with a systemd angle as well, before reading your comment, may I add...

        1. Anonymous Coward
          Anonymous Coward

          Re: replace it with something more appropriate?

          "AFAIK, systemd is not a repository for system and app settings"

          And in many instance, Windows doesn't need to do this either, just many programs do.

    2. Anonymous Coward
      Anonymous Coward

      Re: The 'Registry'

      There are many many attacks on the registry, both by malware, and critics

    3. Hans 1 Silver badge

      Re: The 'Registry'

      That, and all settings stored within are loaded into memory at all times ... even if the app using those settings is not running ... imagine on Linux, systemd loading all configuration files in /etc into memory, laugh not, who knows, Poettering might do this one day and call the binary regeditd.

      PS: I am sorry for giving Poettering yet another bad idea

      1. Anonymous Coward
        Anonymous Coward

        Re: The 'Registry'

        "That, and all settings stored within are loaded into memory at all times"

        Nope. It's parsed as required.

      2. bombastic bob Silver badge
        FAIL

        Re: The 'Registry'

        "imagine on Linux, systemd loading all configuration files in /etc into memory"

        except this 'loading all configuration files' process would happen for EVERY! SINGLE! APPLICATION! that requests even the most TRIVIAL of information from such an eldritch abomination, if you want to duplicate what "the Registry" appears to do. In other words, it won't be cached. it will be (in a paranoid manner) READ FROM DISK (not from a cache) and then WRITTEN TO DISK when it changes (not write-through cache, but physical writes) and the individual processes will WAIT for this to complete and block in the API EVERY! SINGLE! TIME! to duplicate what appears to happen in "the Registry".

        Because, if you're Micro-shaft, the disk contents _might_ have CHANGED "not through the OS" (even if it can't) and so DAMMIT, we *MUST* *MAKE* *SURE* by RE-READING it, and PHYSICALLY WRITING it, EVERY! SINGLE! TIME!!!

        (or so that's the way it seems, when I've measured performance)

    4. Anonymous Coward
      Anonymous Coward

      Re: The 'Registry'

      "IMHO the achilles heel of Windows systems. A single point of failure if ever there was one."

      It's a Btrieve based database with resilience features like transaction logging, rollback and snapshots and with fully integrated auditing and ACLs. So way faster, more resilient and more secure than say text files...

      "I'm surprised that there have not been more attacks on it in the past."

      Because it's well designed and hard to attack

      "Perhaps this news will spur the bad guys to target it in the future."

      Unlikely - if you could attack the registry then you already own the OS.

      "So much crud gets put in it that is really becomes unmanagable pretty Quickly"

      No idea what "crud" you think goes in there but it doesn't need "managing g" so it's not an issue.

      "Group Policies is another area that IMHO gets used for all sorts of things it shouldn't

      GPOs are for remote configuration of settings. Something that's so much harder to automate in many other OSs without 3rd party products. What else do you think they get used for then?

      1. bombastic bob Silver badge
        Devil

        Re: The 'Registry'

        "It's a Btrieve based database with resilience features like transaction logging, rollback and snapshots and with fully integrated auditing and ACLs. So way faster, more resilient and more secure than say text files..."

        HA ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha ha...

        *cough*

        Oh, were you serious?

        I haven't seen any reference that says the registry uses Btrieve internally or not. I remember seeing it and NOT liking Btrieve a long time ago. I remember Novell really liked it for some reason [so much they bought the company]. I think microshaft could NOT have made much worse of a decision to base the registry's internal structure on, if it's really using Btrieve. They SHOULD have used a well-known file system like UFS (at that time, I don't think EXT existed) and set up a "file system in a file" for it, with journaling and locking thrown in as needed, CACHED! AT! THE! SYSTEM! LEVEL! for performance. That would have made a LOT more sense...

      2. Pascal Monett Silver badge

        Re: "It's a Btrieve based database with resilience features"

        From the Wiki page :

        "Btrieve is not a relational database management system (RDBMS). Early descriptions of Btrieve referred to it as a record manager"

        You are obviously a Microsoft patsy. The Registry has resilience ? In what universe ? One wrong change and you can reinstall the whole thing. It's "well designed" ?!? It's a fucking text file ! Oh, right, you must live in Colorado. I hear they've got good stuff to smoke over there. Seeing such arguments, that has to be true.

        The Registry is an abomination, a blight on security and stability and that must be the reason why Microsoft is the only OS maker on the planet that uses it.

        But you go on and roll yourself another one. I'm sure you're really happy with it, but try not to kid yourself : the Registry is there for DRM purposes and to ensure that your computer is in Microsoft's control.

        1. Anonymous Coward
          Anonymous Coward

          Re: "It's a Btrieve based database with resilience features"

          "You are obviously a Microsoft patsy. The Registry has resilience ? In what universe ?

          In this one. It's a transactional database with a variety of roll back and corruption protection methods.

          "One wrong change and you can reinstall the whole thing"

          Or simply roll back to the last good config - which can be done via the boot menu.

          "The Registry is an abomination, a blight on security and stability "

          Well it's certainly more secure than text files. for instance how to you allow someone to edit just one field of a text file? Or just to read one field? Or audit changes without a complete version management system? And a single config repository is by nature more stable and faster that parsing say multiple text files...

          "the Registry is there for DRM purposes"

          No, it's there to store all system configuration and application info securely and fast in one consistent place.

          "to ensure that your computer is in Microsoft's control."

          It's pretty easy to change and edit if you need to.

      3. Bitsum

        Re: The 'Registry'

        Well said. The Windows registry has been misunderstood, and demonized by marketers trying to sell you "cleaners" for too long. The look up speed of the trie is so fast you could hardly fill it with enough to matter.

    5. Anonymous Coward
      Anonymous Coward

      Re: The 'Registry'

      The Registry is such a new system it's not surprising that HP's developers aren't up to speed on it yet...

    6. jMcPhee
      Trollface

      Re: The 'Registry'

      Replacing it with an /etc directory seems to work well.

  2. Mr Dogshit

    Yeah

    Let's go back to WIN.INI, I'm sure that'll be fine.

    1. This post has been deleted by its author

    2. Lee D Silver badge

      Re: Yeah

      Are you under the impression that the nature of the registry is fundamentally different?

      They are both key-value stores, broken down by a section. Sure, the section is represented by a tree now, but there's nothing stopping a section called:

      [HKEY_LOCAL_MACHINE\Whatever]

      The same as anything else.

      The fact is that the registry is opaque, proprietary, not easily edited, not documented AT ALL in any kind of depth, and the very basis for everything from driver .inf files (cough...) to MSI install scripts (cough...) to group policy templates (nothing more than lists of registry keys with "nice" text).

      The problem with the registry is that there is no failsafe, default, rollback, etc. for many things. If you hit the wrong thing, you can stop Windows booting. That's just ludicrous. In some cases there is literally NO CHOICE but to registry-edit to remove things (e.g. stale network printer entries - you think you can do it with command-line tool, print-management, etc.? Think again) but the documentation of what each section - even under Microsoft Windows - even does is completely absent or opaque.

      The only advantage of the registry over WIN.INI is per-key permissions. But even that's a misdirection as if you have access to the registry then you're only a short path away from causing havoc anyway, same as you shouldn't ever have let ordinary users edit WIN.INI

      To be honest, gconf is basically the same thing on Linux distros, etc. But there's a reason that most config in /etc/ is still in plain-text single files.

      There's nothing wrong with having a central registry, as such. It's just entirely misused, completely misorganised, doesn't have effective control/rollback (it just keeps a copy, which is entirely useless), and has never been documented to any significant extent. Things like \Software are pretty much a free-for-all, like My Documents has become.

      Personally, I think that each application should have a "registry" for each user that runs it. Get rid of those horrible NTUSER.DAT files in the user profiles. Isolate all the application settings away from things like Windows internals. Isolate one user's settings from everyone else's (without having to dig into user SID's etc.). And if you want to clear someone's, say, Chrome settings, just wipe out Chrome.reg in that user's profile folder.

      But, to be honest, I want to move all that stuff into a single file per application too. There's no need for everything to access My Documents, make its own folders, spread into Application Data, add registry entries, etc. etc. etc. When it comes time to remove or find things it's a nightmare. One file, per application, inside a user's profile. You can have one file, in a "computer" location, that overrides that if you want.

      The registry is a mess, but not because of it's storage format. Because it's completely unmanaged and undocumented.

      1. Anonymous Coward
        Thumb Up

        Re: Yeah

        Are you...

        A round of applause

      2. Steve Davies 3 Silver badge

        Re: Yeah

        Quote:The registry is a mess, but not because of it's storage format. Because it's completely unmanaged and undocumented.

        That's what I was alluding to in my post (and the rest of your post makes a lot of sense) but the downvoters have been let out of school but hey, that's life eh?

        SystemD is not the answer either but for very different reasons.

      3. Anonymous Coward
        Anonymous Coward

        Re: Yeah

        Are you under the impression that the nature of the registry is fundamentally different?

        For the impatient, here's the executive summary of your rather fine post:

        Windows is SHIT.

      4. Mark 85 Silver badge

        Re: Yeah

        My gut feeling that this POSS* is well documented within MS and it's quite possible is compartmentalized such that no one person can see all the documentation. Or perhaps, they just have some sort of "pain of death" if anyone ever made a copy and released it. Pity, the person who released said documentation would be a rather large hero in my book.

        *Pile of Steaming Shitte....

  3. alain williams Silver badge

    Rather than blaming each other ...

    Microsoft and HP should get together and produce a fix. Customers don't care who broke it.

    1. Hans 1 Silver badge

      Re: Rather than blaming each other ...

      Slurp blame HP for a registry key ... hm, so their update does not properly handle a certain value of an unspecified registry key which causes the update to stall for ten minutes ... weird, reads like bad coding ... I think you have two cases:

      The registry key value is invalid, in which case you log that and fix the registry key value

      The registry key value is invalid and cannot be fixed, in which case you log that and you exit

      All of this before attempting to install the update, of course ...

      How about a configure script, Slurp ?

      1. GitMeMyShootinIrons
        Paris Hilton

        @Hans 1

        "Slurp blame HP" Sorry, what do Google have to do with this (other than searching for a solution)?

    2. Roland6 Silver badge

      Re: Rather than blaming each other ...

      I suspect MS are the source of the problem.

      The question has to be how does an OEM image get created etc.? I suggest the OEM uses the tools provided by MS...

  4. Anonymous Coward
    Facepalm

    God, Windows is such a mess, and then Microsoft let HP's finest loose on it...

    Presumably HP should've set

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\

    Policies\LoginService\UserExperience\SecretFolkLore\

    PointlesslyDelayShowingDesktopForThisManyMinutes to 0 instead of 10.

    1. Lee D Silver badge

      Re: God, Windows is such a mess, and then Microsoft let HP's finest loose on it...

      Nope:

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications

      Looks like HP tampered with / inadvertantly included some .NET framework and Visual C++ runtime settings in their default image, which don't correspond to what's actually installed.

      Sure, shouldn't bring things to a crashing halt (MS fault), Windows should be made to look for this on update from now on and forever more (MS fault), but at the same time, HP appear to have tinkered with things that they shouldn't have been tinkering with or not using proper slipstreaming processes to build their images.

    2. TonyJ Silver badge
      FAIL

      Re: God, Windows is such a mess, and then Microsoft let HP's finest loose on it...

      Gah. Foot meet mouth

  5. Anonymous Coward
    WTF?

    HP maybe the source, but Microsoft is still to blame

    Simple reasoning: what moronic programmer parses and "just" applies properties without checking if their values are actually within the right limitations?

    And the reason I use the word 'moronic' is because this is a classic example of how backdoors and exploits come to life.

    1. Anonymous Coward
      Thumb Up

      Re: HP maybe the source, but Microsoft is still to blame

      what moronic programmer parses and "just" applies properties without checking if their values are actually within the right limitations?

      The outsourced kind who work in 'low cost' environments.

      1. TonyJ Silver badge

        Re: HP maybe the source, but Microsoft is still to blame

        "...The outsourced kind who work in 'low cost' environments..."

        Oh you mean the ones that HP were busy "best shoring" too a few years ago.

        I shit you not, that's the phrase they were using. Without a trace of irony or humour.

        1. Anonymous Coward
          Anonymous Coward

          Re: HP maybe the source, but Microsoft is still to blame

          HP source? sounds like some kind of brown out

        2. Doctor Syntax Silver badge

          Re: HP maybe the source, but Microsoft is still to blame

          "Without a trace of irony or humour."

          Or common sense.

      2. Roland6 Silver badge

        Re: HP maybe the source, but Microsoft is still to blame

        "The outsourced kind who work in 'low cost' environments."

        I didn't know Redmond was a low cost environment...

  6. 45RPM Silver badge

    The Registry, a monolithic store of settings, is very bad design. Good design would be discrete settings files for each application, including the operating system, which requires them. Critically, these settings files should be deletable individually or en masse, in case of corruption, in which case they will be automatically replaced by default settings files - and the computer will remain functional.

    Before anyone objects, and claims that such a scheme would be unworkable, I’d like to point out that there are operating systems available today which use exactly this functionality, with great success.

    Microsoft has done great things recently and, I hope, will continue to do so. I look forward to the abolishment of The Registry - except as a stub to support legacy applications.

    1. Anonymous Coward
      Anonymous Coward

      As ever Apple get it right with their directory based application packages and plist configuration files, whilst Microsoft as ever picks the most hopelessly complex and unreliable approach possible. Go Microsoft!

      1. Alain

        So does Google. Android has per-app settings in separate SQLite files. Bad thing is that it's not enforced, they can use whatever they please. But it's still per-app in separate folders.

    2. Anonymous Coward
      Anonymous Coward

      This:

      "Microsoft has done great things recently".

      Such as??

      Windows 8.1?

      Windows 10?

      Deceptive and potentially illegally installing software peeps didn't want?

      The ribbon?

      Killing messenger / outlook express?

      Skype?

      Win Phone?*

      Forcing gamers to upgrade to W10 for DX12 which wont install on Win7

      Yeah, the "great" things just keep piling up don't they...

      *I have a lumia 930, GREAT phone. Until they killed that section of their business.

    3. Anonymous Coward
      Anonymous Coward

      . Good design would be discrete settings files for each application, including the operating system, which requires them. "

      No, that's the worst possible design for security, auditing, consistency, performance, stability and common sense. A single repository designed for the purpose is a far better solution that a zoo of files located all over the place.

  7. Elmer Phud Silver badge

    maybe

    maybe somewhere along the routine of disabling HP's little helpers on a new machine I managed to avoid this.

  8. Alister Silver badge

    a service called "app readiness", which "gets apps ready for use the first time a user signs in to this PC and when adding new apps"

    So, is it a pre-compiler for the pre-compiler then? The mind boggles.

    I remember the days when a program came as a compiled binary, and didn't need to be created from p-code every time it ran. Curiously, that seemed to be a faster and more stable way of doing things, but progress moves on.

  9. wallaby

    As a matter of course I clean install windows on all new PC's, I'm sick of the crap that manufacturers bundle in - HP - stick your hotkeys where the sun don't shine, and the links to games centre and anything else you think you can try and entice me to spend money on - it wont work.

    And before the penguinistas start (and FFS I wish they wouldn't) - I'm happy they are bundled with windows I just don't like crap they bundle on with it.

    Sits back and awaits the diatribe from the diarrhoea tribe

  10. art guerrilla

    when does the 'joke' : windows IS the malware...

    ...become too true ? ? ?

    went fishing in task mgr the other day under both win 7 and win 10 to check on what crappy 'processes' and other crud was clogging up MY machine, unbidden, unbeknownst (in a larger sense), and unwanted...

    but it is nearly impossible (without resorting to semi-advanced nerd jiggery-pokery) to eliminate MS crapware i do not want/need... does that not meet the very definition of 'malware' ? ? ? software i don't want/need FORCED on me ? ? ?

    like, say, cortana...

    grrrr

    and ALL kinds of 'update' crap from every piece of crappy s/w which every touched your machine start/restart and install/reinstall no matter how many times you 'disable' it (ha ! a new definition of 'disable'), ESPECIALLY including all the crapware the manufacturer loads...

    so, i don't have a botnet infection taking up resources, i don't have russkie hackers using me as a tor gateway to disseminate pro-tee-rump propaganda, i don't have eee-vil AI awakenings trying to kill me; BUT, what i DO have, is an endless stream of OFFICIAL and semi-mandatory 'reminders', 'updates', 'background', zombie tasks and processes going on which i have ZERO use for, but can not be killed dead...

    AND, when/if i do have use for them, i can start them up myself, fuck you very much...

    gee, hard to wonder why discriminating nerds/users despise Big Computer dictating 'their' hardware/software 'choices'...

    1. Sven Coenye

      Re: when does the 'joke' : windows IS the malware...

      Shutting down Cortana is actually not all that hard. All you have to do is ... drop your user account in the local admin group. Way to go MS :-/ (Also shuts down a bunch of other crud, including Edge.)

    2. Doctor Syntax Silver badge

      Re: when does the 'joke' : windows IS the malware...

      "went fishing in task mgr the other day"

      The equivalents (top and ps -ef) will find all manner of stuff running in an Unix or Unix-like system these days. It wasn't always like that. Stuff just gets more complicated with time.

  11. Camilla Smythe Silver badge

    "The Register"

    "The Registry"

    Blatant Trade Mark Infringement by Microsoft causing damage to the reputation of El Reg.

    Send in the Lawyers.

    1. Doctor Syntax Silver badge

      Re: "The Register"

      "Blatant Trade Mark Infringement by Microsoft causing damage to the reputation of El Reg."

      In Microsoft's case the abbreviation is ill Reg.

      "And, in passing, a curse on sans-serifs."

  12. chivo243 Silver badge
    Windows

    The registry that should never have happened

    I seem to remember reading a story (can't find it now) detailing how the registry was just a hack one group at MS used, and it got out into the wild, and now everything Windows uses it...

    1. Hans Neeson-Bumpsadese Silver badge

      Re: The registry that should never have happened

      I think you remember correctly. I saw an MS Channel 9 video years ago where the guy behind the Registry was asked about his creation. His reply was (and I think I'm quoting verbatim here) "Sorry. Sorry. Sorry. Sorry. Sorry. Sorry. Sorry. Sorry. Sorry. Sorry. Sorry...."

    2. Primus Secundus Tertius Silver badge

      Re: The registry that should never have happened

      My understanding is that it is an offspring of the Common Data Dictionary used by certain programs under VMS on DEC VAX computers, and came to Microsoft when they hired Mr VMS to develop Windows NT.

      The CDD was an enormous file, frequently changed by almost anything and then clogging up the next backup operation.

    3. bombastic bob Silver badge
      Unhappy

      Re: The registry that should never have happened

      "The Registry" was originally supposed to replace all of the INI files with something more efficient, but then everything "OLE" began to pollute it. And for some odd reason, Micro-shaft's code appears to act as if it's "paranoid", based on what I've seen in performance measurements. It's like "the Registry" _MUST_ flush and re-read its cache physically from disk, every time something burps. It can't intelligently use a system-wide write-through cache. No, that would make TOO! MUCH! SENSE! and perform TOO! WELL! for Micro-shaft. Instead, it appears that EVERY application that accesses the registry must FLUSH TO DISK and READ FROM DISK, EVERY! SINGLE! TIME!!

      (if anyone has proof of the contrary, please let me know; but all of my performance measurements suggests that this is the case and it explains SO many hideous performance problems in Windows, and every version since XP seems to do this, and probably the ones before that as well)

      1. no-one in particular

        Re: The registry that should never have happened

        > "The Registry" was originally supposed to replace all of the INI files with something more efficient, but then everything "OLE" began to pollute it

        Turn that around - OLE (assuming you want something like OLE, but that is another matter) _needs_ the centralised Registry (for hopefully fairly obvious reasons).

        _Then_ people started having the brilliant idea of dropping what was held in INI files into the same place, ensuring that we lose the ability to write comments about _what_ this value is for and _who_ just changed it and _why_ they did and _when_ (ok, so you never bothered with writing those comments but at least you had the opportunity to document your INI file contents).

    4. Alain

      Re: The registry that should never have happened

      Funny thing is that there's at least one company that gets money from implementing something really similar to the Windows registry under Linux.

      Even funnier is that... HP uses this in the customized Linux they put on their thin clients (I've hacked it much).

      1. Doctor Syntax Silver badge

        Re: The registry that should never have happened

        "Even funnier is that... HP"

        Back in Windows 3 days there was a 3rd party package called New Wave which added a lot of the OO-type click to open with the right application stuff, etc. This, as I recall it, had a heap of little files which presumably did much the same thing as the registry did. A lot of that New Wave stuff got incorporated in W95 as could be seen by the copyright declarations.

        The company who provided New Wave?..... You've guessed it.

  13. Eclectic Man
    FAIL

    W T F?

    "It recommended "advanced users" edit the Windows registry keys to delete specific registry keys. There's a sharp warning: "Serious problems might occur if you modify the registry incorrectly.""

    Really? And what is my 84-year old mother supposed to do? She's convinced that she broke her PC trying to use it offline, due, rather appropriately, to it getting messed up by Microsoft 'updates'. She is not what anyone would describe as an IT expert.

    I sense a trip to the Apple store in the near future.

  14. ma1010 Silver badge
    Joke

    Obscure registry keys

    Reminds me of this.

  15. bombastic bob Silver badge
    Trollface

    "app readiness" - computer foreplay?

    what it says in the title

    took 'em 10 minutes - their technique must be flawed.

  16. Ian Emery Silver badge
    Flame

    As much as I hate slurp.

    THIS time I am going to blame HP; for no other reason than their STUPID custom BIOS.

    The HP cpu and case fans in my USFF were too noisy, so I replaced them with expensive QUIET fans, that blow more air, but at a much lower RPM.

    HP BIOS doesnt like that, so it SWITCHED THE FANS OFF WITHOUT WARNING, and cooked my cpu.

  17. Adam 52 Silver badge

    Who should I blame for yesterday's continuous reboot cycle on my Win 10 *Dell* laptop?

    (Before you say, it doesn't have Win 10 on by choice - stupid thing autoinstalled and I haven't removed it).

    1. Doctor Syntax Silver badge

      "stupid thing autoinstalled and I haven't removed it"

      You haven't removed it but not by choice?

  18. Anonymous Coward
    Anonymous Coward

    A service called 'app readiness', which 'gets apps ready for use the first time a user signs in'

    I laughed.

    Microsoft trying to be too clever by half, again.

    Also, is it for classic win32 programs, or for those apps you have to download through the Windows Store?

    My hunch tells me it's the latter.

    1. Mark 85 Silver badge

      Re: A service called 'app readiness', which 'gets apps ready for use the first time a user signs in'

      It sounds like this is to run the setups in the background so the user doesn't have to wait or answer a few questions so I think you're right. Meh....

  19. cambsukguy

    And yet,

    My HP Win10 machine updated just fine, as usual.

  20. Chemical Bob
    Devil

    Black Screen of Death

    At least the color is appropriate...

  21. Walter Bishop Silver badge
    Terminator

    Modify the registry incorrectly

    "Serious problems might occur if you modify the registry incorrectly."

    I suspect Microsoft, purely in the interests of preventing piracy, specifically designed Windows to go BSOD, if it detects it's been transferred to a new PC. Of course in the process they made Windows unrecoverable in the event of a false positive.

POST COMMENT House rules

Not a member of The Register? Create a new account here.

  • Enter your comment

  • Add an icon

Anonymous cowards cannot choose their icon

Biting the hand that feeds IT © 1998–2019