Contributed by Rebbie (rebbie.resident) in-world

This is a kluge to take care of the problem that there is NO way to have
more than four owners,
subowners, or blacklist entries in the default settings, which is
normally used as permanent
storage to avoid the problems that occur when a collar needs to have
it's scripts reset.

Unfortunately, this need appears to occur more frequently when the
collar has multiple
owners - it needs to be reset when there is a script error (such as the
RLV relay
settings script crashing due to having too many exceptions + large
numbers of
relay commands). Since the original script can't dump and restore
multiple owners,
however, this is probably not something the original scripters
considered.

The kluge is in two parts.

Part 1 - Reading the data lines.

In the Dataserver event, each line being read is inspected to see if it
ends with "&&", which
is considered to be a continuation indicator.  If this is found, the
line is saved (in g_sSavedLine),
and no processing of the line is done.  When the next line is read, then
the saved line is
prepended to the line being read to regenerate the full original line.
This reoccurs until
a line is read that does NOT have a "&&" at the end, at which point the
entire reassembled
line is read.   The only limitation on the number of continuation lines
is script memory.

The only values that appear to exceed the 255 character limit are owners
lists, and
texture settings for complex collars. Neither of these have "&&"
anywhere in the typical
data strings, thus the && should be a safe choice.

Part 2 - Writing a data dump that does NOT have lines longer than 255
characters.

The easiest part of the fix is to simply change the length at which the
script preferentially
breaks the output into separate parts to 255 characters instead of 1023.
This causes the
script to break up data values for the same module into multiple lines
when possible,
each of which is individually readable without error.  It is NOT optimal
in terms of making
the dump output a minimum number of actual lines output, but it does
make it more
readable i.e. makes it easier for manual editing of the result, and
incidentally reduces
the need for splitting up long values using continuation flags. As an
example, it forces
the owners list settings and the group settings to be

The second part of the fix is to take lines that cannot (because of long
value strings) be
written as multiple lines.  The subroutine "WhisperLine" will output a
long line in chunks
approximately 250 characters long, with all but the last chunk marked
with an "&&" flag.