def _read_http_window_update(self, size, kind, flag):
        """Read HTTP/2 WINDOW_UPDATE frames.

        Structure of HTTP/2 WINDOW_UPDATE frame [RFC 7540]:
            +-----------------------------------------------+
            |                 Length (24)                   |
            +---------------+---------------+---------------+
            |   Type (8)    |   Flags (8)   |
            +-+-------------+---------------+-------------------------------+
            |R|                 Stream Identifier (31)                      |
            +-+-------------+---------------+-------------------------------+
            |R|              Window Size Increment (31)                     |
            +-+-------------------------------------------------------------+

            Octets      Bits        Name                    Description
              0           0     http.length             Length
              3          24     http.type               Type (2)
              4          32     http.flags              Flags
              5          40     -                       Reserved
              5          41     http.sid                Stream Identifier
              9          72     -                       Reserved
              9          73     http.window             Window Size Increment

        """
        if size != 4:
            raise ProtocolError(f'HTTP/2: [Type {kind}] invalid format', quiet=True)
        if any((int(bit, base=2) for bit in flag)):
            raise ProtocolError(f'HTTP/2: [Type {kind}] invalid format', quiet=True)

        _size = self._read_binary(4)

        if int(_size[0], base=2):
            raise ProtocolError(f'HTTP/2: [Type {kind}] invalid format', quiet=True)

        data = dict(
            flags=None,
            window=int(_size[1:], base=2),
        )

        return data