docs: def parse_ACCT(chunk, encryption_key):
      """
      Parses an account chunk, decrypts and creates an Account object.
      May return nil when the chunk does not represent an account.
      All secure notes are ACCTs but not all of them strore account
      information.
      """
      # TODO: Make a test case that covers secure note account
  
      io = BytesIO(chunk.payload)
      id = read_item(io)
      name = decode_aes256_plain_auto(read_item(io), encryption_key)
      group = decode_aes256_plain_auto(read_item(io), encryption_key)
      url = decode_hex(read_item(io))
      notes = decode_aes256_plain_auto(read_item(io), encryption_key)
      skip_item(io, 2)
      username = decode_aes256_plain_auto(read_item(io), encryption_key)
      password = decode_aes256_plain_auto(read_item(io), encryption_key)
      skip_item(io, 2)
      secure_note = read_item(io)
  
      # Parse secure note
      if secure_note == b'1':
          parsed = parse_secure_note_server(notes)
  
          if parsed.get('type') in ALLOWED_SECURE_NOTE_TYPES:
              url = parsed.get('url', url)
              username = parsed.get('username', username)
              password = parsed.get('password', password)
  
      return Account(id, name, username, password, url, group, notes)