Fixed mismatched sizes and offsets in BSAFile construction and ReadFileBlock, which would produce corrupt BSAs

Fixed BSAWrapper.Save() not resetting offset dicts when called, which prevented multiple calls to it

Fixed BSAWrapper.Save() not including BStringPrefixed when generating ArchiveFlags

Fixed BSAWrapper.CreateWriteFileRecordBlock() not including totalFileNameLength, breaking compatibility with readers which did not construct file records based on sequence

BSAFolder and BSAFile now override ToString() and provide meaningful debugger displays

Split path/name sanitizing out into BSAFile.FixPath() and BSAFile.FixName()

Removed BSAFile.UpdatePath(), changing path and name should be done through the new parameters in DeepCopy()

Extensions.TrimBuffer() now uses BlockCopy rather than Array.Copy