Beta v7.83.1558 changes:
1.Item 1, added. Required changes to how optional text is parsed in
  custom dialogs. Also required changes to the (optional) feature
  that is used by all dialogs.
2.Item 2, updated. A single secure RNG function has been created that
  attempts in this order: BCryptGenRandom(), CryptGenRandom(), and
  RtlGenRandom(). There are many online discussions about these APIs,
  how they work on different versions of Windows, etc. BCryptGenRandom()
  is the current recommended method, CryptGenRandom() is a deprecated
  method, and RtlGenRandom() works on XP.
3.Item 3, fixed. This was resulting in a wave file being left in the
  Windows Temp folder each time mIRC exits.
4.Item 4, changed.

  The standard editbox performs better than riched20.dll at font
  linking/fallback on Windows 7 onwards. mIRC did, at one point, switch
  to using msftedit.dll, which is a newer richedit control, but this
  was reverted in a subsequent release due to some users experiencing
  backward compatibility issues.

  The reason mIRC started using the richedit control was because 1) it
  allowed more than 30k of text, which used to be a limitation of
  standard editboxes, and 2) it handled Unicode characters better.
  Technically, mIRC could switch back to using a standard editbox
  except that richedit has one really useful other feature: undo
  history. This beta is now using the more modern msftedit.dll
  again for testing.

5.Item 5, fixed. This only happens if richedit editboxes are not
  being used.
6.Item 6, updated. Experimental.

  Added a new switch for blowfish and AES encryption. The number of
  single-letter switches was running out, making it difficult to add
  future ciphers/options, so has been changed to use named options.

  The newer blowfish implemention is not compatible with the older
  one because it:

  1) Allows the use of both salt and iv, requiring changes to the
     way these are applied
  2) Performs many checks for incompatible switches/parameters

  The older $encode()/$decode() blowfish has been left in place for
  backward compatibility with scripts that use it but will no longer
  be documented.

  Openssl.exe and Perl's Crypt::CBC were used to test combinations of
  options + inputs/outputs.

7.Item 7, updated.
8.Item 8, fixed https://forums.mirc.com/ubbthreads.php/topics/273726
9.Item 9, changed https://forums.mirc.com/ubbthreads.php/topics/273732
10.Item 10, updated.

   The DigiCert code signing certificate was up for renewal. Due to
   the high cost + signing now requires a Token/HSM, tested out
   Microsoft's Azure Trusted Signing. Setting up Trusted Signing is...
   arduous. Thankfully, several online guides made the process simpler
   and it seems to be working. Notes:

   1) Newer versions of signtool.exe, which are needed for Trusted
   Signing, will not allow use of SHA1, which is required for XP. mIRC
   has been dual signed with SHA1 and SHA256 for many years. This means
   that, from this point on, mIRC will only be signed with SHA256.

   2) Azure issues Trusted Signing certificates with very short
   validity, so you'll notice that the Valid From/To date for the
   certificate is only three days long. The validity of the signed exe
   depends only on the timestamp counter signature which verifies
   that the certificate was valid at the time of signing.

11.Item 11, updated.
12.Item 12, fixed https://forums.mirc.com/ubbthreads.php/topics/273753
13.Item 13, fixed https://forums.mirc.com/ubbthreads.php/topics/273777
14.Item 14, updated.

  See the IRC URL draft at:
  https://datatracker.ietf.org/doc/html/draft-butcher-irc-url-04

  The fix in v7.55 for CVE-2019-6453 prevents the use of a channel
  password after the channel name, so the key= URL parameter is
  now used for this.

  Also, some browsers now actively block opening some URL types with
  some port numbers, ie. specifying :6667 after an address will
  not work, so a port= URL parameter has been added.

  Also added support for:
  1) isserver/isnetwork: if isnetwork is specified, mIRC will not try
  to connect if a matching group name is not found in servers.ini.
  2) ischannel/isuser: if isuser is specified, mIRC will open a query
  window to that user on connect and perform a /whois which is shown
  in the query window.
  3) channel name: if not prefixed with a known channel prefix ie.
  #&+%! mIRC will prefix the name with #.
  4) Support for IPv6 addresses enclosed in [] brackets.

  The parser can be tested by enabling Chat links in the Options/IRC
  /Catcher dialog and then using /run with various combinations of
  parameters, eg.:

  /run irc://user:pass@test.org:7001,isserver/#test,ischannel?key=test&port=1234
  /run irc://EFnet,isnetwork/test,isuser

  If a user/pass/port is specified, these will over-ride any settings
  found in servers.ini for a matching network/server.

  The old link request dialogs have also been updated. mIRC will now
  decide whether it needs to open a new server window based on your
  currently open status windows/connections.

15.Item 15, updated.
16.Item 16, fixed.
17.Item 17, updated.
18.Item 18, fixed.
19.Item 19, added.
20.Item 20, updated. It appears that irc.ircnet.com is now the official
   address for connecting to an open server.
21.Item 21, fixed.
22.Item 22, added.
23.Item 23, fixed https://forums.mirc.com/ubbthreads.php/topics/273804
24.Item 24, changed.
25.Item 25, changed. Tested on XP to 11.

Changes:
1.Added custom dialog editbox option 'optional' for grayed out optional
  text indicator. If followed by "quoted" text, this is used as the
  optional text.
2.Updated all features that use secure RNG to standardize on a single
  function that chooses between the best available method for the
  Windows version being used.
3.Fixed DirectShow temporary wave file not being deleted on exit.
4.Changed editbox in Script Editor and Status/Channel/Query windows to
  use the msftedit.dll richedit control editbox for improved Unicode
  support.
5.Fixed standard editbox displaying blue line under editbox on Windows
  11 in Script Editor.
6.Added $encode()/$decode() switch 'k' to support encryption using the
  format:

  $encode(&var,k,options,%key,%salt,%iv)

  where options can be a combination of:

  bf-cbc | bf-ecb | aes-cbc | aes-ecb | aes-gcm
  salt text | binvar
  iv text | binvar
  header none | salt
  hash md5 | sha256 | pbkdf2 iterations
  padding none | pkcs7

  For example, to use a binary variable, mime encoding, blowfish, cbc,
  random salt, iv, and pbkdf2:

  $encode(&var, bmk, bf-cbc iv hash pbkdf2, %key, %iv)

  Notes:
  1. For backward compatibility, the old $encode()/$decode() blowfish
  support has been left in place but is no longer documented.
  2. Salt and iv must be the correct length for the encryption being
  used, ie. salt 8 and iv 8 characters for blowfish, and salt 8 and
  iv 16 for AES. This is different from the older method that
  zero-extended/chopped salts/ivs of the wrong length.
  3. Hash, the key derivation method, can be md5, sha256, or pbkd2
  for blowfish, and pbkdf2 for AES. For pbkdf2, an iteration count
  can be specified (the default count is 10000 for OpenSSL
  compatibility).
  4. If a salt/iv is not specified a secure random salt/iv is
  generated.
  5. Incompatible/invalid combinations of parameters/switches will
  halt a script and report an error, unlike the older method.

7.Updated SSL certificate dialog to include OpenSSH fingerprint and
  extended $sslhash() with .ssh property.
8.Fixed $did().visible state not being set correctly for custom dialog
  icons.
9.Changed $urlget() to retry a connection without compression in the
  event of a WinINet decode error.
10.Updated code signing certificate to use Azure Trusted Signing.
11.Updated CA root certificates cacert.pem file.
12.Fixed Scripts Editor More dialog editbox display bug when in dark
   mode.
13.Fixed menubar display bug when in dark mode and restoring mIRC from
   its tray icon.
14.Updated irc/ircs link parser to support features in the IRC URL
   draft specification.
15.Updated OpenSSL library to v3.5.5 that includes RCE fix.
16.Fixed $crc() and $crc64() not accepting not allowing a $null
   parameter like other hash identifiers.
17.Updated ADA IDNA library to v0.4.0.
18.Fixed hotlinks not handling user@ipv6 address format.
19.Added hotlink support for more prefixes, such as signal, slack,
   spotify, steam, viber, and whatsapp.
20.Changed IRCnet default server to irc.ircnet.com due to issues
   with open.ircnet.net. mIRC will automatically update servers.ini
   if it includes the old server.
21.Fixed /server -a not using the active codepage if it is not
   specified as a parameter.
22.Extended most features/identifiers to support sha224.
23.Fixed XP/Wine gpf bug when older file dialogs are used to select
   a file.
24.Changed irc/ircs links support so that, if enabled in the Options
   Catcher dialog, mIRC in portable mode will add irc/ircs links
   support to the registry on startup and remove it on exit.
25.Changed how mIRC handles signout/shutdown on Windows 11 to resolve
   possible issues with not cleaning up/saving settings on exit.
