/*
 * Copyright (c) 2021-2022 Arm Limited.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 * Licensed under the Apache License, Version 2.0 (the License); you may
 * not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an AS IS BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/****************************************************************************
 * Includes
 ****************************************************************************/

#include "command_stream.hpp"

#include <stdio.h>

using namespace std;
using namespace EthosU::CommandStream;

/****************************************************************************
 * Data
 ****************************************************************************/
// clang-format off
__attribute__((section(".sram.data"), aligned(16))) char commandStream[] = {
    DRIVER_ACTION_MAGIC()
    DRIVER_ACTION_NOP()
    DRIVER_ACTION_NOP()
    DRIVER_ACTION_COMMAND_STREAM(84)

    0x30, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_DMA0_SRC_REGION          0   -
    0x30, 0x40, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_DMA0_SRC                 0   0x00000030 (48)
    0x31, 0x01, 0x01, 0x00,                          // cmd0.NPU_SET_DMA0_DST_REGION          1   -
    0x31, 0x40, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00,  // cmd1.NPU_SET_DMA0_DST                 0   0x00000480 (1152)
    0x32, 0x40, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_DMA0_LEN                 0   0x00000050 (80)
    0x10, 0x00, 0x00, 0x00,                          // cmd0.NPU_OP_DMA_START                 0   -
    0x0f, 0x01, 0x01, 0x00,                          // cmd0.NPU_SET_IFM_REGION               1   -
    0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_BASE0                0   0x00000000 (0)
    0x01, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_BASE1                0   0x00000000 (0)
    0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_BASE2                0   0x00000000 (0)
    0x03, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_BASE3                0   0x00000000 (0)
    0x0b, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_IFM_HEIGHT0_M1           7   -
    0x0c, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_IFM_HEIGHT1_M1           7   -
    0x0a, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_IFM_WIDTH0_M1            7   -
    0x04, 0x01, 0x0f, 0x00,                          // cmd0.NPU_SET_IFM_DEPTH_M1            15   -
    0x06, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_STRIDE_C             0   0x00000001 (1)
    0x05, 0x40, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_STRIDE_Y             0   0x00000080 (128)
    0x04, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_IFM_STRIDE_X             0   0x00000010 (16)
    0x09, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_ZERO_POINT           0   -
    0x05, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_PRECISION            0   -
    0x07, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_UPSCALE              0   -
    0x00, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_PAD_TOP              0   -
    0x01, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_PAD_LEFT             0   -
    0x03, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_PAD_BOTTOM           0   -
    0x02, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_IFM_PAD_RIGHT            0   -
    0x1f, 0x01, 0x01, 0x00,                          // cmd0.NPU_SET_OFM_REGION               1   -
    0x10, 0x40, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00,  // cmd1.NPU_SET_OFM_BASE0                0   0x00000400 (1024)
    0x11, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_BASE1                0   0x00000000 (0)
    0x12, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_BASE2                0   0x00000000 (0)
    0x13, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_BASE3                0   0x00000000 (0)
    0x1b, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_HEIGHT0_M1           7   -
    0x1c, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_HEIGHT1_M1           7   -
    0x1a, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_WIDTH0_M1            7   -
    0x12, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_HEIGHT_M1            7   -
    0x11, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_WIDTH_M1             7   -
    0x13, 0x01, 0x01, 0x00,                          // cmd0.NPU_SET_OFM_DEPTH_M1             1   -
    0x16, 0x40, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_STRIDE_C             0   0x00000001 (1)
    0x15, 0x40, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_STRIDE_Y             0   0x00000010 (16)
    0x14, 0x40, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_OFM_STRIDE_X             0   0x00000002 (2)
    0x18, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_OFM_ZERO_POINT           0   -
    0x14, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_OFM_PRECISION            0   -
    0x21, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_KERNEL_HEIGHT_M1         0   -
    0x20, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_KERNEL_WIDTH_M1          0   -
    0x22, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_KERNEL_STRIDE            0   -
    0x28, 0x01, 0x01, 0x00,                          // cmd0.NPU_SET_WEIGHT_REGION            1   -
    0x20, 0x40, 0x00, 0x00, 0x80, 0x04, 0x00, 0x00,  // cmd1.NPU_SET_WEIGHT_BASE              0   0x00000480 (1152)
    0x21, 0x40, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_WEIGHT_LENGTH            0   0x00000050 (80)
    0x29, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_SCALE_REGION             0   -
    0x22, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_SCALE_BASE               0   0x00000000 (0)
    0x23, 0x40, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,  // cmd1.NPU_SET_SCALE_LENGTH             0   0x00000020 (32)
    0x25, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_ACTIVATION               0   -
    0x26, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_ACTIVATION_MIN           0   -
    0x27, 0x01, 0xff, 0x00,                          // cmd0.NPU_SET_ACTIVATION_MAX         255   -
    0x16, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_BLK_HEIGHT_M1        7   -
    0x15, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_BLK_WIDTH_M1         7   -
    0x17, 0x01, 0x07, 0x00,                          // cmd0.NPU_SET_OFM_BLK_DEPTH_M1         7   -
    0x0d, 0x01, 0x06, 0x00,                          // cmd0.NPU_SET_IFM_IB_END              10   -
    0x2d, 0x01, 0x0e, 0x00,                          // cmd0.NPU_SET_AB_START                30   -
    0x24, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_ACC_FORMAT               0   -
    0x2f, 0x01, 0x00, 0x00,                          // cmd0.NPU_SET_BLOCKDEP                 0   -
    0x11, 0x00, 0x00, 0x00,                          // cmd0.NPU_OP_DMA_WAIT                  0   -
    0x02, 0x00, 0x00, 0x00,                          // cmd0.NPU_OP_CONV                      0   -
    0x00, 0x00, 0xff, 0xff,                          // cmd0.NPU_OP_STOP                  65535   -
}; // clang-format on

__attribute__((section(".sram.data"), aligned(16))) char weightsBiases0[] = {
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa4, 0x7b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa4, 0x7b,
    0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x5c, 0xe6, 0x4d, 0xf9, 0xef, 0x6f, 0xcf,
    0x5e, 0x2e, 0xbe, 0x0d, 0xbd, 0x4c, 0xfc, 0x0b, 0xeb, 0xa9, 0x29, 0xd9, 0x27, 0xe7, 0xa4, 0xf4, 0x63, 0xf3, 0x92,
    0x42, 0x32, 0xa2, 0x81, 0x51, 0x01, 0xc1, 0x00, 0x00, 0xf0, 0xaf, 0xeb, 0xcd, 0xc3, 0xe1, 0x12, 0xb7, 0x44, 0xff,
    0x4f, 0xbb, 0x39, 0x01, 0x08, 0x9e, 0x96, 0x87, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x4c, 0x35, 0x30, 0x89, 0x1d,
    0x00, 0xe0, 0xfc, 0xff, 0xbf, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};

__attribute__((section(".sram.data"), aligned(16))) char scratch[] = {
    0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e,
    0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde,
    0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46,
    0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62,
    0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf,
    0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b,
    0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0,
    0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23,
    0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95,
    0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c,
    0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09,
    0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85,
    0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3,
    0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3,
    0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85,
    0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62,
    0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08,
    0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f,
    0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77,
    0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21,
    0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36,
    0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11,
    0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4,
    0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94,
    0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92,
    0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91,
    0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9,
    0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2,
    0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74,
    0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86,
    0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95,
    0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71,
    0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf,
    0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde,
    0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52,
    0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43,
    0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0,
    0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc,
    0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50,
    0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43,
    0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25,
    0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35,
    0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2,
    0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f,
    0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62,
    0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b,
    0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3,
    0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4,
    0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f,
    0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84,
    0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76,
    0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4,
    0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90,
    0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

__attribute__((section(".sram.data"), aligned(16))) char fastScratch[] = {
    0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e,
    0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde,
    0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46,
    0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62,
    0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf,
    0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b,
    0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0,
    0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23,
    0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95,
    0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c,
    0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09,
    0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85,
    0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3,
    0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3,
    0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85,
    0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62,
    0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08,
    0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f,
    0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77,
    0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21,
    0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36,
    0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11,
    0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4,
    0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94,
    0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92,
    0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91,
    0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9,
    0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2,
    0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74,
    0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86,
    0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95,
    0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71,
    0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf,
    0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde,
    0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52,
    0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43,
    0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0,
    0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc,
    0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50,
    0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43,
    0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25,
    0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35,
    0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2,
    0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f,
    0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62,
    0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b,
    0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3,
    0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4,
    0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f,
    0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84,
    0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76,
    0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4,
    0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90,
    0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};

char input0[] = {
    0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e,
    0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde,
    0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46,
    0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62,
    0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf,
    0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b,
    0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0,
    0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23,
    0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95,
    0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c,
    0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09,
    0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85,
    0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3,
    0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3,
    0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85,
    0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62,
    0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08,
    0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f,
    0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77,
    0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21,
    0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36,
    0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11,
    0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4,
    0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94,
    0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92,
    0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91,
    0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9,
    0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2,
    0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74,
    0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86,
    0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95,
    0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71,
    0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf,
    0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde,
    0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52,
    0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43,
    0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0,
    0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc,
    0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50,
    0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43,
    0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25,
    0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35,
    0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2,
    0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f,
    0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62,
    0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b,
    0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3,
    0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4,
    0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f,
    0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84,
    0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76,
    0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4,
    0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90,
    0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7};

char expected0[] = {0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x65, 0xff, 0x00, 0xff,
                    0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x70, 0xff, 0x50, 0xff, 0x00, 0xff, 0x00, 0xff,
                    0x59, 0xff, 0x88, 0xff, 0x00, 0xff, 0x00, 0xff, 0x31, 0xff, 0x7c, 0xff, 0x00, 0xff, 0x00, 0xff,
                    0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x2a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
                    0x00, 0xff, 0xab, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x73, 0xff,
                    0x00, 0xff, 0x9d, 0xff, 0x00, 0xff, 0x00, 0xff, 0xbe, 0xff, 0xa5, 0xff, 0x00, 0xff, 0x5f, 0xff,
                    0x00, 0xff, 0xbd, 0xff, 0x00, 0xff, 0x3f, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff,
                    0x00, 0xff, 0x00, 0xff, 0x17, 0xff, 0x00, 0xff, 0x00, 0xff, 0x1f, 0xff, 0x00, 0xff, 0x00, 0xff};

/****************************************************************************
 * Functions
 ****************************************************************************/

int main() {
    CommandStream cs(DataPointer(commandStream, sizeof(commandStream)),
                     BasePointers({DataPointer(weightsBiases0, sizeof(weightsBiases0)),
                                   DataPointer(scratch, sizeof(scratch)),
                                   DataPointer(fastScratch, sizeof(fastScratch))}),
                     PmuEvents({ETHOSU_PMU_CYCLE, ETHOSU_PMU_NPU_IDLE, ETHOSU_PMU_NPU_ACTIVE}));

    const size_t repeat = 100;
    uint64_t cycleCount = 0;
    int errors          = 0;
    int res;

    // Input data located inside the scratch buffer
    DataPointer inputPointer(scratch, sizeof(input0));

    // Output data located inside the scratch buffer
    DataPointer outputPointer(scratch + 1024, sizeof(expected0));

    // Expected output data
    DataPointer expectedPointer(expected0, sizeof(expected0));

    printf("Running %d iterations using sync API...\n", repeat);

    // Clear PMU
    cs.getPmu().clear();

    // Run inference
    res = cs.run(repeat);
    if (res == 0) {
        cycleCount = cs.getPmu().getCycleCount();

        // Print PMU counters
        cs.getPmu().print();
        printf("cycleCount=%llu, cycleCountPerJob=%llu\n", cycleCount, cycleCount / repeat);

        // Compare output with expected data
        if (outputPointer != expectedPointer) {
            printf("Output mismatch for sync test\n");
            res = 1;
        }
    }
    errors = res;
    printf("\n");

    // Test using the async API
    printf("Running %d iterations using async API...\n", repeat);

    // Clear PMU
    cs.getPmu().clear();

    // Dummy wait loop count for inference to complete
    int wait_loops = 0;

    // Run async job
    for (size_t r = repeat; r > 0; r--) {
        res = cs.run_async();
        if (res != 0) {
            // Invoke async failed
            errors++;
            break;
        }

        // Wait for inference to complete
        while ((res = cs.wait_async(false)) == 1) {
            // CPU is free to do other work while waiting for inference completion
            wait_loops++;
        }

        // Check inference result
        if (res != 0) {
            printf("Async inference test failed\n");
            errors++;
            break;
        }
    }

    // Print async results on success
    if (res == 0) {
        cycleCount = cs.getPmu().getCycleCount();

        // Print PMU counters
        cs.getPmu().print();
        printf("cycleCount=%llu, cycleCountPerJob=%llu\n", cycleCount, cycleCount / repeat);

        printf("wait_loops=%d\n", wait_loops);

        // Compare output with expected data
        if (outputPointer != expectedPointer) {
            printf("Output mismatch for async test\n");
            errors++;
        }
    }
    printf("\n");

    return errors;
}
