/*
 * Copyright (c) 2025 Raspberry Pi (Trading) Ltd.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

// ---------------------------------------
// THIS FILE IS AUTOGENERATED; DO NOT EDIT
// ---------------------------------------

#ifndef _PIOASM_VERSION_H
#define _PIOASM_VERSION_H

#define PIOASM_VERSION_STRING   "${PIOASM_VERSION_STRING}"

#endif