def deserialize(cls, target_class, array):
        """
        :type target_class: core.Installation|type
        :type array: list

        :rtype: core.Installation
        """

        installation = target_class.__new__(target_class)
        server_public_key_wrapped = array[cls._INDEX_SERVER_PUBLIC_KEY]
        installation.__dict__ = {
            cls._ATTRIBUTE_ID: converter.deserialize(
                core.Id,
                array[cls._INDEX_ID][cls._FIELD_ID]
            ),
            cls._ATTRIBUTE_TOKEN: converter.deserialize(
                core.SessionToken,
                array[cls._INDEX_TOKEN][cls._FIELD_TOKEN]
            ),
            cls._ATTRIBUTE_SERVER_PUBLIC_KEY: converter.deserialize(
                core.PublicKeyServer,
                server_public_key_wrapped[cls._FIELD_SERVER_PUBLIC_KEY]
            ),
        }

        return installation