public void ReadFrom( Stream aStream )
        {
            using ( var reader = new GMBinaryReader( aStream ) ) {
            int version = reader.ReadInt32();
            if ( version != FormatConstants.GMVersion50 && version != FormatConstants.GMVersion52 )
              throw new Exceptions.UnsupportedVersion( aStream.Position, version );

            TabCaption = reader.ReadString();
            ID = reader.ReadInt32();
            Author = reader.ReadString();
            Version = reader.ReadInt32();
            LastChanged = DateTime.FromOADate( reader.ReadDouble() );
            Information = reader.ReadString();
            InitializationCode = reader.ReadString();
            Advanced = reader.ReadInt32AsBool();

            reader.BaseStream.Position += 4;

            int count = reader.ReadInt32();
            Actions = new List<LibraryAction>( count );

            for ( int i = 0; i < count; i++ ) {
              var action = new LibraryAction();
              action.ReadFrom( reader );

              Actions.Add( action );
            }
              }
        }