diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio.hex b/Software/Firmware/ADAU1701-Firmware/DigiRadio.hex index bd61360..7ee4842 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio.hex +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio.hex @@ -2,6 +2,28 @@ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x6C , 0xAC , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x01 , 0x41 , 0x85 , 0x7F , +0x00 , 0x09 , 0x0F , 0xCC , +0x00 , 0x09 , 0x0F , 0xCC , +0x00 , 0x06 , 0x6A , 0x4A , +0x00 , 0x04 , 0x8A , 0xA7 , +0x00 , 0x03 , 0x37 , 0x18 , +0x00 , 0x02 , 0x46 , 0xB5 , +0x00 , 0x01 , 0x9C , 0x86 , +0x00 , 0x01 , 0x24 , 0x0C , +0x00 , 0x00 , 0xCE , 0xC1 , +0x00 , 0x00 , 0x92 , 0x5F , +0x00 , 0x00 , 0x67 , 0x9F , +0x00 , 0x00 , 0x49 , 0x5C , +0x00 , 0x00 , 0xDA , 0xD7 , +0x00 , 0x02 , 0xFD , 0x86 , +0x00 , 0x0A , 0x75 , 0xDE , +0x00 , 0x24 , 0x97 , 0x68 , +0x00 , 0x7E , 0xDA , 0x4D , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , @@ -10,31 +32,113 @@ 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x00 , 0x0F , 0xB9 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x00 , 0x09 , 0x60 , +0x00 , 0x00 , 0x00 , 0xB6 , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , 0x00 , 0x7F , 0xC3 , 0x65 , 0x0F , 0x00 , 0x79 , 0x35 , 0x00 , 0x7F , 0xC3 , 0x65 , 0x00 , 0xFF , 0x86 , 0xAE , 0x0F , 0x80 , 0x79 , 0x19 , +0x00 , 0x7F , 0xE6 , 0x6F , +0x0F , 0x01 , 0xD7 , 0xBF , +0x00 , 0x7E , 0x47 , 0xC2 , +0x00 , 0xFE , 0x28 , 0x41 , +0x0F , 0x81 , 0xD1 , 0xCF , +0x00 , 0x80 , 0x0B , 0x93 , +0x0F , 0x06 , 0x4A , 0x08 , +0x00 , 0x79 , 0xF5 , 0x34 , +0x00 , 0xF9 , 0xB5 , 0xF8 , +0x0F , 0x85 , 0xFF , 0x39 , +0x00 , 0x7F , 0x5D , 0x86 , +0x0F , 0x14 , 0xBB , 0x22 , +0x00 , 0x6E , 0x7D , 0xEA , +0x00 , 0xEB , 0x44 , 0xDE , +0x0F , 0x92 , 0x24 , 0x90 , +0x00 , 0x80 , 0x52 , 0x5D , +0x0F , 0x3C , 0xC4 , 0x90 , +0x00 , 0x55 , 0x01 , 0xAB , +0x00 , 0xC3 , 0x3B , 0x70 , +0x0F , 0xAA , 0xAB , 0xF8 , +0x00 , 0x82 , 0x2B , 0x9A , +0x0F , 0x98 , 0xC2 , 0xB2 , +0x00 , 0x34 , 0x93 , 0x0C , +0x00 , 0x67 , 0x3D , 0x4E , +0x0F , 0xC9 , 0x41 , 0x5A , +0x00 , 0x02 , 0xC4 , 0x78 , +0x00 , 0x05 , 0x88 , 0xEF , +0x00 , 0x02 , 0xC4 , 0x78 , +0x00 , 0xC5 , 0x84 , 0xFE , +0xFF , 0xAF , 0x69 , 0x23 , +0x00 , 0x65 , 0x86 , 0xF7 , +0xFF , 0x34 , 0xF2 , 0x12 , +0x00 , 0x65 , 0x86 , 0xF7 , +0x00 , 0xC5 , 0x84 , 0xFE , +0xFF , 0xAF , 0x69 , 0x23 , +0x00 , 0xA6 , 0x66 , 0x66 , +0x00 , 0x73 , 0x33 , 0x33 , +0x00 , 0x6D , 0x66 , 0xD6 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x75 , 0x69 , 0x4C , +0x00 , 0x5A , 0x9D , 0xF8 , +0x00 , 0x45 , 0xEF , 0xFF , +0x00 , 0x35 , 0xFA , 0x27 , +0x00 , 0x29 , 0xA8 , 0xBB , +0x00 , 0x20 , 0x26 , 0xF3 , +0x00 , 0x06 , 0x4A , 0x36 , +0x00 , 0x00 , 0x01 , 0x6C , +0x00 , 0x00 , 0x5D , 0xC0 , +0x00 , 0x08 , 0x0D , 0x6A , +0x00 , 0x02 , 0x78 , 0x8C , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , @@ -42,6 +146,52 @@ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x01 , 0x01 , 0x5C , +0x00 , 0x00 , 0x01 , 0x64 , +0x00 , 0x00 , 0x02 , 0xC8 , +0x00 , 0x00 , 0x01 , 0x64 , +0x00 , 0xFD , 0xA1 , 0x53 , +0x0F , 0x82 , 0x59 , 0x1D , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x29 , 0x53 , 0x21 , +0x00 , 0x2A , 0xC6 , 0xE7 , +0x00 , 0x2C , 0x47 , 0xBE , +0x00 , 0x2D , 0xD6 , 0x1B , +0x00 , 0x2F , 0x72 , 0x77 , +0x00 , 0x31 , 0x1D , 0x52 , +0x00 , 0x32 , 0xD7 , 0x2C , +0x00 , 0x34 , 0xA0 , 0x8E , +0x00 , 0x36 , 0x7A , 0x02 , +0x00 , 0x00 , 0x06 , 0xD3 , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , 0x0F , 0xFE , 0x2B , 0xE3 , 0x00 , 0x22 , 0xBE , 0x2C , 0x0F , 0xEA , 0xAA , 0xAB , @@ -872,154 +1022,4 @@ 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio.params b/Software/Firmware/ADAU1701-Firmware/DigiRadio.params index ace2c4d..a1f8685 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio.params +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio.params @@ -1,69 +1,6 @@ -Cell Name = Si4674 -Parameter Name = Gain1940AlgNS1 -Parameter Address = 3 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = Si4674 -Parameter Name = Gain1940AlgNS2 -Parameter Address = 4 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = ESP32 -Parameter Name = Gain1940AlgNS3 -Parameter Address = 5 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = ESP32 -Parameter Name = Gain1940AlgNS4 -Parameter Address = 6 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = St Mixer1 -Parameter Name = StereoMixerAlg12 -Parameter Address = 9 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = St Mixer1 -Parameter Name = StereoMixerAlg14 -Parameter Address = 10 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = St Mixer1 -Parameter Name = StereoMixerAlg16 -Parameter Address = 11 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B1 -Parameter Address = 12 +Parameter Address = 59 Parameter Value = 0.99815046787262 Parameter Data : 0x00 , 0x7F , 0xC3 , 0x65 , @@ -72,7 +9,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B1 -Parameter Address = 13 +Parameter Address = 60 Parameter Value = -1.99630105495453 Parameter Data : 0x0F , 0x00 , 0x79 , 0x35 , @@ -81,7 +18,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B1 -Parameter Address = 14 +Parameter Address = 61 Parameter Value = 0.99815046787262 Parameter Data : 0x00 , 0x7F , 0xC3 , 0x65 , @@ -90,7 +27,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A1 -Parameter Address = 15 +Parameter Address = 62 Parameter Value = 1.99629759788513 Parameter Data : 0x00 , 0xFF , 0x86 , 0xAE , @@ -99,7 +36,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A1 -Parameter Address = 16 +Parameter Address = 63 Parameter Value = -0.996304392814636 Parameter Data : 0x0F , 0x80 , 0x79 , 0x19 , @@ -108,232 +45,232 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B2 -Parameter Address = 17 -Parameter Value = 1 +Parameter Address = 64 +Parameter Value = 0.99921977519989 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0xE6 , 0x6F , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B2 -Parameter Address = 18 -Parameter Value = 0 +Parameter Address = 65 +Parameter Value = -1.98560345172882 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x01 , 0xD7 , 0xBF , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B2 -Parameter Address = 19 -Parameter Value = 0 +Parameter Address = 66 +Parameter Value = 0.986564874649048 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x7E , 0x47 , 0xC2 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A2 -Parameter Address = 20 -Parameter Value = 0 +Parameter Address = 67 +Parameter Value = 1.98560345172882 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xFE , 0x28 , 0x41 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A2 -Parameter Address = 21 -Parameter Value = 0 +Parameter Address = 68 +Parameter Value = -0.985784649848938 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x81 , 0xD1 , 0xCF , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B3 -Parameter Address = 22 -Parameter Value = 1 +Parameter Address = 69 +Parameter Value = 1.00035321712494 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x0B , 0x93 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B3 -Parameter Address = 23 -Parameter Value = 0 +Parameter Address = 70 +Parameter Value = -1.95086574554443 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x06 , 0x4A , 0x08 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B3 -Parameter Address = 24 -Parameter Value = 0 +Parameter Address = 71 +Parameter Value = 0.952795505523682 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x79 , 0xF5 , 0x34 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A3 -Parameter Address = 25 -Parameter Value = 0 +Parameter Address = 72 +Parameter Value = 1.95086574554443 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xF9 , 0xB5 , 0xF8 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A3 -Parameter Address = 26 -Parameter Value = 0 +Parameter Address = 73 +Parameter Value = -0.953148722648621 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x85 , 0xFF , 0x39 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B4 -Parameter Address = 27 -Parameter Value = 1 +Parameter Address = 74 +Parameter Value = 0.995041608810425 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0x5D , 0x86 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B4 -Parameter Address = 28 -Parameter Value = 0 +Parameter Address = 75 +Parameter Value = -1.83803915977478 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x14 , 0xBB , 0x22 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B4 -Parameter Address = 29 -Parameter Value = 0 +Parameter Address = 76 +Parameter Value = 0.86321759223938 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x6E , 0x7D , 0xEA , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A4 -Parameter Address = 30 -Parameter Value = 0 +Parameter Address = 77 +Parameter Value = 1.83803915977478 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xEB , 0x44 , 0xDE , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A4 -Parameter Address = 31 -Parameter Value = 0 +Parameter Address = 78 +Parameter Value = -0.858259201049805 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x92 , 0x24 , 0x90 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B5 -Parameter Address = 32 -Parameter Value = 1 +Parameter Address = 79 +Parameter Value = 1.00251352787018 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x52 , 0x5D , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B5 -Parameter Address = 33 -Parameter Value = 0 +Parameter Address = 80 +Parameter Value = -1.5252513885498 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x3C , 0xC4 , 0x90 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B5 -Parameter Address = 34 -Parameter Value = 0 +Parameter Address = 81 +Parameter Value = 0.664113402366638 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x55 , 0x01 , 0xAB , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A5 -Parameter Address = 35 -Parameter Value = 0 +Parameter Address = 82 +Parameter Value = 1.5252513885498 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xC3 , 0x3B , 0x70 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A5 -Parameter Address = 36 -Parameter Value = 0 +Parameter Address = 83 +Parameter Value = -0.666626930236816 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0xAA , 0xAB , 0xF8 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B6 -Parameter Address = 37 -Parameter Value = 1 +Parameter Address = 84 +Parameter Value = 1.01695561408997 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x82 , 0x2B , 0x9A , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B6 -Parameter Address = 38 -Parameter Value = 0 +Parameter Address = 85 +Parameter Value = -0.80655837059021 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x98 , 0xC2 , 0xB2 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B6 -Parameter Address = 39 -Parameter Value = 0 +Parameter Address = 86 +Parameter Value = 0.41073751449585 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x34 , 0x93 , 0x0C , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A6 -Parameter Address = 40 -Parameter Value = 0 +Parameter Address = 87 +Parameter Value = 0.80655837059021 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x67 , 0x3D , 0x4E , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A6 -Parameter Address = 41 -Parameter Value = 0 +Parameter Address = 88 +Parameter Value = -0.427693128585815 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0xC9 , 0x41 , 0x5A , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B1 -Parameter Address = 12 +Parameter Address = 59 Parameter Value = 0.99815046787262 Parameter Data : 0x00 , 0x7F , 0xC3 , 0x65 , @@ -342,7 +279,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B1 -Parameter Address = 13 +Parameter Address = 60 Parameter Value = -1.99630105495453 Parameter Data : 0x0F , 0x00 , 0x79 , 0x35 , @@ -351,7 +288,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B1 -Parameter Address = 14 +Parameter Address = 61 Parameter Value = 0.99815046787262 Parameter Data : 0x00 , 0x7F , 0xC3 , 0x65 , @@ -360,7 +297,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A1 -Parameter Address = 15 +Parameter Address = 62 Parameter Value = 1.99629759788513 Parameter Data : 0x00 , 0xFF , 0x86 , 0xAE , @@ -369,7 +306,7 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A1 -Parameter Address = 16 +Parameter Address = 63 Parameter Value = -0.996304392814636 Parameter Data : 0x0F , 0x80 , 0x79 , 0x19 , @@ -378,232 +315,232 @@ Parameter Data : Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B2 -Parameter Address = 17 -Parameter Value = 1 +Parameter Address = 64 +Parameter Value = 0.99921977519989 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0xE6 , 0x6F , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B2 -Parameter Address = 18 -Parameter Value = 0 +Parameter Address = 65 +Parameter Value = -1.98560345172882 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x01 , 0xD7 , 0xBF , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B2 -Parameter Address = 19 -Parameter Value = 0 +Parameter Address = 66 +Parameter Value = 0.986564874649048 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x7E , 0x47 , 0xC2 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A2 -Parameter Address = 20 -Parameter Value = 0 +Parameter Address = 67 +Parameter Value = 1.98560345172882 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xFE , 0x28 , 0x41 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A2 -Parameter Address = 21 -Parameter Value = 0 +Parameter Address = 68 +Parameter Value = -0.985784649848938 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x81 , 0xD1 , 0xCF , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B3 -Parameter Address = 22 -Parameter Value = 1 +Parameter Address = 69 +Parameter Value = 1.00035321712494 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x0B , 0x93 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B3 -Parameter Address = 23 -Parameter Value = 0 +Parameter Address = 70 +Parameter Value = -1.95086574554443 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x06 , 0x4A , 0x08 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B3 -Parameter Address = 24 -Parameter Value = 0 +Parameter Address = 71 +Parameter Value = 0.952795505523682 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x79 , 0xF5 , 0x34 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A3 -Parameter Address = 25 -Parameter Value = 0 +Parameter Address = 72 +Parameter Value = 1.95086574554443 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xF9 , 0xB5 , 0xF8 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A3 -Parameter Address = 26 -Parameter Value = 0 +Parameter Address = 73 +Parameter Value = -0.953148722648621 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x85 , 0xFF , 0x39 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B4 -Parameter Address = 27 -Parameter Value = 1 +Parameter Address = 74 +Parameter Value = 0.995041608810425 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0x5D , 0x86 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B4 -Parameter Address = 28 -Parameter Value = 0 +Parameter Address = 75 +Parameter Value = -1.83803915977478 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x14 , 0xBB , 0x22 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B4 -Parameter Address = 29 -Parameter Value = 0 +Parameter Address = 76 +Parameter Value = 0.86321759223938 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x6E , 0x7D , 0xEA , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A4 -Parameter Address = 30 -Parameter Value = 0 +Parameter Address = 77 +Parameter Value = 1.83803915977478 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xEB , 0x44 , 0xDE , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A4 -Parameter Address = 31 -Parameter Value = 0 +Parameter Address = 78 +Parameter Value = -0.858259201049805 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x92 , 0x24 , 0x90 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B5 -Parameter Address = 32 -Parameter Value = 1 +Parameter Address = 79 +Parameter Value = 1.00251352787018 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x52 , 0x5D , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B5 -Parameter Address = 33 -Parameter Value = 0 +Parameter Address = 80 +Parameter Value = -1.5252513885498 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x3C , 0xC4 , 0x90 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B5 -Parameter Address = 34 -Parameter Value = 0 +Parameter Address = 81 +Parameter Value = 0.664113402366638 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x55 , 0x01 , 0xAB , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A5 -Parameter Address = 35 -Parameter Value = 0 +Parameter Address = 82 +Parameter Value = 1.5252513885498 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0xC3 , 0x3B , 0x70 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A5 -Parameter Address = 36 -Parameter Value = 0 +Parameter Address = 83 +Parameter Value = -0.666626930236816 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0xAA , 0xAB , 0xF8 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan10B6 -Parameter Address = 37 -Parameter Value = 1 +Parameter Address = 84 +Parameter Value = 1.01695561408997 Parameter Data : -0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x82 , 0x2B , 0x9A , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11B6 -Parameter Address = 38 -Parameter Value = 0 +Parameter Address = 85 +Parameter Value = -0.80655837059021 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0x98 , 0xC2 , 0xB2 , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12B6 -Parameter Address = 39 -Parameter Value = 0 +Parameter Address = 86 +Parameter Value = 0.41073751449585 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x34 , 0x93 , 0x0C , Cell Name = Param EQ1 Parameter Name = PEQ1Chan11A6 -Parameter Address = 40 -Parameter Value = 0 +Parameter Address = 87 +Parameter Value = 0.80655837059021 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x67 , 0x3D , 0x4E , Cell Name = Param EQ1 Parameter Name = PEQ1Chan12A6 -Parameter Address = 41 -Parameter Value = 0 +Parameter Address = 88 +Parameter Value = -0.427693128585815 Parameter Data : -0x00 , 0x00 , 0x00 , 0x00 , +0x0F , 0xC9 , 0x41 , 0x5A , Cell Name = Multiple 1 Parameter Name = Gain1940AlgNS5 -Parameter Address = 42 +Parameter Address = 146 Parameter Value = 1 Parameter Data : 0x00, 0x80, 0x00, 0x00, @@ -612,7 +549,7 @@ Parameter Data : Cell Name = Multiple 1 Parameter Name = Gain1940AlgNS6 -Parameter Address = 43 +Parameter Address = 147 Parameter Value = 1 Parameter Data : 0x00, 0x80, 0x00, 0x00, @@ -621,7 +558,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1slope_1 -Parameter Address = 44 +Parameter Address = 209 Parameter Value = -0.014285683631897 Parameter Data : 0x0F, 0xFE, 0x2B, 0xE3, @@ -630,7 +567,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1inter_1 -Parameter Address = 45 +Parameter Address = 210 Parameter Value = 0.27142858505249 Parameter Data : 0x00, 0x22, 0xBE, 0x2C, @@ -639,7 +576,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1slope_2 -Parameter Address = 46 +Parameter Address = 211 Parameter Value = -0.166666626930237 Parameter Data : 0x0F, 0xEA, 0xAA, 0xAB, @@ -648,7 +585,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1inter_2 -Parameter Address = 47 +Parameter Address = 212 Parameter Value = 0.833333373069763 Parameter Data : 0x00, 0x6A, 0xAA, 0xAB, @@ -657,7 +594,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1slope_3 -Parameter Address = 48 +Parameter Address = 213 Parameter Value = -0.79365074634552 Parameter Data : 0x0F, 0x9A, 0x69, 0xA7, @@ -666,7 +603,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1inter_3 -Parameter Address = 49 +Parameter Address = 214 Parameter Value = 1.98412692546844 Parameter Data : 0x00, 0xFD, 0xF7, 0xDF, @@ -675,7 +612,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1slope_4 -Parameter Address = 50 +Parameter Address = 215 Parameter Value = -15.5279502868652 Parameter Data : 0x08, 0x3C, 0x6C, 0x20, @@ -684,7 +621,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1inter_4 -Parameter Address = 51 +Parameter Address = 216 Parameter Value = 7.91925466060638 Parameter Data : 0x03, 0xF5, 0xAA, 0x23, @@ -693,7 +630,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1comp1 -Parameter Address = 52 +Parameter Address = 217 Parameter Value = 3 Parameter Data : 0x01, 0x80, 0x00, 0x00, @@ -702,7 +639,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1comp2 -Parameter Address = 53 +Parameter Address = 218 Parameter Value = 2 Parameter Data : 0x01, 0x00, 0x00, 0x00, @@ -711,7 +648,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1comp3 -Parameter Address = 54 +Parameter Address = 219 Parameter Value = 0.399999976158142 Parameter Data : 0x00, 0x33, 0x33, 0x33, @@ -720,7 +657,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1RMS_MONO_TCONST -Parameter Address = 56 +Parameter Address = 221 Parameter Value = 0.000239849090576172 Parameter Data : 0x00, 0x00, 0x07, 0xDC, @@ -729,7 +666,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1threshold -Parameter Address = 55 +Parameter Address = 220 Parameter Value = 1 Parameter Data : 0x00, 0x80, 0x00, 0x00, @@ -738,7 +675,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1decay -Parameter Address = 57 +Parameter Address = 222 Parameter Value = 0.000244140625 Parameter Data : 0x00, 0x00, 0x08, 0x00, @@ -747,142 +684,7 @@ Parameter Data : Cell Name = Limiter 1 Parameter Name = limiterAlg1decaycomplement -Parameter Address = 58 -Parameter Value = 0.99951171875 -Parameter Data : -0x00, 0x7F, 0xF0, 0x00, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2slope_1 -Parameter Address = 59 -Parameter Value = -0.014285683631897 -Parameter Data : -0x0F, 0xFE, 0x2B, 0xE3, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2inter_1 -Parameter Address = 60 -Parameter Value = 0.27142858505249 -Parameter Data : -0x00, 0x22, 0xBE, 0x2C, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2slope_2 -Parameter Address = 61 -Parameter Value = -0.166666626930237 -Parameter Data : -0x0F, 0xEA, 0xAA, 0xAB, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2inter_2 -Parameter Address = 62 -Parameter Value = 0.833333373069763 -Parameter Data : -0x00, 0x6A, 0xAA, 0xAB, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2slope_3 -Parameter Address = 63 -Parameter Value = -0.79365074634552 -Parameter Data : -0x0F, 0x9A, 0x69, 0xA7, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2inter_3 -Parameter Address = 64 -Parameter Value = 1.98412692546844 -Parameter Data : -0x00, 0xFD, 0xF7, 0xDF, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2slope_4 -Parameter Address = 65 -Parameter Value = -15.5279502868652 -Parameter Data : -0x08, 0x3C, 0x6C, 0x20, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2inter_4 -Parameter Address = 66 -Parameter Value = 7.91925466060638 -Parameter Data : -0x03, 0xF5, 0xAA, 0x23, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2comp1 -Parameter Address = 67 -Parameter Value = 3 -Parameter Data : -0x01, 0x80, 0x00, 0x00, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2comp2 -Parameter Address = 68 -Parameter Value = 2 -Parameter Data : -0x01, 0x00, 0x00, 0x00, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2comp3 -Parameter Address = 69 -Parameter Value = 0.399999976158142 -Parameter Data : -0x00, 0x33, 0x33, 0x33, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2RMS_MONO_TCONST -Parameter Address = 71 -Parameter Value = 0.000239849090576172 -Parameter Data : -0x00, 0x00, 0x07, 0xDC, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2threshold -Parameter Address = 70 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2decay -Parameter Address = 72 -Parameter Value = 0.000244140625 -Parameter Data : -0x00, 0x00, 0x08, 0x00, - - - -Cell Name = Limiter 2 -Parameter Name = limiterAlg2decaycomplement -Parameter Address = 73 +Parameter Address = 223 Parameter Value = 0.99951171875 Parameter Data : 0x00, 0x7F, 0xF0, 0x00, @@ -916,30 +718,740 @@ Parameter Data : -Cell Name = Single 1 -Parameter Name = Gain1940AlgNS7 -Parameter Address = 7 -Parameter Value = 1 -Parameter Data : -0x00, 0x80, 0x00, 0x00, - - - Cell Name = S Splitter1 Parameter Name = SingleCtrlSplit1 Parameter Address = 8 +Parameter Value = 2.5118864774704 +Parameter Data : +0x01, 0x41, 0x85, 0x7F, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2slope_1 +Parameter Address = 194 +Parameter Value = -0.014285683631897 +Parameter Data : +0x0F, 0xFE, 0x2B, 0xE3, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2inter_1 +Parameter Address = 195 +Parameter Value = 0.27142858505249 +Parameter Data : +0x00, 0x22, 0xBE, 0x2C, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2slope_2 +Parameter Address = 196 +Parameter Value = -0.166666626930237 +Parameter Data : +0x0F, 0xEA, 0xAA, 0xAB, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2inter_2 +Parameter Address = 197 +Parameter Value = 0.833333373069763 +Parameter Data : +0x00, 0x6A, 0xAA, 0xAB, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2slope_3 +Parameter Address = 198 +Parameter Value = -0.79365074634552 +Parameter Data : +0x0F, 0x9A, 0x69, 0xA7, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2inter_3 +Parameter Address = 199 +Parameter Value = 1.98412692546844 +Parameter Data : +0x00, 0xFD, 0xF7, 0xDF, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2slope_4 +Parameter Address = 200 +Parameter Value = -15.5279502868652 +Parameter Data : +0x08, 0x3C, 0x6C, 0x20, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2inter_4 +Parameter Address = 201 +Parameter Value = 7.91925466060638 +Parameter Data : +0x03, 0xF5, 0xAA, 0x23, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2comp1 +Parameter Address = 202 +Parameter Value = 3 +Parameter Data : +0x01, 0x80, 0x00, 0x00, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2comp2 +Parameter Address = 203 +Parameter Value = 2 +Parameter Data : +0x01, 0x00, 0x00, 0x00, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2comp3 +Parameter Address = 204 +Parameter Value = 0.399999976158142 +Parameter Data : +0x00, 0x33, 0x33, 0x33, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2RMS_MONO_TCONST +Parameter Address = 206 +Parameter Value = 0.000239849090576172 +Parameter Data : +0x00, 0x00, 0x07, 0xDC, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2threshold +Parameter Address = 205 Parameter Value = 1 Parameter Data : 0x00, 0x80, 0x00, 0x00, +Cell Name = Limiter 2 +Parameter Name = limiterAlg2decay +Parameter Address = 207 +Parameter Value = 0.000244140625 +Parameter Data : +0x00, 0x00, 0x08, 0x00, + + + +Cell Name = Limiter 2 +Parameter Name = limiterAlg2decaycomplement +Parameter Address = 208 +Parameter Value = 0.99951171875 +Parameter Data : +0x00, 0x7F, 0xF0, 0x00, + + + +Cell Name = DCB1 +Parameter Name = DCBlockAlgDoublePrec1pole +Parameter Address = 4 +Parameter Value = 0.999899983406067 +Parameter Data : +0x00, 0x7F, 0xFC, 0xB9, + + + +Cell Name = DCB2 +Parameter Name = DCBlockAlgDoublePrec2pole +Parameter Address = 5 +Parameter Value = 0.999899983406067 +Parameter Data : +0x00, 0x7F, 0xFC, 0xB9, + + + +Cell Name = DCB3 +Parameter Name = DCBlockAlgDoublePrec3pole +Parameter Address = 7 +Parameter Value = 0.999899983406067 +Parameter Data : +0x00, 0x7F, 0xFC, 0xB9, + + + +Cell Name = DCB4 +Parameter Name = DCBlockAlgDoublePrec4pole +Parameter Address = 6 +Parameter Value = 0.999899983406067 +Parameter Data : +0x00, 0x7F, 0xFC, 0xB9, + + + +Cell Name = Compressor1 +Parameter Name = TwoChannelSingleDetectAlgFix1 +Parameter Address = 9 +Parameter Data : +0x00, 0x09, 0x0F, 0xCC, +0x00, 0x09, 0x0F, 0xCC, +0x00, 0x06, 0x6A, 0x4A, +0x00, 0x04, 0x8A, 0xA7, +0x00, 0x03, 0x37, 0x18, +0x00, 0x02, 0x46, 0xB5, +0x00, 0x01, 0x9C, 0x86, +0x00, 0x01, 0x24, 0x0C, +0x00, 0x00, 0xCE, 0xC1, +0x00, 0x00, 0x92, 0x5F, +0x00, 0x00, 0x67, 0x9F, +0x00, 0x00, 0x49, 0x5C, +0x00, 0x00, 0xDA, 0xD7, +0x00, 0x02, 0xFD, 0x86, +0x00, 0x0A, 0x75, 0xDE, +0x00, 0x24, 0x97, 0x68, +0x00, 0x7E, 0xDA, 0x4D, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, + + + +Cell Name = Compressor1 +Parameter Name = TwoChannelSingleDetectAlgFix1RMS +Parameter Address = 43 +Parameter Value = 0.000479817390441895 +Parameter Data : +0x00 , 0x00 , 0x0F , 0xB9 , + + + +Cell Name = Compressor1 +Parameter Name = TwoChannelSingleDetectAlgFix1post_gain +Parameter Address = 44 +Parameter Value = 1 +Parameter Data : +0x00 , 0x80 , 0x00 , 0x00 , + + + +Cell Name = Compressor1 +Parameter Name = TwoChannelSingleDetectAlgFix1hold +Parameter Address = 45 +Parameter Value = 2400 +Parameter Data : +0x00 , 0x00 , 0x09 , 0x60 , + + + +Cell Name = Compressor1 +Parameter Name = TwoChannelSingleDetectAlgFix1decay +Parameter Address = 46 +Parameter Value = 2.16960906982422E-05 +Parameter Data : +0x00 , 0x00 , 0x00 , 0xB6 , + + + +Cell Name = 1 X RTA1 +Parameter Name = SingleBandLevelDet1TCONST +Parameter Address = 53 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA1 +Parameter Name = SingleBandLevelDet1hold +Parameter Address = 54 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA1 +Parameter Name = SingleBandLevelDet1decay +Parameter Address = 55 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = 1 X RTA2 +Parameter Name = SingleBandLevelDet2TCONST +Parameter Address = 56 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA2 +Parameter Name = SingleBandLevelDet2hold +Parameter Address = 57 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA2 +Parameter Name = SingleBandLevelDet2decay +Parameter Address = 58 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = 1 X RTA3 +Parameter Name = SingleBandLevelDet3TCONST +Parameter Address = 47 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA3 +Parameter Name = SingleBandLevelDet3hold +Parameter Address = 48 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA3 +Parameter Name = SingleBandLevelDet3decay +Parameter Address = 49 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = 1 X RTA4 +Parameter Name = SingleBandLevelDet4TCONST +Parameter Address = 50 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA4 +Parameter Name = SingleBandLevelDet4hold +Parameter Address = 51 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA4 +Parameter Name = SingleBandLevelDet4decay +Parameter Address = 52 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = DC1 +Parameter Name = DCInpAlg1 +Parameter Address = 3 +Parameter Value = 1 +Parameter Data : +0x00, 0x80, 0x00, 0x00, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1gainHi +Parameter Address = 99 +Parameter Value = 1.29999995231628 +Parameter Data : +0x00, 0xA6, 0x66, 0x66, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1gainLo +Parameter Address = 100 +Parameter Value = 0.899999976158142 +Parameter Data : +0x00, 0x73, 0x33, 0x33, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1gainInv +Parameter Address = 101 +Parameter Value = 0.854700803756714 +Parameter Data : +0x00, 0x6D, 0x66, 0xD6, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1spread1 +Parameter Address = 139 +Parameter Value = 0.0629093647003174 +Parameter Data : +0x00, 0x08, 0x0D, 0x6A, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1comp_base +Parameter Address = 102 +Parameter Data : +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x75, 0x69, 0x4C, +0x00, 0x5A, 0x9D, 0xF8, +0x00, 0x45, 0xEF, 0xFF, +0x00, 0x35, 0xFA, 0x27, +0x00, 0x29, 0xA8, 0xBB, +0x00, 0x20, 0x26, 0xF3, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1RMS +Parameter Address = 136 +Parameter Value = 0.0491397380828857 +Parameter Data : +0x00, 0x06, 0x4A, 0x36, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1decay +Parameter Address = 137 +Parameter Value = 4.33921813964844E-05 +Parameter Data : +0x00, 0x00, 0x01, 0x6C, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1hold +Parameter Address = 138 +Parameter Value = 24000 +Parameter Data : +0x00, 0x00, 0x5D, 0xC0, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1B0lo +Parameter Address = 89 +Parameter Data : +0x00, 0x02, 0xC4, 0x78, +0x00, 0x05, 0x88, 0xEF, +0x00, 0x02, 0xC4, 0x78, +0x00, 0xC5, 0x84, 0xFE, +0xFF, 0xAF, 0x69, 0x23, +0x00, 0x65, 0x86, 0xF7, +0xFF, 0x34, 0xF2, 0x12, +0x00, 0x65, 0x86, 0xF7, +0x00, 0xC5, 0x84, 0xFE, +0xFF, 0xAF, 0x69, 0x23, + + + +Cell Name = SPhat1 +Parameter Name = SuperPhatAlg1spread2 +Parameter Address = 140 +Parameter Value = 0.0193037986755371 +Parameter Data : +0x00, 0x02, 0x78, 0x8C, + + + +Cell Name = Gen Filter1 +Parameter Name = EQ1940DualS10B1 +Parameter Address = 141 +Parameter Value = 1 +Parameter Data : +0x00 , 0x80 , 0x00 , 0x00 , + + + +Cell Name = Gen Filter1 +Parameter Name = EQ1940DualS11B1 +Parameter Address = 142 +Parameter Value = 0 +Parameter Data : +0x00 , 0x00 , 0x00 , 0x00 , + + + +Cell Name = Gen Filter1 +Parameter Name = EQ1940DualS12B1 +Parameter Address = 143 +Parameter Value = 0 +Parameter Data : +0x00 , 0x00 , 0x00 , 0x00 , + + + +Cell Name = Gen Filter1 +Parameter Name = EQ1940DualS11A1 +Parameter Address = 144 +Parameter Value = 0 +Parameter Data : +0x00 , 0x00 , 0x00 , 0x00 , + + + +Cell Name = Gen Filter1 +Parameter Name = EQ1940DualS12A1 +Parameter Address = 145 +Parameter Value = 0 +Parameter Data : +0x00 , 0x00 , 0x00 , 0x00 , + + + +Cell Name = 1 X RTA1_2 +Parameter Name = SingleBandLevelDet5TCONST +Parameter Address = 191 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA1_2 +Parameter Name = SingleBandLevelDet5hold +Parameter Address = 192 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA1_2 +Parameter Name = SingleBandLevelDet5decay +Parameter Address = 193 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = 1 X RTA2_2 +Parameter Name = SingleBandLevelDet6TCONST +Parameter Address = 188 +Parameter Value = 0.00240135192871094 +Parameter Data : +0x00 , 0x00 , 0x4E , 0xB0 , + + + +Cell Name = 1 X RTA2_2 +Parameter Name = SingleBandLevelDet6hold +Parameter Address = 189 +Parameter Value = 480 +Parameter Data : +0x00 , 0x00 , 0x01 , 0xE0 , + + + +Cell Name = 1 X RTA2_2 +Parameter Name = SingleBandLevelDet6decay +Parameter Address = 190 +Parameter Value = 0.000216960906982422 +Parameter Data : +0x00 , 0x00 , 0x07 , 0x1C , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1iir_coeff_0_biq +Parameter Address = 149 +Parameter Value = 4.24385070800781E-05 +Parameter Data : +0x00 , 0x00 , 0x01 , 0x64 , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1iir_coeff_1_biq +Parameter Address = 150 +Parameter Value = 8.48770141601563E-05 +Parameter Data : +0x00 , 0x00 , 0x02 , 0xC8 , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1iir_coeff_2_biq +Parameter Address = 151 +Parameter Value = 4.24385070800781E-05 +Parameter Data : +0x00 , 0x00 , 0x01 , 0x64 , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1iir_coeff_3_biq +Parameter Address = 152 +Parameter Value = 1.98148572444916 +Parameter Data : +0x00 , 0xFD , 0xA1 , 0x53 , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1iir_coeff_4_biq +Parameter Address = 153 +Parameter Value = -0.981655478477478 +Parameter Data : +0x0F , 0x82 , 0x59 , 0x1D , + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1compbase_table1_comp +Parameter Address = 154 +Parameter Data : +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x29, 0x53, 0x21, +0x00, 0x2A, 0xC6, 0xE7, +0x00, 0x2C, 0x47, 0xBE, +0x00, 0x2D, 0xD6, 0x1B, +0x00, 0x2F, 0x72, 0x77, +0x00, 0x31, 0x1D, 0x52, +0x00, 0x32, 0xD7, 0x2C, +0x00, 0x34, 0xA0, 0x8E, +0x00, 0x36, 0x7A, 0x02, + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1freq_varq +Parameter Address = 148 +Parameter Value = 0.00785398483276367 +Parameter Data : +0x00, 0x01, 0x01, 0x5C, + + + +Cell Name = Bass Boost1 +Parameter Name = BassBAlg_stereo1TCONST_comp +Parameter Address = 187 +Parameter Value = 0.000208258628845215 +Parameter Data : +0x00, 0x00, 0x06, 0xD3, + + + Parameter data for: IC 1 (Hexadecimal format starting at parameter address 0) -See also DigiRadio.hex file +See also DigiRadioFinale.hex file 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x6C , 0xAC , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x00 , 0x7F , 0xFC , 0xB9 , +0x01 , 0x41 , 0x85 , 0x7F , +0x00 , 0x09 , 0x0F , 0xCC , +0x00 , 0x09 , 0x0F , 0xCC , +0x00 , 0x06 , 0x6A , 0x4A , +0x00 , 0x04 , 0x8A , 0xA7 , +0x00 , 0x03 , 0x37 , 0x18 , +0x00 , 0x02 , 0x46 , 0xB5 , +0x00 , 0x01 , 0x9C , 0x86 , +0x00 , 0x01 , 0x24 , 0x0C , +0x00 , 0x00 , 0xCE , 0xC1 , +0x00 , 0x00 , 0x92 , 0x5F , +0x00 , 0x00 , 0x67 , 0x9F , +0x00 , 0x00 , 0x49 , 0x5C , +0x00 , 0x00 , 0xDA , 0xD7 , +0x00 , 0x02 , 0xFD , 0x86 , +0x00 , 0x0A , 0x75 , 0xDE , +0x00 , 0x24 , 0x97 , 0x68 , +0x00 , 0x7E , 0xDA , 0x4D , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , @@ -948,31 +1460,113 @@ See also DigiRadio.hex file 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x00 , 0x0F , 0xB9 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x00 , 0x09 , 0x60 , +0x00 , 0x00 , 0x00 , 0xB6 , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , 0x00 , 0x7F , 0xC3 , 0x65 , 0x0F , 0x00 , 0x79 , 0x35 , 0x00 , 0x7F , 0xC3 , 0x65 , 0x00 , 0xFF , 0x86 , 0xAE , 0x0F , 0x80 , 0x79 , 0x19 , +0x00 , 0x7F , 0xE6 , 0x6F , +0x0F , 0x01 , 0xD7 , 0xBF , +0x00 , 0x7E , 0x47 , 0xC2 , +0x00 , 0xFE , 0x28 , 0x41 , +0x0F , 0x81 , 0xD1 , 0xCF , +0x00 , 0x80 , 0x0B , 0x93 , +0x0F , 0x06 , 0x4A , 0x08 , +0x00 , 0x79 , 0xF5 , 0x34 , +0x00 , 0xF9 , 0xB5 , 0xF8 , +0x0F , 0x85 , 0xFF , 0x39 , +0x00 , 0x7F , 0x5D , 0x86 , +0x0F , 0x14 , 0xBB , 0x22 , +0x00 , 0x6E , 0x7D , 0xEA , +0x00 , 0xEB , 0x44 , 0xDE , +0x0F , 0x92 , 0x24 , 0x90 , +0x00 , 0x80 , 0x52 , 0x5D , +0x0F , 0x3C , 0xC4 , 0x90 , +0x00 , 0x55 , 0x01 , 0xAB , +0x00 , 0xC3 , 0x3B , 0x70 , +0x0F , 0xAA , 0xAB , 0xF8 , +0x00 , 0x82 , 0x2B , 0x9A , +0x0F , 0x98 , 0xC2 , 0xB2 , +0x00 , 0x34 , 0x93 , 0x0C , +0x00 , 0x67 , 0x3D , 0x4E , +0x0F , 0xC9 , 0x41 , 0x5A , +0x00 , 0x02 , 0xC4 , 0x78 , +0x00 , 0x05 , 0x88 , 0xEF , +0x00 , 0x02 , 0xC4 , 0x78 , +0x00 , 0xC5 , 0x84 , 0xFE , +0xFF , 0xAF , 0x69 , 0x23 , +0x00 , 0x65 , 0x86 , 0xF7 , +0xFF , 0x34 , 0xF2 , 0x12 , +0x00 , 0x65 , 0x86 , 0xF7 , +0x00 , 0xC5 , 0x84 , 0xFE , +0xFF , 0xAF , 0x69 , 0x23 , +0x00 , 0xA6 , 0x66 , 0x66 , +0x00 , 0x73 , 0x33 , 0x33 , +0x00 , 0x6D , 0x66 , 0xD6 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x75 , 0x69 , 0x4C , +0x00 , 0x5A , 0x9D , 0xF8 , +0x00 , 0x45 , 0xEF , 0xFF , +0x00 , 0x35 , 0xFA , 0x27 , +0x00 , 0x29 , 0xA8 , 0xBB , +0x00 , 0x20 , 0x26 , 0xF3 , +0x00 , 0x06 , 0x4A , 0x36 , +0x00 , 0x00 , 0x01 , 0x6C , +0x00 , 0x00 , 0x5D , 0xC0 , +0x00 , 0x08 , 0x0D , 0x6A , +0x00 , 0x02 , 0x78 , 0x8C , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , @@ -980,6 +1574,52 @@ See also DigiRadio.hex file 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , 0x00 , 0x80 , 0x00 , 0x00 , +0x00 , 0x01 , 0x01 , 0x5C , +0x00 , 0x00 , 0x01 , 0x64 , +0x00 , 0x00 , 0x02 , 0xC8 , +0x00 , 0x00 , 0x01 , 0x64 , +0x00 , 0xFD , 0xA1 , 0x53 , +0x0F , 0x82 , 0x59 , 0x1D , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x28 , 0xDA , 0x08 , +0x00 , 0x29 , 0x53 , 0x21 , +0x00 , 0x2A , 0xC6 , 0xE7 , +0x00 , 0x2C , 0x47 , 0xBE , +0x00 , 0x2D , 0xD6 , 0x1B , +0x00 , 0x2F , 0x72 , 0x77 , +0x00 , 0x31 , 0x1D , 0x52 , +0x00 , 0x32 , 0xD7 , 0x2C , +0x00 , 0x34 , 0xA0 , 0x8E , +0x00 , 0x36 , 0x7A , 0x02 , +0x00 , 0x00 , 0x06 , 0xD3 , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , +0x00 , 0x00 , 0x4E , 0xB0 , +0x00 , 0x00 , 0x01 , 0xE0 , +0x00 , 0x00 , 0x07 , 0x1C , 0x0F , 0xFE , 0x2B , 0xE3 , 0x00 , 0x22 , 0xBE , 0x2C , 0x0F , 0xEA , 0xAA , 0xAB , @@ -1810,162 +2450,34 @@ See also DigiRadio.hex file 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , -0x00 , 0x00 , 0x00 , 0x00 , Parameter data for: IC 1 (Binary format starting at parameter address 0) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 01101100 10101100 00000000 10000000 00000000 00000000 +00000000 01111111 11111100 10111001 +00000000 01111111 11111100 10111001 +00000000 01111111 11111100 10111001 +00000000 01111111 11111100 10111001 +00000001 01000001 10000101 01111111 +00000000 00001001 00001111 11001100 +00000000 00001001 00001111 11001100 +00000000 00000110 01101010 01001010 +00000000 00000100 10001010 10100111 +00000000 00000011 00110111 00011000 +00000000 00000010 01000110 10110101 +00000000 00000001 10011100 10000110 +00000000 00000001 00100100 00001100 +00000000 00000000 11001110 11000001 +00000000 00000000 10010010 01011111 +00000000 00000000 01100111 10011111 +00000000 00000000 01001001 01011100 +00000000 00000000 11011010 11010111 +00000000 00000010 11111101 10000110 +00000000 00001010 01110101 11011110 +00000000 00100100 10010111 01101000 +00000000 01111110 11011010 01001101 00000000 10000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000 10000000 00000000 00000000 @@ -1974,31 +2486,113 @@ Parameter data for: IC 1 (Binary format starting at parameter address 0) 00000000 10000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 00000000 00001111 10111001 +00000000 10000000 00000000 00000000 +00000000 00000000 00001001 01100000 +00000000 00000000 00000000 10110110 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 00000000 01111111 11000011 01100101 00001111 00000000 01111001 00110101 00000000 01111111 11000011 01100101 00000000 11111111 10000110 10101110 00001111 10000000 01111001 00011001 +00000000 01111111 11100110 01101111 +00001111 00000001 11010111 10111111 +00000000 01111110 01000111 11000010 +00000000 11111110 00101000 01000001 +00001111 10000001 11010001 11001111 +00000000 10000000 00001011 10010011 +00001111 00000110 01001010 00001000 +00000000 01111001 11110101 00110100 +00000000 11111001 10110101 11111000 +00001111 10000101 11111111 00111001 +00000000 01111111 01011101 10000110 +00001111 00010100 10111011 00100010 +00000000 01101110 01111101 11101010 +00000000 11101011 01000100 11011110 +00001111 10010010 00100100 10010000 +00000000 10000000 01010010 01011101 +00001111 00111100 11000100 10010000 +00000000 01010101 00000001 10101011 +00000000 11000011 00111011 01110000 +00001111 10101010 10101011 11111000 +00000000 10000010 00101011 10011010 +00001111 10011000 11000010 10110010 +00000000 00110100 10010011 00001100 +00000000 01100111 00111101 01001110 +00001111 11001001 01000001 01011010 +00000000 00000010 11000100 01111000 +00000000 00000101 10001000 11101111 +00000000 00000010 11000100 01111000 +00000000 11000101 10000100 11111110 +11111111 10101111 01101001 00100011 +00000000 01100101 10000110 11110111 +11111111 00110100 11110010 00010010 +00000000 01100101 10000110 11110111 +00000000 11000101 10000100 11111110 +11111111 10101111 01101001 00100011 +00000000 10100110 01100110 01100110 +00000000 01110011 00110011 00110011 +00000000 01101101 01100110 11010110 00000000 10000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 10000000 00000000 00000000 +00000000 01110101 01101001 01001100 +00000000 01011010 10011101 11111000 +00000000 01000101 11101111 11111111 +00000000 00110101 11111010 00100111 +00000000 00101001 10101000 10111011 +00000000 00100000 00100110 11110011 +00000000 00000110 01001010 00110110 +00000000 00000000 00000001 01101100 +00000000 00000000 01011101 11000000 +00000000 00001000 00001101 01101010 +00000000 00000010 01111000 10001100 00000000 10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 @@ -2006,6 +2600,52 @@ Parameter data for: IC 1 (Binary format starting at parameter address 0) 00000000 00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000 10000000 00000000 00000000 +00000000 00000001 00000001 01011100 +00000000 00000000 00000001 01100100 +00000000 00000000 00000010 11001000 +00000000 00000000 00000001 01100100 +00000000 11111101 10100001 01010011 +00001111 10000010 01011001 00011101 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101000 11011010 00001000 +00000000 00101001 01010011 00100001 +00000000 00101010 11000110 11100111 +00000000 00101100 01000111 10111110 +00000000 00101101 11010110 00011011 +00000000 00101111 01110010 01110111 +00000000 00110001 00011101 01010010 +00000000 00110010 11010111 00101100 +00000000 00110100 10100000 10001110 +00000000 00110110 01111010 00000010 +00000000 00000000 00000110 11010011 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 +00000000 00000000 01001110 10110000 +00000000 00000000 00000001 11100000 +00000000 00000000 00000111 00011100 00001111 11111110 00101011 11100011 00000000 00100010 10111110 00101100 00001111 11101010 10101010 10101011 @@ -2836,154 +3476,4 @@ Parameter data for: IC 1 (Binary format starting at parameter address 0) 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 -00000000 00000000 00000000 00000000 diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio.xml b/Software/Firmware/ADAU1701-Firmware/DigiRadio.xml index 2f5a953..dee4ff2 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio.xml +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio.xml @@ -30,14 +30,14 @@
1024
5 5120 - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x28, 0x00, 0xE8, 0x01, 0x00, 0x02, 0x01, 0xA0, 0x01, 0xFF, 0xE1, 0x07, 0x20, 0x01, 0x00, 0x38, 0x00, 0xE2, 0x01, 0x00, 0x42, 0x02, 0x20, 0x01, 0x00, 0x52, 0x00, 0x22, 0x01, 0x00, 0x58, 0x00, 0xE2, 0x01, 0x00, 0x42, 0x00, 0x20, 0x01, 0x00, 0x59, 0x08, 0x22, 0x41, 0x00, 0x39, 0x08, 0x22, 0x01, 0x00, 0x31, 0x08, 0x22, 0x41, 0x00, 0x48, 0x00, 0xE2, 0x01, 0x00, 0x12, 0x03, 0x20, 0x01, 0x00, 0x60, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x1A, 0x04, 0x20, 0x01, 0x00, 0x68, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x22, 0x05, 0x20, 0x01, 0x00, 0x70, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x2A, 0x06, 0x20, 0x01, 0x00, 0x78, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x5A, 0x07, 0x20, 0x01, 0x00, 0x80, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x82, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x88, 0x00, 0xE2, 0x01, 0x00, 0x82, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x90, 0x00, 0xE2, 0x01, 0x00, 0x62, 0x09, 0x20, 0x01, 0x00, 0x6A, 0x09, 0x40, 0x01, 0x00, 0x72, 0x0A, 0x22, 0x01, 0x00, 0x7A, 0x0A, 0x44, 0x01, 0x00, 0x8A, 0x0B, 0x22, 0x01, 0x00, 0x92, 0x0B, 0x44, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xA8, 0x00, 0xE2, 0x01, 0x01, 0xE0, 0x00, 0xE4, 0x01, 0x00, 0xD2, 0x0F, 0x20, 0x01, 0x00, 0xCA, 0x10, 0x22, 0x01, 0x00, 0xBA, 0x0F, 0x34, 0x01, 0x00, 0xB2, 0x10, 0x22, 0x01, 0x00, 0xAA, 0x0C, 0x22, 0x01, 0x00, 0xA2, 0x0D, 0x22, 0x01, 0x00, 0x9A, 0x0E, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0xE2, 0x01, 0x00, 0xD8, 0x00, 0xF2, 0x01, 0x01, 0x02, 0x14, 0x20, 0x01, 0x00, 0xFA, 0x15, 0x22, 0x01, 0x00, 0xEA, 0x14, 0x34, 0x01, 0x00, 0xE2, 0x15, 0x22, 0x01, 0x00, 0xC2, 0x11, 0x22, 0x01, 0x00, 0xBA, 0x12, 0x22, 0x01, 0x00, 0xB2, 0x13, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xF0, 0x00, 0xE2, 0x01, 0x01, 0x08, 0x00, 0xF2, 0x01, 0x01, 0x32, 0x19, 0x20, 0x01, 0x01, 0x2A, 0x1A, 0x22, 0x01, 0x01, 0x1A, 0x19, 0x34, 0x01, 0x01, 0x12, 0x1A, 0x22, 0x01, 0x00, 0xF2, 0x16, 0x22, 0x01, 0x00, 0xEA, 0x17, 0x22, 0x01, 0x00, 0xE2, 0x18, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x20, 0x00, 0xE2, 0x01, 0x01, 0x38, 0x00, 0xF2, 0x01, 0x01, 0x62, 0x1E, 0x20, 0x01, 0x01, 0x5A, 0x1F, 0x22, 0x01, 0x01, 0x4A, 0x1E, 0x34, 0x01, 0x01, 0x42, 0x1F, 0x22, 0x01, 0x01, 0x22, 0x1B, 0x22, 0x01, 0x01, 0x1A, 0x1C, 0x22, 0x01, 0x01, 0x12, 0x1D, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x50, 0x00, 0xE2, 0x01, 0x01, 0x68, 0x00, 0xF2, 0x01, 0x01, 0x92, 0x23, 0x20, 0x01, 0x01, 0x8A, 0x24, 0x22, 0x01, 0x01, 0x7A, 0x23, 0x34, 0x01, 0x01, 0x72, 0x24, 0x22, 0x01, 0x01, 0x52, 0x20, 0x22, 0x01, 0x01, 0x4A, 0x21, 0x22, 0x01, 0x01, 0x42, 0x22, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x80, 0x00, 0xE2, 0x01, 0x01, 0x98, 0x00, 0xF2, 0x01, 0x01, 0xC2, 0x28, 0x20, 0x01, 0x01, 0xBA, 0x29, 0x22, 0x01, 0x01, 0xAA, 0x28, 0x34, 0x01, 0x01, 0xA2, 0x29, 0x22, 0x01, 0x01, 0x82, 0x25, 0x22, 0x01, 0x01, 0x7A, 0x26, 0x22, 0x01, 0x01, 0x72, 0x27, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xB0, 0x00, 0xE2, 0x01, 0x01, 0xC8, 0x00, 0xF2, 0x01, 0x02, 0x0A, 0x0F, 0x20, 0x01, 0x02, 0x02, 0x10, 0x22, 0x01, 0x01, 0xF2, 0x0F, 0x34, 0x01, 0x01, 0xEA, 0x10, 0x22, 0x01, 0x01, 0xE2, 0x0C, 0x22, 0x01, 0x01, 0xDA, 0x0D, 0x22, 0x01, 0x01, 0xD2, 0x0E, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xF8, 0x00, 0xE2, 0x01, 0x02, 0x10, 0x00, 0xF2, 0x01, 0x02, 0x3A, 0x14, 0x20, 0x01, 0x02, 0x32, 0x15, 0x22, 0x01, 0x02, 0x22, 0x14, 0x34, 0x01, 0x02, 0x1A, 0x15, 0x22, 0x01, 0x01, 0xFA, 0x11, 0x22, 0x01, 0x01, 0xF2, 0x12, 0x22, 0x01, 0x01, 0xEA, 0x13, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x28, 0x00, 0xE2, 0x01, 0x02, 0x40, 0x00, 0xF2, 0x01, 0x02, 0x6A, 0x19, 0x20, 0x01, 0x02, 0x62, 0x1A, 0x22, 0x01, 0x02, 0x52, 0x19, 0x34, 0x01, 0x02, 0x4A, 0x1A, 0x22, 0x01, 0x02, 0x2A, 0x16, 0x22, 0x01, 0x02, 0x22, 0x17, 0x22, 0x01, 0x02, 0x1A, 0x18, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x58, 0x00, 0xE2, 0x01, 0x02, 0x70, 0x00, 0xF2, 0x01, 0x02, 0x9A, 0x1E, 0x20, 0x01, 0x02, 0x92, 0x1F, 0x22, 0x01, 0x02, 0x82, 0x1E, 0x34, 0x01, 0x02, 0x7A, 0x1F, 0x22, 0x01, 0x02, 0x5A, 0x1B, 0x22, 0x01, 0x02, 0x52, 0x1C, 0x22, 0x01, 0x02, 0x4A, 0x1D, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x88, 0x00, 0xE2, 0x01, 0x02, 0xA0, 0x00, 0xF2, 0x01, 0x02, 0xCA, 0x23, 0x20, 0x01, 0x02, 0xC2, 0x24, 0x22, 0x01, 0x02, 0xB2, 0x23, 0x34, 0x01, 0x02, 0xAA, 0x24, 0x22, 0x01, 0x02, 0x8A, 0x20, 0x22, 0x01, 0x02, 0x82, 0x21, 0x22, 0x01, 0x02, 0x7A, 0x22, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xB8, 0x00, 0xE2, 0x01, 0x02, 0xD0, 0x00, 0xF2, 0x01, 0x02, 0xFA, 0x28, 0x20, 0x01, 0x02, 0xF2, 0x29, 0x22, 0x01, 0x02, 0xE2, 0x28, 0x34, 0x01, 0x02, 0xDA, 0x29, 0x22, 0x01, 0x02, 0xBA, 0x25, 0x22, 0x01, 0x02, 0xB2, 0x26, 0x22, 0x01, 0x02, 0xAA, 0x27, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xE8, 0x00, 0xE2, 0x01, 0x03, 0x00, 0x00, 0xF2, 0x01, 0x01, 0xB2, 0x2A, 0x20, 0x01, 0x03, 0x08, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xEA, 0x2B, 0x20, 0x01, 0x03, 0x10, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x09, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x70, 0x00, 0xF0, 0x01, 0xFF, 0xE9, 0x08, 0x22, 0x01, 0x03, 0x68, 0x00, 0xF2, 0x01, 0x03, 0x59, 0x08, 0x20, 0x01, 0x03, 0x5A, 0x38, 0x22, 0x41, 0x03, 0x6A, 0x38, 0x22, 0x01, 0x03, 0x49, 0x08, 0x34, 0x01, 0x03, 0x4A, 0x38, 0x22, 0x41, 0x03, 0x72, 0x38, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x50, 0x00, 0xE2, 0x01, 0x03, 0x60, 0x00, 0xF2, 0x01, 0x03, 0x78, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0x34, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x2C, 0x20, 0x01, 0xFF, 0xF2, 0x2D, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x7A, 0x2E, 0x20, 0x01, 0xFF, 0xF2, 0x2F, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0x35, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x30, 0x20, 0x01, 0xFF, 0xF2, 0x31, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0x36, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x32, 0x20, 0x01, 0xFF, 0xF2, 0x33, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x37, 0xA0, 0x01, 0xFF, 0xE7, 0xFF, 0x20, 0x01, 0x03, 0x40, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x41, 0x08, 0x40, 0x01, 0xFF, 0xF1, 0x08, 0x20, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x40, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x41, 0x08, 0x40, 0x01, 0x03, 0x39, 0x08, 0x20, 0x09, 0x03, 0x42, 0x39, 0x20, 0x01, 0x03, 0x3A, 0x39, 0x22, 0x41, 0x03, 0x39, 0x08, 0x22, 0x01, 0x03, 0x40, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x41, 0x08, 0x20, 0x01, 0x03, 0x30, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0x3A, 0x22, 0x49, 0xFF, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xE9, 0x08, 0x20, 0x25, 0x03, 0x28, 0x00, 0xE2, 0x01, 0x03, 0x40, 0x00, 0xC0, 0x01, 0x03, 0x0F, 0xFF, 0x20, 0x01, 0x03, 0x20, 0x00, 0xE2, 0x01, 0x03, 0x11, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x70, 0x00, 0xF0, 0x01, 0xFF, 0xE9, 0x08, 0x22, 0x01, 0x03, 0x68, 0x00, 0xF2, 0x01, 0x03, 0xB9, 0x08, 0x20, 0x01, 0x03, 0xBA, 0x47, 0x22, 0x41, 0x03, 0x6A, 0x47, 0x22, 0x01, 0x03, 0xA9, 0x08, 0x34, 0x01, 0x03, 0xAA, 0x47, 0x22, 0x41, 0x03, 0x72, 0x47, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xB0, 0x00, 0xE2, 0x01, 0x03, 0xC0, 0x00, 0xF2, 0x01, 0x03, 0x78, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0x43, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x3B, 0x20, 0x01, 0xFF, 0xF2, 0x3C, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x7A, 0x3D, 0x20, 0x01, 0xFF, 0xF2, 0x3E, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0x44, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x3F, 0x20, 0x01, 0xFF, 0xF2, 0x40, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0x45, 0x40, 0x01, 0x03, 0x79, 0x08, 0x20, 0x09, 0x03, 0x7A, 0x41, 0x20, 0x01, 0xFF, 0xF2, 0x42, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x03, 0x7F, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x1F, 0xFF, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x03, 0x18, 0x00, 0xC0, 0x01, 0x00, 0x02, 0x46, 0xA0, 0x01, 0xFF, 0xE7, 0xFF, 0x20, 0x01, 0x03, 0xA0, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xA1, 0x08, 0x40, 0x01, 0xFF, 0xF1, 0x08, 0x20, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xA0, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xA1, 0x08, 0x40, 0x01, 0x03, 0x99, 0x08, 0x20, 0x09, 0x03, 0xA2, 0x48, 0x20, 0x01, 0x03, 0x9A, 0x48, 0x22, 0x41, 0x03, 0x99, 0x08, 0x22, 0x01, 0x03, 0xA0, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xA1, 0x08, 0x20, 0x01, 0x03, 0x90, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0x49, 0x22, 0x49, 0xFF, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xE9, 0x08, 0x20, 0x25, 0x03, 0x88, 0x00, 0xE2, 0x01, 0x03, 0xA0, 0x00, 0xC0, 0x01, 0x03, 0x17, 0xFF, 0x20, 0x01, 0x03, 0x80, 0x00, 0xE2, 0x01, 0x03, 0x81, 0x08, 0x20, 0x01, 0xFF, 0x30, 0x00, 0x02, 0x01, 0x03, 0x21, 0x08, 0x20, 0x01, 0xFF, 0x28, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x50, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x88, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xC0, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xF8, 0x00, 0xE8, 0x01, 0x00, 0x02, 0x01, 0xA0, 0x01, 0xFF, 0xE1, 0x07, 0x20, 0x01, 0x00, 0x18, 0x00, 0xE2, 0x01, 0x00, 0x22, 0x02, 0x20, 0x01, 0x00, 0x32, 0x00, 0x22, 0x01, 0x00, 0x38, 0x00, 0xE2, 0x01, 0x00, 0x22, 0x00, 0x20, 0x01, 0x00, 0x39, 0x08, 0x22, 0x41, 0x00, 0x19, 0x08, 0x22, 0x01, 0x00, 0x11, 0x08, 0x22, 0x41, 0x00, 0x28, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0x03, 0x20, 0x01, 0x00, 0x40, 0x00, 0xE2, 0x01, 0x00, 0x6A, 0x04, 0x20, 0x01, 0x00, 0x5A, 0x04, 0x34, 0x01, 0x00, 0x49, 0x08, 0x22, 0x41, 0x00, 0x51, 0x08, 0x22, 0x01, 0x00, 0x60, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x70, 0x00, 0xF2, 0x01, 0x00, 0xA2, 0x05, 0x20, 0x01, 0x00, 0x92, 0x05, 0x34, 0x01, 0x00, 0x81, 0x08, 0x22, 0x41, 0x00, 0x89, 0x08, 0x22, 0x01, 0x00, 0x98, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xA8, 0x00, 0xF2, 0x01, 0x00, 0xDA, 0x06, 0x20, 0x01, 0x00, 0xCA, 0x06, 0x34, 0x01, 0x00, 0xB9, 0x08, 0x22, 0x41, 0x00, 0xC1, 0x08, 0x22, 0x01, 0x00, 0xD0, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0xE0, 0x00, 0xF2, 0x01, 0x01, 0x12, 0x07, 0x20, 0x01, 0x01, 0x02, 0x07, 0x34, 0x01, 0x00, 0xF1, 0x08, 0x22, 0x41, 0x00, 0xF9, 0x08, 0x22, 0x01, 0x01, 0x08, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x18, 0x00, 0xF2, 0x01, 0x00, 0x3A, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x28, 0x00, 0xE2, 0x01, 0x00, 0x3A, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x30, 0x00, 0xE2, 0x01, 0x00, 0x61, 0x09, 0x20, 0x01, 0x00, 0x99, 0x09, 0x22, 0x01, 0x01, 0x88, 0x00, 0xE2, 0x01, 0x01, 0x88, 0x00, 0xC0, 0x01, 0x01, 0x8F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xA8, 0x00, 0xE2, 0x01, 0x01, 0xB0, 0x00, 0xF2, 0x01, 0x01, 0x59, 0x08, 0x20, 0x01, 0x01, 0x5A, 0x2B, 0x22, 0x41, 0x01, 0xB2, 0x2B, 0x22, 0x01, 0x01, 0x49, 0x08, 0x34, 0x01, 0x01, 0x4A, 0x2B, 0x22, 0x41, 0x01, 0xAA, 0x2B, 0x82, 0x01, 0x01, 0xAA, 0x2B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x50, 0x00, 0xE2, 0x01, 0x01, 0x60, 0x00, 0xF2, 0x01, 0x01, 0xB8, 0x00, 0xF6, 0x01, 0x01, 0x79, 0x08, 0x20, 0x09, 0x01, 0x80, 0x00, 0xE2, 0x01, 0x01, 0x69, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x2E, 0x22, 0x67, 0x01, 0x70, 0x00, 0xE2, 0x01, 0x01, 0xB9, 0x08, 0x22, 0x49, 0x01, 0xB9, 0x08, 0x20, 0x01, 0x01, 0x70, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x2D, 0x20, 0x01, 0x01, 0x80, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x81, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x01, 0x80, 0x00, 0xE2, 0x26, 0x01, 0x71, 0x1A, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xC0, 0x00, 0xE2, 0x01, 0x01, 0xC8, 0x00, 0xF2, 0x01, 0x01, 0xC0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x0A, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x20, 0x01, 0x00, 0x02, 0x09, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x41, 0x01, 0x90, 0x00, 0xE2, 0x01, 0x01, 0xC8, 0x00, 0xC0, 0x01, 0x01, 0x97, 0xFF, 0x20, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x01, 0x01, 0xA0, 0x00, 0xE2, 0x01, 0x01, 0xA0, 0x00, 0xC0, 0x01, 0x00, 0x67, 0xFF, 0x20, 0x01, 0x01, 0x98, 0x00, 0xE2, 0x01, 0x01, 0x9A, 0x2C, 0x20, 0x01, 0x01, 0x98, 0x00, 0xE2, 0x01, 0x01, 0x9A, 0x2C, 0x20, 0x01, 0x01, 0x38, 0x00, 0xE2, 0x01, 0x00, 0x9F, 0xFF, 0x20, 0x01, 0x01, 0x98, 0x00, 0xE2, 0x01, 0x01, 0x9A, 0x2C, 0x20, 0x01, 0x01, 0x98, 0x00, 0xE2, 0x01, 0x01, 0x9A, 0x2C, 0x20, 0x01, 0x01, 0x40, 0x00, 0xE2, 0x01, 0x00, 0xD0, 0x00, 0xC0, 0x01, 0x00, 0xD7, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x01, 0xE1, 0x08, 0x20, 0x01, 0x01, 0xE2, 0x2F, 0x22, 0x41, 0x02, 0x1A, 0x2F, 0x22, 0x01, 0x01, 0xD1, 0x08, 0x34, 0x01, 0x01, 0xD2, 0x2F, 0x22, 0x41, 0x02, 0x12, 0x2F, 0x82, 0x01, 0x02, 0x12, 0x2F, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xD8, 0x00, 0xE2, 0x01, 0x01, 0xE8, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x02, 0x01, 0x08, 0x20, 0x09, 0x02, 0x08, 0x00, 0xE2, 0x01, 0x01, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x31, 0x22, 0x67, 0x01, 0xF8, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x01, 0xF8, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x30, 0x20, 0x01, 0x02, 0x08, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x09, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x02, 0x08, 0x00, 0xE2, 0x26, 0x01, 0xF9, 0x08, 0x20, 0x01, 0x00, 0xD1, 0x08, 0x20, 0x01, 0x02, 0x28, 0x00, 0xE2, 0x01, 0x01, 0x08, 0x00, 0xC0, 0x01, 0x01, 0x0F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x02, 0x41, 0x08, 0x20, 0x01, 0x02, 0x42, 0x32, 0x22, 0x41, 0x02, 0x1A, 0x32, 0x22, 0x01, 0x02, 0x31, 0x08, 0x34, 0x01, 0x02, 0x32, 0x32, 0x22, 0x41, 0x02, 0x12, 0x32, 0x82, 0x01, 0x02, 0x12, 0x32, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x38, 0x00, 0xE2, 0x01, 0x02, 0x48, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x02, 0x61, 0x08, 0x20, 0x09, 0x02, 0x68, 0x00, 0xE2, 0x01, 0x02, 0x51, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x34, 0x22, 0x67, 0x02, 0x58, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x02, 0x58, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x33, 0x20, 0x01, 0x02, 0x68, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x69, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x02, 0x68, 0x00, 0xE2, 0x26, 0x02, 0x59, 0x08, 0x20, 0x01, 0x01, 0x09, 0x08, 0x20, 0x01, 0x02, 0x70, 0x00, 0xE2, 0x01, 0x01, 0x38, 0x00, 0xC0, 0x01, 0x01, 0x3F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x02, 0x89, 0x08, 0x20, 0x01, 0x02, 0x8A, 0x35, 0x22, 0x41, 0x02, 0x1A, 0x35, 0x22, 0x01, 0x02, 0x79, 0x08, 0x34, 0x01, 0x02, 0x7A, 0x35, 0x22, 0x41, 0x02, 0x12, 0x35, 0x82, 0x01, 0x02, 0x12, 0x35, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x80, 0x00, 0xE2, 0x01, 0x02, 0x90, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x02, 0xA9, 0x08, 0x20, 0x09, 0x02, 0xB0, 0x00, 0xE2, 0x01, 0x02, 0x99, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x37, 0x22, 0x67, 0x02, 0xA0, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x02, 0xA0, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x36, 0x20, 0x01, 0x02, 0xB0, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xB1, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x02, 0xB0, 0x00, 0xE2, 0x26, 0x02, 0xA1, 0x08, 0x20, 0x01, 0x01, 0x39, 0x08, 0x20, 0x01, 0x02, 0xB8, 0x00, 0xE2, 0x01, 0x01, 0x40, 0x00, 0xC0, 0x01, 0x01, 0x47, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x02, 0xD1, 0x08, 0x20, 0x01, 0x02, 0xD2, 0x38, 0x22, 0x41, 0x02, 0x1A, 0x38, 0x22, 0x01, 0x02, 0xC1, 0x08, 0x34, 0x01, 0x02, 0xC2, 0x38, 0x22, 0x41, 0x02, 0x12, 0x38, 0x82, 0x01, 0x02, 0x12, 0x38, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xC8, 0x00, 0xE2, 0x01, 0x02, 0xD8, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x02, 0xF1, 0x08, 0x20, 0x09, 0x02, 0xF8, 0x00, 0xE2, 0x01, 0x02, 0xE1, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x3A, 0x22, 0x67, 0x02, 0xE8, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x02, 0xE8, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x39, 0x20, 0x01, 0x02, 0xF8, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xF9, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x02, 0xF8, 0x00, 0xE2, 0x26, 0x02, 0xE9, 0x08, 0x20, 0x01, 0x01, 0x41, 0x08, 0x20, 0x01, 0x03, 0x00, 0x00, 0xE2, 0x01, 0x02, 0xB9, 0x08, 0x20, 0x01, 0x03, 0x10, 0x00, 0xE2, 0x01, 0x03, 0x01, 0x08, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, 0x02, 0x29, 0x08, 0x20, 0x01, 0x03, 0x20, 0x00, 0xE2, 0x01, 0x02, 0x71, 0x08, 0x20, 0x01, 0x03, 0x28, 0x00, 0xE2, 0x01, 0x01, 0x29, 0x08, 0x20, 0x01, 0x03, 0x30, 0x00, 0xE2, 0x01, 0x01, 0x31, 0x08, 0x20, 0x01, 0x03, 0x38, 0x00, 0xE2, 0x01, 0x00, 0x41, 0x07, 0x20, 0x01, 0x03, 0x08, 0x00, 0xE2, 0x01, 0x03, 0x08, 0x00, 0xC0, 0x01, 0x00, 0x07, 0xFF, 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x11, 0x08, 0x20, 0x81, 0x03, 0x50, 0x00, 0xE2, 0x01, 0x03, 0x19, 0x08, 0x20, 0x81, 0x04, 0x88, 0x00, 0xE2, 0x01, 0x03, 0x7A, 0x3E, 0x20, 0x01, 0x03, 0x72, 0x3F, 0x22, 0x01, 0x03, 0x62, 0x3E, 0x34, 0x01, 0x03, 0x5A, 0x3F, 0x22, 0x01, 0x03, 0x52, 0x3B, 0x22, 0x01, 0x03, 0x4A, 0x3C, 0x22, 0x01, 0x03, 0x42, 0x3D, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x68, 0x00, 0xE2, 0x01, 0x03, 0x80, 0x00, 0xF2, 0x01, 0x03, 0xAA, 0x43, 0x20, 0x01, 0x03, 0xA2, 0x44, 0x22, 0x01, 0x03, 0x92, 0x43, 0x34, 0x01, 0x03, 0x8A, 0x44, 0x22, 0x01, 0x03, 0x6A, 0x40, 0x22, 0x01, 0x03, 0x62, 0x41, 0x22, 0x01, 0x03, 0x5A, 0x42, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x98, 0x00, 0xE2, 0x01, 0x03, 0xB0, 0x00, 0xF2, 0x01, 0x03, 0xDA, 0x48, 0x20, 0x01, 0x03, 0xD2, 0x49, 0x22, 0x01, 0x03, 0xC2, 0x48, 0x34, 0x01, 0x03, 0xBA, 0x49, 0x22, 0x01, 0x03, 0x9A, 0x45, 0x22, 0x01, 0x03, 0x92, 0x46, 0x22, 0x01, 0x03, 0x8A, 0x47, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xC8, 0x00, 0xE2, 0x01, 0x03, 0xE0, 0x00, 0xF2, 0x01, 0x04, 0x0A, 0x4D, 0x20, 0x01, 0x04, 0x02, 0x4E, 0x22, 0x01, 0x03, 0xF2, 0x4D, 0x34, 0x01, 0x03, 0xEA, 0x4E, 0x22, 0x01, 0x03, 0xCA, 0x4A, 0x22, 0x01, 0x03, 0xC2, 0x4B, 0x22, 0x01, 0x03, 0xBA, 0x4C, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0xF8, 0x00, 0xE2, 0x01, 0x04, 0x10, 0x00, 0xF2, 0x01, 0x04, 0x3A, 0x52, 0x20, 0x01, 0x04, 0x32, 0x53, 0x22, 0x01, 0x04, 0x22, 0x52, 0x34, 0x01, 0x04, 0x1A, 0x53, 0x22, 0x01, 0x03, 0xFA, 0x4F, 0x22, 0x01, 0x03, 0xF2, 0x50, 0x22, 0x01, 0x03, 0xEA, 0x51, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x28, 0x00, 0xE2, 0x01, 0x04, 0x40, 0x00, 0xF2, 0x01, 0x04, 0x6A, 0x57, 0x20, 0x01, 0x04, 0x62, 0x58, 0x22, 0x01, 0x04, 0x52, 0x57, 0x34, 0x01, 0x04, 0x4A, 0x58, 0x22, 0x01, 0x04, 0x2A, 0x54, 0x22, 0x01, 0x04, 0x22, 0x55, 0x22, 0x01, 0x04, 0x1A, 0x56, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0x58, 0x00, 0xE2, 0x01, 0x04, 0x70, 0x00, 0xF2, 0x01, 0x04, 0xB2, 0x3E, 0x20, 0x01, 0x04, 0xAA, 0x3F, 0x22, 0x01, 0x04, 0x9A, 0x3E, 0x34, 0x01, 0x04, 0x92, 0x3F, 0x22, 0x01, 0x04, 0x8A, 0x3B, 0x22, 0x01, 0x04, 0x82, 0x3C, 0x22, 0x01, 0x04, 0x7A, 0x3D, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0xA0, 0x00, 0xE2, 0x01, 0x04, 0xB8, 0x00, 0xF2, 0x01, 0x04, 0xE2, 0x43, 0x20, 0x01, 0x04, 0xDA, 0x44, 0x22, 0x01, 0x04, 0xCA, 0x43, 0x34, 0x01, 0x04, 0xC2, 0x44, 0x22, 0x01, 0x04, 0xA2, 0x40, 0x22, 0x01, 0x04, 0x9A, 0x41, 0x22, 0x01, 0x04, 0x92, 0x42, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, 0xD0, 0x00, 0xE2, 0x01, 0x04, 0xE8, 0x00, 0xF2, 0x01, 0x05, 0x12, 0x48, 0x20, 0x01, 0x05, 0x0A, 0x49, 0x22, 0x01, 0x04, 0xFA, 0x48, 0x34, 0x01, 0x04, 0xF2, 0x49, 0x22, 0x01, 0x04, 0xD2, 0x45, 0x22, 0x01, 0x04, 0xCA, 0x46, 0x22, 0x01, 0x04, 0xC2, 0x47, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0xE2, 0x01, 0x05, 0x18, 0x00, 0xF2, 0x01, 0x05, 0x42, 0x4D, 0x20, 0x01, 0x05, 0x3A, 0x4E, 0x22, 0x01, 0x05, 0x2A, 0x4D, 0x34, 0x01, 0x05, 0x22, 0x4E, 0x22, 0x01, 0x05, 0x02, 0x4A, 0x22, 0x01, 0x04, 0xFA, 0x4B, 0x22, 0x01, 0x04, 0xF2, 0x4C, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x30, 0x00, 0xE2, 0x01, 0x05, 0x48, 0x00, 0xF2, 0x01, 0x05, 0x72, 0x52, 0x20, 0x01, 0x05, 0x6A, 0x53, 0x22, 0x01, 0x05, 0x5A, 0x52, 0x34, 0x01, 0x05, 0x52, 0x53, 0x22, 0x01, 0x05, 0x32, 0x4F, 0x22, 0x01, 0x05, 0x2A, 0x50, 0x22, 0x01, 0x05, 0x22, 0x51, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x60, 0x00, 0xE2, 0x01, 0x05, 0x78, 0x00, 0xF2, 0x01, 0x05, 0xA2, 0x57, 0x20, 0x01, 0x05, 0x9A, 0x58, 0x22, 0x01, 0x05, 0x8A, 0x57, 0x34, 0x01, 0x05, 0x82, 0x58, 0x22, 0x01, 0x05, 0x62, 0x54, 0x22, 0x01, 0x05, 0x5A, 0x55, 0x22, 0x01, 0x05, 0x52, 0x56, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0x90, 0x00, 0xE2, 0x01, 0x05, 0xA8, 0x00, 0xF2, 0x01, 0x04, 0x59, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0xE0, 0x00, 0xE2, 0x01, 0x06, 0x0A, 0x5C, 0x20, 0x01, 0x06, 0x02, 0x5D, 0x22, 0x01, 0x05, 0xF2, 0x5C, 0x34, 0x01, 0x05, 0xEA, 0x5D, 0x22, 0x01, 0x05, 0xE2, 0x59, 0x22, 0x01, 0x05, 0xDA, 0x5A, 0x22, 0x01, 0x05, 0xD2, 0x5B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x05, 0xF8, 0x00, 0xE2, 0x01, 0x06, 0x10, 0x00, 0xF2, 0x01, 0x06, 0x3A, 0x5C, 0x20, 0x01, 0x06, 0x32, 0x5D, 0x22, 0x01, 0x06, 0x22, 0x5C, 0x34, 0x01, 0x06, 0x1A, 0x5D, 0x22, 0x01, 0x05, 0xFA, 0x59, 0x22, 0x01, 0x05, 0xF2, 0x5A, 0x22, 0x01, 0x05, 0xEA, 0x5B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x28, 0x00, 0xE2, 0x01, 0x05, 0xB8, 0x00, 0xE2, 0x01, 0x06, 0x40, 0x00, 0xF2, 0x01, 0x04, 0x59, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x58, 0x00, 0xE2, 0x01, 0x06, 0x82, 0x61, 0x20, 0x01, 0x06, 0x7A, 0x62, 0x22, 0x01, 0x06, 0x6A, 0x61, 0x34, 0x01, 0x06, 0x62, 0x62, 0x22, 0x01, 0x06, 0x5A, 0x5E, 0x22, 0x01, 0x06, 0x52, 0x5F, 0x22, 0x01, 0x06, 0x4A, 0x60, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0x70, 0x00, 0xE2, 0x01, 0x06, 0x88, 0x00, 0xF2, 0x01, 0x06, 0xB2, 0x61, 0x20, 0x01, 0x06, 0xAA, 0x62, 0x22, 0x01, 0x06, 0x9A, 0x61, 0x34, 0x01, 0x06, 0x92, 0x62, 0x22, 0x01, 0x06, 0x72, 0x5E, 0x22, 0x01, 0x06, 0x6A, 0x5F, 0x22, 0x01, 0x06, 0x62, 0x60, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xA0, 0x00, 0xE2, 0x01, 0x05, 0xB0, 0x00, 0xE2, 0x01, 0x06, 0xB8, 0x00, 0xF2, 0x01, 0x05, 0x91, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xD0, 0x00, 0xE2, 0x01, 0x06, 0xFA, 0x5C, 0x20, 0x01, 0x06, 0xF2, 0x5D, 0x22, 0x01, 0x06, 0xE2, 0x5C, 0x34, 0x01, 0x06, 0xDA, 0x5D, 0x22, 0x01, 0x06, 0xD2, 0x59, 0x22, 0x01, 0x06, 0xCA, 0x5A, 0x22, 0x01, 0x06, 0xC2, 0x5B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x06, 0xE8, 0x00, 0xE2, 0x01, 0x07, 0x00, 0x00, 0xF2, 0x01, 0x07, 0x2A, 0x5C, 0x20, 0x01, 0x07, 0x22, 0x5D, 0x22, 0x01, 0x07, 0x12, 0x5C, 0x34, 0x01, 0x07, 0x0A, 0x5D, 0x22, 0x01, 0x06, 0xEA, 0x59, 0x22, 0x01, 0x06, 0xE2, 0x5A, 0x22, 0x01, 0x06, 0xDA, 0x5B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x18, 0x00, 0xE2, 0x01, 0x05, 0xC8, 0x00, 0xE2, 0x01, 0x07, 0x30, 0x00, 0xF2, 0x01, 0x05, 0x91, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x48, 0x00, 0xE2, 0x01, 0x07, 0x72, 0x61, 0x20, 0x01, 0x07, 0x6A, 0x62, 0x22, 0x01, 0x07, 0x5A, 0x61, 0x34, 0x01, 0x07, 0x52, 0x62, 0x22, 0x01, 0x07, 0x4A, 0x5E, 0x22, 0x01, 0x07, 0x42, 0x5F, 0x22, 0x01, 0x07, 0x3A, 0x60, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x60, 0x00, 0xE2, 0x01, 0x07, 0x78, 0x00, 0xF2, 0x01, 0x07, 0xA2, 0x61, 0x20, 0x01, 0x07, 0x9A, 0x62, 0x22, 0x01, 0x07, 0x8A, 0x61, 0x34, 0x01, 0x07, 0x82, 0x62, 0x22, 0x01, 0x07, 0x62, 0x5E, 0x22, 0x01, 0x07, 0x5A, 0x5F, 0x22, 0x01, 0x07, 0x52, 0x60, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x90, 0x00, 0xE2, 0x01, 0x05, 0xC0, 0x00, 0xE2, 0x01, 0x07, 0xA8, 0x00, 0xF2, 0x01, 0x05, 0xB9, 0x08, 0x20, 0x01, 0x05, 0xC9, 0x08, 0x22, 0x41, 0x08, 0x30, 0x00, 0xE2, 0x01, 0x08, 0x30, 0x00, 0xC0, 0x01, 0x08, 0x37, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x08, 0x00, 0xE2, 0x01, 0x08, 0x10, 0x00, 0xF2, 0x01, 0x07, 0xC1, 0x08, 0x20, 0x01, 0x07, 0xC2, 0x88, 0x22, 0x41, 0x08, 0x12, 0x88, 0x22, 0x01, 0x07, 0xB1, 0x08, 0x34, 0x01, 0x07, 0xB2, 0x88, 0x22, 0x41, 0x08, 0x0A, 0x88, 0x82, 0x01, 0x08, 0x0A, 0x88, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0xB8, 0x00, 0xE2, 0x01, 0x07, 0xC8, 0x00, 0xF2, 0x01, 0x08, 0x18, 0x00, 0xF6, 0x01, 0x07, 0xE1, 0x08, 0x20, 0x09, 0x07, 0xE8, 0x00, 0xE2, 0x01, 0x07, 0xD1, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0x89, 0x22, 0x67, 0x07, 0xD8, 0x00, 0xE2, 0x01, 0x08, 0x19, 0x08, 0x22, 0x49, 0x08, 0x19, 0x08, 0x20, 0x01, 0x07, 0xD8, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0x8A, 0x20, 0x01, 0x07, 0xE8, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0xE9, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x07, 0xE8, 0x00, 0xE2, 0x26, 0x07, 0xD9, 0x1A, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0x20, 0x00, 0xE2, 0x01, 0x08, 0x28, 0x00, 0xF2, 0x01, 0x08, 0x20, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x67, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x20, 0x01, 0x00, 0x02, 0x66, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x41, 0x07, 0xF0, 0x00, 0xE2, 0x01, 0x08, 0x28, 0x00, 0xC0, 0x01, 0x07, 0xF7, 0xFF, 0x20, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x01, 0x08, 0x00, 0x00, 0xE2, 0x01, 0x08, 0x00, 0x00, 0xC0, 0x01, 0x08, 0x37, 0xFF, 0x20, 0x01, 0x08, 0x38, 0x00, 0xE2, 0x01, 0x05, 0xCA, 0x64, 0x20, 0x01, 0x08, 0x42, 0x64, 0x22, 0x41, 0x08, 0x58, 0x00, 0xE2, 0x01, 0x05, 0xBA, 0x64, 0x20, 0x01, 0x08, 0x42, 0x64, 0x22, 0x01, 0x08, 0x50, 0x00, 0xE2, 0x01, 0x08, 0x39, 0x08, 0x20, 0x01, 0x08, 0x41, 0x08, 0x22, 0x41, 0x07, 0xF8, 0x00, 0xE2, 0x01, 0x07, 0xFA, 0x8B, 0x20, 0x01, 0x08, 0x41, 0x08, 0x22, 0x01, 0x08, 0x48, 0x00, 0xE2, 0x01, 0x08, 0x5A, 0x64, 0x20, 0x01, 0x08, 0x62, 0x64, 0x22, 0x41, 0x08, 0x58, 0x00, 0xE2, 0x01, 0x08, 0x52, 0x64, 0x20, 0x01, 0x08, 0x62, 0x64, 0x22, 0x01, 0x08, 0x50, 0x00, 0xE2, 0x01, 0x08, 0x39, 0x08, 0x20, 0x01, 0x08, 0x61, 0x08, 0x22, 0x41, 0x07, 0xF8, 0x00, 0xE2, 0x01, 0x07, 0xFA, 0x8C, 0x20, 0x01, 0x08, 0x61, 0x08, 0x22, 0x01, 0x08, 0x68, 0x00, 0xE2, 0x01, 0x05, 0xB2, 0x63, 0x20, 0x01, 0x08, 0x52, 0x65, 0x22, 0x01, 0x08, 0x80, 0x00, 0xE2, 0x01, 0x05, 0xC2, 0x63, 0x20, 0x01, 0x08, 0x5A, 0x65, 0x22, 0x01, 0x08, 0x98, 0x00, 0xE2, 0x01, 0x08, 0xAA, 0x90, 0x20, 0x01, 0x08, 0xA2, 0x91, 0x22, 0x01, 0x08, 0x82, 0x8D, 0x22, 0x01, 0x08, 0x7A, 0x8E, 0x22, 0x01, 0x08, 0x72, 0x8F, 0x22, 0x01, 0x08, 0xB0, 0x00, 0xE2, 0x01, 0x08, 0xC2, 0x90, 0x20, 0x01, 0x08, 0xBA, 0x91, 0x22, 0x01, 0x08, 0x9A, 0x8D, 0x22, 0x01, 0x08, 0x92, 0x8E, 0x22, 0x01, 0x08, 0x8A, 0x8F, 0x22, 0x01, 0x08, 0xC8, 0x00, 0xE2, 0x01, 0x08, 0xB2, 0x92, 0x20, 0x01, 0x08, 0xD0, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x08, 0xCA, 0x93, 0x20, 0x01, 0x08, 0xD8, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x12, 0x94, 0x20, 0x01, 0x09, 0x01, 0x08, 0x22, 0x01, 0x09, 0x08, 0x00, 0xE2, 0x01, 0x09, 0x09, 0x08, 0x20, 0x41, 0x08, 0xD1, 0x08, 0x22, 0x01, 0x08, 0xE0, 0x00, 0xC0, 0x01, 0x09, 0x17, 0xFF, 0x22, 0x41, 0x08, 0xF0, 0x00, 0xE2, 0x01, 0x08, 0xF2, 0x94, 0x20, 0x01, 0x09, 0x11, 0x08, 0x22, 0x01, 0x09, 0x18, 0x00, 0xE2, 0x01, 0x09, 0x32, 0x94, 0x20, 0x01, 0x09, 0x21, 0x08, 0x22, 0x01, 0x09, 0x28, 0x00, 0xE2, 0x01, 0x09, 0x29, 0x08, 0x20, 0x41, 0x08, 0xD9, 0x08, 0x22, 0x01, 0x08, 0xE0, 0x00, 0xC0, 0x01, 0x09, 0x37, 0xFF, 0x22, 0x41, 0x08, 0xF8, 0x00, 0xE2, 0x01, 0x08, 0xFA, 0x94, 0x20, 0x01, 0x09, 0x31, 0x08, 0x22, 0x01, 0x09, 0x38, 0x00, 0xE2, 0x01, 0x09, 0x19, 0x08, 0x22, 0x01, 0x09, 0x50, 0x00, 0xE2, 0x01, 0x09, 0x62, 0x98, 0x20, 0x01, 0x09, 0x5A, 0x99, 0x22, 0x01, 0x09, 0x52, 0x95, 0x22, 0x01, 0x09, 0x4A, 0x96, 0x22, 0x01, 0x09, 0x42, 0x97, 0x22, 0x01, 0x09, 0x68, 0x00, 0xE2, 0x01, 0x09, 0x68, 0x00, 0xC0, 0x01, 0x09, 0x6F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xA0, 0x00, 0xE2, 0x01, 0x09, 0xA8, 0x00, 0xF2, 0x01, 0x09, 0x81, 0x08, 0x20, 0x01, 0x09, 0x82, 0xBB, 0x22, 0x41, 0x09, 0xAA, 0xBB, 0x22, 0x01, 0x09, 0x71, 0x08, 0x34, 0x01, 0x09, 0x72, 0xBB, 0x22, 0x41, 0x09, 0xA2, 0xBB, 0x82, 0x01, 0x09, 0xA2, 0xBB, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x78, 0x00, 0xE2, 0x01, 0x09, 0x88, 0x00, 0xF2, 0x01, 0x09, 0xB0, 0x00, 0xF6, 0x01, 0x09, 0xB1, 0x1A, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xB8, 0x00, 0xE2, 0x01, 0x09, 0xC0, 0x00, 0xF2, 0x01, 0x09, 0xB8, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x9B, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x20, 0x01, 0x00, 0x02, 0x9A, 0xA1, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x41, 0x09, 0x90, 0x00, 0xE2, 0x01, 0x09, 0xC0, 0x00, 0xC0, 0x01, 0x09, 0x97, 0xFF, 0x20, 0x01, 0xFF, 0xE1, 0x08, 0x22, 0x01, 0x08, 0xE8, 0x00, 0xE2, 0x01, 0x08, 0xF8, 0x00, 0xC0, 0x01, 0x08, 0xFF, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x09, 0xD9, 0x08, 0x20, 0x01, 0x09, 0xDA, 0xBC, 0x22, 0x41, 0x02, 0x1A, 0xBC, 0x22, 0x01, 0x09, 0xC9, 0x08, 0x34, 0x01, 0x09, 0xCA, 0xBC, 0x22, 0x41, 0x02, 0x12, 0xBC, 0x82, 0x01, 0x02, 0x12, 0xBC, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0xD0, 0x00, 0xE2, 0x01, 0x09, 0xE0, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x09, 0xF9, 0x08, 0x20, 0x09, 0x0A, 0x00, 0x00, 0xE2, 0x01, 0x09, 0xE9, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0xBE, 0x22, 0x67, 0x09, 0xF0, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x09, 0xF0, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0xBD, 0x20, 0x01, 0x0A, 0x00, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x01, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x0A, 0x00, 0x00, 0xE2, 0x26, 0x09, 0xF1, 0x08, 0x20, 0x01, 0x08, 0xF9, 0x08, 0x20, 0x01, 0x0A, 0x08, 0x00, 0xE2, 0x01, 0x08, 0xF0, 0x00, 0xC0, 0x01, 0x08, 0xF7, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xE2, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x0A, 0x21, 0x08, 0x20, 0x01, 0x0A, 0x22, 0xBF, 0x22, 0x41, 0x02, 0x1A, 0xBF, 0x22, 0x01, 0x0A, 0x11, 0x08, 0x34, 0x01, 0x0A, 0x12, 0xBF, 0x22, 0x41, 0x02, 0x12, 0xBF, 0x82, 0x01, 0x02, 0x12, 0xBF, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x18, 0x00, 0xE2, 0x01, 0x0A, 0x28, 0x00, 0xF2, 0x01, 0x02, 0x20, 0x00, 0xF6, 0x01, 0x0A, 0x41, 0x08, 0x20, 0x09, 0x0A, 0x48, 0x00, 0xE2, 0x01, 0x0A, 0x31, 0x08, 0x20, 0x01, 0xFF, 0xF2, 0xC1, 0x22, 0x67, 0x0A, 0x38, 0x00, 0xE2, 0x01, 0x02, 0x21, 0x08, 0x22, 0x49, 0x02, 0x21, 0x08, 0x20, 0x01, 0x0A, 0x38, 0x00, 0xE2, 0x27, 0xFF, 0xF2, 0xC0, 0x20, 0x01, 0x0A, 0x48, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x49, 0x08, 0x20, 0x09, 0xFF, 0xF9, 0x08, 0x22, 0x41, 0x0A, 0x48, 0x00, 0xE2, 0x26, 0x0A, 0x39, 0x08, 0x20, 0x01, 0x08, 0xF1, 0x08, 0x20, 0x01, 0x0A, 0x50, 0x00, 0xE2, 0x01, 0x0A, 0x09, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xF0, 0x01, 0xFF, 0xE9, 0x08, 0x22, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x0A, 0x91, 0x08, 0x20, 0x01, 0x0A, 0x92, 0xCE, 0x22, 0x41, 0x02, 0x1A, 0xCE, 0x22, 0x01, 0x0A, 0x81, 0x08, 0x34, 0x01, 0x0A, 0x82, 0xCE, 0x22, 0x41, 0x02, 0x12, 0xCE, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x88, 0x00, 0xE2, 0x01, 0x0A, 0x98, 0x00, 0xF2, 0x01, 0x0A, 0xA0, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0xCA, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xC2, 0x20, 0x01, 0xFF, 0xF2, 0xC3, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x0A, 0xA2, 0xC4, 0x20, 0x01, 0xFF, 0xF2, 0xC5, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0xCB, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xC6, 0x20, 0x01, 0xFF, 0xF2, 0xC7, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0xCC, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xC8, 0x20, 0x01, 0xFF, 0xF2, 0xC9, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xCD, 0xA0, 0x01, 0xFF, 0xE7, 0xFF, 0x20, 0x01, 0x0A, 0x78, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x79, 0x08, 0x40, 0x01, 0xFF, 0xF1, 0x08, 0x20, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x78, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x79, 0x08, 0x40, 0x01, 0x0A, 0x71, 0x08, 0x20, 0x09, 0x0A, 0x7A, 0xCF, 0x20, 0x01, 0x0A, 0x72, 0xCF, 0x22, 0x41, 0x0A, 0x71, 0x08, 0x22, 0x01, 0x0A, 0x78, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x79, 0x08, 0x20, 0x01, 0x0A, 0x68, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0xD0, 0x22, 0x49, 0xFF, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xE9, 0x08, 0x20, 0x25, 0x0A, 0x60, 0x00, 0xE2, 0x01, 0x0A, 0x78, 0x00, 0xC0, 0x01, 0x0A, 0x0F, 0xFF, 0x20, 0x01, 0x0A, 0x58, 0x00, 0xE2, 0x01, 0x0A, 0x51, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x10, 0x00, 0xF0, 0x01, 0xFF, 0xE9, 0x08, 0x22, 0x01, 0x02, 0x18, 0x00, 0xF2, 0x01, 0x0A, 0xE1, 0x08, 0x20, 0x01, 0x0A, 0xE2, 0xDD, 0x22, 0x41, 0x02, 0x1A, 0xDD, 0x22, 0x01, 0x0A, 0xD1, 0x08, 0x34, 0x01, 0x0A, 0xD2, 0xDD, 0x22, 0x41, 0x02, 0x12, 0xDD, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0xD8, 0x00, 0xE2, 0x01, 0x0A, 0xE8, 0x00, 0xF2, 0x01, 0x0A, 0xA0, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0xD9, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xD1, 0x20, 0x01, 0xFF, 0xF2, 0xD2, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x0A, 0xA2, 0xD3, 0x20, 0x01, 0xFF, 0xF2, 0xD4, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0xDA, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xD5, 0x20, 0x01, 0xFF, 0xF2, 0xD6, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0xFF, 0xF2, 0xDB, 0x40, 0x01, 0x0A, 0xA1, 0x08, 0x20, 0x09, 0x0A, 0xA2, 0xD7, 0x20, 0x01, 0xFF, 0xF2, 0xD8, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x9F, 0xFF, 0x20, 0x01, 0x09, 0x98, 0x00, 0xE2, 0x01, 0x09, 0x98, 0x00, 0xC0, 0x01, 0x00, 0x02, 0xDC, 0xA0, 0x01, 0xFF, 0xE7, 0xFF, 0x20, 0x01, 0x0A, 0xC8, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0xC9, 0x08, 0x40, 0x01, 0xFF, 0xF1, 0x08, 0x20, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0xC8, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0xC9, 0x08, 0x40, 0x01, 0x0A, 0xC1, 0x08, 0x20, 0x09, 0x0A, 0xCA, 0xDE, 0x20, 0x01, 0x0A, 0xC2, 0xDE, 0x22, 0x41, 0x0A, 0xC1, 0x08, 0x22, 0x01, 0x0A, 0xC8, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0xC9, 0x08, 0x20, 0x01, 0x0A, 0xB8, 0x00, 0xE2, 0x01, 0xFF, 0xF2, 0xDF, 0x22, 0x49, 0xFF, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xE9, 0x08, 0x20, 0x25, 0x0A, 0xB0, 0x00, 0xE2, 0x01, 0x0A, 0xC8, 0x00, 0xC0, 0x01, 0x0A, 0x57, 0xFF, 0x20, 0x01, 0x0A, 0xA8, 0x00, 0xE2, 0x01, 0x0A, 0xA9, 0x08, 0x20, 0x01, 0xFF, 0x28, 0x00, 0x02, 0x01, 0x0A, 0x59, 0x08, 0x20, 0x01, 0xFF, 0x30, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, Param
0
4 4096 - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xAC, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7F, 0xC3, 0x65, 0x0F, 0x00, 0x79, 0x35, 0x00, 0x7F, 0xC3, 0x65, 0x00, 0xFF, 0x86, 0xAE, 0x0F, 0x80, 0x79, 0x19, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x0F, 0xFE, 0x2B, 0xE3, 0x00, 0x22, 0xBE, 0x2C, 0x0F, 0xEA, 0xAA, 0xAB, 0x00, 0x6A, 0xAA, 0xAB, 0x0F, 0x9A, 0x69, 0xA7, 0x00, 0xFD, 0xF7, 0xDF, 0x08, 0x3C, 0x6C, 0x20, 0x03, 0xF5, 0xAA, 0x23, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xDC, 0x00, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xFE, 0x2B, 0xE3, 0x00, 0x22, 0xBE, 0x2C, 0x0F, 0xEA, 0xAA, 0xAB, 0x00, 0x6A, 0xAA, 0xAB, 0x0F, 0x9A, 0x69, 0xA7, 0x00, 0xFD, 0xF7, 0xDF, 0x08, 0x3C, 0x6C, 0x20, 0x03, 0xF5, 0xAA, 0x23, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xDC, 0x00, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xAC, 0x00, 0x80, 0x00, 0x00, 0x00, 0x7F, 0xFC, 0xB9, 0x00, 0x7F, 0xFC, 0xB9, 0x00, 0x7F, 0xFC, 0xB9, 0x00, 0x7F, 0xFC, 0xB9, 0x01, 0x41, 0x85, 0x7F, 0x00, 0x09, 0x0F, 0xCC, 0x00, 0x09, 0x0F, 0xCC, 0x00, 0x06, 0x6A, 0x4A, 0x00, 0x04, 0x8A, 0xA7, 0x00, 0x03, 0x37, 0x18, 0x00, 0x02, 0x46, 0xB5, 0x00, 0x01, 0x9C, 0x86, 0x00, 0x01, 0x24, 0x0C, 0x00, 0x00, 0xCE, 0xC1, 0x00, 0x00, 0x92, 0x5F, 0x00, 0x00, 0x67, 0x9F, 0x00, 0x00, 0x49, 0x5C, 0x00, 0x00, 0xDA, 0xD7, 0x00, 0x02, 0xFD, 0x86, 0x00, 0x0A, 0x75, 0xDE, 0x00, 0x24, 0x97, 0x68, 0x00, 0x7E, 0xDA, 0x4D, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xB9, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x09, 0x60, 0x00, 0x00, 0x00, 0xB6, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x7F, 0xC3, 0x65, 0x0F, 0x00, 0x79, 0x35, 0x00, 0x7F, 0xC3, 0x65, 0x00, 0xFF, 0x86, 0xAE, 0x0F, 0x80, 0x79, 0x19, 0x00, 0x7F, 0xE6, 0x6F, 0x0F, 0x01, 0xD7, 0xBF, 0x00, 0x7E, 0x47, 0xC2, 0x00, 0xFE, 0x28, 0x41, 0x0F, 0x81, 0xD1, 0xCF, 0x00, 0x80, 0x0B, 0x93, 0x0F, 0x06, 0x4A, 0x08, 0x00, 0x79, 0xF5, 0x34, 0x00, 0xF9, 0xB5, 0xF8, 0x0F, 0x85, 0xFF, 0x39, 0x00, 0x7F, 0x5D, 0x86, 0x0F, 0x14, 0xBB, 0x22, 0x00, 0x6E, 0x7D, 0xEA, 0x00, 0xEB, 0x44, 0xDE, 0x0F, 0x92, 0x24, 0x90, 0x00, 0x80, 0x52, 0x5D, 0x0F, 0x3C, 0xC4, 0x90, 0x00, 0x55, 0x01, 0xAB, 0x00, 0xC3, 0x3B, 0x70, 0x0F, 0xAA, 0xAB, 0xF8, 0x00, 0x82, 0x2B, 0x9A, 0x0F, 0x98, 0xC2, 0xB2, 0x00, 0x34, 0x93, 0x0C, 0x00, 0x67, 0x3D, 0x4E, 0x0F, 0xC9, 0x41, 0x5A, 0x00, 0x02, 0xC4, 0x78, 0x00, 0x05, 0x88, 0xEF, 0x00, 0x02, 0xC4, 0x78, 0x00, 0xC5, 0x84, 0xFE, 0xFF, 0xAF, 0x69, 0x23, 0x00, 0x65, 0x86, 0xF7, 0xFF, 0x34, 0xF2, 0x12, 0x00, 0x65, 0x86, 0xF7, 0x00, 0xC5, 0x84, 0xFE, 0xFF, 0xAF, 0x69, 0x23, 0x00, 0xA6, 0x66, 0x66, 0x00, 0x73, 0x33, 0x33, 0x00, 0x6D, 0x66, 0xD6, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x75, 0x69, 0x4C, 0x00, 0x5A, 0x9D, 0xF8, 0x00, 0x45, 0xEF, 0xFF, 0x00, 0x35, 0xFA, 0x27, 0x00, 0x29, 0xA8, 0xBB, 0x00, 0x20, 0x26, 0xF3, 0x00, 0x06, 0x4A, 0x36, 0x00, 0x00, 0x01, 0x6C, 0x00, 0x00, 0x5D, 0xC0, 0x00, 0x08, 0x0D, 0x6A, 0x00, 0x02, 0x78, 0x8C, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x01, 0x01, 0x5C, 0x00, 0x00, 0x01, 0x64, 0x00, 0x00, 0x02, 0xC8, 0x00, 0x00, 0x01, 0x64, 0x00, 0xFD, 0xA1, 0x53, 0x0F, 0x82, 0x59, 0x1D, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x29, 0x53, 0x21, 0x00, 0x2A, 0xC6, 0xE7, 0x00, 0x2C, 0x47, 0xBE, 0x00, 0x2D, 0xD6, 0x1B, 0x00, 0x2F, 0x72, 0x77, 0x00, 0x31, 0x1D, 0x52, 0x00, 0x32, 0xD7, 0x2C, 0x00, 0x34, 0xA0, 0x8E, 0x00, 0x36, 0x7A, 0x02, 0x00, 0x00, 0x06, 0xD3, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x00, 0x00, 0x4E, 0xB0, 0x00, 0x00, 0x01, 0xE0, 0x00, 0x00, 0x07, 0x1C, 0x0F, 0xFE, 0x2B, 0xE3, 0x00, 0x22, 0xBE, 0x2C, 0x0F, 0xEA, 0xAA, 0xAB, 0x00, 0x6A, 0xAA, 0xAB, 0x0F, 0x9A, 0x69, 0xA7, 0x00, 0xFD, 0xF7, 0xDF, 0x08, 0x3C, 0x6C, 0x20, 0x03, 0xF5, 0xAA, 0x23, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xDC, 0x00, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x0F, 0xFE, 0x2B, 0xE3, 0x00, 0x22, 0xBE, 0x2C, 0x0F, 0xEA, 0xAA, 0xAB, 0x00, 0x6A, 0xAA, 0xAB, 0x0F, 0x9A, 0x69, 0xA7, 0x00, 0xFD, 0xF7, 0xDF, 0x08, 0x3C, 0x6C, 0x20, 0x03, 0xF5, 0xAA, 0x23, 0x01, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x33, 0x33, 0x33, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x07, 0xDC, 0x00, 0x00, 0x08, 0x00, 0x00, 0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
IC 1.HWConFiguration @@ -53,106 +53,16 @@ 2 0x00, 0x1C, - - Si4674 - - ALG0 - Gain1940AlgNS1 - Gain (no slew)( 1 ) : Gain`max[ 0 ],Gain`min[ -80 ],Gain`res[ 40 ],Gain[ 0 ]; - - Gain1940AlgNS1 - FixedPoint -
3
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
-
- - ALG1 - Gain1940AlgNS2 - Gain (no slew)( 1 ) : Gain`max[ 0 ],Gain`min[ -80 ],Gain`res[ 40 ],Gain[ 0 ]; - - Gain1940AlgNS2 - FixedPoint -
4
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
-
-
- - ESP32 - - ALG0 - Gain1940AlgNS3 - Gain (no slew)( 1 ) : Gain`max[ 0 ],Gain`min[ -80 ],Gain`res[ 40 ],Gain[ 0 ]; - - Gain1940AlgNS3 - FixedPoint -
5
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
-
- - ALG1 - Gain1940AlgNS4 - Gain (no slew)( 1 ) : Gain`max[ 0 ],Gain`min[ -80 ],Gain`res[ 40 ],Gain[ 0 ]; - - Gain1940AlgNS4 - FixedPoint -
6
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
-
-
- - St Mixer1 - - ALG0 - StereoMixerAlg1 - Stereo Mixer( 3 ) : Gain`max[ 6 ],Gain`min[ -30 ],Gain`res[ 36 ],Gain[ 0 ];Gain`max[ 6 ],Gain`min[ -30 ],Gain`res[ 36 ],Gain[ 0 ];Gain`max[ 6 ],Gain`min[ -30 ],Gain`res[ 36 ],Gain[ 0 ]; - - StereoMixerAlg12 - FixedPoint -
9
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
- - StereoMixerAlg14 - FixedPoint -
10
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
- - StereoMixerAlg16 - FixedPoint -
11
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
-
-
Param EQ1 ALG0 PEQ1Chan1 - PEQ1Chan - Double Precision( 1 ) : Gain10[ 0 ],Gain20[ 0 ],Q0[ 1.41 ],Boost0[ 0 ],Frequency10[ 20 ],Frequency20[ 1000 ],Ripple0[ 0.1 ],Active10[ True ],Active20[ True ],LowPass10[ True ],LowPass20[ True ],Bypass0[ False ],View0[ False ],Type0[ 6 ],SubType0[ 0 ],Gain11[ 0 ],Gain21[ 0 ],Q1[ 1 ],Boost1[ 0 ],Frequency11[ 100 ],Frequency21[ 1000 ],Ripple1[ 0.1 ],Active11[ True ],Active21[ True ],LowPass11[ True ],LowPass21[ True ],Bypass1[ False ],View1[ False ],Type1[ 0 ],SubType1[ 0 ],Gain12[ 0 ],Gain22[ 0 ],Q2[ 1 ],Boost2[ 0 ],Frequency12[ 400 ],Frequency22[ 1000 ],Ripple2[ 0.1 ],Active12[ True ],Active22[ True ],LowPass12[ True ],LowPass22[ True ],Bypass2[ False ],View2[ False ],Type2[ 0 ],SubType2[ 0 ],Gain13[ 0 ],Gain23[ 0 ],Q3[ 1 ],Boost3[ 0 ],Frequency13[ 1000 ],Frequency23[ 1000 ],Ripple3[ 0.1 ],Active13[ True ],Active23[ True ],LowPass13[ True ],LowPass23[ True ],Bypass3[ False ],View3[ False ],Type3[ 0 ],SubType3[ 0 ],Gain14[ 0 ],Gain24[ 0 ],Q4[ 1 ],Boost4[ 0 ],Frequency14[ 3000 ],Frequency24[ 1000 ],Ripple4[ 0.1 ],Active14[ True ],Active24[ True ],LowPass14[ True ],LowPass24[ True ],Bypass4[ False ],View4[ False ],Type4[ 0 ],SubType4[ 0 ],Gain15[ 0 ],Gain25[ 0 ],Q5[ 1 ],Boost5[ 0 ],Frequency15[ 8000 ],Frequency25[ 1000 ],Ripple5[ 0.1 ],Active15[ True ],Active25[ True ],LowPass15[ True ],LowPass25[ True ],Bypass5[ False ],View5[ False ],Type5[ 0 ],SubType5[ 0 ],Gain16[ 0 ],Gain26[ 0 ],Q6[ 1.41 ],Boost6[ 5 ],Frequency16[ 4000 ],Frequency26[ 1000 ],Ripple6[ 0.1 ],Active16[ True ],Active26[ True ],LowPass16[ True ],LowPass26[ True ],Bypass6[ False ],View6[ False ],Type6[ 0 ],SubType6[ 0 ],Gain17[ 0 ],Gain27[ 0 ],Q7[ 1.41 ],Boost7[ 5 ],Frequency17[ 8000 ],Frequency27[ 1000 ],Ripple7[ 0.1 ],Active17[ True ],Active27[ True ],LowPass17[ True ],LowPass27[ True ],Bypass7[ False ],View7[ False ],Type7[ 0 ],SubType7[ 0 ],Gain18[ 0 ],Gain28[ 0 ],Q8[ 1.41 ],Boost8[ 5 ],Frequency18[ 16000 ],Frequency28[ 1000 ],Ripple8[ 0.1 ],Active18[ True ],Active28[ True ],LowPass18[ True ],LowPass28[ True ],Bypass8[ False ],View8[ False ],Type8[ 0 ],SubType8[ 0 ],Gain19[ 0 ],Gain29[ 0 ],Q9[ 1.41 ],Boost9[ 5 ],Frequency19[ 32000 ],Frequency29[ 1000 ],Ripple9[ 0.1 ],Active19[ True ],Active29[ True ],LowPass19[ True ],LowPass29[ True ],Bypass9[ False ],View9[ False ],Type9[ 0 ],SubType9[ 0 ],Gain110[ 0 ],Gain210[ 0 ],Q10[ 1.41 ],Boost10[ 5 ],Frequency110[ 64000 ],Frequency210[ 1000 ],Ripple10[ 0.1 ],Active110[ True ],Active210[ True ],LowPass110[ True ],LowPass210[ True ],Bypass10[ False ],View10[ False ],Type10[ 0 ],SubType10[ 0 ],Gain111[ 0 ],Gain211[ 0 ],Q11[ 1.41 ],Boost11[ 5 ],Frequency111[ 128000 ],Frequency211[ 1000 ],Ripple11[ 0.1 ],Active111[ True ],Active211[ True ],LowPass111[ True ],LowPass211[ True ],Bypass11[ False ],View11[ False ],Type11[ 0 ],SubType11[ 0 ],Gain112[ 0 ],Gain212[ 0 ],Q12[ 1.41 ],Boost12[ 5 ],Frequency112[ 256000 ],Frequency212[ 1000 ],Ripple12[ 0.1 ],Active112[ True ],Active212[ True ],LowPass112[ True ],LowPass212[ True ],Bypass12[ False ],View12[ False ],Type12[ 0 ],SubType12[ 0 ],Gain113[ 0 ],Gain213[ 0 ],Q13[ 1.41 ],Boost13[ 5 ],Frequency113[ 512000 ],Frequency213[ 1000 ],Ripple13[ 0.1 ],Active113[ True ],Active213[ True ],LowPass113[ True ],LowPass213[ True ],Bypass13[ False ],View13[ False ],Type13[ 0 ],SubType13[ 0 ],Gain114[ 0 ],Gain214[ 0 ],Q14[ 1.41 ],Boost14[ 5 ],Frequency114[ 1024000 ],Frequency214[ 1000 ],Ripple14[ 0.1 ],Active114[ True ],Active214[ True ],LowPass114[ True ],LowPass214[ True ],Bypass14[ False ],View14[ False ],Type14[ 0 ],SubType14[ 0 ],Index[ 5 ]; + PEQ1Chan - Double Precision( 1 ) : Gain10[ 0 ],Gain20[ 0 ],Q0[ 1.41 ],Boost0[ 0 ],Frequency10[ 20 ],Frequency20[ 1000 ],Ripple0[ 0.1 ],Active10[ True ],Active20[ True ],LowPass10[ True ],LowPass20[ True ],Bypass0[ False ],View0[ False ],Type0[ 6 ],SubType0[ 0 ],Gain11[ 0 ],Gain21[ 0 ],Q1[ 1 ],Boost1[ -1.01 ],Frequency11[ 103.2 ],Frequency21[ 1000 ],Ripple1[ 0.1 ],Active11[ True ],Active21[ True ],LowPass11[ True ],LowPass21[ True ],Bypass1[ False ],View1[ False ],Type1[ 0 ],SubType1[ 0 ],Gain12[ 0 ],Gain22[ 0 ],Q2[ 1 ],Boost2[ 0.13 ],Frequency12[ 369.4 ],Frequency22[ 1000 ],Ripple2[ 0.1 ],Active12[ True ],Active22[ True ],LowPass12[ True ],LowPass22[ True ],Bypass2[ False ],View2[ False ],Type2[ 0 ],SubType2[ 0 ],Gain13[ 0 ],Gain23[ 0 ],Q3[ 1 ],Boost3[ -0.63 ],Frequency13[ 1128 ],Frequency23[ 1000 ],Ripple3[ 0.1 ],Active13[ True ],Active23[ True ],LowPass13[ True ],LowPass23[ True ],Bypass3[ False ],View3[ False ],Type3[ 0 ],SubType3[ 0 ],Gain14[ 0 ],Gain24[ 0 ],Q4[ 1 ],Boost4[ 0.13 ],Frequency14[ 3169.3 ],Frequency24[ 1000 ],Ripple4[ 0.1 ],Active14[ True ],Active24[ True ],LowPass14[ True ],LowPass24[ True ],Bypass4[ False ],View4[ False ],Type4[ 0 ],SubType4[ 0 ],Gain15[ 0 ],Gain25[ 0 ],Q5[ 1 ],Boost5[ 0.5 ],Frequency15[ 7413.6 ],Frequency25[ 1000 ],Ripple5[ 0.1 ],Active15[ True ],Active25[ True ],LowPass15[ True ],LowPass25[ True ],Bypass5[ False ],View5[ False ],Type5[ 0 ],SubType5[ 0 ],Gain16[ 0 ],Gain26[ 0 ],Q6[ 1.41 ],Boost6[ 5 ],Frequency16[ 4000 ],Frequency26[ 1000 ],Ripple6[ 0.1 ],Active16[ True ],Active26[ True ],LowPass16[ True ],LowPass26[ True ],Bypass6[ False ],View6[ False ],Type6[ 0 ],SubType6[ 0 ],Gain17[ 0 ],Gain27[ 0 ],Q7[ 1.41 ],Boost7[ 5 ],Frequency17[ 8000 ],Frequency27[ 1000 ],Ripple7[ 0.1 ],Active17[ True ],Active27[ True ],LowPass17[ True ],LowPass27[ True ],Bypass7[ False ],View7[ False ],Type7[ 0 ],SubType7[ 0 ],Gain18[ 0 ],Gain28[ 0 ],Q8[ 1.41 ],Boost8[ 5 ],Frequency18[ 16000 ],Frequency28[ 1000 ],Ripple8[ 0.1 ],Active18[ True ],Active28[ True ],LowPass18[ True ],LowPass28[ True ],Bypass8[ False ],View8[ False ],Type8[ 0 ],SubType8[ 0 ],Gain19[ 0 ],Gain29[ 0 ],Q9[ 1.41 ],Boost9[ 5 ],Frequency19[ 32000 ],Frequency29[ 1000 ],Ripple9[ 0.1 ],Active19[ True ],Active29[ True ],LowPass19[ True ],LowPass29[ True ],Bypass9[ False ],View9[ False ],Type9[ 0 ],SubType9[ 0 ],Gain110[ 0 ],Gain210[ 0 ],Q10[ 1.41 ],Boost10[ 5 ],Frequency110[ 64000 ],Frequency210[ 1000 ],Ripple10[ 0.1 ],Active110[ True ],Active210[ True ],LowPass110[ True ],LowPass210[ True ],Bypass10[ False ],View10[ False ],Type10[ 0 ],SubType10[ 0 ],Gain111[ 0 ],Gain211[ 0 ],Q11[ 1.41 ],Boost11[ 5 ],Frequency111[ 128000 ],Frequency211[ 1000 ],Ripple11[ 0.1 ],Active111[ True ],Active211[ True ],LowPass111[ True ],LowPass211[ True ],Bypass11[ False ],View11[ False ],Type11[ 0 ],SubType11[ 0 ],Gain112[ 0 ],Gain212[ 0 ],Q12[ 1.41 ],Boost12[ 5 ],Frequency112[ 256000 ],Frequency212[ 1000 ],Ripple12[ 0.1 ],Active112[ True ],Active212[ True ],LowPass112[ True ],LowPass212[ True ],Bypass12[ False ],View12[ False ],Type12[ 0 ],SubType12[ 0 ],Gain113[ 0 ],Gain213[ 0 ],Q13[ 1.41 ],Boost13[ 5 ],Frequency113[ 512000 ],Frequency213[ 1000 ],Ripple13[ 0.1 ],Active113[ True ],Active213[ True ],LowPass113[ True ],LowPass213[ True ],Bypass13[ False ],View13[ False ],Type13[ 0 ],SubType13[ 0 ],Gain114[ 0 ],Gain214[ 0 ],Q14[ 1.41 ],Boost14[ 5 ],Frequency114[ 1024000 ],Frequency214[ 1000 ],Ripple14[ 0.1 ],Active114[ True ],Active214[ True ],LowPass114[ True ],LowPass214[ True ],Bypass14[ False ],View14[ False ],Type14[ 0 ],SubType14[ 0 ],Index[ 5 ]; PEQ1Chan10B1 FixedPoint -
12
+
59
0.99815046787262 4 0x00, 0x7F, 0xC3, 0x65, @@ -160,7 +70,7 @@ PEQ1Chan10B1 FixedPoint -
12
+
59
0.99815046787262 4 0x00, 0x7F, 0xC3, 0x65, @@ -168,7 +78,7 @@ PEQ1Chan11B1 FixedPoint -
13
+
60
-1.99630105495453 4 0x0F, 0x00, 0x79, 0x35, @@ -176,7 +86,7 @@ PEQ1Chan11B1 FixedPoint -
13
+
60
-1.99630105495453 4 0x0F, 0x00, 0x79, 0x35, @@ -184,7 +94,7 @@ PEQ1Chan12B1 FixedPoint -
14
+
61
0.99815046787262 4 0x00, 0x7F, 0xC3, 0x65, @@ -192,7 +102,7 @@ PEQ1Chan12B1 FixedPoint -
14
+
61
0.99815046787262 4 0x00, 0x7F, 0xC3, 0x65, @@ -200,7 +110,7 @@ PEQ1Chan11A1 FixedPoint -
15
+
62
1.99629759788513 4 0x00, 0xFF, 0x86, 0xAE, @@ -208,7 +118,7 @@ PEQ1Chan11A1 FixedPoint -
15
+
62
1.99629759788513 4 0x00, 0xFF, 0x86, 0xAE, @@ -216,7 +126,7 @@ PEQ1Chan12A1 FixedPoint -
16
+
63
-0.996304392814636 4 0x0F, 0x80, 0x79, 0x19, @@ -224,7 +134,7 @@ PEQ1Chan12A1 FixedPoint -
16
+
63
-0.996304392814636 4 0x0F, 0x80, 0x79, 0x19, @@ -232,402 +142,402 @@ PEQ1Chan10B2 FixedPoint -
17
- 1 +
64
+ 0.99921977519989 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x7F, 0xE6, 0x6F,
PEQ1Chan10B2 FixedPoint -
17
- 1 +
64
+ 0.99921977519989 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x7F, 0xE6, 0x6F,
PEQ1Chan11B2 FixedPoint -
18
- 0 +
65
+ -1.98560345172882 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x01, 0xD7, 0xBF,
PEQ1Chan11B2 FixedPoint -
18
- 0 +
65
+ -1.98560345172882 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x01, 0xD7, 0xBF,
PEQ1Chan12B2 FixedPoint -
19
- 0 +
66
+ 0.986564874649048 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x47, 0xC2,
PEQ1Chan12B2 FixedPoint -
19
- 0 +
66
+ 0.986564874649048 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7E, 0x47, 0xC2,
PEQ1Chan11A2 FixedPoint -
20
- 0 +
67
+ 1.98560345172882 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x28, 0x41,
PEQ1Chan11A2 FixedPoint -
20
- 0 +
67
+ 1.98560345172882 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xFE, 0x28, 0x41,
PEQ1Chan12A2 FixedPoint -
21
- 0 +
68
+ -0.985784649848938 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x81, 0xD1, 0xCF,
PEQ1Chan12A2 FixedPoint -
21
- 0 +
68
+ -0.985784649848938 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x81, 0xD1, 0xCF,
PEQ1Chan10B3 FixedPoint -
22
- 1 +
69
+ 1.00035321712494 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x80, 0x0B, 0x93,
PEQ1Chan10B3 FixedPoint -
22
- 1 +
69
+ 1.00035321712494 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x80, 0x0B, 0x93,
PEQ1Chan11B3 FixedPoint -
23
- 0 +
70
+ -1.95086574554443 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x06, 0x4A, 0x08,
PEQ1Chan11B3 FixedPoint -
23
- 0 +
70
+ -1.95086574554443 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x06, 0x4A, 0x08,
PEQ1Chan12B3 FixedPoint -
24
- 0 +
71
+ 0.952795505523682 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x79, 0xF5, 0x34,
PEQ1Chan12B3 FixedPoint -
24
- 0 +
71
+ 0.952795505523682 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x79, 0xF5, 0x34,
PEQ1Chan11A3 FixedPoint -
25
- 0 +
72
+ 1.95086574554443 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF9, 0xB5, 0xF8,
PEQ1Chan11A3 FixedPoint -
25
- 0 +
72
+ 1.95086574554443 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xF9, 0xB5, 0xF8,
PEQ1Chan12A3 FixedPoint -
26
- 0 +
73
+ -0.953148722648621 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x85, 0xFF, 0x39,
PEQ1Chan12A3 FixedPoint -
26
- 0 +
73
+ -0.953148722648621 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x85, 0xFF, 0x39,
PEQ1Chan10B4 FixedPoint -
27
- 1 +
74
+ 0.995041608810425 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x7F, 0x5D, 0x86,
PEQ1Chan10B4 FixedPoint -
27
- 1 +
74
+ 0.995041608810425 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x7F, 0x5D, 0x86,
PEQ1Chan11B4 FixedPoint -
28
- 0 +
75
+ -1.83803915977478 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x14, 0xBB, 0x22,
PEQ1Chan11B4 FixedPoint -
28
- 0 +
75
+ -1.83803915977478 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x14, 0xBB, 0x22,
PEQ1Chan12B4 FixedPoint -
29
- 0 +
76
+ 0.86321759223938 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6E, 0x7D, 0xEA,
PEQ1Chan12B4 FixedPoint -
29
- 0 +
76
+ 0.86321759223938 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x6E, 0x7D, 0xEA,
PEQ1Chan11A4 FixedPoint -
30
- 0 +
77
+ 1.83803915977478 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xEB, 0x44, 0xDE,
PEQ1Chan11A4 FixedPoint -
30
- 0 +
77
+ 1.83803915977478 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xEB, 0x44, 0xDE,
PEQ1Chan12A4 FixedPoint -
31
- 0 +
78
+ -0.858259201049805 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x92, 0x24, 0x90,
PEQ1Chan12A4 FixedPoint -
31
- 0 +
78
+ -0.858259201049805 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x92, 0x24, 0x90,
PEQ1Chan10B5 FixedPoint -
32
- 1 +
79
+ 1.00251352787018 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x80, 0x52, 0x5D,
PEQ1Chan10B5 FixedPoint -
32
- 1 +
79
+ 1.00251352787018 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x80, 0x52, 0x5D,
PEQ1Chan11B5 FixedPoint -
33
- 0 +
80
+ -1.5252513885498 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x3C, 0xC4, 0x90,
PEQ1Chan11B5 FixedPoint -
33
- 0 +
80
+ -1.5252513885498 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x3C, 0xC4, 0x90,
PEQ1Chan12B5 FixedPoint -
34
- 0 +
81
+ 0.664113402366638 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x55, 0x01, 0xAB,
PEQ1Chan12B5 FixedPoint -
34
- 0 +
81
+ 0.664113402366638 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x55, 0x01, 0xAB,
PEQ1Chan11A5 FixedPoint -
35
- 0 +
82
+ 1.5252513885498 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC3, 0x3B, 0x70,
PEQ1Chan11A5 FixedPoint -
35
- 0 +
82
+ 1.5252513885498 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC3, 0x3B, 0x70,
PEQ1Chan12A5 FixedPoint -
36
- 0 +
83
+ -0.666626930236816 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xAA, 0xAB, 0xF8,
PEQ1Chan12A5 FixedPoint -
36
- 0 +
83
+ -0.666626930236816 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xAA, 0xAB, 0xF8,
PEQ1Chan10B6 FixedPoint -
37
- 1 +
84
+ 1.01695561408997 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x82, 0x2B, 0x9A,
PEQ1Chan10B6 FixedPoint -
37
- 1 +
84
+ 1.01695561408997 4 - 0x00, 0x80, 0x00, 0x00, + 0x00, 0x82, 0x2B, 0x9A,
PEQ1Chan11B6 FixedPoint -
38
- 0 +
85
+ -0.80655837059021 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x98, 0xC2, 0xB2,
PEQ1Chan11B6 FixedPoint -
38
- 0 +
85
+ -0.80655837059021 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0x98, 0xC2, 0xB2,
PEQ1Chan12B6 FixedPoint -
39
- 0 +
86
+ 0.41073751449585 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x93, 0x0C,
PEQ1Chan12B6 FixedPoint -
39
- 0 +
86
+ 0.41073751449585 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x34, 0x93, 0x0C,
PEQ1Chan11A6 FixedPoint -
40
- 0 +
87
+ 0.80655837059021 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x67, 0x3D, 0x4E,
PEQ1Chan11A6 FixedPoint -
40
- 0 +
87
+ 0.80655837059021 4 - 0x00, 0x00, 0x00, 0x00, + 0x00, 0x67, 0x3D, 0x4E,
PEQ1Chan12A6 FixedPoint -
41
- 0 +
88
+ -0.427693128585815 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xC9, 0x41, 0x5A,
PEQ1Chan12A6 FixedPoint -
41
- 0 +
88
+ -0.427693128585815 4 - 0x00, 0x00, 0x00, 0x00, + 0x0F, 0xC9, 0x41, 0x5A,
@@ -640,7 +550,7 @@ Gain1940AlgNS5 FixedPoint -
42
+
146
1 4 0x00, 0x80, 0x00, 0x00, @@ -653,7 +563,7 @@ Gain1940AlgNS6 FixedPoint -
43
+
147
1 4 0x00, 0x80, 0x00, 0x00, @@ -669,7 +579,7 @@ limiterAlg1slope_1 FixedPoint -
44
+
209
-0.014285683631897 4 0x0F, 0xFE, 0x2B, 0xE3, @@ -677,7 +587,7 @@ limiterAlg1inter_1 FixedPoint -
45
+
210
0.27142858505249 4 0x00, 0x22, 0xBE, 0x2C, @@ -685,7 +595,7 @@ limiterAlg1slope_2 FixedPoint -
46
+
211
-0.166666626930237 4 0x0F, 0xEA, 0xAA, 0xAB, @@ -693,7 +603,7 @@ limiterAlg1inter_2 FixedPoint -
47
+
212
0.833333373069763 4 0x00, 0x6A, 0xAA, 0xAB, @@ -701,7 +611,7 @@ limiterAlg1slope_3 FixedPoint -
48
+
213
-0.79365074634552 4 0x0F, 0x9A, 0x69, 0xA7, @@ -709,7 +619,7 @@ limiterAlg1inter_3 FixedPoint -
49
+
214
1.98412692546844 4 0x00, 0xFD, 0xF7, 0xDF, @@ -717,7 +627,7 @@ limiterAlg1slope_4 FixedPoint -
50
+
215
-15.5279502868652 4 0x08, 0x3C, 0x6C, 0x20, @@ -725,7 +635,7 @@ limiterAlg1inter_4 FixedPoint -
51
+
216
7.91925466060638 4 0x03, 0xF5, 0xAA, 0x23, @@ -733,7 +643,7 @@ limiterAlg1comp1 FixedPoint -
52
+
217
3 4 0x01, 0x80, 0x00, 0x00, @@ -741,7 +651,7 @@ limiterAlg1comp2 FixedPoint -
53
+
218
2 4 0x01, 0x00, 0x00, 0x00, @@ -749,7 +659,7 @@ limiterAlg1comp3 FixedPoint -
54
+
219
0.399999976158142 4 0x00, 0x33, 0x33, 0x33, @@ -757,7 +667,7 @@ limiterAlg1threshold FixedPoint -
55
+
220
1 4 0x00, 0x80, 0x00, 0x00, @@ -765,7 +675,7 @@ limiterAlg1RMS_MONO_TCONST FixedPoint -
56
+
221
0.000239849090576172 4 0x00, 0x00, 0x07, 0xDC, @@ -773,7 +683,7 @@ limiterAlg1decay FixedPoint -
57
+
222
0.000244140625 4 0x00, 0x00, 0x08, 0x00, @@ -781,135 +691,7 @@ limiterAlg1decaycomplement FixedPoint -
58
- 0.99951171875 - 4 - 0x00, 0x7F, 0xF0, 0x00, -
- - - - Limiter 2 - - ALG0 - limiterAlg2 - Limiter with Indicator( 1 ) : RMSvalue[ 50 ],Threshold[ 0 ],DecayTime[ 12 ]; - - limiterAlg2slope_1 - FixedPoint -
59
- -0.014285683631897 - 4 - 0x0F, 0xFE, 0x2B, 0xE3, -
- - limiterAlg2inter_1 - FixedPoint -
60
- 0.27142858505249 - 4 - 0x00, 0x22, 0xBE, 0x2C, -
- - limiterAlg2slope_2 - FixedPoint -
61
- -0.166666626930237 - 4 - 0x0F, 0xEA, 0xAA, 0xAB, -
- - limiterAlg2inter_2 - FixedPoint -
62
- 0.833333373069763 - 4 - 0x00, 0x6A, 0xAA, 0xAB, -
- - limiterAlg2slope_3 - FixedPoint -
63
- -0.79365074634552 - 4 - 0x0F, 0x9A, 0x69, 0xA7, -
- - limiterAlg2inter_3 - FixedPoint -
64
- 1.98412692546844 - 4 - 0x00, 0xFD, 0xF7, 0xDF, -
- - limiterAlg2slope_4 - FixedPoint -
65
- -15.5279502868652 - 4 - 0x08, 0x3C, 0x6C, 0x20, -
- - limiterAlg2inter_4 - FixedPoint -
66
- 7.91925466060638 - 4 - 0x03, 0xF5, 0xAA, 0x23, -
- - limiterAlg2comp1 - FixedPoint -
67
- 3 - 4 - 0x01, 0x80, 0x00, 0x00, -
- - limiterAlg2comp2 - FixedPoint -
68
- 2 - 4 - 0x01, 0x00, 0x00, 0x00, -
- - limiterAlg2comp3 - FixedPoint -
69
- 0.399999976158142 - 4 - 0x00, 0x33, 0x33, 0x33, -
- - limiterAlg2threshold - FixedPoint -
70
- 1 - 4 - 0x00, 0x80, 0x00, 0x00, -
- - limiterAlg2RMS_MONO_TCONST - FixedPoint -
71
- 0.000239849090576172 - 4 - 0x00, 0x00, 0x07, 0xDC, -
- - limiterAlg2decay - FixedPoint -
72
- 0.000244140625 - 4 - 0x00, 0x00, 0x08, 0x00, -
- - limiterAlg2decaycomplement - FixedPoint -
73
+
223
0.99951171875 4 0x00, 0x7F, 0xF0, 0x00, @@ -949,15 +731,459 @@
- Single 1 + S Splitter1 ALG0 - Gain1940AlgNS7 - Gain (no slew)( 1 ) : Gain`max[ 0 ],Gain`min[ -80 ],Gain`res[ 40 ],Gain[ 0 ]; + SingleCtrlSplit1 + Splitter Single( 1 ) : Gain`max[ 8 ],Gain`min[ -40 ],Gain`res[ 48 ],Gain[ 8 ]; - Gain1940AlgNS7 + SingleCtrlSplit1 + FixedPoint +
8
+ 2.5118864774704 + 4 + 0x01, 0x41, 0x85, 0x7F, +
+
+
+ + Limiter 2 + + ALG0 + limiterAlg2 + Limiter with Indicator( 1 ) : RMSvalue[ 50 ],Threshold[ 0 ],DecayTime[ 12 ]; + + limiterAlg2slope_1 + FixedPoint +
194
+ -0.014285683631897 + 4 + 0x0F, 0xFE, 0x2B, 0xE3, +
+ + limiterAlg2inter_1 + FixedPoint +
195
+ 0.27142858505249 + 4 + 0x00, 0x22, 0xBE, 0x2C, +
+ + limiterAlg2slope_2 + FixedPoint +
196
+ -0.166666626930237 + 4 + 0x0F, 0xEA, 0xAA, 0xAB, +
+ + limiterAlg2inter_2 + FixedPoint +
197
+ 0.833333373069763 + 4 + 0x00, 0x6A, 0xAA, 0xAB, +
+ + limiterAlg2slope_3 + FixedPoint +
198
+ -0.79365074634552 + 4 + 0x0F, 0x9A, 0x69, 0xA7, +
+ + limiterAlg2inter_3 + FixedPoint +
199
+ 1.98412692546844 + 4 + 0x00, 0xFD, 0xF7, 0xDF, +
+ + limiterAlg2slope_4 + FixedPoint +
200
+ -15.5279502868652 + 4 + 0x08, 0x3C, 0x6C, 0x20, +
+ + limiterAlg2inter_4 + FixedPoint +
201
+ 7.91925466060638 + 4 + 0x03, 0xF5, 0xAA, 0x23, +
+ + limiterAlg2comp1 + FixedPoint +
202
+ 3 + 4 + 0x01, 0x80, 0x00, 0x00, +
+ + limiterAlg2comp2 + FixedPoint +
203
+ 2 + 4 + 0x01, 0x00, 0x00, 0x00, +
+ + limiterAlg2comp3 + FixedPoint +
204
+ 0.399999976158142 + 4 + 0x00, 0x33, 0x33, 0x33, +
+ + limiterAlg2threshold + FixedPoint +
205
+ 1 + 4 + 0x00, 0x80, 0x00, 0x00, +
+ + limiterAlg2RMS_MONO_TCONST + FixedPoint +
206
+ 0.000239849090576172 + 4 + 0x00, 0x00, 0x07, 0xDC, +
+ + limiterAlg2decay + FixedPoint +
207
+ 0.000244140625 + 4 + 0x00, 0x00, 0x08, 0x00, +
+ + limiterAlg2decaycomplement + FixedPoint +
208
+ 0.99951171875 + 4 + 0x00, 0x7F, 0xF0, 0x00, +
+
+
+ + DCB1 + + ALG0 + DCBlockAlgDoublePrec1 + DC Blocking + + DCBlockAlgDoublePrec1pole + FixedPoint +
4
+ 0.999899983406067 + 4 + 0x00, 0x7F, 0xFC, 0xB9, +
+
+
+ + DCB2 + + ALG0 + DCBlockAlgDoublePrec2 + DC Blocking + + DCBlockAlgDoublePrec2pole + FixedPoint +
5
+ 0.999899983406067 + 4 + 0x00, 0x7F, 0xFC, 0xB9, +
+
+
+ + DCB3 + + ALG0 + DCBlockAlgDoublePrec3 + DC Blocking + + DCBlockAlgDoublePrec3pole FixedPoint
7
+ 0.999899983406067 + 4 + 0x00, 0x7F, 0xFC, 0xB9, +
+
+
+ + DCB4 + + ALG0 + DCBlockAlgDoublePrec4 + DC Blocking + + DCBlockAlgDoublePrec4pole + FixedPoint +
6
+ 0.999899983406067 + 4 + 0x00, 0x7F, 0xFC, 0xB9, +
+
+
+ + Compressor1 + + ALG0 + TwoChannelSingleDetectAlgFix1 + Stereo RMS (Post Gain)( 1 ) : PostGain[ 0 ],HoldTime[ 50 ],DecayTime[ 100 ],TimeConstant[ 100 ],SoftKnee[ False ],RMS_Label[ RMS TC (dB/s) ],Deacay_Label[ Decay (dB/s) ],DecayTime_ms[ 87 ],TimeConstant_ms[ 87 ],IsdBPS[ True ]; + + TwoChannelSingleDetectAlgFix1 + HexArray +
9
+ 136 + 4 + 0x00, 0x09, 0x0F, 0xCC, 0x00, 0x09, 0x0F, 0xCC, 0x00, 0x06, 0x6A, 0x4A, 0x00, 0x04, 0x8A, 0xA7, 0x00, 0x03, 0x37, 0x18, 0x00, 0x02, 0x46, 0xB5, 0x00, 0x01, 0x9C, 0x86, 0x00, 0x01, 0x24, 0x0C, 0x00, 0x00, 0xCE, 0xC1, 0x00, 0x00, 0x92, 0x5F, 0x00, 0x00, 0x67, 0x9F, 0x00, 0x00, 0x49, 0x5C, 0x00, 0x00, 0xDA, 0xD7, 0x00, 0x02, 0xFD, 0x86, 0x00, 0x0A, 0x75, 0xDE, 0x00, 0x24, 0x97, 0x68, 0x00, 0x7E, 0xDA, 0x4D, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, +
+ + TwoChannelSingleDetectAlgFix1RMS + FixedPoint +
43
+ 0.000479817390441895 + 4 + 0x00, 0x00, 0x0F, 0xB9, +
+ + TwoChannelSingleDetectAlgFix1post_gain + FixedPoint +
44
+ 1 + 4 + 0x00, 0x80, 0x00, 0x00, +
+ + TwoChannelSingleDetectAlgFix1hold + FixedPoint +
45
+ 2400 + 4 + 0x00, 0x00, 0x09, 0x60, +
+ + TwoChannelSingleDetectAlgFix1decay + FixedPoint +
46
+ 2.16960906982422E-05 + 4 + 0x00, 0x00, 0x00, 0xB6, +
+
+
+ + 1 X RTA1 + + ALG0 + SingleBandLevelDet1 + Single Band + + SingleBandLevelDet1TCONST + FixedPoint +
53
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet1hold + FixedPoint +
54
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet1decay + FixedPoint +
55
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet1 + HexArray +
2074
+ 2 + 0x03, 0x76, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + 1 X RTA2 + + ALG0 + SingleBandLevelDet2 + Single Band + + SingleBandLevelDet2TCONST + FixedPoint +
56
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet2hold + FixedPoint +
57
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet2decay + FixedPoint +
58
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet2 + HexArray +
2074
+ 2 + 0x03, 0xFA, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + 1 X RTA3 + + ALG0 + SingleBandLevelDet3 + Single Band + + SingleBandLevelDet3TCONST + FixedPoint +
47
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet3hold + FixedPoint +
48
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet3decay + FixedPoint +
49
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet3 + HexArray +
2074
+ 2 + 0x02, 0x6E, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + 1 X RTA4 + + ALG0 + SingleBandLevelDet4 + Single Band + + SingleBandLevelDet4TCONST + FixedPoint +
50
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet4hold + FixedPoint +
51
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet4decay + FixedPoint +
52
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet4 + HexArray +
2074
+ 2 + 0x02, 0xF2, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + DC1 + + ALG0 + DCInpAlg1 + dc Input( 1 ) : FormatL[ 23 ],FormatM[ 5 ],DC[ 1 ],IsDBSelected[ True ]; + + DCInpAlg1 + FixedPoint +
3
1 4 0x00, 0x80, 0x00, 0x00, @@ -965,19 +1191,304 @@
- S Splitter1 + SPhat1 ALG0 - SingleCtrlSplit1 - Splitter Single( 1 ) : Gain`max[ 8 ],Gain`min[ -40 ],Gain`res[ 48 ],Gain[ 0 ]; + SuperPhatAlg1 + Super Bass( 1 ) : XOver[ 500 ],Gain[ 1.3 ]; - SingleCtrlSplit1 + SuperPhatAlg1B0lo + HexArray +
89
+ 40 + 0x00, 0x02, 0xC4, 0x78, 0x00, 0x05, 0x88, 0xEF, 0x00, 0x02, 0xC4, 0x78, 0x00, 0xC5, 0x84, 0xFE, 0xFF, 0xAF, 0x69, 0x23, 0x00, 0x65, 0x86, 0xF7, 0xFF, 0x34, 0xF2, 0x12, 0x00, 0x65, 0x86, 0xF7, 0x00, 0xC5, 0x84, 0xFE, 0xFF, 0xAF, 0x69, 0x23, +
+ + SuperPhatAlg1gainHi FixedPoint -
8
+
99
+ 1.29999995231628 + 4 + 0x00, 0xA6, 0x66, 0x66, +
+ + SuperPhatAlg1gainLo + FixedPoint +
100
+ 0.899999976158142 + 4 + 0x00, 0x73, 0x33, 0x33, +
+ + SuperPhatAlg1gainInv + FixedPoint +
101
+ 0.854700803756714 + 4 + 0x00, 0x6D, 0x66, 0xD6, +
+ + SuperPhatAlg1comp_base + HexArray +
102
+ 136 + 4 + 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x75, 0x69, 0x4C, 0x00, 0x5A, 0x9D, 0xF8, 0x00, 0x45, 0xEF, 0xFF, 0x00, 0x35, 0xFA, 0x27, 0x00, 0x29, 0xA8, 0xBB, 0x00, 0x20, 0x26, 0xF3, +
+ + SuperPhatAlg1RMS + FixedPoint +
136
+ 0.0491397380828857 + 4 + 0x00, 0x06, 0x4A, 0x36, +
+ + SuperPhatAlg1decay + FixedPoint +
137
+ 4.33921813964844E-05 + 4 + 0x00, 0x00, 0x01, 0x6C, +
+ + SuperPhatAlg1hold + FixedPoint +
138
+ 24000 + 4 + 0x00, 0x00, 0x5D, 0xC0, +
+ + SuperPhatAlg1spread1 + FixedPoint +
139
+ 0.0629093647003174 + 4 + 0x00, 0x08, 0x0D, 0x6A, +
+ + SuperPhatAlg1spread2 + FixedPoint +
140
+ 0.0193037986755371 + 4 + 0x00, 0x02, 0x78, 0x8C, +
+
+
+ + Gen Filter1 + + ALG0 + EQ1940DualS1 + 2 Channel - Single Precision( 1 ) : Frequency`lock[ False ],Gain[ 4 ],Q[ 1.2 ],Boost1`max[ 10 ],Boost1`min[ -10 ],Boost1`res[ 20 ],Boost1[ 0 ],Boost2`max[ 10 ],Boost2`min[ -10 ],Boost2`res[ 20 ],Boost2[ 0 ],Boost3`max[ 10 ],Boost3`min[ -10 ],Boost3`res[ 20 ],Boost3[ 0 ],Frequency1[ 2500 ],Frequency2[ 1000 ],FilterEnable[ False ],PhaseShifted[ False ],Slope`res[ 20 ],Slope[ 1 ],Ripple[ 0.1 ],Active1[ True ],Active2[ True ],LowPass1[ True ],LowPass2[ False ],AllPass1[ False ],AllPass2[ False ],ClassicEE_Filtering[ False ],ShelvingType[ 0 ],GeneralType[ 0 ],BandPassType[ 0 ],Type[ 8 ],ChebyshevType[ 0 ]; + + EQ1940DualS10B1 + FixedPoint +
141
1 4 0x00, 0x80, 0x00, 0x00,
+ + EQ1940DualS11B1 + FixedPoint +
142
+ 0 + 4 + 0x00, 0x00, 0x00, 0x00, +
+ + EQ1940DualS12B1 + FixedPoint +
143
+ 0 + 4 + 0x00, 0x00, 0x00, 0x00, +
+ + EQ1940DualS11A1 + FixedPoint +
144
+ 0 + 4 + 0x00, 0x00, 0x00, 0x00, +
+ + EQ1940DualS12A1 + FixedPoint +
145
+ 0 + 4 + 0x00, 0x00, 0x00, 0x00, +
+
+
+ + 1 X RTA1_2 + + ALG0 + SingleBandLevelDet5 + Single Band + + SingleBandLevelDet5TCONST + FixedPoint +
191
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet5hold + FixedPoint +
192
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet5decay + FixedPoint +
193
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet5 + HexArray +
2074
+ 2 + 0x0B, 0x36, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + 1 X RTA2_2 + + ALG0 + SingleBandLevelDet6 + Single Band + + SingleBandLevelDet6TCONST + FixedPoint +
188
+ 0.00240135192871094 + 4 + 0x00, 0x00, 0x4E, 0xB0, +
+ + SingleBandLevelDet6hold + FixedPoint +
189
+ 480 + 4 + 0x00, 0x00, 0x01, 0xE0, +
+ + SingleBandLevelDet6decay + FixedPoint +
190
+ 0.000216960906982422 + 4 + 0x00, 0x00, 0x07, 0x1C, +
+ + SingleBandLevelDet6 + HexArray +
2074
+ 2 + 0x0A, 0xB2, +
+ + + FixedPoint +
2074
+ 0 + 3 + 0x00, 0x00, 0x00, +
+
+
+ + Bass Boost1 + + ALG0 + BassBAlg_stereo1 + Stereo Dynamic Bass Boost( 1 ) : Frequency[ 60 ],FrequencyL[ 100 ],Boost[ 1.1 ],Threshold[ -25 ],Gain1[ 0 ],Gain2[ 9.92 ],TimeConstant[ 100 ]; + + BassBAlg_stereo1freq_varq + FixedPoint +
148
+ 0.00785398483276367 + 4 + 0x00, 0x01, 0x01, 0x5C, +
+ + BassBAlg_stereo1iir_coeff_0_biq + FixedPoint +
149
+ 4.24385070800781E-05 + 4 + 0x00, 0x00, 0x01, 0x64, +
+ + BassBAlg_stereo1iir_coeff_1_biq + FixedPoint +
150
+ 8.48770141601563E-05 + 4 + 0x00, 0x00, 0x02, 0xC8, +
+ + BassBAlg_stereo1iir_coeff_2_biq + FixedPoint +
151
+ 4.24385070800781E-05 + 4 + 0x00, 0x00, 0x01, 0x64, +
+ + BassBAlg_stereo1iir_coeff_3_biq + FixedPoint +
152
+ 1.98148572444916 + 4 + 0x00, 0xFD, 0xA1, 0x53, +
+ + BassBAlg_stereo1iir_coeff_4_biq + FixedPoint +
153
+ -0.981655478477478 + 4 + 0x0F, 0x82, 0x59, 0x1D, +
+ + BassBAlg_stereo1compbase_table1_comp + HexArray +
154
+ 132 + 4 + 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x28, 0xDA, 0x08, 0x00, 0x29, 0x53, 0x21, 0x00, 0x2A, 0xC6, 0xE7, 0x00, 0x2C, 0x47, 0xBE, 0x00, 0x2D, 0xD6, 0x1B, 0x00, 0x2F, 0x72, 0x77, 0x00, 0x31, 0x1D, 0x52, 0x00, 0x32, 0xD7, 0x2C, 0x00, 0x34, 0xA0, 0x8E, 0x00, 0x36, 0x7A, 0x02, +
+ + BassBAlg_stereo1TCONST_comp + FixedPoint +
187
+ 0.000208258628845215 + 4 + 0x00, 0x00, 0x06, 0xD3, +
diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1.h b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1.h index 502be37..8224af9 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1.h +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1.h @@ -1,8 +1,8 @@ /* - * File: C:\Users\mikbi\Documents\Allegati\Desktop\DigiRadio\DigiRadioModificato\DigiRadio_IC_1.h + * File: C:\Users\mikbi\Documents\Allegati\Desktop\Sigmastudio\DigiRadioFinale_IC_1.h * - * Created: Friday, August 7, 2026 3:19:11 AM - * Description: DigiRadio:IC 1 program data. + * Created: Tuesday, August 25, 2026 8:11:05 PM + * Description: DigiRadioFinale:IC 1 program data. * * This software is distributed in the hope that it will be useful, * but is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR @@ -16,8 +16,8 @@ * * Copyright ©2026 Analog Devices, Inc. All rights reserved. */ -#ifndef __DIGIRADIO_IC_1_H__ -#define __DIGIRADIO_IC_1_H__ +#ifndef __DIGIRADIOFINALE_IC_1_H__ +#define __DIGIRADIOFINALE_IC_1_H__ #include "SigmaStudioFW.h" #include "DigiRadio_IC_1_REG.h" @@ -34,876 +34,876 @@ ADI_REG_TYPE Program_Data_IC_1[PROGRAM_SIZE_IC_1] = { 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x08, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x10, 0x00, 0xE8, 0x01, +0x00, 0x50, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x18, 0x00, 0xE8, 0x01, +0x00, 0x88, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x20, 0x00, 0xE8, 0x01, +0x00, 0xC0, 0x00, 0xE8, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x28, 0x00, 0xE8, 0x01, +0x00, 0xF8, 0x00, 0xE8, 0x01, 0x00, 0x02, 0x01, 0xA0, 0x01, 0xFF, 0xE1, 0x07, 0x20, 0x01, +0x00, 0x18, 0x00, 0xE2, 0x01, +0x00, 0x22, 0x02, 0x20, 0x01, +0x00, 0x32, 0x00, 0x22, 0x01, 0x00, 0x38, 0x00, 0xE2, 0x01, -0x00, 0x42, 0x02, 0x20, 0x01, -0x00, 0x52, 0x00, 0x22, 0x01, -0x00, 0x58, 0x00, 0xE2, 0x01, -0x00, 0x42, 0x00, 0x20, 0x01, -0x00, 0x59, 0x08, 0x22, 0x41, -0x00, 0x39, 0x08, 0x22, 0x01, -0x00, 0x31, 0x08, 0x22, 0x41, -0x00, 0x48, 0x00, 0xE2, 0x01, -0x00, 0x12, 0x03, 0x20, 0x01, +0x00, 0x22, 0x00, 0x20, 0x01, +0x00, 0x39, 0x08, 0x22, 0x41, +0x00, 0x19, 0x08, 0x22, 0x01, +0x00, 0x11, 0x08, 0x22, 0x41, +0x00, 0x28, 0x00, 0xE2, 0x01, +0xFF, 0xF2, 0x03, 0x20, 0x01, +0x00, 0x40, 0x00, 0xE2, 0x01, +0x00, 0x6A, 0x04, 0x20, 0x01, +0x00, 0x5A, 0x04, 0x34, 0x01, +0x00, 0x49, 0x08, 0x22, 0x41, +0x00, 0x51, 0x08, 0x22, 0x01, 0x00, 0x60, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x1A, 0x04, 0x20, 0x01, -0x00, 0x68, 0x00, 0xE2, 0x01, +0x00, 0x70, 0x00, 0xF2, 0x01, +0x00, 0xA2, 0x05, 0x20, 0x01, +0x00, 0x92, 0x05, 0x34, 0x01, +0x00, 0x81, 0x08, 0x22, 0x41, +0x00, 0x89, 0x08, 0x22, 0x01, +0x00, 0x98, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x22, 0x05, 0x20, 0x01, -0x00, 0x70, 0x00, 0xE2, 0x01, +0x00, 0xA8, 0x00, 0xF2, 0x01, +0x00, 0xDA, 0x06, 0x20, 0x01, +0x00, 0xCA, 0x06, 0x34, 0x01, +0x00, 0xB9, 0x08, 0x22, 0x41, +0x00, 0xC1, 0x08, 0x22, 0x01, +0x00, 0xD0, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x2A, 0x06, 0x20, 0x01, -0x00, 0x78, 0x00, 0xE2, 0x01, +0x00, 0xE0, 0x00, 0xF2, 0x01, +0x01, 0x12, 0x07, 0x20, 0x01, +0x01, 0x02, 0x07, 0x34, 0x01, +0x00, 0xF1, 0x08, 0x22, 0x41, +0x00, 0xF9, 0x08, 0x22, 0x01, +0x01, 0x08, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x5A, 0x07, 0x20, 0x01, -0x00, 0x80, 0x00, 0xE2, 0x01, +0x01, 0x18, 0x00, 0xF2, 0x01, +0x00, 0x3A, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x82, 0x08, 0x20, 0x01, +0x01, 0x28, 0x00, 0xE2, 0x01, +0x00, 0x3A, 0x08, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x88, 0x00, 0xE2, 0x01, -0x00, 0x82, 0x08, 0x20, 0x01, +0x01, 0x30, 0x00, 0xE2, 0x01, +0x00, 0x61, 0x09, 0x20, 0x01, +0x00, 0x99, 0x09, 0x22, 0x01, +0x01, 0x88, 0x00, 0xE2, 0x01, +0x01, 0x88, 0x00, 0xC0, 0x01, +0x01, 0x8F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x90, 0x00, 0xE2, 0x01, -0x00, 0x62, 0x09, 0x20, 0x01, -0x00, 0x6A, 0x09, 0x40, 0x01, -0x00, 0x72, 0x0A, 0x22, 0x01, -0x00, 0x7A, 0x0A, 0x44, 0x01, -0x00, 0x8A, 0x0B, 0x22, 0x01, -0x00, 0x92, 0x0B, 0x44, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0xA8, 0x00, 0xE2, 0x01, -0x01, 0xE0, 0x00, 0xE4, 0x01, -0x00, 0xD2, 0x0F, 0x20, 0x01, -0x00, 0xCA, 0x10, 0x22, 0x01, -0x00, 0xBA, 0x0F, 0x34, 0x01, -0x00, 0xB2, 0x10, 0x22, 0x01, -0x00, 0xAA, 0x0C, 0x22, 0x01, -0x00, 0xA2, 0x0D, 0x22, 0x01, -0x00, 0x9A, 0x0E, 0x22, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0xC0, 0x00, 0xE2, 0x01, -0x00, 0xD8, 0x00, 0xF2, 0x01, -0x01, 0x02, 0x14, 0x20, 0x01, -0x00, 0xFA, 0x15, 0x22, 0x01, -0x00, 0xEA, 0x14, 0x34, 0x01, -0x00, 0xE2, 0x15, 0x22, 0x01, -0x00, 0xC2, 0x11, 0x22, 0x01, -0x00, 0xBA, 0x12, 0x22, 0x01, -0x00, 0xB2, 0x13, 0x22, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0xF0, 0x00, 0xE2, 0x01, -0x01, 0x08, 0x00, 0xF2, 0x01, -0x01, 0x32, 0x19, 0x20, 0x01, -0x01, 0x2A, 0x1A, 0x22, 0x01, -0x01, 0x1A, 0x19, 0x34, 0x01, -0x01, 0x12, 0x1A, 0x22, 0x01, -0x00, 0xF2, 0x16, 0x22, 0x01, -0x00, 0xEA, 0x17, 0x22, 0x01, -0x00, 0xE2, 0x18, 0x22, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x01, 0x20, 0x00, 0xE2, 0x01, -0x01, 0x38, 0x00, 0xF2, 0x01, -0x01, 0x62, 0x1E, 0x20, 0x01, -0x01, 0x5A, 0x1F, 0x22, 0x01, -0x01, 0x4A, 0x1E, 0x34, 0x01, -0x01, 0x42, 0x1F, 0x22, 0x01, -0x01, 0x22, 0x1B, 0x22, 0x01, -0x01, 0x1A, 0x1C, 0x22, 0x01, -0x01, 0x12, 0x1D, 0x22, 0x01, +0x01, 0xA8, 0x00, 0xE2, 0x01, +0x01, 0xB0, 0x00, 0xF2, 0x01, +0x01, 0x59, 0x08, 0x20, 0x01, +0x01, 0x5A, 0x2B, 0x22, 0x41, +0x01, 0xB2, 0x2B, 0x22, 0x01, +0x01, 0x49, 0x08, 0x34, 0x01, +0x01, 0x4A, 0x2B, 0x22, 0x41, +0x01, 0xAA, 0x2B, 0x82, 0x01, +0x01, 0xAA, 0x2B, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x50, 0x00, 0xE2, 0x01, -0x01, 0x68, 0x00, 0xF2, 0x01, -0x01, 0x92, 0x23, 0x20, 0x01, -0x01, 0x8A, 0x24, 0x22, 0x01, -0x01, 0x7A, 0x23, 0x34, 0x01, -0x01, 0x72, 0x24, 0x22, 0x01, -0x01, 0x52, 0x20, 0x22, 0x01, -0x01, 0x4A, 0x21, 0x22, 0x01, -0x01, 0x42, 0x22, 0x22, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0x60, 0x00, 0xF2, 0x01, +0x01, 0xB8, 0x00, 0xF6, 0x01, +0x01, 0x79, 0x08, 0x20, 0x09, 0x01, 0x80, 0x00, 0xE2, 0x01, -0x01, 0x98, 0x00, 0xF2, 0x01, -0x01, 0xC2, 0x28, 0x20, 0x01, -0x01, 0xBA, 0x29, 0x22, 0x01, -0x01, 0xAA, 0x28, 0x34, 0x01, -0x01, 0xA2, 0x29, 0x22, 0x01, -0x01, 0x82, 0x25, 0x22, 0x01, -0x01, 0x7A, 0x26, 0x22, 0x01, -0x01, 0x72, 0x27, 0x22, 0x01, +0x01, 0x69, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x2E, 0x22, 0x67, +0x01, 0x70, 0x00, 0xE2, 0x01, +0x01, 0xB9, 0x08, 0x22, 0x49, +0x01, 0xB9, 0x08, 0x20, 0x01, +0x01, 0x70, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x2D, 0x20, 0x01, +0x01, 0x80, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, -0x01, 0xB0, 0x00, 0xE2, 0x01, +0x01, 0x81, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x01, 0x80, 0x00, 0xE2, 0x26, +0x01, 0x71, 0x1A, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0xC0, 0x00, 0xE2, 0x01, 0x01, 0xC8, 0x00, 0xF2, 0x01, -0x02, 0x0A, 0x0F, 0x20, 0x01, -0x02, 0x02, 0x10, 0x22, 0x01, -0x01, 0xF2, 0x0F, 0x34, 0x01, -0x01, 0xEA, 0x10, 0x22, 0x01, -0x01, 0xE2, 0x0C, 0x22, 0x01, -0x01, 0xDA, 0x0D, 0x22, 0x01, -0x01, 0xD2, 0x0E, 0x22, 0x01, +0x01, 0xC0, 0x00, 0xC0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x02, 0x0A, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x20, 0x01, +0x00, 0x02, 0x09, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x41, +0x01, 0x90, 0x00, 0xE2, 0x01, +0x01, 0xC8, 0x00, 0xC0, 0x01, +0x01, 0x97, 0xFF, 0x20, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x01, +0x01, 0xA0, 0x00, 0xE2, 0x01, +0x01, 0xA0, 0x00, 0xC0, 0x01, +0x00, 0x67, 0xFF, 0x20, 0x01, +0x01, 0x98, 0x00, 0xE2, 0x01, +0x01, 0x9A, 0x2C, 0x20, 0x01, +0x01, 0x98, 0x00, 0xE2, 0x01, +0x01, 0x9A, 0x2C, 0x20, 0x01, +0x01, 0x38, 0x00, 0xE2, 0x01, +0x00, 0x9F, 0xFF, 0x20, 0x01, +0x01, 0x98, 0x00, 0xE2, 0x01, +0x01, 0x9A, 0x2C, 0x20, 0x01, +0x01, 0x98, 0x00, 0xE2, 0x01, +0x01, 0x9A, 0x2C, 0x20, 0x01, +0x01, 0x40, 0x00, 0xE2, 0x01, +0x00, 0xD0, 0x00, 0xC0, 0x01, +0x00, 0xD7, 0xFF, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x01, 0xE1, 0x08, 0x20, 0x01, +0x01, 0xE2, 0x2F, 0x22, 0x41, +0x02, 0x1A, 0x2F, 0x22, 0x01, +0x01, 0xD1, 0x08, 0x34, 0x01, +0x01, 0xD2, 0x2F, 0x22, 0x41, +0x02, 0x12, 0x2F, 0x82, 0x01, +0x02, 0x12, 0x2F, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x01, 0xD8, 0x00, 0xE2, 0x01, +0x01, 0xE8, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x02, 0x01, 0x08, 0x20, 0x09, +0x02, 0x08, 0x00, 0xE2, 0x01, +0x01, 0xF1, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x31, 0x22, 0x67, 0x01, 0xF8, 0x00, 0xE2, 0x01, -0x02, 0x10, 0x00, 0xF2, 0x01, -0x02, 0x3A, 0x14, 0x20, 0x01, -0x02, 0x32, 0x15, 0x22, 0x01, -0x02, 0x22, 0x14, 0x34, 0x01, -0x02, 0x1A, 0x15, 0x22, 0x01, -0x01, 0xFA, 0x11, 0x22, 0x01, -0x01, 0xF2, 0x12, 0x22, 0x01, -0x01, 0xEA, 0x13, 0x22, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x01, 0xF8, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x30, 0x20, 0x01, +0x02, 0x08, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x09, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x02, 0x08, 0x00, 0xE2, 0x26, +0x01, 0xF9, 0x08, 0x20, 0x01, +0x00, 0xD1, 0x08, 0x20, 0x01, 0x02, 0x28, 0x00, 0xE2, 0x01, -0x02, 0x40, 0x00, 0xF2, 0x01, -0x02, 0x6A, 0x19, 0x20, 0x01, -0x02, 0x62, 0x1A, 0x22, 0x01, -0x02, 0x52, 0x19, 0x34, 0x01, -0x02, 0x4A, 0x1A, 0x22, 0x01, -0x02, 0x2A, 0x16, 0x22, 0x01, -0x02, 0x22, 0x17, 0x22, 0x01, -0x02, 0x1A, 0x18, 0x22, 0x01, +0x01, 0x08, 0x00, 0xC0, 0x01, +0x01, 0x0F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x02, 0x41, 0x08, 0x20, 0x01, +0x02, 0x42, 0x32, 0x22, 0x41, +0x02, 0x1A, 0x32, 0x22, 0x01, +0x02, 0x31, 0x08, 0x34, 0x01, +0x02, 0x32, 0x32, 0x22, 0x41, +0x02, 0x12, 0x32, 0x82, 0x01, +0x02, 0x12, 0x32, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x38, 0x00, 0xE2, 0x01, +0x02, 0x48, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x02, 0x61, 0x08, 0x20, 0x09, +0x02, 0x68, 0x00, 0xE2, 0x01, +0x02, 0x51, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x34, 0x22, 0x67, 0x02, 0x58, 0x00, 0xE2, 0x01, -0x02, 0x70, 0x00, 0xF2, 0x01, -0x02, 0x9A, 0x1E, 0x20, 0x01, -0x02, 0x92, 0x1F, 0x22, 0x01, -0x02, 0x82, 0x1E, 0x34, 0x01, -0x02, 0x7A, 0x1F, 0x22, 0x01, -0x02, 0x5A, 0x1B, 0x22, 0x01, -0x02, 0x52, 0x1C, 0x22, 0x01, -0x02, 0x4A, 0x1D, 0x22, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x02, 0x58, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x33, 0x20, 0x01, +0x02, 0x68, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, -0x02, 0x88, 0x00, 0xE2, 0x01, -0x02, 0xA0, 0x00, 0xF2, 0x01, -0x02, 0xCA, 0x23, 0x20, 0x01, -0x02, 0xC2, 0x24, 0x22, 0x01, -0x02, 0xB2, 0x23, 0x34, 0x01, -0x02, 0xAA, 0x24, 0x22, 0x01, -0x02, 0x8A, 0x20, 0x22, 0x01, -0x02, 0x82, 0x21, 0x22, 0x01, -0x02, 0x7A, 0x22, 0x22, 0x01, +0x02, 0x69, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x02, 0x68, 0x00, 0xE2, 0x26, +0x02, 0x59, 0x08, 0x20, 0x01, +0x01, 0x09, 0x08, 0x20, 0x01, +0x02, 0x70, 0x00, 0xE2, 0x01, +0x01, 0x38, 0x00, 0xC0, 0x01, +0x01, 0x3F, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x02, 0x89, 0x08, 0x20, 0x01, +0x02, 0x8A, 0x35, 0x22, 0x41, +0x02, 0x1A, 0x35, 0x22, 0x01, +0x02, 0x79, 0x08, 0x34, 0x01, +0x02, 0x7A, 0x35, 0x22, 0x41, +0x02, 0x12, 0x35, 0x82, 0x01, +0x02, 0x12, 0x35, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x80, 0x00, 0xE2, 0x01, +0x02, 0x90, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x02, 0xA9, 0x08, 0x20, 0x09, +0x02, 0xB0, 0x00, 0xE2, 0x01, +0x02, 0x99, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x37, 0x22, 0x67, +0x02, 0xA0, 0x00, 0xE2, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x02, 0xA0, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x36, 0x20, 0x01, +0x02, 0xB0, 0x00, 0xE2, 0x27, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0xB1, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x02, 0xB0, 0x00, 0xE2, 0x26, +0x02, 0xA1, 0x08, 0x20, 0x01, +0x01, 0x39, 0x08, 0x20, 0x01, 0x02, 0xB8, 0x00, 0xE2, 0x01, -0x02, 0xD0, 0x00, 0xF2, 0x01, -0x02, 0xFA, 0x28, 0x20, 0x01, -0x02, 0xF2, 0x29, 0x22, 0x01, -0x02, 0xE2, 0x28, 0x34, 0x01, -0x02, 0xDA, 0x29, 0x22, 0x01, -0x02, 0xBA, 0x25, 0x22, 0x01, -0x02, 0xB2, 0x26, 0x22, 0x01, -0x02, 0xAA, 0x27, 0x22, 0x01, +0x01, 0x40, 0x00, 0xC0, 0x01, +0x01, 0x47, 0xFF, 0x20, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x02, 0xD1, 0x08, 0x20, 0x01, +0x02, 0xD2, 0x38, 0x22, 0x41, +0x02, 0x1A, 0x38, 0x22, 0x01, +0x02, 0xC1, 0x08, 0x34, 0x01, +0x02, 0xC2, 0x38, 0x22, 0x41, +0x02, 0x12, 0x38, 0x82, 0x01, +0x02, 0x12, 0x38, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0xC8, 0x00, 0xE2, 0x01, +0x02, 0xD8, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x02, 0xF1, 0x08, 0x20, 0x09, +0x02, 0xF8, 0x00, 0xE2, 0x01, +0x02, 0xE1, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x3A, 0x22, 0x67, 0x02, 0xE8, 0x00, 0xE2, 0x01, -0x03, 0x00, 0x00, 0xF2, 0x01, -0x01, 0xB2, 0x2A, 0x20, 0x01, -0x03, 0x08, 0x00, 0xE2, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x02, 0xE8, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x39, 0x20, 0x01, +0x02, 0xF8, 0x00, 0xE2, 0x27, 0x00, 0x00, 0x00, 0x00, 0x01, -0x02, 0xEA, 0x2B, 0x20, 0x01, +0x02, 0xF9, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x02, 0xF8, 0x00, 0xE2, 0x26, +0x02, 0xE9, 0x08, 0x20, 0x01, +0x01, 0x41, 0x08, 0x20, 0x01, +0x03, 0x00, 0x00, 0xE2, 0x01, +0x02, 0xB9, 0x08, 0x20, 0x01, 0x03, 0x10, 0x00, 0xE2, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x09, 0x08, 0x20, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x70, 0x00, 0xF0, 0x01, -0xFF, 0xE9, 0x08, 0x22, 0x01, -0x03, 0x68, 0x00, 0xF2, 0x01, -0x03, 0x59, 0x08, 0x20, 0x01, -0x03, 0x5A, 0x38, 0x22, 0x41, -0x03, 0x6A, 0x38, 0x22, 0x01, -0x03, 0x49, 0x08, 0x34, 0x01, -0x03, 0x4A, 0x38, 0x22, 0x41, -0x03, 0x72, 0x38, 0x22, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x50, 0x00, 0xE2, 0x01, -0x03, 0x60, 0x00, 0xF2, 0x01, -0x03, 0x78, 0x00, 0xE2, 0x01, -0xFF, 0xF2, 0x34, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x2C, 0x20, 0x01, -0xFF, 0xF2, 0x2D, 0x22, 0x01, +0x03, 0x01, 0x08, 0x20, 0x01, 0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x7A, 0x2E, 0x20, 0x01, -0xFF, 0xF2, 0x2F, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, -0xFF, 0xF2, 0x35, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x30, 0x20, 0x01, -0xFF, 0xF2, 0x31, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, -0xFF, 0xF2, 0x36, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x32, 0x20, 0x01, -0xFF, 0xF2, 0x33, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, -0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, -0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, -0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x00, 0x02, 0x37, 0xA0, 0x01, -0xFF, 0xE7, 0xFF, 0x20, 0x01, -0x03, 0x40, 0x00, 0xE2, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x41, 0x08, 0x40, 0x01, -0xFF, 0xF1, 0x08, 0x20, 0x09, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x40, 0x00, 0xE2, 0x23, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x41, 0x08, 0x40, 0x01, -0x03, 0x39, 0x08, 0x20, 0x09, -0x03, 0x42, 0x39, 0x20, 0x01, -0x03, 0x3A, 0x39, 0x22, 0x41, -0x03, 0x39, 0x08, 0x22, 0x01, -0x03, 0x40, 0x00, 0xE2, 0x23, -0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x41, 0x08, 0x20, 0x01, -0x03, 0x30, 0x00, 0xE2, 0x01, -0xFF, 0xF2, 0x3A, 0x22, 0x49, -0xFF, 0xF1, 0x08, 0x20, 0x01, -0xFF, 0xE9, 0x08, 0x20, 0x25, -0x03, 0x28, 0x00, 0xE2, 0x01, -0x03, 0x40, 0x00, 0xC0, 0x01, -0x03, 0x0F, 0xFF, 0x20, 0x01, +0x02, 0x29, 0x08, 0x20, 0x01, 0x03, 0x20, 0x00, 0xE2, 0x01, -0x03, 0x11, 0x08, 0x20, 0x01, +0x02, 0x71, 0x08, 0x20, 0x01, +0x03, 0x28, 0x00, 0xE2, 0x01, +0x01, 0x29, 0x08, 0x20, 0x01, +0x03, 0x30, 0x00, 0xE2, 0x01, +0x01, 0x31, 0x08, 0x20, 0x01, +0x03, 0x38, 0x00, 0xE2, 0x01, +0x00, 0x41, 0x07, 0x20, 0x01, +0x03, 0x08, 0x00, 0xE2, 0x01, +0x03, 0x08, 0x00, 0xC0, 0x01, +0x00, 0x07, 0xFF, 0xA0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x70, 0x00, 0xF0, 0x01, +0x03, 0x11, 0x08, 0x20, 0x81, +0x03, 0x50, 0x00, 0xE2, 0x01, +0x03, 0x19, 0x08, 0x20, 0x81, +0x04, 0x88, 0x00, 0xE2, 0x01, +0x03, 0x7A, 0x3E, 0x20, 0x01, +0x03, 0x72, 0x3F, 0x22, 0x01, +0x03, 0x62, 0x3E, 0x34, 0x01, +0x03, 0x5A, 0x3F, 0x22, 0x01, +0x03, 0x52, 0x3B, 0x22, 0x01, +0x03, 0x4A, 0x3C, 0x22, 0x01, +0x03, 0x42, 0x3D, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x03, 0x68, 0x00, 0xE2, 0x01, +0x03, 0x80, 0x00, 0xF2, 0x01, +0x03, 0xAA, 0x43, 0x20, 0x01, +0x03, 0xA2, 0x44, 0x22, 0x01, +0x03, 0x92, 0x43, 0x34, 0x01, +0x03, 0x8A, 0x44, 0x22, 0x01, +0x03, 0x6A, 0x40, 0x22, 0x01, +0x03, 0x62, 0x41, 0x22, 0x01, +0x03, 0x5A, 0x42, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x03, 0x98, 0x00, 0xE2, 0x01, +0x03, 0xB0, 0x00, 0xF2, 0x01, +0x03, 0xDA, 0x48, 0x20, 0x01, +0x03, 0xD2, 0x49, 0x22, 0x01, +0x03, 0xC2, 0x48, 0x34, 0x01, +0x03, 0xBA, 0x49, 0x22, 0x01, +0x03, 0x9A, 0x45, 0x22, 0x01, +0x03, 0x92, 0x46, 0x22, 0x01, +0x03, 0x8A, 0x47, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x03, 0xC8, 0x00, 0xE2, 0x01, +0x03, 0xE0, 0x00, 0xF2, 0x01, +0x04, 0x0A, 0x4D, 0x20, 0x01, +0x04, 0x02, 0x4E, 0x22, 0x01, +0x03, 0xF2, 0x4D, 0x34, 0x01, +0x03, 0xEA, 0x4E, 0x22, 0x01, +0x03, 0xCA, 0x4A, 0x22, 0x01, +0x03, 0xC2, 0x4B, 0x22, 0x01, +0x03, 0xBA, 0x4C, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x03, 0xF8, 0x00, 0xE2, 0x01, +0x04, 0x10, 0x00, 0xF2, 0x01, +0x04, 0x3A, 0x52, 0x20, 0x01, +0x04, 0x32, 0x53, 0x22, 0x01, +0x04, 0x22, 0x52, 0x34, 0x01, +0x04, 0x1A, 0x53, 0x22, 0x01, +0x03, 0xFA, 0x4F, 0x22, 0x01, +0x03, 0xF2, 0x50, 0x22, 0x01, +0x03, 0xEA, 0x51, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x04, 0x28, 0x00, 0xE2, 0x01, +0x04, 0x40, 0x00, 0xF2, 0x01, +0x04, 0x6A, 0x57, 0x20, 0x01, +0x04, 0x62, 0x58, 0x22, 0x01, +0x04, 0x52, 0x57, 0x34, 0x01, +0x04, 0x4A, 0x58, 0x22, 0x01, +0x04, 0x2A, 0x54, 0x22, 0x01, +0x04, 0x22, 0x55, 0x22, 0x01, +0x04, 0x1A, 0x56, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x04, 0x58, 0x00, 0xE2, 0x01, +0x04, 0x70, 0x00, 0xF2, 0x01, +0x04, 0xB2, 0x3E, 0x20, 0x01, +0x04, 0xAA, 0x3F, 0x22, 0x01, +0x04, 0x9A, 0x3E, 0x34, 0x01, +0x04, 0x92, 0x3F, 0x22, 0x01, +0x04, 0x8A, 0x3B, 0x22, 0x01, +0x04, 0x82, 0x3C, 0x22, 0x01, +0x04, 0x7A, 0x3D, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x04, 0xA0, 0x00, 0xE2, 0x01, +0x04, 0xB8, 0x00, 0xF2, 0x01, +0x04, 0xE2, 0x43, 0x20, 0x01, +0x04, 0xDA, 0x44, 0x22, 0x01, +0x04, 0xCA, 0x43, 0x34, 0x01, +0x04, 0xC2, 0x44, 0x22, 0x01, +0x04, 0xA2, 0x40, 0x22, 0x01, +0x04, 0x9A, 0x41, 0x22, 0x01, +0x04, 0x92, 0x42, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x04, 0xD0, 0x00, 0xE2, 0x01, +0x04, 0xE8, 0x00, 0xF2, 0x01, +0x05, 0x12, 0x48, 0x20, 0x01, +0x05, 0x0A, 0x49, 0x22, 0x01, +0x04, 0xFA, 0x48, 0x34, 0x01, +0x04, 0xF2, 0x49, 0x22, 0x01, +0x04, 0xD2, 0x45, 0x22, 0x01, +0x04, 0xCA, 0x46, 0x22, 0x01, +0x04, 0xC2, 0x47, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0x00, 0x00, 0xE2, 0x01, +0x05, 0x18, 0x00, 0xF2, 0x01, +0x05, 0x42, 0x4D, 0x20, 0x01, +0x05, 0x3A, 0x4E, 0x22, 0x01, +0x05, 0x2A, 0x4D, 0x34, 0x01, +0x05, 0x22, 0x4E, 0x22, 0x01, +0x05, 0x02, 0x4A, 0x22, 0x01, +0x04, 0xFA, 0x4B, 0x22, 0x01, +0x04, 0xF2, 0x4C, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0x30, 0x00, 0xE2, 0x01, +0x05, 0x48, 0x00, 0xF2, 0x01, +0x05, 0x72, 0x52, 0x20, 0x01, +0x05, 0x6A, 0x53, 0x22, 0x01, +0x05, 0x5A, 0x52, 0x34, 0x01, +0x05, 0x52, 0x53, 0x22, 0x01, +0x05, 0x32, 0x4F, 0x22, 0x01, +0x05, 0x2A, 0x50, 0x22, 0x01, +0x05, 0x22, 0x51, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0x60, 0x00, 0xE2, 0x01, +0x05, 0x78, 0x00, 0xF2, 0x01, +0x05, 0xA2, 0x57, 0x20, 0x01, +0x05, 0x9A, 0x58, 0x22, 0x01, +0x05, 0x8A, 0x57, 0x34, 0x01, +0x05, 0x82, 0x58, 0x22, 0x01, +0x05, 0x62, 0x54, 0x22, 0x01, +0x05, 0x5A, 0x55, 0x22, 0x01, +0x05, 0x52, 0x56, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0x90, 0x00, 0xE2, 0x01, +0x05, 0xA8, 0x00, 0xF2, 0x01, +0x04, 0x59, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0xE0, 0x00, 0xE2, 0x01, +0x06, 0x0A, 0x5C, 0x20, 0x01, +0x06, 0x02, 0x5D, 0x22, 0x01, +0x05, 0xF2, 0x5C, 0x34, 0x01, +0x05, 0xEA, 0x5D, 0x22, 0x01, +0x05, 0xE2, 0x59, 0x22, 0x01, +0x05, 0xDA, 0x5A, 0x22, 0x01, +0x05, 0xD2, 0x5B, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x05, 0xF8, 0x00, 0xE2, 0x01, +0x06, 0x10, 0x00, 0xF2, 0x01, +0x06, 0x3A, 0x5C, 0x20, 0x01, +0x06, 0x32, 0x5D, 0x22, 0x01, +0x06, 0x22, 0x5C, 0x34, 0x01, +0x06, 0x1A, 0x5D, 0x22, 0x01, +0x05, 0xFA, 0x59, 0x22, 0x01, +0x05, 0xF2, 0x5A, 0x22, 0x01, +0x05, 0xEA, 0x5B, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0x28, 0x00, 0xE2, 0x01, +0x05, 0xB8, 0x00, 0xE2, 0x01, +0x06, 0x40, 0x00, 0xF2, 0x01, +0x04, 0x59, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0x58, 0x00, 0xE2, 0x01, +0x06, 0x82, 0x61, 0x20, 0x01, +0x06, 0x7A, 0x62, 0x22, 0x01, +0x06, 0x6A, 0x61, 0x34, 0x01, +0x06, 0x62, 0x62, 0x22, 0x01, +0x06, 0x5A, 0x5E, 0x22, 0x01, +0x06, 0x52, 0x5F, 0x22, 0x01, +0x06, 0x4A, 0x60, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0x70, 0x00, 0xE2, 0x01, +0x06, 0x88, 0x00, 0xF2, 0x01, +0x06, 0xB2, 0x61, 0x20, 0x01, +0x06, 0xAA, 0x62, 0x22, 0x01, +0x06, 0x9A, 0x61, 0x34, 0x01, +0x06, 0x92, 0x62, 0x22, 0x01, +0x06, 0x72, 0x5E, 0x22, 0x01, +0x06, 0x6A, 0x5F, 0x22, 0x01, +0x06, 0x62, 0x60, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0xA0, 0x00, 0xE2, 0x01, +0x05, 0xB0, 0x00, 0xE2, 0x01, +0x06, 0xB8, 0x00, 0xF2, 0x01, +0x05, 0x91, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0xD0, 0x00, 0xE2, 0x01, +0x06, 0xFA, 0x5C, 0x20, 0x01, +0x06, 0xF2, 0x5D, 0x22, 0x01, +0x06, 0xE2, 0x5C, 0x34, 0x01, +0x06, 0xDA, 0x5D, 0x22, 0x01, +0x06, 0xD2, 0x59, 0x22, 0x01, +0x06, 0xCA, 0x5A, 0x22, 0x01, +0x06, 0xC2, 0x5B, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x06, 0xE8, 0x00, 0xE2, 0x01, +0x07, 0x00, 0x00, 0xF2, 0x01, +0x07, 0x2A, 0x5C, 0x20, 0x01, +0x07, 0x22, 0x5D, 0x22, 0x01, +0x07, 0x12, 0x5C, 0x34, 0x01, +0x07, 0x0A, 0x5D, 0x22, 0x01, +0x06, 0xEA, 0x59, 0x22, 0x01, +0x06, 0xE2, 0x5A, 0x22, 0x01, +0x06, 0xDA, 0x5B, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0x18, 0x00, 0xE2, 0x01, +0x05, 0xC8, 0x00, 0xE2, 0x01, +0x07, 0x30, 0x00, 0xF2, 0x01, +0x05, 0x91, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0x48, 0x00, 0xE2, 0x01, +0x07, 0x72, 0x61, 0x20, 0x01, +0x07, 0x6A, 0x62, 0x22, 0x01, +0x07, 0x5A, 0x61, 0x34, 0x01, +0x07, 0x52, 0x62, 0x22, 0x01, +0x07, 0x4A, 0x5E, 0x22, 0x01, +0x07, 0x42, 0x5F, 0x22, 0x01, +0x07, 0x3A, 0x60, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0x60, 0x00, 0xE2, 0x01, +0x07, 0x78, 0x00, 0xF2, 0x01, +0x07, 0xA2, 0x61, 0x20, 0x01, +0x07, 0x9A, 0x62, 0x22, 0x01, +0x07, 0x8A, 0x61, 0x34, 0x01, +0x07, 0x82, 0x62, 0x22, 0x01, +0x07, 0x62, 0x5E, 0x22, 0x01, +0x07, 0x5A, 0x5F, 0x22, 0x01, +0x07, 0x52, 0x60, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0x90, 0x00, 0xE2, 0x01, +0x05, 0xC0, 0x00, 0xE2, 0x01, +0x07, 0xA8, 0x00, 0xF2, 0x01, +0x05, 0xB9, 0x08, 0x20, 0x01, +0x05, 0xC9, 0x08, 0x22, 0x41, +0x08, 0x30, 0x00, 0xE2, 0x01, +0x08, 0x30, 0x00, 0xC0, 0x01, +0x08, 0x37, 0xFF, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x08, 0x08, 0x00, 0xE2, 0x01, +0x08, 0x10, 0x00, 0xF2, 0x01, +0x07, 0xC1, 0x08, 0x20, 0x01, +0x07, 0xC2, 0x88, 0x22, 0x41, +0x08, 0x12, 0x88, 0x22, 0x01, +0x07, 0xB1, 0x08, 0x34, 0x01, +0x07, 0xB2, 0x88, 0x22, 0x41, +0x08, 0x0A, 0x88, 0x82, 0x01, +0x08, 0x0A, 0x88, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0xB8, 0x00, 0xE2, 0x01, +0x07, 0xC8, 0x00, 0xF2, 0x01, +0x08, 0x18, 0x00, 0xF6, 0x01, +0x07, 0xE1, 0x08, 0x20, 0x09, +0x07, 0xE8, 0x00, 0xE2, 0x01, +0x07, 0xD1, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0x89, 0x22, 0x67, +0x07, 0xD8, 0x00, 0xE2, 0x01, +0x08, 0x19, 0x08, 0x22, 0x49, +0x08, 0x19, 0x08, 0x20, 0x01, +0x07, 0xD8, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0x8A, 0x20, 0x01, +0x07, 0xE8, 0x00, 0xE2, 0x27, +0x00, 0x00, 0x00, 0x00, 0x01, +0x07, 0xE9, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x07, 0xE8, 0x00, 0xE2, 0x26, +0x07, 0xD9, 0x1A, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x08, 0x20, 0x00, 0xE2, 0x01, +0x08, 0x28, 0x00, 0xF2, 0x01, +0x08, 0x20, 0x00, 0xC0, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x02, 0x67, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x20, 0x01, +0x00, 0x02, 0x66, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x41, +0x07, 0xF0, 0x00, 0xE2, 0x01, +0x08, 0x28, 0x00, 0xC0, 0x01, +0x07, 0xF7, 0xFF, 0x20, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x01, +0x08, 0x00, 0x00, 0xE2, 0x01, +0x08, 0x00, 0x00, 0xC0, 0x01, +0x08, 0x37, 0xFF, 0x20, 0x01, +0x08, 0x38, 0x00, 0xE2, 0x01, +0x05, 0xCA, 0x64, 0x20, 0x01, +0x08, 0x42, 0x64, 0x22, 0x41, +0x08, 0x58, 0x00, 0xE2, 0x01, +0x05, 0xBA, 0x64, 0x20, 0x01, +0x08, 0x42, 0x64, 0x22, 0x01, +0x08, 0x50, 0x00, 0xE2, 0x01, +0x08, 0x39, 0x08, 0x20, 0x01, +0x08, 0x41, 0x08, 0x22, 0x41, +0x07, 0xF8, 0x00, 0xE2, 0x01, +0x07, 0xFA, 0x8B, 0x20, 0x01, +0x08, 0x41, 0x08, 0x22, 0x01, +0x08, 0x48, 0x00, 0xE2, 0x01, +0x08, 0x5A, 0x64, 0x20, 0x01, +0x08, 0x62, 0x64, 0x22, 0x41, +0x08, 0x58, 0x00, 0xE2, 0x01, +0x08, 0x52, 0x64, 0x20, 0x01, +0x08, 0x62, 0x64, 0x22, 0x01, +0x08, 0x50, 0x00, 0xE2, 0x01, +0x08, 0x39, 0x08, 0x20, 0x01, +0x08, 0x61, 0x08, 0x22, 0x41, +0x07, 0xF8, 0x00, 0xE2, 0x01, +0x07, 0xFA, 0x8C, 0x20, 0x01, +0x08, 0x61, 0x08, 0x22, 0x01, +0x08, 0x68, 0x00, 0xE2, 0x01, +0x05, 0xB2, 0x63, 0x20, 0x01, +0x08, 0x52, 0x65, 0x22, 0x01, +0x08, 0x80, 0x00, 0xE2, 0x01, +0x05, 0xC2, 0x63, 0x20, 0x01, +0x08, 0x5A, 0x65, 0x22, 0x01, +0x08, 0x98, 0x00, 0xE2, 0x01, +0x08, 0xAA, 0x90, 0x20, 0x01, +0x08, 0xA2, 0x91, 0x22, 0x01, +0x08, 0x82, 0x8D, 0x22, 0x01, +0x08, 0x7A, 0x8E, 0x22, 0x01, +0x08, 0x72, 0x8F, 0x22, 0x01, +0x08, 0xB0, 0x00, 0xE2, 0x01, +0x08, 0xC2, 0x90, 0x20, 0x01, +0x08, 0xBA, 0x91, 0x22, 0x01, +0x08, 0x9A, 0x8D, 0x22, 0x01, +0x08, 0x92, 0x8E, 0x22, 0x01, +0x08, 0x8A, 0x8F, 0x22, 0x01, +0x08, 0xC8, 0x00, 0xE2, 0x01, +0x08, 0xB2, 0x92, 0x20, 0x01, +0x08, 0xD0, 0x00, 0xE2, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x08, 0xCA, 0x93, 0x20, 0x01, +0x08, 0xD8, 0x00, 0xE2, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0x12, 0x94, 0x20, 0x01, +0x09, 0x01, 0x08, 0x22, 0x01, +0x09, 0x08, 0x00, 0xE2, 0x01, +0x09, 0x09, 0x08, 0x20, 0x41, +0x08, 0xD1, 0x08, 0x22, 0x01, +0x08, 0xE0, 0x00, 0xC0, 0x01, +0x09, 0x17, 0xFF, 0x22, 0x41, +0x08, 0xF0, 0x00, 0xE2, 0x01, +0x08, 0xF2, 0x94, 0x20, 0x01, +0x09, 0x11, 0x08, 0x22, 0x01, +0x09, 0x18, 0x00, 0xE2, 0x01, +0x09, 0x32, 0x94, 0x20, 0x01, +0x09, 0x21, 0x08, 0x22, 0x01, +0x09, 0x28, 0x00, 0xE2, 0x01, +0x09, 0x29, 0x08, 0x20, 0x41, +0x08, 0xD9, 0x08, 0x22, 0x01, +0x08, 0xE0, 0x00, 0xC0, 0x01, +0x09, 0x37, 0xFF, 0x22, 0x41, +0x08, 0xF8, 0x00, 0xE2, 0x01, +0x08, 0xFA, 0x94, 0x20, 0x01, +0x09, 0x31, 0x08, 0x22, 0x01, +0x09, 0x38, 0x00, 0xE2, 0x01, +0x09, 0x19, 0x08, 0x22, 0x01, +0x09, 0x50, 0x00, 0xE2, 0x01, +0x09, 0x62, 0x98, 0x20, 0x01, +0x09, 0x5A, 0x99, 0x22, 0x01, +0x09, 0x52, 0x95, 0x22, 0x01, +0x09, 0x4A, 0x96, 0x22, 0x01, +0x09, 0x42, 0x97, 0x22, 0x01, +0x09, 0x68, 0x00, 0xE2, 0x01, +0x09, 0x68, 0x00, 0xC0, 0x01, +0x09, 0x6F, 0xFF, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0xA0, 0x00, 0xE2, 0x01, +0x09, 0xA8, 0x00, 0xF2, 0x01, +0x09, 0x81, 0x08, 0x20, 0x01, +0x09, 0x82, 0xBB, 0x22, 0x41, +0x09, 0xAA, 0xBB, 0x22, 0x01, +0x09, 0x71, 0x08, 0x34, 0x01, +0x09, 0x72, 0xBB, 0x22, 0x41, +0x09, 0xA2, 0xBB, 0x82, 0x01, +0x09, 0xA2, 0xBB, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0x78, 0x00, 0xE2, 0x01, +0x09, 0x88, 0x00, 0xF2, 0x01, +0x09, 0xB0, 0x00, 0xF6, 0x01, +0x09, 0xB1, 0x1A, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0xB8, 0x00, 0xE2, 0x01, +0x09, 0xC0, 0x00, 0xF2, 0x01, +0x09, 0xB8, 0x00, 0xC0, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x00, 0x02, 0x9B, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x20, 0x01, +0x00, 0x02, 0x9A, 0xA1, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x41, +0x09, 0x90, 0x00, 0xE2, 0x01, +0x09, 0xC0, 0x00, 0xC0, 0x01, +0x09, 0x97, 0xFF, 0x20, 0x01, +0xFF, 0xE1, 0x08, 0x22, 0x01, +0x08, 0xE8, 0x00, 0xE2, 0x01, +0x08, 0xF8, 0x00, 0xC0, 0x01, +0x08, 0xFF, 0xFF, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x09, 0xD9, 0x08, 0x20, 0x01, +0x09, 0xDA, 0xBC, 0x22, 0x41, +0x02, 0x1A, 0xBC, 0x22, 0x01, +0x09, 0xC9, 0x08, 0x34, 0x01, +0x09, 0xCA, 0xBC, 0x22, 0x41, +0x02, 0x12, 0xBC, 0x82, 0x01, +0x02, 0x12, 0xBC, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0xD0, 0x00, 0xE2, 0x01, +0x09, 0xE0, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x09, 0xF9, 0x08, 0x20, 0x09, +0x0A, 0x00, 0x00, 0xE2, 0x01, +0x09, 0xE9, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0xBE, 0x22, 0x67, +0x09, 0xF0, 0x00, 0xE2, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x09, 0xF0, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0xBD, 0x20, 0x01, +0x0A, 0x00, 0x00, 0xE2, 0x27, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0x01, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x0A, 0x00, 0x00, 0xE2, 0x26, +0x09, 0xF1, 0x08, 0x20, 0x01, +0x08, 0xF9, 0x08, 0x20, 0x01, +0x0A, 0x08, 0x00, 0xE2, 0x01, +0x08, 0xF0, 0x00, 0xC0, 0x01, +0x08, 0xF7, 0xFF, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xE2, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x0A, 0x21, 0x08, 0x20, 0x01, +0x0A, 0x22, 0xBF, 0x22, 0x41, +0x02, 0x1A, 0xBF, 0x22, 0x01, +0x0A, 0x11, 0x08, 0x34, 0x01, +0x0A, 0x12, 0xBF, 0x22, 0x41, +0x02, 0x12, 0xBF, 0x82, 0x01, +0x02, 0x12, 0xBF, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0x18, 0x00, 0xE2, 0x01, +0x0A, 0x28, 0x00, 0xF2, 0x01, +0x02, 0x20, 0x00, 0xF6, 0x01, +0x0A, 0x41, 0x08, 0x20, 0x09, +0x0A, 0x48, 0x00, 0xE2, 0x01, +0x0A, 0x31, 0x08, 0x20, 0x01, +0xFF, 0xF2, 0xC1, 0x22, 0x67, +0x0A, 0x38, 0x00, 0xE2, 0x01, +0x02, 0x21, 0x08, 0x22, 0x49, +0x02, 0x21, 0x08, 0x20, 0x01, +0x0A, 0x38, 0x00, 0xE2, 0x27, +0xFF, 0xF2, 0xC0, 0x20, 0x01, +0x0A, 0x48, 0x00, 0xE2, 0x27, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0x49, 0x08, 0x20, 0x09, +0xFF, 0xF9, 0x08, 0x22, 0x41, +0x0A, 0x48, 0x00, 0xE2, 0x26, +0x0A, 0x39, 0x08, 0x20, 0x01, +0x08, 0xF1, 0x08, 0x20, 0x01, +0x0A, 0x50, 0x00, 0xE2, 0x01, +0x0A, 0x09, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xF0, 0x01, 0xFF, 0xE9, 0x08, 0x22, 0x01, -0x03, 0x68, 0x00, 0xF2, 0x01, -0x03, 0xB9, 0x08, 0x20, 0x01, -0x03, 0xBA, 0x47, 0x22, 0x41, -0x03, 0x6A, 0x47, 0x22, 0x01, -0x03, 0xA9, 0x08, 0x34, 0x01, -0x03, 0xAA, 0x47, 0x22, 0x41, -0x03, 0x72, 0x47, 0x22, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x0A, 0x91, 0x08, 0x20, 0x01, +0x0A, 0x92, 0xCE, 0x22, 0x41, +0x02, 0x1A, 0xCE, 0x22, 0x01, +0x0A, 0x81, 0x08, 0x34, 0x01, +0x0A, 0x82, 0xCE, 0x22, 0x41, +0x02, 0x12, 0xCE, 0x22, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0xB0, 0x00, 0xE2, 0x01, -0x03, 0xC0, 0x00, 0xF2, 0x01, -0x03, 0x78, 0x00, 0xE2, 0x01, -0xFF, 0xF2, 0x43, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x3B, 0x20, 0x01, -0xFF, 0xF2, 0x3C, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x7A, 0x3D, 0x20, 0x01, -0xFF, 0xF2, 0x3E, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, -0xFF, 0xF2, 0x44, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x3F, 0x20, 0x01, -0xFF, 0xF2, 0x40, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, -0xFF, 0xF2, 0x45, 0x40, 0x01, -0x03, 0x79, 0x08, 0x20, 0x09, -0x03, 0x7A, 0x41, 0x20, 0x01, -0xFF, 0xF2, 0x42, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x23, +0x0A, 0x88, 0x00, 0xE2, 0x01, +0x0A, 0x98, 0x00, 0xF2, 0x01, +0x0A, 0xA0, 0x00, 0xE2, 0x01, +0xFF, 0xF2, 0xCA, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xC2, 0x20, 0x01, +0xFF, 0xF2, 0xC3, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x0A, 0xA2, 0xC4, 0x20, 0x01, +0xFF, 0xF2, 0xC5, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, +0xFF, 0xF2, 0xCB, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xC6, 0x20, 0x01, +0xFF, 0xF2, 0xC7, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, +0xFF, 0xF2, 0xCC, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xC8, 0x20, 0x01, +0xFF, 0xF2, 0xC9, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x03, 0x7F, 0xFF, 0x20, 0x41, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, 0xFF, 0xF1, 0x07, 0x22, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x1F, 0xFF, 0x20, 0x01, -0x03, 0x18, 0x00, 0xE2, 0x01, -0x03, 0x18, 0x00, 0xC0, 0x01, -0x00, 0x02, 0x46, 0xA0, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x00, 0x02, 0xCD, 0xA0, 0x01, 0xFF, 0xE7, 0xFF, 0x20, 0x01, -0x03, 0xA0, 0x00, 0xE2, 0x01, +0x0A, 0x78, 0x00, 0xE2, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0xA1, 0x08, 0x40, 0x01, +0x0A, 0x79, 0x08, 0x40, 0x01, 0xFF, 0xF1, 0x08, 0x20, 0x09, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0xA0, 0x00, 0xE2, 0x23, +0x0A, 0x78, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0xA1, 0x08, 0x40, 0x01, -0x03, 0x99, 0x08, 0x20, 0x09, -0x03, 0xA2, 0x48, 0x20, 0x01, -0x03, 0x9A, 0x48, 0x22, 0x41, -0x03, 0x99, 0x08, 0x22, 0x01, -0x03, 0xA0, 0x00, 0xE2, 0x23, +0x0A, 0x79, 0x08, 0x40, 0x01, +0x0A, 0x71, 0x08, 0x20, 0x09, +0x0A, 0x7A, 0xCF, 0x20, 0x01, +0x0A, 0x72, 0xCF, 0x22, 0x41, +0x0A, 0x71, 0x08, 0x22, 0x01, +0x0A, 0x78, 0x00, 0xE2, 0x23, 0x00, 0x00, 0x00, 0x00, 0x01, -0x03, 0xA1, 0x08, 0x20, 0x01, -0x03, 0x90, 0x00, 0xE2, 0x01, -0xFF, 0xF2, 0x49, 0x22, 0x49, +0x0A, 0x79, 0x08, 0x20, 0x01, +0x0A, 0x68, 0x00, 0xE2, 0x01, +0xFF, 0xF2, 0xD0, 0x22, 0x49, 0xFF, 0xF1, 0x08, 0x20, 0x01, 0xFF, 0xE9, 0x08, 0x20, 0x25, -0x03, 0x88, 0x00, 0xE2, 0x01, -0x03, 0xA0, 0x00, 0xC0, 0x01, -0x03, 0x17, 0xFF, 0x20, 0x01, -0x03, 0x80, 0x00, 0xE2, 0x01, -0x03, 0x81, 0x08, 0x20, 0x01, -0xFF, 0x30, 0x00, 0x02, 0x01, -0x03, 0x21, 0x08, 0x20, 0x01, +0x0A, 0x60, 0x00, 0xE2, 0x01, +0x0A, 0x78, 0x00, 0xC0, 0x01, +0x0A, 0x0F, 0xFF, 0x20, 0x01, +0x0A, 0x58, 0x00, 0xE2, 0x01, +0x0A, 0x51, 0x08, 0x20, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x02, 0x10, 0x00, 0xF0, 0x01, +0xFF, 0xE9, 0x08, 0x22, 0x01, +0x02, 0x18, 0x00, 0xF2, 0x01, +0x0A, 0xE1, 0x08, 0x20, 0x01, +0x0A, 0xE2, 0xDD, 0x22, 0x41, +0x02, 0x1A, 0xDD, 0x22, 0x01, +0x0A, 0xD1, 0x08, 0x34, 0x01, +0x0A, 0xD2, 0xDD, 0x22, 0x41, +0x02, 0x12, 0xDD, 0x22, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0xD8, 0x00, 0xE2, 0x01, +0x0A, 0xE8, 0x00, 0xF2, 0x01, +0x0A, 0xA0, 0x00, 0xE2, 0x01, +0xFF, 0xF2, 0xD9, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xD1, 0x20, 0x01, +0xFF, 0xF2, 0xD2, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x0A, 0xA2, 0xD3, 0x20, 0x01, +0xFF, 0xF2, 0xD4, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, +0xFF, 0xF2, 0xDA, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xD5, 0x20, 0x01, +0xFF, 0xF2, 0xD6, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, +0xFF, 0xF2, 0xDB, 0x40, 0x01, +0x0A, 0xA1, 0x08, 0x20, 0x09, +0x0A, 0xA2, 0xD7, 0x20, 0x01, +0xFF, 0xF2, 0xD8, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x23, +0x00, 0x00, 0x00, 0x00, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, +0xFF, 0xF1, 0x07, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, +0xFF, 0xF1, 0x07, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x0A, 0xA7, 0xFF, 0x20, 0x41, +0xFF, 0xF1, 0x07, 0x22, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x9F, 0xFF, 0x20, 0x01, +0x09, 0x98, 0x00, 0xE2, 0x01, +0x09, 0x98, 0x00, 0xC0, 0x01, +0x00, 0x02, 0xDC, 0xA0, 0x01, +0xFF, 0xE7, 0xFF, 0x20, 0x01, +0x0A, 0xC8, 0x00, 0xE2, 0x01, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0xC9, 0x08, 0x40, 0x01, +0xFF, 0xF1, 0x08, 0x20, 0x09, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0xC8, 0x00, 0xE2, 0x23, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0xC9, 0x08, 0x40, 0x01, +0x0A, 0xC1, 0x08, 0x20, 0x09, +0x0A, 0xCA, 0xDE, 0x20, 0x01, +0x0A, 0xC2, 0xDE, 0x22, 0x41, +0x0A, 0xC1, 0x08, 0x22, 0x01, +0x0A, 0xC8, 0x00, 0xE2, 0x23, +0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0xC9, 0x08, 0x20, 0x01, +0x0A, 0xB8, 0x00, 0xE2, 0x01, +0xFF, 0xF2, 0xDF, 0x22, 0x49, +0xFF, 0xF1, 0x08, 0x20, 0x01, +0xFF, 0xE9, 0x08, 0x20, 0x25, +0x0A, 0xB0, 0x00, 0xE2, 0x01, +0x0A, 0xC8, 0x00, 0xC0, 0x01, +0x0A, 0x57, 0xFF, 0x20, 0x01, +0x0A, 0xA8, 0x00, 0xE2, 0x01, +0x0A, 0xA9, 0x08, 0x20, 0x01, 0xFF, 0x28, 0x00, 0x02, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, -0x00, 0x00, 0x00, 0x00, 0x01, +0x0A, 0x59, 0x08, 0x20, 0x01, +0xFF, 0x30, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, @@ -1063,6 +1063,28 @@ ADI_REG_TYPE Param_Data_IC_1[PARAM_SIZE_IC_1] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6C, 0xAC, 0x00, 0x80, 0x00, 0x00, +0x00, 0x7F, 0xFC, 0xB9, +0x00, 0x7F, 0xFC, 0xB9, +0x00, 0x7F, 0xFC, 0xB9, +0x00, 0x7F, 0xFC, 0xB9, +0x01, 0x41, 0x85, 0x7F, +0x00, 0x09, 0x0F, 0xCC, +0x00, 0x09, 0x0F, 0xCC, +0x00, 0x06, 0x6A, 0x4A, +0x00, 0x04, 0x8A, 0xA7, +0x00, 0x03, 0x37, 0x18, +0x00, 0x02, 0x46, 0xB5, +0x00, 0x01, 0x9C, 0x86, +0x00, 0x01, 0x24, 0x0C, +0x00, 0x00, 0xCE, 0xC1, +0x00, 0x00, 0x92, 0x5F, +0x00, 0x00, 0x67, 0x9F, +0x00, 0x00, 0x49, 0x5C, +0x00, 0x00, 0xDA, 0xD7, +0x00, 0x02, 0xFD, 0x86, +0x00, 0x0A, 0x75, 0xDE, +0x00, 0x24, 0x97, 0x68, +0x00, 0x7E, 0xDA, 0x4D, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, @@ -1071,31 +1093,113 @@ ADI_REG_TYPE Param_Data_IC_1[PARAM_SIZE_IC_1] = { 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x00, 0x0F, 0xB9, +0x00, 0x80, 0x00, 0x00, +0x00, 0x00, 0x09, 0x60, +0x00, 0x00, 0x00, 0xB6, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, 0x00, 0x7F, 0xC3, 0x65, 0x0F, 0x00, 0x79, 0x35, 0x00, 0x7F, 0xC3, 0x65, 0x00, 0xFF, 0x86, 0xAE, 0x0F, 0x80, 0x79, 0x19, +0x00, 0x7F, 0xE6, 0x6F, +0x0F, 0x01, 0xD7, 0xBF, +0x00, 0x7E, 0x47, 0xC2, +0x00, 0xFE, 0x28, 0x41, +0x0F, 0x81, 0xD1, 0xCF, +0x00, 0x80, 0x0B, 0x93, +0x0F, 0x06, 0x4A, 0x08, +0x00, 0x79, 0xF5, 0x34, +0x00, 0xF9, 0xB5, 0xF8, +0x0F, 0x85, 0xFF, 0x39, +0x00, 0x7F, 0x5D, 0x86, +0x0F, 0x14, 0xBB, 0x22, +0x00, 0x6E, 0x7D, 0xEA, +0x00, 0xEB, 0x44, 0xDE, +0x0F, 0x92, 0x24, 0x90, +0x00, 0x80, 0x52, 0x5D, +0x0F, 0x3C, 0xC4, 0x90, +0x00, 0x55, 0x01, 0xAB, +0x00, 0xC3, 0x3B, 0x70, +0x0F, 0xAA, 0xAB, 0xF8, +0x00, 0x82, 0x2B, 0x9A, +0x0F, 0x98, 0xC2, 0xB2, +0x00, 0x34, 0x93, 0x0C, +0x00, 0x67, 0x3D, 0x4E, +0x0F, 0xC9, 0x41, 0x5A, +0x00, 0x02, 0xC4, 0x78, +0x00, 0x05, 0x88, 0xEF, +0x00, 0x02, 0xC4, 0x78, +0x00, 0xC5, 0x84, 0xFE, +0xFF, 0xAF, 0x69, 0x23, +0x00, 0x65, 0x86, 0xF7, +0xFF, 0x34, 0xF2, 0x12, +0x00, 0x65, 0x86, 0xF7, +0x00, 0xC5, 0x84, 0xFE, +0xFF, 0xAF, 0x69, 0x23, +0x00, 0xA6, 0x66, 0x66, +0x00, 0x73, 0x33, 0x33, +0x00, 0x6D, 0x66, 0xD6, 0x00, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x80, 0x00, 0x00, +0x00, 0x75, 0x69, 0x4C, +0x00, 0x5A, 0x9D, 0xF8, +0x00, 0x45, 0xEF, 0xFF, +0x00, 0x35, 0xFA, 0x27, +0x00, 0x29, 0xA8, 0xBB, +0x00, 0x20, 0x26, 0xF3, +0x00, 0x06, 0x4A, 0x36, +0x00, 0x00, 0x01, 0x6C, +0x00, 0x00, 0x5D, 0xC0, +0x00, 0x08, 0x0D, 0x6A, +0x00, 0x02, 0x78, 0x8C, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -1103,6 +1207,52 @@ ADI_REG_TYPE Param_Data_IC_1[PARAM_SIZE_IC_1] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, +0x00, 0x01, 0x01, 0x5C, +0x00, 0x00, 0x01, 0x64, +0x00, 0x00, 0x02, 0xC8, +0x00, 0x00, 0x01, 0x64, +0x00, 0xFD, 0xA1, 0x53, +0x0F, 0x82, 0x59, 0x1D, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x28, 0xDA, 0x08, +0x00, 0x29, 0x53, 0x21, +0x00, 0x2A, 0xC6, 0xE7, +0x00, 0x2C, 0x47, 0xBE, +0x00, 0x2D, 0xD6, 0x1B, +0x00, 0x2F, 0x72, 0x77, +0x00, 0x31, 0x1D, 0x52, +0x00, 0x32, 0xD7, 0x2C, +0x00, 0x34, 0xA0, 0x8E, +0x00, 0x36, 0x7A, 0x02, +0x00, 0x00, 0x06, 0xD3, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, +0x00, 0x00, 0x4E, 0xB0, +0x00, 0x00, 0x01, 0xE0, +0x00, 0x00, 0x07, 0x1C, 0x0F, 0xFE, 0x2B, 0xE3, 0x00, 0x22, 0xBE, 0x2C, 0x0F, 0xEA, 0xAA, 0xAB, @@ -1933,156 +2083,6 @@ ADI_REG_TYPE Param_Data_IC_1[PARAM_SIZE_IC_1] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, }; diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h index f818e2b..1d16f2f 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h @@ -1,8 +1,8 @@ /* - * File: C:\Users\mikbi\Documents\Allegati\Desktop\DigiRadio\DigiRadioModificato\DigiRadio_IC_1_PARAM.h + * File: C:\Users\mikbi\Documents\Allegati\Desktop\Sigmastudio\DigiRadioFinale_IC_1_PARAM.h * - * Created: Friday, August 7, 2026 3:19:11 AM - * Description: DigiRadio:IC 1 parameter RAM definitions. + * Created: Tuesday, August 25, 2026 8:11:05 PM + * Description: DigiRadioFinale:IC 1 parameter RAM definitions. * * This software is distributed in the hope that it will be useful, * but is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR @@ -16,8 +16,8 @@ * * Copyright ©2026 Analog Devices, Inc. All rights reserved. */ -#ifndef __DIGIRADIO_IC_1_PARAM_H__ -#define __DIGIRADIO_IC_1_PARAM_H__ +#ifndef __DIGIRADIOFINALE_IC_1_PARAM_H__ +#define __DIGIRADIOFINALE_IC_1_PARAM_H__ /* Module Beep1 - Beep Sources*/ @@ -36,444 +36,1124 @@ #define VALUE_BEEP1_BEEP_FREQ SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00331636677280911) #define TYPE_BEEP1_BEEP_FREQ SIGMASTUDIOTYPE_FIXPOINT -/* Module Si4674 - Multiple Volume Control*/ -#define COUNT_SI4674 2 -#define DEVICE_SI4674 "IC1" -#define ADDR_SI4674 3 -#define FIXPT_SI4674 0x00800000 -#define VALUE_SI4674 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_SI4674 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_SI4674_1 4 -#define FIXPT_SI4674_1 0x00800000 -#define VALUE_SI4674_1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_SI4674_1 SIGMASTUDIOTYPE_FIXPOINT +/* Module DC1 - DC Input Entry*/ +#define COUNT_DC1 1 +#define DEVICE_DC1 "IC1" +#define ADDR_DC1 3 +#define FIXPT_DC1 0x00800000 +#define VALUE_DC1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_DC1 SIGMASTUDIOTYPE_FIXPOINT -/* Module ESP32 - Multiple Volume Control*/ -#define COUNT_ESP32 2 -#define DEVICE_ESP32 "IC1" -#define ADDR_ESP32 5 -#define FIXPT_ESP32 0x00800000 -#define VALUE_ESP32 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_ESP32 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_ESP32_1 6 -#define FIXPT_ESP32_1 0x00800000 -#define VALUE_ESP32_1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_ESP32_1 SIGMASTUDIOTYPE_FIXPOINT +/* Module DCB1 - DC Blocking*/ +#define COUNT_DCB1 1 +#define DEVICE_DCB1 "IC1" +#define ADDR_DCB1_POLE 4 +#define FIXPT_DCB1_POLE 0x007FFCB9 +#define VALUE_DCB1_POLE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.9999) +#define TYPE_DCB1_POLE SIGMASTUDIOTYPE_FIXPOINT -/* Module Single 1 - Single Volume*/ -#define COUNT_SINGLE1 1 -#define DEVICE_SINGLE1 "IC1" -#define ADDR_SINGLE1 7 -#define FIXPT_SINGLE1 0x00800000 -#define VALUE_SINGLE1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_SINGLE1 SIGMASTUDIOTYPE_FIXPOINT +/* Module DCB2 - DC Blocking*/ +#define COUNT_DCB2 1 +#define DEVICE_DCB2 "IC1" +#define ADDR_DCB2_POLE 5 +#define FIXPT_DCB2_POLE 0x007FFCB9 +#define VALUE_DCB2_POLE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.9999) +#define TYPE_DCB2_POLE SIGMASTUDIOTYPE_FIXPOINT + +/* Module DCB4 - DC Blocking*/ +#define COUNT_DCB4 1 +#define DEVICE_DCB4 "IC1" +#define ADDR_DCB4_POLE 6 +#define FIXPT_DCB4_POLE 0x007FFCB9 +#define VALUE_DCB4_POLE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.9999) +#define TYPE_DCB4_POLE SIGMASTUDIOTYPE_FIXPOINT + +/* Module DCB3 - DC Blocking*/ +#define COUNT_DCB3 1 +#define DEVICE_DCB3 "IC1" +#define ADDR_DCB3_POLE 7 +#define FIXPT_DCB3_POLE 0x007FFCB9 +#define VALUE_DCB3_POLE SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.9999) +#define TYPE_DCB3_POLE SIGMASTUDIOTYPE_FIXPOINT /* Module S Splitter1 - Single Control Splitter*/ #define COUNT_SSPLITTER1 1 #define DEVICE_SSPLITTER1 "IC1" #define ADDR_SSPLITTER1 8 -#define FIXPT_SSPLITTER1 0x00800000 -#define VALUE_SSPLITTER1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define FIXPT_SSPLITTER1 0x0141857E +#define VALUE_SSPLITTER1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(2.51188643150958) #define TYPE_SSPLITTER1 SIGMASTUDIOTYPE_FIXPOINT -/* Module St Mixer1 - Stereo Mixer*/ -#define COUNT_STMIXER1 3 -#define DEVICE_STMIXER1 "IC1" -#define ADDR_STMIXER1_ST0_VOLUME 9 -#define FIXPT_STMIXER1_ST0_VOLUME 0x00800000 -#define VALUE_STMIXER1_ST0_VOLUME SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_STMIXER1_ST0_VOLUME SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_STMIXER1_ST1_VOLUME 10 -#define FIXPT_STMIXER1_ST1_VOLUME 0x00800000 -#define VALUE_STMIXER1_ST1_VOLUME SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_STMIXER1_ST1_VOLUME SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_STMIXER1_ST2_VOLUME 11 -#define FIXPT_STMIXER1_ST2_VOLUME 0x00800000 -#define VALUE_STMIXER1_ST2_VOLUME SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_STMIXER1_ST2_VOLUME SIGMASTUDIOTYPE_FIXPOINT +/* Module Compressor1 - RMS (gain)*/ +#define COUNT_COMPRESSOR1 38 +#define DEVICE_COMPRESSOR1 "IC1" +#define ADDR_COMPRESSOR1_0 9 +#define FIXPT_COMPRESSOR1_0 0x00090FCB +#define VALUE_COMPRESSOR1_0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0707945784384138) +#define TYPE_COMPRESSOR1_0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_1 10 +#define FIXPT_COMPRESSOR1_1 0x00090FCB +#define VALUE_COMPRESSOR1_1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0707945784384138) +#define TYPE_COMPRESSOR1_1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_2 11 +#define FIXPT_COMPRESSOR1_2 0x00066A4A +#define VALUE_COMPRESSOR1_2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0501187233627272) +#define TYPE_COMPRESSOR1_2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_3 12 +#define FIXPT_COMPRESSOR1_3 0x00048AA7 +#define VALUE_COMPRESSOR1_3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0354813389233576) +#define TYPE_COMPRESSOR1_3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_4 13 +#define FIXPT_COMPRESSOR1_4 0x00033718 +#define VALUE_COMPRESSOR1_4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0251188643150958) +#define TYPE_COMPRESSOR1_4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_5 14 +#define FIXPT_COMPRESSOR1_5 0x000246B4 +#define VALUE_COMPRESSOR1_5 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0177827941003892) +#define TYPE_COMPRESSOR1_5 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_6 15 +#define FIXPT_COMPRESSOR1_6 0x00019C86 +#define VALUE_COMPRESSOR1_6 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0125892541179417) +#define TYPE_COMPRESSOR1_6 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_7 16 +#define FIXPT_COMPRESSOR1_7 0x0001240B +#define VALUE_COMPRESSOR1_7 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00891250938133746) +#define TYPE_COMPRESSOR1_7 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_8 17 +#define FIXPT_COMPRESSOR1_8 0x0000CEC0 +#define VALUE_COMPRESSOR1_8 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00630957344480193) +#define TYPE_COMPRESSOR1_8 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_9 18 +#define FIXPT_COMPRESSOR1_9 0x0000925E +#define VALUE_COMPRESSOR1_9 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00446683592150963) +#define TYPE_COMPRESSOR1_9 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_10 19 +#define FIXPT_COMPRESSOR1_10 0x0000679F +#define VALUE_COMPRESSOR1_10 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00316227766016838) +#define TYPE_COMPRESSOR1_10 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_11 20 +#define FIXPT_COMPRESSOR1_11 0x0000495B +#define VALUE_COMPRESSOR1_11 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00223872118189122) +#define TYPE_COMPRESSOR1_11 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_12 21 +#define FIXPT_COMPRESSOR1_12 0x0000DAD7 +#define VALUE_COMPRESSOR1_12 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0066784843631956) +#define TYPE_COMPRESSOR1_12 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_13 22 +#define FIXPT_COMPRESSOR1_13 0x0002FD85 +#define VALUE_COMPRESSOR1_13 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.023361914765363) +#define TYPE_COMPRESSOR1_13 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_14 23 +#define FIXPT_COMPRESSOR1_14 0x000A75DD +#define VALUE_COMPRESSOR1_14 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0817219943662389) +#define TYPE_COMPRESSOR1_14 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_15 24 +#define FIXPT_COMPRESSOR1_15 0x00249768 +#define VALUE_COMPRESSOR1_15 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.285870590243626) +#define TYPE_COMPRESSOR1_15 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_16 25 +#define FIXPT_COMPRESSOR1_16 0x007EDA4C +#define VALUE_COMPRESSOR1_16 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.991036968711138) +#define TYPE_COMPRESSOR1_16 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_17 26 +#define FIXPT_COMPRESSOR1_17 0x00800000 +#define VALUE_COMPRESSOR1_17 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_17 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_18 27 +#define FIXPT_COMPRESSOR1_18 0x00800000 +#define VALUE_COMPRESSOR1_18 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_18 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_19 28 +#define FIXPT_COMPRESSOR1_19 0x00800000 +#define VALUE_COMPRESSOR1_19 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_19 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_20 29 +#define FIXPT_COMPRESSOR1_20 0x00800000 +#define VALUE_COMPRESSOR1_20 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_20 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_21 30 +#define FIXPT_COMPRESSOR1_21 0x00800000 +#define VALUE_COMPRESSOR1_21 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_21 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_22 31 +#define FIXPT_COMPRESSOR1_22 0x00800000 +#define VALUE_COMPRESSOR1_22 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_22 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_23 32 +#define FIXPT_COMPRESSOR1_23 0x00800000 +#define VALUE_COMPRESSOR1_23 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_23 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_24 33 +#define FIXPT_COMPRESSOR1_24 0x00800000 +#define VALUE_COMPRESSOR1_24 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_24 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_25 34 +#define FIXPT_COMPRESSOR1_25 0x00800000 +#define VALUE_COMPRESSOR1_25 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_25 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_26 35 +#define FIXPT_COMPRESSOR1_26 0x00800000 +#define VALUE_COMPRESSOR1_26 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_26 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_27 36 +#define FIXPT_COMPRESSOR1_27 0x00800000 +#define VALUE_COMPRESSOR1_27 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_27 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_28 37 +#define FIXPT_COMPRESSOR1_28 0x00800000 +#define VALUE_COMPRESSOR1_28 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_28 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_29 38 +#define FIXPT_COMPRESSOR1_29 0x00800000 +#define VALUE_COMPRESSOR1_29 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_29 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_30 39 +#define FIXPT_COMPRESSOR1_30 0x00800000 +#define VALUE_COMPRESSOR1_30 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_30 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_31 40 +#define FIXPT_COMPRESSOR1_31 0x00800000 +#define VALUE_COMPRESSOR1_31 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_31 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_32 41 +#define FIXPT_COMPRESSOR1_32 0x00800000 +#define VALUE_COMPRESSOR1_32 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_32 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_33 42 +#define FIXPT_COMPRESSOR1_33 0x00800000 +#define VALUE_COMPRESSOR1_33 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_33 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_RMS 43 +#define FIXPT_COMPRESSOR1_RMS 0x00000FB9 +#define VALUE_COMPRESSOR1_RMS SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000479820304660095) +#define TYPE_COMPRESSOR1_RMS SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_POST_GAIN 44 +#define FIXPT_COMPRESSOR1_POST_GAIN 0x00800000 +#define VALUE_COMPRESSOR1_POST_GAIN SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_COMPRESSOR1_POST_GAIN SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_COMPRESSOR1_HOLD 45 +#define FIXPT_COMPRESSOR1_HOLD 0x00000960 +#define VALUE_COMPRESSOR1_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(2400) +#define TYPE_COMPRESSOR1_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_COMPRESSOR1_DECAY 46 +#define FIXPT_COMPRESSOR1_DECAY 0x000000B6 +#define VALUE_COMPRESSOR1_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(2.17013888888889E-05) +#define TYPE_COMPRESSOR1_DECAY SIGMASTUDIOTYPE_FIXPOINT + +/* Module 1 X RTA3 - Single Level Detector*/ +#define COUNT_1XRTA3 5 +#define DEVICE_1XRTA3 "IC1" +#define ADDR_1XRTA3_TCONST 47 +#define FIXPT_1XRTA3_TCONST 0x00004EB0 +#define VALUE_1XRTA3_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA3_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA3_HOLD 48 +#define FIXPT_1XRTA3_HOLD 0x000001E0 +#define VALUE_1XRTA3_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA3_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA3_DECAY 49 +#define FIXPT_1XRTA3_DECAY 0x0000071C +#define VALUE_1XRTA3_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA3_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA3 2074 +#define VALUES_1XRTA3 SIGMASTUDIOTYPE_SPECIAL(0x026E) +#define TYPE_1XRTA3 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA3 2074 +#define VALUE_1XRTA3 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA3 SIGMASTUDIOTYPE_10_14 + +/* Module 1 X RTA4 - Single Level Detector*/ +#define COUNT_1XRTA4 5 +#define DEVICE_1XRTA4 "IC1" +#define ADDR_1XRTA4_TCONST 50 +#define FIXPT_1XRTA4_TCONST 0x00004EB0 +#define VALUE_1XRTA4_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA4_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA4_HOLD 51 +#define FIXPT_1XRTA4_HOLD 0x000001E0 +#define VALUE_1XRTA4_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA4_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA4_DECAY 52 +#define FIXPT_1XRTA4_DECAY 0x0000071C +#define VALUE_1XRTA4_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA4_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA4 2074 +#define VALUES_1XRTA4 SIGMASTUDIOTYPE_SPECIAL(0x02F2) +#define TYPE_1XRTA4 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA4 2074 +#define VALUE_1XRTA4 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA4 SIGMASTUDIOTYPE_10_14 + +/* Module 1 X RTA1 - Single Level Detector*/ +#define COUNT_1XRTA1 5 +#define DEVICE_1XRTA1 "IC1" +#define ADDR_1XRTA1_TCONST 53 +#define FIXPT_1XRTA1_TCONST 0x00004EB0 +#define VALUE_1XRTA1_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA1_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA1_HOLD 54 +#define FIXPT_1XRTA1_HOLD 0x000001E0 +#define VALUE_1XRTA1_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA1_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA1_DECAY 55 +#define FIXPT_1XRTA1_DECAY 0x0000071C +#define VALUE_1XRTA1_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA1_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA1 2074 +#define VALUES_1XRTA1 SIGMASTUDIOTYPE_SPECIAL(0x0376) +#define TYPE_1XRTA1 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA1 2074 +#define VALUE_1XRTA1 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA1 SIGMASTUDIOTYPE_10_14 + +/* Module 1 X RTA2 - Single Level Detector*/ +#define COUNT_1XRTA2 5 +#define DEVICE_1XRTA2 "IC1" +#define ADDR_1XRTA2_TCONST 56 +#define FIXPT_1XRTA2_TCONST 0x00004EB0 +#define VALUE_1XRTA2_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA2_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA2_HOLD 57 +#define FIXPT_1XRTA2_HOLD 0x000001E0 +#define VALUE_1XRTA2_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA2_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA2_DECAY 58 +#define FIXPT_1XRTA2_DECAY 0x0000071C +#define VALUE_1XRTA2_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA2_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA2 2074 +#define VALUES_1XRTA2 SIGMASTUDIOTYPE_SPECIAL(0x03FA) +#define TYPE_1XRTA2 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA2 2074 +#define VALUE_1XRTA2 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA2 SIGMASTUDIOTYPE_10_14 /* Module Param EQ1 - Parametric EQ*/ #define COUNT_PARAMEQ1 60 #define DEVICE_PARAMEQ1 "IC1" -#define ADDR_PARAMEQ1_ST0_B0 12 +#define ADDR_PARAMEQ1_ST0_B0 59 #define FIXPT_PARAMEQ1_ST0_B0 0x007FC365 #define VALUE_PARAMEQ1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.998150511190452) #define TYPE_PARAMEQ1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_B0 12 +#define ADDR_PARAMEQ1_ST0_B0 59 #define FIXPT_PARAMEQ1_ST0_B0 0x007FC365 #define VALUE_PARAMEQ1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.998150511190452) #define TYPE_PARAMEQ1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_B1 13 +#define ADDR_PARAMEQ1_ST0_B1 60 #define FIXPT_PARAMEQ1_ST0_B1 0xFF007936 #define VALUE_PARAMEQ1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.9963010223809) #define TYPE_PARAMEQ1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_B1 13 +#define ADDR_PARAMEQ1_ST0_B1 60 #define FIXPT_PARAMEQ1_ST0_B1 0xFF007936 #define VALUE_PARAMEQ1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.9963010223809) #define TYPE_PARAMEQ1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_B2 14 +#define ADDR_PARAMEQ1_ST0_B2 61 #define FIXPT_PARAMEQ1_ST0_B2 0x007FC365 #define VALUE_PARAMEQ1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.998150511190452) #define TYPE_PARAMEQ1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_B2 14 +#define ADDR_PARAMEQ1_ST0_B2 61 #define FIXPT_PARAMEQ1_ST0_B2 0x007FC365 #define VALUE_PARAMEQ1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.998150511190452) #define TYPE_PARAMEQ1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_A0 15 +#define ADDR_PARAMEQ1_ST0_A0 62 #define FIXPT_PARAMEQ1_ST0_A0 0x00FF86AE #define VALUE_PARAMEQ1_ST0_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.99629760176912) #define TYPE_PARAMEQ1_ST0_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_A0 15 +#define ADDR_PARAMEQ1_ST0_A0 62 #define FIXPT_PARAMEQ1_ST0_A0 0x00FF86AE #define VALUE_PARAMEQ1_ST0_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.99629760176912) #define TYPE_PARAMEQ1_ST0_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_A1 16 +#define ADDR_PARAMEQ1_ST0_A1 63 #define FIXPT_PARAMEQ1_ST0_A1 0xFF807919 #define VALUE_PARAMEQ1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.996304442992686) #define TYPE_PARAMEQ1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST0_A1 16 +#define ADDR_PARAMEQ1_ST0_A1 63 #define FIXPT_PARAMEQ1_ST0_A1 0xFF807919 #define VALUE_PARAMEQ1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.996304442992686) #define TYPE_PARAMEQ1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B0 17 -#define FIXPT_PARAMEQ1_ST1_B0 0x00800000 -#define VALUE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST1_B0 64 +#define FIXPT_PARAMEQ1_ST1_B0 0x007FE66E +#define VALUE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.999219758597071) #define TYPE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B0 17 -#define FIXPT_PARAMEQ1_ST1_B0 0x00800000 -#define VALUE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST1_B0 64 +#define FIXPT_PARAMEQ1_ST1_B0 0x007FE66E +#define VALUE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.999219758597071) #define TYPE_PARAMEQ1_ST1_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B1 18 -#define FIXPT_PARAMEQ1_ST1_B1 0x00000000 -#define VALUE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_B1 65 +#define FIXPT_PARAMEQ1_ST1_B1 0xFF01D7BF +#define VALUE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.98560347007805) #define TYPE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B1 18 -#define FIXPT_PARAMEQ1_ST1_B1 0x00000000 -#define VALUE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_B1 65 +#define FIXPT_PARAMEQ1_ST1_B1 0xFF01D7BF +#define VALUE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.98560347007805) #define TYPE_PARAMEQ1_ST1_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B2 19 -#define FIXPT_PARAMEQ1_ST1_B2 0x00000000 -#define VALUE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_B2 66 +#define FIXPT_PARAMEQ1_ST1_B2 0x007E47C2 +#define VALUE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.986564900639355) #define TYPE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_B2 19 -#define FIXPT_PARAMEQ1_ST1_B2 0x00000000 -#define VALUE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_B2 66 +#define FIXPT_PARAMEQ1_ST1_B2 0x007E47C2 +#define VALUE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.986564900639355) #define TYPE_PARAMEQ1_ST1_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_A0 20 -#define FIXPT_PARAMEQ1_ST1_A0 0x00000000 -#define VALUE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_A0 67 +#define FIXPT_PARAMEQ1_ST1_A0 0x00FE2841 +#define VALUE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98560347007805) #define TYPE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_A0 20 -#define FIXPT_PARAMEQ1_ST1_A0 0x00000000 -#define VALUE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_A0 67 +#define FIXPT_PARAMEQ1_ST1_A0 0x00FE2841 +#define VALUE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98560347007805) #define TYPE_PARAMEQ1_ST1_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_A1 21 -#define FIXPT_PARAMEQ1_ST1_A1 0x00000000 -#define VALUE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_A1 68 +#define FIXPT_PARAMEQ1_ST1_A1 0xFF81D1CF +#define VALUE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.985784659236426) #define TYPE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST1_A1 21 -#define FIXPT_PARAMEQ1_ST1_A1 0x00000000 -#define VALUE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST1_A1 68 +#define FIXPT_PARAMEQ1_ST1_A1 0xFF81D1CF +#define VALUE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.985784659236426) #define TYPE_PARAMEQ1_ST1_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B0 22 -#define FIXPT_PARAMEQ1_ST2_B0 0x00800000 -#define VALUE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST2_B0 69 +#define FIXPT_PARAMEQ1_ST2_B0 0x00800B93 +#define VALUE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.00035324391255) #define TYPE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B0 22 -#define FIXPT_PARAMEQ1_ST2_B0 0x00800000 -#define VALUE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST2_B0 69 +#define FIXPT_PARAMEQ1_ST2_B0 0x00800B93 +#define VALUE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.00035324391255) #define TYPE_PARAMEQ1_ST2_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B1 23 -#define FIXPT_PARAMEQ1_ST2_B1 0x00000000 -#define VALUE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_B1 70 +#define FIXPT_PARAMEQ1_ST2_B1 0xFF064A08 +#define VALUE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.95086578127628) #define TYPE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B1 23 -#define FIXPT_PARAMEQ1_ST2_B1 0x00000000 -#define VALUE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_B1 70 +#define FIXPT_PARAMEQ1_ST2_B1 0xFF064A08 +#define VALUE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.95086578127628) #define TYPE_PARAMEQ1_ST2_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B2 24 -#define FIXPT_PARAMEQ1_ST2_B2 0x00000000 -#define VALUE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_B2 71 +#define FIXPT_PARAMEQ1_ST2_B2 0x0079F533 +#define VALUE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.952795462852717) #define TYPE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_B2 24 -#define FIXPT_PARAMEQ1_ST2_B2 0x00000000 -#define VALUE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_B2 71 +#define FIXPT_PARAMEQ1_ST2_B2 0x0079F533 +#define VALUE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.952795462852717) #define TYPE_PARAMEQ1_ST2_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_A0 25 -#define FIXPT_PARAMEQ1_ST2_A0 0x00000000 -#define VALUE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_A0 72 +#define FIXPT_PARAMEQ1_ST2_A0 0x00F9B5F8 +#define VALUE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.95086578127628) #define TYPE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_A0 25 -#define FIXPT_PARAMEQ1_ST2_A0 0x00000000 -#define VALUE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_A0 72 +#define FIXPT_PARAMEQ1_ST2_A0 0x00F9B5F8 +#define VALUE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.95086578127628) #define TYPE_PARAMEQ1_ST2_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_A1 26 -#define FIXPT_PARAMEQ1_ST2_A1 0x00000000 -#define VALUE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_A1 73 +#define FIXPT_PARAMEQ1_ST2_A1 0xFF85FF3A +#define VALUE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.953148706765263) #define TYPE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST2_A1 26 -#define FIXPT_PARAMEQ1_ST2_A1 0x00000000 -#define VALUE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST2_A1 73 +#define FIXPT_PARAMEQ1_ST2_A1 0xFF85FF3A +#define VALUE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.953148706765263) #define TYPE_PARAMEQ1_ST2_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B0 27 -#define FIXPT_PARAMEQ1_ST3_B0 0x00800000 -#define VALUE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST3_B0 74 +#define FIXPT_PARAMEQ1_ST3_B0 0x007F5D86 +#define VALUE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.995041660660568) #define TYPE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B0 27 -#define FIXPT_PARAMEQ1_ST3_B0 0x00800000 -#define VALUE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST3_B0 74 +#define FIXPT_PARAMEQ1_ST3_B0 0x007F5D86 +#define VALUE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.995041660660568) #define TYPE_PARAMEQ1_ST3_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B1 28 -#define FIXPT_PARAMEQ1_ST3_B1 0x00000000 -#define VALUE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_B1 75 +#define FIXPT_PARAMEQ1_ST3_B1 0xFF14BB23 +#define VALUE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.83803915762905) #define TYPE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B1 28 -#define FIXPT_PARAMEQ1_ST3_B1 0x00000000 -#define VALUE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_B1 75 +#define FIXPT_PARAMEQ1_ST3_B1 0xFF14BB23 +#define VALUE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.83803915762905) #define TYPE_PARAMEQ1_ST3_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B2 29 -#define FIXPT_PARAMEQ1_ST3_B2 0x00000000 -#define VALUE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_B2 76 +#define FIXPT_PARAMEQ1_ST3_B2 0x006E7DE9 +#define VALUE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.863217563504857) #define TYPE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_B2 29 -#define FIXPT_PARAMEQ1_ST3_B2 0x00000000 -#define VALUE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_B2 76 +#define FIXPT_PARAMEQ1_ST3_B2 0x006E7DE9 +#define VALUE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.863217563504857) #define TYPE_PARAMEQ1_ST3_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_A0 30 -#define FIXPT_PARAMEQ1_ST3_A0 0x00000000 -#define VALUE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_A0 77 +#define FIXPT_PARAMEQ1_ST3_A0 0x00EB44DD +#define VALUE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.83803915762905) #define TYPE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_A0 30 -#define FIXPT_PARAMEQ1_ST3_A0 0x00000000 -#define VALUE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_A0 77 +#define FIXPT_PARAMEQ1_ST3_A0 0x00EB44DD +#define VALUE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.83803915762905) #define TYPE_PARAMEQ1_ST3_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_A1 31 -#define FIXPT_PARAMEQ1_ST3_A1 0x00000000 -#define VALUE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_A1 78 +#define FIXPT_PARAMEQ1_ST3_A1 0xFF922490 +#define VALUE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.858259224165424) #define TYPE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST3_A1 31 -#define FIXPT_PARAMEQ1_ST3_A1 0x00000000 -#define VALUE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST3_A1 78 +#define FIXPT_PARAMEQ1_ST3_A1 0xFF922490 +#define VALUE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.858259224165424) #define TYPE_PARAMEQ1_ST3_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B0 32 -#define FIXPT_PARAMEQ1_ST4_B0 0x00800000 -#define VALUE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST4_B0 79 +#define FIXPT_PARAMEQ1_ST4_B0 0x0080525C +#define VALUE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.0025135270275) #define TYPE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B0 32 -#define FIXPT_PARAMEQ1_ST4_B0 0x00800000 -#define VALUE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST4_B0 79 +#define FIXPT_PARAMEQ1_ST4_B0 0x0080525C +#define VALUE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.0025135270275) #define TYPE_PARAMEQ1_ST4_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B1 33 -#define FIXPT_PARAMEQ1_ST4_B1 0x00000000 -#define VALUE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_B1 80 +#define FIXPT_PARAMEQ1_ST4_B1 0xFF3CC491 +#define VALUE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.52525133650548) #define TYPE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B1 33 -#define FIXPT_PARAMEQ1_ST4_B1 0x00000000 -#define VALUE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_B1 80 +#define FIXPT_PARAMEQ1_ST4_B1 0xFF3CC491 +#define VALUE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.52525133650548) #define TYPE_PARAMEQ1_ST4_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B2 34 -#define FIXPT_PARAMEQ1_ST4_B2 0x00000000 -#define VALUE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_B2 81 +#define FIXPT_PARAMEQ1_ST4_B2 0x005501AB +#define VALUE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.664113447602641) #define TYPE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_B2 34 -#define FIXPT_PARAMEQ1_ST4_B2 0x00000000 -#define VALUE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_B2 81 +#define FIXPT_PARAMEQ1_ST4_B2 0x005501AB +#define VALUE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.664113447602641) #define TYPE_PARAMEQ1_ST4_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_A0 35 -#define FIXPT_PARAMEQ1_ST4_A0 0x00000000 -#define VALUE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_A0 82 +#define FIXPT_PARAMEQ1_ST4_A0 0x00C33B6F +#define VALUE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.52525133650548) #define TYPE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_A0 35 -#define FIXPT_PARAMEQ1_ST4_A0 0x00000000 -#define VALUE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_A0 82 +#define FIXPT_PARAMEQ1_ST4_A0 0x00C33B6F +#define VALUE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.52525133650548) #define TYPE_PARAMEQ1_ST4_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_A1 36 -#define FIXPT_PARAMEQ1_ST4_A1 0x00000000 -#define VALUE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_A1 83 +#define FIXPT_PARAMEQ1_ST4_A1 0xFFAAABF8 +#define VALUE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.666626974630141) #define TYPE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST4_A1 36 -#define FIXPT_PARAMEQ1_ST4_A1 0x00000000 -#define VALUE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST4_A1 83 +#define FIXPT_PARAMEQ1_ST4_A1 0xFFAAABF8 +#define VALUE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.666626974630141) #define TYPE_PARAMEQ1_ST4_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B0 37 -#define FIXPT_PARAMEQ1_ST5_B0 0x00800000 -#define VALUE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST5_B0 84 +#define FIXPT_PARAMEQ1_ST5_B0 0x00822B9A +#define VALUE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.0169556566183) #define TYPE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B0 37 -#define FIXPT_PARAMEQ1_ST5_B0 0x00800000 -#define VALUE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define ADDR_PARAMEQ1_ST5_B0 84 +#define FIXPT_PARAMEQ1_ST5_B0 0x00822B9A +#define VALUE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.0169556566183) #define TYPE_PARAMEQ1_ST5_B0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B1 38 -#define FIXPT_PARAMEQ1_ST5_B1 0x00000000 -#define VALUE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_B1 85 +#define FIXPT_PARAMEQ1_ST5_B1 0xFF98C2B2 +#define VALUE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.806558395910749) #define TYPE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B1 38 -#define FIXPT_PARAMEQ1_ST5_B1 0x00000000 -#define VALUE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_B1 85 +#define FIXPT_PARAMEQ1_ST5_B1 0xFF98C2B2 +#define VALUE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.806558395910749) #define TYPE_PARAMEQ1_ST5_B1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B2 39 -#define FIXPT_PARAMEQ1_ST5_B2 0x00000000 -#define VALUE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_B2 86 +#define FIXPT_PARAMEQ1_ST5_B2 0x0034930B +#define VALUE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.410737486131021) #define TYPE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_B2 39 -#define FIXPT_PARAMEQ1_ST5_B2 0x00000000 -#define VALUE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_B2 86 +#define FIXPT_PARAMEQ1_ST5_B2 0x0034930B +#define VALUE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.410737486131021) #define TYPE_PARAMEQ1_ST5_B2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_A0 40 -#define FIXPT_PARAMEQ1_ST5_A0 0x00000000 -#define VALUE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_A0 87 +#define FIXPT_PARAMEQ1_ST5_A0 0x00673D4E +#define VALUE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.806558395910749) #define TYPE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_A0 40 -#define FIXPT_PARAMEQ1_ST5_A0 0x00000000 -#define VALUE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_A0 87 +#define FIXPT_PARAMEQ1_ST5_A0 0x00673D4E +#define VALUE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.806558395910749) #define TYPE_PARAMEQ1_ST5_A0 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_A1 41 -#define FIXPT_PARAMEQ1_ST5_A1 0x00000000 -#define VALUE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_A1 88 +#define FIXPT_PARAMEQ1_ST5_A1 0xFFC9415A +#define VALUE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.427693142749325) #define TYPE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_PARAMEQ1_ST5_A1 41 -#define FIXPT_PARAMEQ1_ST5_A1 0x00000000 -#define VALUE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define ADDR_PARAMEQ1_ST5_A1 88 +#define FIXPT_PARAMEQ1_ST5_A1 0xFFC9415A +#define VALUE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.427693142749325) #define TYPE_PARAMEQ1_ST5_A1 SIGMASTUDIOTYPE_FIXPOINT +/* Module SPhat1 - SuperPhat Spatializer*/ +#define COUNT_SPHAT1 52 +#define DEVICE_SPHAT1 "IC1" +#define ADDR_SPHAT1_B0LO0 89 +#define FIXPT_SPHAT1_B0LO0 0x0002C477 +#define VALUE_SPHAT1_B0LO0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.021620718376497) +#define TYPE_SPHAT1_B0LO0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO1 90 +#define FIXPT_SPHAT1_B0LO1 0x000588EF +#define VALUE_SPHAT1_B0LO1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.043241436752994) +#define TYPE_SPHAT1_B0LO1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO2 91 +#define FIXPT_SPHAT1_B0LO2 0x0002C477 +#define VALUE_SPHAT1_B0LO2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.021620718376497) +#define TYPE_SPHAT1_B0LO2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO3 92 +#define FIXPT_SPHAT1_B0LO3 0x00C584FE +#define VALUE_SPHAT1_B0LO3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.54312113123739) +#define TYPE_SPHAT1_B0LO3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO4 93 +#define FIXPT_SPHAT1_B0LO4 0xFFAF6923 +#define VALUE_SPHAT1_B0LO4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.629604004743374) +#define TYPE_SPHAT1_B0LO4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO5 94 +#define FIXPT_SPHAT1_B0LO5 0x006586F6 +#define VALUE_SPHAT1_B0LO5 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.79318128399519) +#define TYPE_SPHAT1_B0LO5 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO6 95 +#define FIXPT_SPHAT1_B0LO6 0xFF34F213 +#define VALUE_SPHAT1_B0LO6 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-1.58636256799038) +#define TYPE_SPHAT1_B0LO6 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO7 96 +#define FIXPT_SPHAT1_B0LO7 0x006586F6 +#define VALUE_SPHAT1_B0LO7 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.79318128399519) +#define TYPE_SPHAT1_B0LO7 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO8 97 +#define FIXPT_SPHAT1_B0LO8 0x00C584FE +#define VALUE_SPHAT1_B0LO8 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.54312113123739) +#define TYPE_SPHAT1_B0LO8 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_B0LO9 98 +#define FIXPT_SPHAT1_B0LO9 0xFFAF6923 +#define VALUE_SPHAT1_B0LO9 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.629604004743374) +#define TYPE_SPHAT1_B0LO9 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_GAINHI 99 +#define FIXPT_SPHAT1_GAINHI 0x00A66666 +#define VALUE_SPHAT1_GAINHI SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.3) +#define TYPE_SPHAT1_GAINHI SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_GAINLO 100 +#define FIXPT_SPHAT1_GAINLO 0x00733333 +#define VALUE_SPHAT1_GAINLO SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.9000000000004) +#define TYPE_SPHAT1_GAINLO SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_GAININV 101 +#define FIXPT_SPHAT1_GAININV 0x006D66D6 +#define VALUE_SPHAT1_GAININV SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.854700854700475) +#define TYPE_SPHAT1_GAININV SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE0 102 +#define FIXPT_SPHAT1_COMP_BASE0 0x00800000 +#define VALUE_SPHAT1_COMP_BASE0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE1 103 +#define FIXPT_SPHAT1_COMP_BASE1 0x00800000 +#define VALUE_SPHAT1_COMP_BASE1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE2 104 +#define FIXPT_SPHAT1_COMP_BASE2 0x00800000 +#define VALUE_SPHAT1_COMP_BASE2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE3 105 +#define FIXPT_SPHAT1_COMP_BASE3 0x00800000 +#define VALUE_SPHAT1_COMP_BASE3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE4 106 +#define FIXPT_SPHAT1_COMP_BASE4 0x00800000 +#define VALUE_SPHAT1_COMP_BASE4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE5 107 +#define FIXPT_SPHAT1_COMP_BASE5 0x00800000 +#define VALUE_SPHAT1_COMP_BASE5 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE5 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE6 108 +#define FIXPT_SPHAT1_COMP_BASE6 0x00800000 +#define VALUE_SPHAT1_COMP_BASE6 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE6 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE7 109 +#define FIXPT_SPHAT1_COMP_BASE7 0x00800000 +#define VALUE_SPHAT1_COMP_BASE7 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE7 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE8 110 +#define FIXPT_SPHAT1_COMP_BASE8 0x00800000 +#define VALUE_SPHAT1_COMP_BASE8 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE8 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE9 111 +#define FIXPT_SPHAT1_COMP_BASE9 0x00800000 +#define VALUE_SPHAT1_COMP_BASE9 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE9 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE10 112 +#define FIXPT_SPHAT1_COMP_BASE10 0x00800000 +#define VALUE_SPHAT1_COMP_BASE10 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE10 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE11 113 +#define FIXPT_SPHAT1_COMP_BASE11 0x00800000 +#define VALUE_SPHAT1_COMP_BASE11 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE11 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE12 114 +#define FIXPT_SPHAT1_COMP_BASE12 0x00800000 +#define VALUE_SPHAT1_COMP_BASE12 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE12 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE13 115 +#define FIXPT_SPHAT1_COMP_BASE13 0x00800000 +#define VALUE_SPHAT1_COMP_BASE13 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE13 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE14 116 +#define FIXPT_SPHAT1_COMP_BASE14 0x00800000 +#define VALUE_SPHAT1_COMP_BASE14 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE14 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE15 117 +#define FIXPT_SPHAT1_COMP_BASE15 0x00800000 +#define VALUE_SPHAT1_COMP_BASE15 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE15 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE16 118 +#define FIXPT_SPHAT1_COMP_BASE16 0x00800000 +#define VALUE_SPHAT1_COMP_BASE16 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE16 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE17 119 +#define FIXPT_SPHAT1_COMP_BASE17 0x00800000 +#define VALUE_SPHAT1_COMP_BASE17 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE17 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE18 120 +#define FIXPT_SPHAT1_COMP_BASE18 0x00800000 +#define VALUE_SPHAT1_COMP_BASE18 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE18 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE19 121 +#define FIXPT_SPHAT1_COMP_BASE19 0x00800000 +#define VALUE_SPHAT1_COMP_BASE19 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE19 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE20 122 +#define FIXPT_SPHAT1_COMP_BASE20 0x00800000 +#define VALUE_SPHAT1_COMP_BASE20 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE20 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE21 123 +#define FIXPT_SPHAT1_COMP_BASE21 0x00800000 +#define VALUE_SPHAT1_COMP_BASE21 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE21 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE22 124 +#define FIXPT_SPHAT1_COMP_BASE22 0x00800000 +#define VALUE_SPHAT1_COMP_BASE22 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE22 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE23 125 +#define FIXPT_SPHAT1_COMP_BASE23 0x00800000 +#define VALUE_SPHAT1_COMP_BASE23 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE23 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE24 126 +#define FIXPT_SPHAT1_COMP_BASE24 0x00800000 +#define VALUE_SPHAT1_COMP_BASE24 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE24 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE25 127 +#define FIXPT_SPHAT1_COMP_BASE25 0x00800000 +#define VALUE_SPHAT1_COMP_BASE25 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE25 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE26 128 +#define FIXPT_SPHAT1_COMP_BASE26 0x00800000 +#define VALUE_SPHAT1_COMP_BASE26 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE26 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE27 129 +#define FIXPT_SPHAT1_COMP_BASE27 0x00800000 +#define VALUE_SPHAT1_COMP_BASE27 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_SPHAT1_COMP_BASE27 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE28 130 +#define FIXPT_SPHAT1_COMP_BASE28 0x0075694C +#define VALUE_SPHAT1_COMP_BASE28 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.917275905609131) +#define TYPE_SPHAT1_COMP_BASE28 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE29 131 +#define FIXPT_SPHAT1_COMP_BASE29 0x005A9DF8 +#define VALUE_SPHAT1_COMP_BASE29 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.707945823669434) +#define TYPE_SPHAT1_COMP_BASE29 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE30 132 +#define FIXPT_SPHAT1_COMP_BASE30 0x0045EFFE +#define VALUE_SPHAT1_COMP_BASE30 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.54638659954071) +#define TYPE_SPHAT1_COMP_BASE30 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE31 133 +#define FIXPT_SPHAT1_COMP_BASE31 0x0035FA26 +#define VALUE_SPHAT1_COMP_BASE31 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.421696543693542) +#define TYPE_SPHAT1_COMP_BASE31 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE32 134 +#define FIXPT_SPHAT1_COMP_BASE32 0x0029A8BB +#define VALUE_SPHAT1_COMP_BASE32 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.325461745262146) +#define TYPE_SPHAT1_COMP_BASE32 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_COMP_BASE33 135 +#define FIXPT_SPHAT1_COMP_BASE33 0x002026F3 +#define VALUE_SPHAT1_COMP_BASE33 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.251188635826111) +#define TYPE_SPHAT1_COMP_BASE33 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_RMS 136 +#define FIXPT_SPHAT1_RMS 0x00064A35 +#define VALUE_SPHAT1_RMS SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0491397291363098) +#define TYPE_SPHAT1_RMS SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_DECAY 137 +#define FIXPT_SPHAT1_DECAY 0x0000016C +#define VALUE_SPHAT1_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(4.34027777777778E-05) +#define TYPE_SPHAT1_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_HOLD 138 +#define FIXPT_SPHAT1_HOLD 0x00005DC0 +#define VALUE_SPHAT1_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(24000) +#define TYPE_SPHAT1_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_SPHAT1_SPREAD1 139 +#define FIXPT_SPHAT1_SPREAD1 0x00080D69 +#define VALUE_SPHAT1_SPREAD1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0629093159447337) +#define TYPE_SPHAT1_SPREAD1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_SPHAT1_SPREAD2 140 +#define FIXPT_SPHAT1_SPREAD2 0x0002788C +#define VALUE_SPHAT1_SPREAD2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.0193038143874401) +#define TYPE_SPHAT1_SPREAD2 SIGMASTUDIOTYPE_FIXPOINT + +/* Module Gen Filter1 - General (2nd order)*/ +#define COUNT_GENFILTER1 5 +#define DEVICE_GENFILTER1 "IC1" +#define ADDR_GENFILTER1_ST0_B0 141 +#define FIXPT_GENFILTER1_ST0_B0 0x00800000 +#define VALUE_GENFILTER1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_GENFILTER1_ST0_B0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_GENFILTER1_ST0_B1 142 +#define FIXPT_GENFILTER1_ST0_B1 0x00000000 +#define VALUE_GENFILTER1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define TYPE_GENFILTER1_ST0_B1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_GENFILTER1_ST0_B2 143 +#define FIXPT_GENFILTER1_ST0_B2 0x00000000 +#define VALUE_GENFILTER1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define TYPE_GENFILTER1_ST0_B2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_GENFILTER1_ST0_A1 144 +#define FIXPT_GENFILTER1_ST0_A1 0x00000000 +#define VALUE_GENFILTER1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define TYPE_GENFILTER1_ST0_A1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_GENFILTER1_ST0_A2 145 +#define FIXPT_GENFILTER1_ST0_A2 0x00000000 +#define VALUE_GENFILTER1_ST0_A2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0) +#define TYPE_GENFILTER1_ST0_A2 SIGMASTUDIOTYPE_FIXPOINT + /* Module Multiple 1 - Multiple Volume Control*/ #define COUNT_MULTIPLE1 2 #define DEVICE_MULTIPLE1 "IC1" -#define ADDR_MULTIPLE1 42 +#define ADDR_MULTIPLE1 146 #define FIXPT_MULTIPLE1 0x00800000 #define VALUE_MULTIPLE1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) #define TYPE_MULTIPLE1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_MULTIPLE1_1 43 +#define ADDR_MULTIPLE1_1 147 #define FIXPT_MULTIPLE1_1 0x00800000 #define VALUE_MULTIPLE1_1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) #define TYPE_MULTIPLE1_1 SIGMASTUDIOTYPE_FIXPOINT -/* Module Limiter 1 - Limiter*/ -#define COUNT_LIMITER1 15 -#define DEVICE_LIMITER1 "IC1" -#define ADDR_LIMITER1_S1 44 -#define FIXPT_LIMITER1_S1 0xFFFE2BE3 -#define VALUE_LIMITER1_S1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.01428571428571) -#define TYPE_LIMITER1_S1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_INT1 45 -#define FIXPT_LIMITER1_INT1 0x0022BE2B -#define VALUE_LIMITER1_INT1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.27142857142857) -#define TYPE_LIMITER1_INT1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_S2 46 -#define FIXPT_LIMITER1_S2 0xFFEAAAAB -#define VALUE_LIMITER1_S2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.16666666666667) -#define TYPE_LIMITER1_S2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_INT2 47 -#define FIXPT_LIMITER1_INT2 0x006AAAAA -#define VALUE_LIMITER1_INT2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.8333333333333) -#define TYPE_LIMITER1_INT2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_S3 48 -#define FIXPT_LIMITER1_S3 0xFF9A69A7 -#define VALUE_LIMITER1_S3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.79365079365079) -#define TYPE_LIMITER1_S3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_INT3 49 -#define FIXPT_LIMITER1_INT3 0x00FDF7DF -#define VALUE_LIMITER1_INT3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98412698412698) -#define TYPE_LIMITER1_INT3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_S4 50 -#define FIXPT_LIMITER1_S4 0xF83C6C20 -#define VALUE_LIMITER1_S4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-15.527950310559) -#define TYPE_LIMITER1_S4 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_INT4 51 -#define FIXPT_LIMITER1_INT4 0x03F5AA22 -#define VALUE_LIMITER1_INT4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(7.91925465838509) -#define TYPE_LIMITER1_INT4 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_C1 52 -#define FIXPT_LIMITER1_C1 0x01800000 -#define VALUE_LIMITER1_C1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(3) -#define TYPE_LIMITER1_C1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_C2 53 -#define FIXPT_LIMITER1_C2 0x01000000 -#define VALUE_LIMITER1_C2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(2) -#define TYPE_LIMITER1_C2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_C3 54 -#define FIXPT_LIMITER1_C3 0x00333333 -#define VALUE_LIMITER1_C3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.4) -#define TYPE_LIMITER1_C3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_THRESHOLD 55 -#define FIXPT_LIMITER1_THRESHOLD 0x00800000 -#define VALUE_LIMITER1_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) -#define TYPE_LIMITER1_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_RMS 56 -#define FIXPT_LIMITER1_RMS 0x000007DC -#define VALUE_LIMITER1_RMS SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000239881380791562) -#define TYPE_LIMITER1_RMS SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_DECAY 57 -#define FIXPT_LIMITER1_DECAY 0x00000800 -#define VALUE_LIMITER1_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000244140625) -#define TYPE_LIMITER1_DECAY SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER1_DECAYCOMPLEMENT 58 -#define FIXPT_LIMITER1_DECAYCOMPLEMENT 0x007FF000 -#define VALUE_LIMITER1_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.99951171875) -#define TYPE_LIMITER1_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT +/* Module Bass Boost1 - Dynamic Bass Boost*/ +#define COUNT_BASSBOOST1 40 +#define DEVICE_BASSBOOST1 "IC1" +#define ADDR_BASSBOOST1_BASSFREQUENCY 148 +#define FIXPT_BASSBOOST1_BASSFREQUENCY 0x0001015B +#define VALUE_BASSBOOST1_BASSFREQUENCY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00785396144863598) +#define TYPE_BASSBOOST1_BASSFREQUENCY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_B0 149 +#define FIXPT_BASSBOOST1_B0 0x00000164 +#define VALUE_BASSBOOST1_B0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(4.24433093514364E-05) +#define TYPE_BASSBOOST1_B0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_B1 150 +#define FIXPT_BASSBOOST1_B1 0x000002C8 +#define VALUE_BASSBOOST1_B1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(8.48866187028728E-05) +#define TYPE_BASSBOOST1_B1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_B2 151 +#define FIXPT_BASSBOOST1_B2 0x00000164 +#define VALUE_BASSBOOST1_B2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(4.24433093514364E-05) +#define TYPE_BASSBOOST1_B2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_A1 152 +#define FIXPT_BASSBOOST1_A1 0x00FDA153 +#define VALUE_BASSBOOST1_A1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98148576456209) +#define TYPE_BASSBOOST1_A1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_A2 153 +#define FIXPT_BASSBOOST1_A2 0xFF82591D +#define VALUE_BASSBOOST1_A2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.981655537799498) +#define TYPE_BASSBOOST1_A2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE0 154 +#define FIXPT_BASSBOOST1_TABLE0 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE0 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE0 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE1 155 +#define FIXPT_BASSBOOST1_TABLE1 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE2 156 +#define FIXPT_BASSBOOST1_TABLE2 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE3 157 +#define FIXPT_BASSBOOST1_TABLE3 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE4 158 +#define FIXPT_BASSBOOST1_TABLE4 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE5 159 +#define FIXPT_BASSBOOST1_TABLE5 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE5 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE5 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE6 160 +#define FIXPT_BASSBOOST1_TABLE6 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE6 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE6 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE7 161 +#define FIXPT_BASSBOOST1_TABLE7 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE7 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE7 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE8 162 +#define FIXPT_BASSBOOST1_TABLE8 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE8 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE8 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE9 163 +#define FIXPT_BASSBOOST1_TABLE9 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE9 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE9 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE10 164 +#define FIXPT_BASSBOOST1_TABLE10 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE10 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE10 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE11 165 +#define FIXPT_BASSBOOST1_TABLE11 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE11 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE11 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE12 166 +#define FIXPT_BASSBOOST1_TABLE12 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE12 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE12 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE13 167 +#define FIXPT_BASSBOOST1_TABLE13 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE13 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE13 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE14 168 +#define FIXPT_BASSBOOST1_TABLE14 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE14 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE14 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE15 169 +#define FIXPT_BASSBOOST1_TABLE15 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE15 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE15 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE16 170 +#define FIXPT_BASSBOOST1_TABLE16 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE16 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE16 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE17 171 +#define FIXPT_BASSBOOST1_TABLE17 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE17 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE17 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE18 172 +#define FIXPT_BASSBOOST1_TABLE18 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE18 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE18 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE19 173 +#define FIXPT_BASSBOOST1_TABLE19 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE19 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE19 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE20 174 +#define FIXPT_BASSBOOST1_TABLE20 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE20 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE20 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE21 175 +#define FIXPT_BASSBOOST1_TABLE21 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE21 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE21 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE22 176 +#define FIXPT_BASSBOOST1_TABLE22 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE22 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE22 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE23 177 +#define FIXPT_BASSBOOST1_TABLE23 0x0028DA07 +#define VALUE_BASSBOOST1_TABLE23 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.319153785510076) +#define TYPE_BASSBOOST1_TABLE23 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE24 178 +#define FIXPT_BASSBOOST1_TABLE24 0x00295321 +#define VALUE_BASSBOOST1_TABLE24 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.322849412171264) +#define TYPE_BASSBOOST1_TABLE24 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE25 179 +#define FIXPT_BASSBOOST1_TABLE25 0x002AC6E7 +#define VALUE_BASSBOOST1_TABLE25 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.334195040026114) +#define TYPE_BASSBOOST1_TABLE25 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE26 180 +#define FIXPT_BASSBOOST1_TABLE26 0x002C47BD +#define VALUE_BASSBOOST1_TABLE26 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.345939377826122) +#define TYPE_BASSBOOST1_TABLE26 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE27 181 +#define FIXPT_BASSBOOST1_TABLE27 0x002DD61A +#define VALUE_BASSBOOST1_TABLE27 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.358096437102636) +#define TYPE_BASSBOOST1_TABLE27 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE28 182 +#define FIXPT_BASSBOOST1_TABLE28 0x002F7277 +#define VALUE_BASSBOOST1_TABLE28 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.370680721782576) +#define TYPE_BASSBOOST1_TABLE28 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE29 183 +#define FIXPT_BASSBOOST1_TABLE29 0x00311D51 +#define VALUE_BASSBOOST1_TABLE29 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.383707245492279) +#define TYPE_BASSBOOST1_TABLE29 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE30 184 +#define FIXPT_BASSBOOST1_TABLE30 0x0032D72C +#define VALUE_BASSBOOST1_TABLE30 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.39719154946944) +#define TYPE_BASSBOOST1_TABLE30 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE31 185 +#define FIXPT_BASSBOOST1_TABLE31 0x0034A08D +#define VALUE_BASSBOOST1_TABLE31 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.411149721104522) +#define TYPE_BASSBOOST1_TABLE31 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TABLE32 186 +#define FIXPT_BASSBOOST1_TABLE32 0x00367A02 +#define VALUE_BASSBOOST1_TABLE32 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.425598413133743) +#define TYPE_BASSBOOST1_TABLE32 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_BASSBOOST1_TIMECONSTANT 187 +#define FIXPT_BASSBOOST1_TIMECONSTANT 0x000006D3 +#define VALUE_BASSBOOST1_TIMECONSTANT SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000208311633451363) +#define TYPE_BASSBOOST1_TIMECONSTANT SIGMASTUDIOTYPE_FIXPOINT + +/* Module 1 X RTA2_2 - Single Level Detector*/ +#define COUNT_1XRTA2_2 5 +#define DEVICE_1XRTA2_2 "IC1" +#define ADDR_1XRTA2_2_TCONST 188 +#define FIXPT_1XRTA2_2_TCONST 0x00004EB0 +#define VALUE_1XRTA2_2_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA2_2_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA2_2_HOLD 189 +#define FIXPT_1XRTA2_2_HOLD 0x000001E0 +#define VALUE_1XRTA2_2_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA2_2_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA2_2_DECAY 190 +#define FIXPT_1XRTA2_2_DECAY 0x0000071C +#define VALUE_1XRTA2_2_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA2_2_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA2_2 2074 +#define VALUES_1XRTA2_2 SIGMASTUDIOTYPE_SPECIAL(0x0AB2) +#define TYPE_1XRTA2_2 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA2_2 2074 +#define VALUE_1XRTA2_2 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA2_2 SIGMASTUDIOTYPE_10_14 + +/* Module 1 X RTA1_2 - Single Level Detector*/ +#define COUNT_1XRTA1_2 5 +#define DEVICE_1XRTA1_2 "IC1" +#define ADDR_1XRTA1_2_TCONST 191 +#define FIXPT_1XRTA1_2_TCONST 0x00004EB0 +#define VALUE_1XRTA1_2_TCONST SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.00240140490349172) +#define TYPE_1XRTA1_2_TCONST SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA1_2_HOLD 192 +#define FIXPT_1XRTA1_2_HOLD 0x000001E0 +#define VALUE_1XRTA1_2_HOLD SIGMASTUDIOTYPE_INTEGER_CONVERT(480) +#define TYPE_1XRTA1_2_HOLD SIGMASTUDIOTYPE_INTEGER +#define ADDR_1XRTA1_2_DECAY 193 +#define FIXPT_1XRTA1_2_DECAY 0x0000071C +#define VALUE_1XRTA1_2_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000217013888888889) +#define TYPE_1XRTA1_2_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_1XRTA1_2 2074 +#define VALUES_1XRTA1_2 SIGMASTUDIOTYPE_SPECIAL(0x0B36) +#define TYPE_1XRTA1_2 SIGMASTUDIOTYPE_SPECIAL +#define ADDR_1XRTA1_2 2074 +#define VALUE_1XRTA1_2 SIGMASTUDIOTYPE_10_14_CONVERT(0) +#define TYPE_1XRTA1_2 SIGMASTUDIOTYPE_10_14 /* Module Limiter 2 - Limiter*/ #define COUNT_LIMITER2 15 #define DEVICE_LIMITER2 "IC1" -#define ADDR_LIMITER2_S1 59 +#define ADDR_LIMITER2_S1 194 #define FIXPT_LIMITER2_S1 0xFFFE2BE3 #define VALUE_LIMITER2_S1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.01428571428571) #define TYPE_LIMITER2_S1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_INT1 60 +#define ADDR_LIMITER2_INT1 195 #define FIXPT_LIMITER2_INT1 0x0022BE2B #define VALUE_LIMITER2_INT1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.27142857142857) #define TYPE_LIMITER2_INT1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_S2 61 +#define ADDR_LIMITER2_S2 196 #define FIXPT_LIMITER2_S2 0xFFEAAAAB #define VALUE_LIMITER2_S2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.16666666666667) #define TYPE_LIMITER2_S2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_INT2 62 +#define ADDR_LIMITER2_INT2 197 #define FIXPT_LIMITER2_INT2 0x006AAAAA #define VALUE_LIMITER2_INT2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.8333333333333) #define TYPE_LIMITER2_INT2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_S3 63 +#define ADDR_LIMITER2_S3 198 #define FIXPT_LIMITER2_S3 0xFF9A69A7 #define VALUE_LIMITER2_S3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.79365079365079) #define TYPE_LIMITER2_S3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_INT3 64 +#define ADDR_LIMITER2_INT3 199 #define FIXPT_LIMITER2_INT3 0x00FDF7DF #define VALUE_LIMITER2_INT3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98412698412698) #define TYPE_LIMITER2_INT3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_S4 65 +#define ADDR_LIMITER2_S4 200 #define FIXPT_LIMITER2_S4 0xF83C6C20 #define VALUE_LIMITER2_S4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-15.527950310559) #define TYPE_LIMITER2_S4 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_INT4 66 +#define ADDR_LIMITER2_INT4 201 #define FIXPT_LIMITER2_INT4 0x03F5AA22 #define VALUE_LIMITER2_INT4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(7.91925465838509) #define TYPE_LIMITER2_INT4 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_C1 67 +#define ADDR_LIMITER2_C1 202 #define FIXPT_LIMITER2_C1 0x01800000 #define VALUE_LIMITER2_C1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(3) #define TYPE_LIMITER2_C1 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_C2 68 +#define ADDR_LIMITER2_C2 203 #define FIXPT_LIMITER2_C2 0x01000000 #define VALUE_LIMITER2_C2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(2) #define TYPE_LIMITER2_C2 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_C3 69 +#define ADDR_LIMITER2_C3 204 #define FIXPT_LIMITER2_C3 0x00333333 #define VALUE_LIMITER2_C3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.4) #define TYPE_LIMITER2_C3 SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_THRESHOLD 70 +#define ADDR_LIMITER2_THRESHOLD 205 #define FIXPT_LIMITER2_THRESHOLD 0x00800000 #define VALUE_LIMITER2_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) #define TYPE_LIMITER2_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_RMS 71 +#define ADDR_LIMITER2_RMS 206 #define FIXPT_LIMITER2_RMS 0x000007DC #define VALUE_LIMITER2_RMS SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000239881380791562) #define TYPE_LIMITER2_RMS SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_DECAY 72 +#define ADDR_LIMITER2_DECAY 207 #define FIXPT_LIMITER2_DECAY 0x00000800 #define VALUE_LIMITER2_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000244140625) #define TYPE_LIMITER2_DECAY SIGMASTUDIOTYPE_FIXPOINT -#define ADDR_LIMITER2_DECAYCOMPLEMENT 73 +#define ADDR_LIMITER2_DECAYCOMPLEMENT 208 #define FIXPT_LIMITER2_DECAYCOMPLEMENT 0x007FF000 #define VALUE_LIMITER2_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.99951171875) #define TYPE_LIMITER2_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT +/* Module Limiter 1 - Limiter*/ +#define COUNT_LIMITER1 15 +#define DEVICE_LIMITER1 "IC1" +#define ADDR_LIMITER1_S1 209 +#define FIXPT_LIMITER1_S1 0xFFFE2BE3 +#define VALUE_LIMITER1_S1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.01428571428571) +#define TYPE_LIMITER1_S1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_INT1 210 +#define FIXPT_LIMITER1_INT1 0x0022BE2B +#define VALUE_LIMITER1_INT1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.27142857142857) +#define TYPE_LIMITER1_INT1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_S2 211 +#define FIXPT_LIMITER1_S2 0xFFEAAAAB +#define VALUE_LIMITER1_S2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.16666666666667) +#define TYPE_LIMITER1_S2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_INT2 212 +#define FIXPT_LIMITER1_INT2 0x006AAAAA +#define VALUE_LIMITER1_INT2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.8333333333333) +#define TYPE_LIMITER1_INT2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_S3 213 +#define FIXPT_LIMITER1_S3 0xFF9A69A7 +#define VALUE_LIMITER1_S3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-0.79365079365079) +#define TYPE_LIMITER1_S3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_INT3 214 +#define FIXPT_LIMITER1_INT3 0x00FDF7DF +#define VALUE_LIMITER1_INT3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1.98412698412698) +#define TYPE_LIMITER1_INT3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_S4 215 +#define FIXPT_LIMITER1_S4 0xF83C6C20 +#define VALUE_LIMITER1_S4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(-15.527950310559) +#define TYPE_LIMITER1_S4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_INT4 216 +#define FIXPT_LIMITER1_INT4 0x03F5AA22 +#define VALUE_LIMITER1_INT4 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(7.91925465838509) +#define TYPE_LIMITER1_INT4 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_C1 217 +#define FIXPT_LIMITER1_C1 0x01800000 +#define VALUE_LIMITER1_C1 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(3) +#define TYPE_LIMITER1_C1 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_C2 218 +#define FIXPT_LIMITER1_C2 0x01000000 +#define VALUE_LIMITER1_C2 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(2) +#define TYPE_LIMITER1_C2 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_C3 219 +#define FIXPT_LIMITER1_C3 0x00333333 +#define VALUE_LIMITER1_C3 SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.4) +#define TYPE_LIMITER1_C3 SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_THRESHOLD 220 +#define FIXPT_LIMITER1_THRESHOLD 0x00800000 +#define VALUE_LIMITER1_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT_CONVERT(1) +#define TYPE_LIMITER1_THRESHOLD SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_RMS 221 +#define FIXPT_LIMITER1_RMS 0x000007DC +#define VALUE_LIMITER1_RMS SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000239881380791562) +#define TYPE_LIMITER1_RMS SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_DECAY 222 +#define FIXPT_LIMITER1_DECAY 0x00000800 +#define VALUE_LIMITER1_DECAY SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.000244140625) +#define TYPE_LIMITER1_DECAY SIGMASTUDIOTYPE_FIXPOINT +#define ADDR_LIMITER1_DECAYCOMPLEMENT 223 +#define FIXPT_LIMITER1_DECAYCOMPLEMENT 0x007FF000 +#define VALUE_LIMITER1_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT_CONVERT(0.99951171875) +#define TYPE_LIMITER1_DECAYCOMPLEMENT SIGMASTUDIOTYPE_FIXPOINT + #endif diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_REG.h b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_REG.h index fed84c3..ae0b532 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_REG.h +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio_IC_1_REG.h @@ -1,8 +1,8 @@ /* - * File: C:\Users\mikbi\Documents\Allegati\Desktop\DigiRadio\DigiRadioModificato\DigiRadio_IC_1_REG.h + * File: C:\Users\mikbi\Documents\Allegati\Desktop\Sigmastudio\DigiRadioFinale_IC_1_REG.h * - * Created: Friday, August 7, 2026 3:19:11 AM - * Description: DigiRadio:IC 1 control register definitions. + * Created: Tuesday, August 25, 2026 8:11:05 PM + * Description: DigiRadioFinale:IC 1 control register definitions. * * This software is distributed in the hope that it will be useful, * but is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR @@ -16,8 +16,8 @@ * * Copyright ©2026 Analog Devices, Inc. All rights reserved. */ -#ifndef __DIGIRADIO_IC_1_REG_H__ -#define __DIGIRADIO_IC_1_REG_H__ +#ifndef __DIGIRADIOFINALE_IC_1_REG_H__ +#define __DIGIRADIOFINALE_IC_1_REG_H__ /* InterfaceRegister0 - Registers (IC 1) */ diff --git a/Software/Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml b/Software/Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml index c850e4e..e682eaf 100644 --- a/Software/Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml +++ b/Software/Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml @@ -17,77 +17,125 @@ - - - - - + + + + + - - + + - - - + + - - - + + + - - - + + + - - - + + + - - - + + + - + - - - - - - - - - + + + + + - - - - - + + + - - - + + + - - - + + + - - - + + + - - - + + + + + + + + + + - - + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/Firmware/ADAU1701-Firmware/defines.h b/Software/Firmware/ADAU1701-Firmware/defines.h index 6719fa9..7053c1c 100644 --- a/Software/Firmware/ADAU1701-Firmware/defines.h +++ b/Software/Firmware/ADAU1701-Firmware/defines.h @@ -1,8 +1,8 @@ /* * File: defines.h * - * Created: Friday, August 7, 2026 3:19:11 AM - * Description: DigiRadio IC default download data definitions. + * Created: Tuesday, August 25, 2026 8:11:05 PM + * Description: DigiRadioFinale IC default download data definitions. * * This software is distributed in the hope that it will be useful, * but is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR diff --git a/Software/Sigmastudio/Sigmastudio.zip b/Software/Sigmastudio/Sigmastudio.zip new file mode 100644 index 0000000..ed30de4 Binary files /dev/null and b/Software/Sigmastudio/Sigmastudio.zip differ diff --git a/Software/Sigmastudio/sigmastudiofinale.png b/Software/Sigmastudio/sigmastudiofinale.png new file mode 100644 index 0000000..7fb3158 Binary files /dev/null and b/Software/Sigmastudio/sigmastudiofinale.png differ diff --git a/Software/components/core/CMakeLists.txt b/Software/components/core/CMakeLists.txt index 4a9dc52..93534f0 100644 --- a/Software/components/core/CMakeLists.txt +++ b/Software/components/core/CMakeLists.txt @@ -19,11 +19,9 @@ idf_component_register( "src/EqBandIndex.cpp" "src/BiquadCoefficients.cpp" "src/BiquadDesign.cpp" - "src/MixerState.cpp" "src/EqProfile.cpp" "src/EnhanceLevel.cpp" "src/AudioEnhancements.cpp" - "src/EnhancementsDesign.cpp" "src/AudioProfile.cpp" "src/AudioProfileJson.cpp" "src/Bt1035At.cpp" diff --git a/Software/components/core/include/core/ActiveSource.hpp b/Software/components/core/include/core/ActiveSource.hpp new file mode 100644 index 0000000..377ccc8 --- /dev/null +++ b/Software/components/core/include/core/ActiveSource.hpp @@ -0,0 +1,46 @@ +/** + * @file ActiveSource.hpp + * @brief ADAU1701 MX1 input source selector. + * + * DigiRadio firmware — https://github.com/manvalan/DigiRadio + * + * Copyright 2026 Michele Bigi + * SPDX-License-Identifier: Apache-2.0 + * + * @author Michele Bigi + * @date 2026-08-25 + */ +#pragma once + +namespace core { + +/** + * @brief ActiveSource — the one stereo pair MX1 currently passes through. + * + * @dname ActiveSource + * @return n/a (type) + * @pubstate n/a + * + * The DigiRadioFinale SigmaStudio revision (2026-08-25) replaced St Mixer1 + * (which combined Si4684 + ESP32 + Beep simultaneously, each at its own + * gain) with MX1, a DC-controlled exclusive mux: only one of the three + * stereo pairs reaches Param EQ1 at a time, selected by the DC1 cell. + * Per-source gain trims (the old Si4674/ESP32 cells) no longer exist — + * level is controlled solely by Master Volume and the EQ, downstream of + * the selected source. + * + * @author Michele Bigi + * @date 2026-08-25 + */ +enum class ActiveSource { + Radio, ///< Si4684 tuner (FM/DAB), MX1 pair index 0. + Bluetooth, ///< ESP32 I2S input, MX1 pair index 1. + Beep, ///< Internal test tone, MX1 pair index 2. +}; + +// DC1 is a raw 32-bit integer index (0/1/2), not the 5.23 fixpoint its +// compiled TYPE_DC1/VALUE_DC1 macros would suggest -- confirmed live +// 2026-08-25 (see adau1701::paramSourceIndex() and Adau1701Driver:: +// selectSource()). + +} // namespace core diff --git a/Software/components/core/include/core/AudioEnhancements.hpp b/Software/components/core/include/core/AudioEnhancements.hpp index a3a2b80..9e9c7e7 100644 --- a/Software/components/core/include/core/AudioEnhancements.hpp +++ b/Software/components/core/include/core/AudioEnhancements.hpp @@ -17,19 +17,20 @@ namespace core { /** - * @brief AudioEnhancements — psychoacoustic EQ overlays (0–100 each). + * @brief AudioEnhancements — dedicated-block enhancement levels (0–100). * * @dname AudioEnhancements * @return n/a (type) - * @pubstate Mapped to PEQ bands at runtime (manual chapter sigmastudio). - * No dedicated SigmaStudio blocks; see \c applyEnhancementsToEq. + * @pubstate Applied via IDsp::setStereoSpreadLevel/setBassBoostLevel, which + * scale the SPhat1/Bass Boost1 SigmaStudio blocks toward their + * compiled response; does not touch EqProfile. * * @author Michele Bigi * @date 2026-07-06 */ struct AudioEnhancements { - EnhanceLevel stereo; ///< Stereo depth / presence (PEQ bands 3–5). - EnhanceLevel bass; ///< Bass emphasis (PEQ bands 1–2). + EnhanceLevel stereo; ///< Stereo spread (SPhat1 spatializer). + EnhanceLevel bass; ///< Bass boost intensity (Bass Boost1). /** * @brief factoryDefault — both enhancements off. diff --git a/Software/components/core/include/core/AudioLevels.hpp b/Software/components/core/include/core/AudioLevels.hpp new file mode 100644 index 0000000..1a6c473 --- /dev/null +++ b/Software/components/core/include/core/AudioLevels.hpp @@ -0,0 +1,42 @@ +/** + * @file AudioLevels.hpp + * @brief Snapshot of the six ADAU1701 Data Capture level meters. + * + * DigiRadio firmware — https://github.com/manvalan/DigiRadio + * + * Copyright 2026 Michele Bigi + * SPDX-License-Identifier: Apache-2.0 + * + * @author Michele Bigi + * @date 2026-08-25 + */ +#pragma once + +namespace core { + +/** + * @brief AudioLevels — one on-demand read of all six 1×RTA meters. + * + * @dname AudioLevels + * @return n/a (type) + * @pubstate Read-only snapshot; not part of AudioProfile, never persisted. + * + * Each field is in dBFS, read live from the ADAU1701 Data Capture Register + * (address 2074, MAC_out tap) at the program-step index SigmaStudio's + * compiler assigned to that 1×RTA cell (see + * Firmware/ADAU1701-Firmware/IC 1_DigiRadioFinale/net_list_out2/trap.dat). + * Captured only when requested by an API call -- no background polling. + * + * @author Michele Bigi + * @date 2026-08-25 + */ +struct AudioLevels { + float radioInLeftDb; ///< 1×RTA1, post-compressor Si4684 L. + float radioInRightDb; ///< 1×RTA2, post-compressor Si4684 R. + float bluetoothInLeftDb; ///< 1×RTA3, ESP32 L. + float bluetoothInRightDb; ///< 1×RTA4, ESP32 R. + float outputLeftDb; ///< 1×RTA1_2, post Bass Boost1, L. + float outputRightDb; ///< 1×RTA2_2, post Bass Boost1, R. +}; + +} // namespace core diff --git a/Software/components/core/include/core/AudioProfile.hpp b/Software/components/core/include/core/AudioProfile.hpp index 1260b2f..dccc03d 100644 --- a/Software/components/core/include/core/AudioProfile.hpp +++ b/Software/components/core/include/core/AudioProfile.hpp @@ -12,10 +12,10 @@ */ #pragma once +#include "core/ActiveSource.hpp" #include "core/AudioEnhancements.hpp" #include "core/EqProfile.hpp" #include "core/GainDb.hpp" -#include "core/MixerState.hpp" namespace core { @@ -31,7 +31,7 @@ namespace core { * @date 2026-07-06 */ struct AudioProfile { - MixerState mixer; ///< Input and stereo-mixer gains. + ActiveSource activeSource; ///< Which MX1 pair reaches Param EQ1. EqProfile eq; ///< Six-band parametric EQ. GainDb masterLeft; ///< Multiple 1 master volume, left. GainDb masterRight; ///< Multiple 1 master volume, right. diff --git a/Software/components/core/include/core/AudioProfileJson.hpp b/Software/components/core/include/core/AudioProfileJson.hpp index e29d85a..f491803 100644 --- a/Software/components/core/include/core/AudioProfileJson.hpp +++ b/Software/components/core/include/core/AudioProfileJson.hpp @@ -12,6 +12,7 @@ */ #pragma once +#include "core/AudioLevels.hpp" #include "core/AudioProfile.hpp" #include "core/ParseError.hpp" @@ -104,4 +105,17 @@ namespace core { [[nodiscard]] std::expected parseBeepEnabledJson( std::string_view json); +/** + * @brief serializeAudioLevelsJson — serialise a level-meter snapshot. + * + * @dname serializeAudioLevelsJson + * @param levels On-demand read from IDsp::readLevels(). + * @return JSON object string for GET /api/audio/levels. + * @pubstate none + * + * @author Michele Bigi + * @date 2026-08-25 + */ +[[nodiscard]] std::string serializeAudioLevelsJson(const AudioLevels& levels); + } // namespace core diff --git a/Software/components/core/include/core/EnhancementsDesign.hpp b/Software/components/core/include/core/EnhancementsDesign.hpp deleted file mode 100644 index ec8f1d8..0000000 --- a/Software/components/core/include/core/EnhancementsDesign.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @file EnhancementsDesign.hpp - * @brief Map enhancement levels onto Param EQ1 bands (host-testable). - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ -#pragma once - -#include "core/AudioEnhancements.hpp" -#include "core/EqProfile.hpp" - -namespace core { - -/** - * @brief applyEnhancementsToEq — merge enhancement overlays into an EQ profile. - * - * @dname applyEnhancementsToEq - * @param base User EQ settings (bands not touched stay unchanged). - * @param enhancements Stereo and bass levels (0 = use base band only). - * @return EqProfile with affected PEQ bands updated for safeload. - * @pubstate none - * - * Stereo (bands 3–5): slight 1\,kHz cut plus 3/8\,kHz lift for depth. - * Bass (bands 1–2): 100\,Hz and 400\,Hz peaking boost. - * Band 0 (high-pass) is never modified. - * - * @author Michele Bigi - * @date 2026-07-06 - */ -[[nodiscard]] EqProfile applyEnhancementsToEq( - const EqProfile& base, const AudioEnhancements& enhancements) noexcept; - -} // namespace core diff --git a/Software/components/core/include/core/IDsp.hpp b/Software/components/core/include/core/IDsp.hpp index 6400805..8ab869a 100644 --- a/Software/components/core/include/core/IDsp.hpp +++ b/Software/components/core/include/core/IDsp.hpp @@ -12,13 +12,14 @@ */ #pragma once +#include "core/ActiveSource.hpp" +#include "core/AudioLevels.hpp" #include "core/AudioProfile.hpp" #include "core/DspError.hpp" +#include "core/EnhanceLevel.hpp" #include "core/EqBandIndex.hpp" #include "core/FrequencyHz.hpp" #include "core/GainDb.hpp" -#include "core/MixSource.hpp" -#include "core/MixerState.hpp" #include "core/EqProfile.hpp" #include @@ -56,18 +57,18 @@ public: const AudioProfile& profile) = 0; /** - * @brief applyMixer — safeload input and stereo-mixer gains. + * @brief selectSource — safeload MX1's DC1 control to pick one source. * - * @dname applyMixer - * @param mixer Per-source and St Mixer1 levels. + * @dname selectSource + * @param source Which stereo pair MX1 passes through to Param EQ1. * @return Ok on success, or DspError. * @pubstate writes ADAU1701 parameter RAM via safeload. * * @author Michele Bigi - * @date 2026-07-06 + * @date 2026-08-25 */ - [[nodiscard]] virtual std::expected applyMixer( - const MixerState& mixer) = 0; + [[nodiscard]] virtual std::expected selectSource( + ActiveSource source) = 0; /** * @brief applyEq — safeload all six PEQ bands. @@ -83,22 +84,6 @@ public: [[nodiscard]] virtual std::expected applyEq( const EqProfile& eq) = 0; - /** - * @brief setInputVolume — safeload one input path (Si4684 or ESP32). - * - * @dname setInputVolume - * @param source Tuner or ESP32 I2S path. - * @param left Left channel gain. - * @param right Right channel gain. - * @return Ok on success, or DspError. - * @pubstate writes ADAU1701 parameter RAM via safeload. - * - * @author Michele Bigi - * @date 2026-07-06 - */ - [[nodiscard]] virtual std::expected setInputVolume( - MixSource source, GainDb left, GainDb right) = 0; - /** * @brief setMasterVolume — safeload Multiple 1 master output gain. * @@ -146,6 +131,42 @@ public: [[nodiscard]] virtual std::expected setBeepEnabled( bool enabled) = 0; + /** + * @brief setBassBoostLevel — scale Bass Boost1 toward its compiled + * curve. + * + * @dname setBassBoostLevel + * @param level 0 = flat bypass, 100 = the full SigmaStudio-tuned + * Dynamic Bass Boost response. + * @return Ok on success, or DspError. + * @pubstate writes ADAU1701 parameter RAM via safeload. Linearly + * interpolates the compiled crossover filter and 33-point + * compander curve toward identity/unity; BASSFREQUENCY and + * the time constant are left at their tuned defaults. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] virtual std::expected setBassBoostLevel( + EnhanceLevel level) = 0; + + /** + * @brief setStereoSpreadLevel — scale SPhat1's stereo spread amount. + * + * @dname setStereoSpreadLevel + * @param level 0 = no added spread, 100 = the full SigmaStudio-tuned + * SuperPhat spread. + * @return Ok on success, or DspError. + * @pubstate writes ADAU1701 parameter RAM via safeload. Scales + * SPREAD1/SPREAD2 linearly; the crossover filter and + * compander curve are left at their tuned defaults. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] virtual std::expected setStereoSpreadLevel( + EnhanceLevel level) = 0; + /** * @brief writeRawParam — safeload any named Parameter RAM cell. * @@ -163,6 +184,20 @@ public: */ [[nodiscard]] virtual std::expected writeRawParam( unsigned address, float value) = 0; + + /** + * @brief readLevels — on-demand read of all six 1×RTA level meters. + * + * @dname readLevels + * @return AudioLevels snapshot, or DspError. + * @pubstate Reads live from the ADAU1701; not part of AudioProfile, + * never persisted. Only runs when called, no background + * polling. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] virtual std::expected readLevels() = 0; }; } // namespace core diff --git a/Software/components/core/include/core/MixSource.hpp b/Software/components/core/include/core/MixSource.hpp deleted file mode 100644 index 1b2618a..0000000 --- a/Software/components/core/include/core/MixSource.hpp +++ /dev/null @@ -1,32 +0,0 @@ -/** - * @file MixSource.hpp - * @brief ADAU1701 input path selector for per-source volume control. - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ -#pragma once - -namespace core { - -/** - * @brief MixSource — Si4684 tuner or ESP32 I2S input on the ADAU1701. - * - * @dname MixSource - * @return n/a (type) - * @pubstate n/a - * - * @author Michele Bigi - * @date 2026-07-06 - */ -enum class MixSource { - Si4684, - Esp32, -}; - -} // namespace core diff --git a/Software/components/core/include/core/MixerState.hpp b/Software/components/core/include/core/MixerState.hpp deleted file mode 100644 index 1f8948b..0000000 --- a/Software/components/core/include/core/MixerState.hpp +++ /dev/null @@ -1,64 +0,0 @@ -/** - * @file MixerState.hpp - * @brief ADAU1701 input and stereo-mixer gain snapshot. - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ -#pragma once - -#include "core/GainDb.hpp" - -namespace core { - -/** - * @brief MixerState — per-source and St Mixer1 levels for the ADAU1701. - * - * @dname MixerState - * @return n/a (type) - * @pubstate Immutable snapshot applied by AudioService via IDsp. - * - * Maps to SigmaStudio modules Si4674, ESP32, and St Mixer1. - * - * @author Michele Bigi - * @date 2026-07-06 - */ -struct MixerState { - GainDb si4684Left; ///< Si4674 volume control, left channel. - GainDb si4684Right; ///< Si4674 volume control, right channel. - GainDb esp32Left; ///< ESP32 volume control, left channel. - GainDb esp32Right; ///< ESP32 volume control, right channel. - GainDb mixLeft; ///< St Mixer1 ST0 (Si4684) input level. - GainDb mixRight; ///< St Mixer1 ST1 (ESP32) input level. - - /** - * @brief factoryDefault — unity gains on all paths. - * - * @dname factoryDefault - * @return MixerState with 0 dB on every control. - * @pubstate none - * - * @author Michele Bigi - * @date 2026-07-06 - */ - [[nodiscard]] static MixerState factoryDefault() noexcept; - - /** - * @brief radioFirst — Si4684 path open, ESP32 path muted. - * - * @dname radioFirst - * @return MixerState for FM/DAB tuner audio to the Bose I2S chain. - * @pubstate none - * - * @author Michele Bigi - * @date 2026-08-05 - */ - [[nodiscard]] static MixerState radioFirst() noexcept; -}; - -} // namespace core diff --git a/Software/components/core/src/AudioProfile.cpp b/Software/components/core/src/AudioProfile.cpp index 2407d1e..a693024 100644 --- a/Software/components/core/src/AudioProfile.cpp +++ b/Software/components/core/src/AudioProfile.cpp @@ -19,7 +19,7 @@ AudioProfile AudioProfile::factoryDefault() noexcept { const GainDb unity = GainDb::zero(); return AudioProfile{ - .mixer = MixerState::factoryDefault(), + .activeSource = ActiveSource::Radio, .eq = EqProfile::factoryDefault(), .masterLeft = unity, .masterRight = unity, diff --git a/Software/components/core/src/AudioProfileJson.cpp b/Software/components/core/src/AudioProfileJson.cpp index a29614c..b3f772d 100644 --- a/Software/components/core/src/AudioProfileJson.cpp +++ b/Software/components/core/src/AudioProfileJson.cpp @@ -92,35 +92,48 @@ namespace { return GainDb::tryFromDb(db); } -[[nodiscard]] std::expected parseMixerJson( +[[nodiscard]] std::string_view activeSourceName(ActiveSource source) noexcept +{ + switch (source) { + case ActiveSource::Radio: + return "radio"; + case ActiveSource::Bluetooth: + return "bluetooth"; + case ActiveSource::Beep: + return "beep"; + } + return "radio"; +} + +[[nodiscard]] std::expected parseActiveSourceJson( std::string_view json) { - const std::size_t mixerStart = json.find("\"mixer\""); - if (mixerStart == std::string_view::npos) { + constexpr std::string_view kKey = "\"active_source\""; + const std::size_t needlePos = json.find(kKey); + if (needlePos == std::string_view::npos) { return std::unexpected(ParseError::MissingField); } - const std::string_view mixer = json.substr(mixerStart); - - const auto si4684Left = parseGainField(mixer, "si4684_left_db"); - const auto si4684Right = parseGainField(mixer, "si4684_right_db"); - const auto esp32Left = parseGainField(mixer, "esp32_left_db"); - const auto esp32Right = parseGainField(mixer, "esp32_right_db"); - const auto mixLeft = parseGainField(mixer, "mix_left_db"); - const auto mixRight = parseGainField(mixer, "mix_right_db"); - - if (!si4684Left || !si4684Right || !esp32Left || !esp32Right || !mixLeft - || !mixRight) { + const std::size_t quoteStart = json.find('"', needlePos + kKey.size()); + if (quoteStart == std::string_view::npos) { return std::unexpected(ParseError::MissingField); } + const std::size_t quoteEnd = json.find('"', quoteStart + 1U); + if (quoteEnd == std::string_view::npos) { + return std::unexpected(ParseError::MissingField); + } + const std::string_view value = + json.substr(quoteStart + 1U, quoteEnd - quoteStart - 1U); - return MixerState{ - .si4684Left = *si4684Left, - .si4684Right = *si4684Right, - .esp32Left = *esp32Left, - .esp32Right = *esp32Right, - .mixLeft = *mixLeft, - .mixRight = *mixRight, - }; + if (value == "radio") { + return ActiveSource::Radio; + } + if (value == "bluetooth") { + return ActiveSource::Bluetooth; + } + if (value == "beep") { + return ActiveSource::Beep; + } + return std::unexpected(ParseError::MissingField); } [[nodiscard]] std::expected parseEqJson( @@ -207,14 +220,8 @@ namespace { std::string serializeAudioProfileJson(const AudioProfile& profile) { std::ostringstream out; - const auto& m = profile.mixer; - out << "{\"mixer\":{" - << "\"si4684_left_db\":" << m.si4684Left.value() << ',' - << "\"si4684_right_db\":" << m.si4684Right.value() << ',' - << "\"esp32_left_db\":" << m.esp32Left.value() << ',' - << "\"esp32_right_db\":" << m.esp32Right.value() << ',' - << "\"mix_left_db\":" << m.mixLeft.value() << ',' - << "\"mix_right_db\":" << m.mixRight.value() << "}," + out << "{\"active_source\":\"" << activeSourceName(profile.activeSource) + << "\"," << "\"master\":{" << "\"left_db\":" << profile.masterLeft.value() << ',' << "\"right_db\":" << profile.masterRight.value() << "}," @@ -223,19 +230,13 @@ std::string serializeAudioProfileJson(const AudioProfile& profile) // Per-band "locked" flag, added 2026-08-24: band 0 is a fixed high-pass // Adau1701Driver::applyEq() never safeloads (SigmaStudio band 1, ST0 in // the compiled program -- whatever gain_db/center_hz/q is stored/sent - // for it has zero audible effect, always). Bands 1-2 are overwritten by - // core::applyEnhancementsToEq() with formula-derived values whenever - // bass_level > 0; bands 3-5 likewise whenever stereo_level > 0 -- a - // manual edit to those bands is silently inaudible while the - // corresponding enhancement is active. This was previously - // undiscoverable from the API response (GET echoed back the stored, - // inert value with no indication it wasn't what was actually playing); - // "locked":true now tells a client to grey out that slider instead of - // letting the user "fix" a value that can't take effect. - const bool bassLocks = profile.enhancements.bass.value() > 0U; - const bool stereoLocks = profile.enhancements.stereo.value() > 0U; + // for it has zero audible effect, always). Since the 2026-08-25 + // DigiRadioFinale revision, bass/stereo enhancement drive the dedicated + // Bass Boost1/SPhat1 blocks directly instead of overwriting EQ bands, + // so bands 1-5 are no longer locked by enhancement levels -- only + // band 0 remains permanently inert. const bool locked[EqBandIndex::kBandCount] = { - true, bassLocks, bassLocks, stereoLocks, stereoLocks, stereoLocks, + true, false, false, false, false, false, }; const auto& bands = profile.eq.bands(); @@ -263,9 +264,9 @@ std::expected parseAudioProfileJson( return std::unexpected(ParseError::InvalidJson); } - const auto mixer = parseMixerJson(json); - if (!mixer) { - return std::unexpected(mixer.error()); + const auto activeSource = parseActiveSourceJson(json); + if (!activeSource) { + return std::unexpected(activeSource.error()); } const auto eq = parseEqJson(json); @@ -290,7 +291,7 @@ std::expected parseAudioProfileJson( } return AudioProfile{ - .mixer = *mixer, + .activeSource = *activeSource, .eq = *eq, .masterLeft = *masterLeft, .masterRight = *masterRight, @@ -337,4 +338,16 @@ std::expected parseBeepEnabledJson(std::string_view json) return enabled; } +std::string serializeAudioLevelsJson(const AudioLevels& levels) +{ + std::ostringstream out; + out << "{\"radio_in_left_db\":" << levels.radioInLeftDb + << ",\"radio_in_right_db\":" << levels.radioInRightDb + << ",\"bluetooth_in_left_db\":" << levels.bluetoothInLeftDb + << ",\"bluetooth_in_right_db\":" << levels.bluetoothInRightDb + << ",\"output_left_db\":" << levels.outputLeftDb + << ",\"output_right_db\":" << levels.outputRightDb << "}"; + return out.str(); +} + } // namespace core diff --git a/Software/components/core/src/EnhancementsDesign.cpp b/Software/components/core/src/EnhancementsDesign.cpp deleted file mode 100644 index a3f37dc..0000000 --- a/Software/components/core/src/EnhancementsDesign.cpp +++ /dev/null @@ -1,70 +0,0 @@ -/** - * @file EnhancementsDesign.cpp - * @brief Enhancement-to-EQ mapping implementation. - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ -#include "core/EnhancementsDesign.hpp" - -#include "core/EqBandIndex.hpp" -#include "core/FrequencyHz.hpp" -#include "core/GainDb.hpp" - -namespace core { - -namespace { - -void setBand(EqProfile& profile, std::uint8_t index, GainDb gain, - FrequencyHz center, float q) noexcept -{ - const auto band = EqBandIndex::tryFromIndex(index); - if (!band) { - return; - } - profile.setBand(*band, EqBandSettings{ - .gain = gain, - .center = center, - .q = q, - }); -} - -[[nodiscard]] GainDb gainFromDb(float db) noexcept -{ - return *GainDb::tryFromDb(db); -} - -} // namespace - -EqProfile applyEnhancementsToEq(const EqProfile& base, - const AudioEnhancements& enhancements) noexcept -{ - EqProfile profile = base; - - if (enhancements.bass.value() > 0U) { - const float t = enhancements.bass.fraction(); - setBand(profile, 1U, gainFromDb(9.0F * t), - *FrequencyHz::tryFromHz(100U), 0.9F); - setBand(profile, 2U, gainFromDb(3.0F * t), - *FrequencyHz::tryFromHz(400U), 1.0F); - } - - if (enhancements.stereo.value() > 0U) { - const float t = enhancements.stereo.fraction(); - setBand(profile, 3U, gainFromDb(-1.5F * t), - *FrequencyHz::tryFromHz(1000U), 1.0F); - setBand(profile, 4U, gainFromDb(2.0F * t), - *FrequencyHz::tryFromHz(3000U), 1.0F); - setBand(profile, 5U, gainFromDb(4.0F * t), - *FrequencyHz::tryFromHz(8000U), 1.0F); - } - - return profile; -} - -} // namespace core diff --git a/Software/components/core/src/MixerState.cpp b/Software/components/core/src/MixerState.cpp deleted file mode 100644 index f766016..0000000 --- a/Software/components/core/src/MixerState.cpp +++ /dev/null @@ -1,45 +0,0 @@ -/** - * @file MixerState.cpp - * @brief MixerState factory defaults. - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ - -#include "core/MixerState.hpp" - -namespace core { - -MixerState MixerState::factoryDefault() noexcept -{ - const GainDb unity = GainDb::zero(); - return MixerState{ - .si4684Left = unity, - .si4684Right = unity, - .esp32Left = unity, - .esp32Right = unity, - .mixLeft = unity, - .mixRight = unity, - }; -} - -MixerState MixerState::radioFirst() noexcept -{ - const GainDb unity = GainDb::zero(); - const GainDb muted = *GainDb::tryFromDb(GainDb::kMinDb); - return MixerState{ - .si4684Left = unity, - .si4684Right = unity, - .esp32Left = muted, - .esp32Right = muted, - .mixLeft = unity, - .mixRight = muted, - }; -} - -} // namespace core diff --git a/Software/components/core/test/CMakeLists.txt b/Software/components/core/test/CMakeLists.txt index 784f300..b9dbbc6 100644 --- a/Software/components/core/test/CMakeLists.txt +++ b/Software/components/core/test/CMakeLists.txt @@ -31,11 +31,9 @@ add_library(digiradio_core STATIC "${CORE_SRC_DIR}/EqBandIndex.cpp" "${CORE_SRC_DIR}/BiquadCoefficients.cpp" "${CORE_SRC_DIR}/BiquadDesign.cpp" - "${CORE_SRC_DIR}/MixerState.cpp" "${CORE_SRC_DIR}/EqProfile.cpp" "${CORE_SRC_DIR}/EnhanceLevel.cpp" "${CORE_SRC_DIR}/AudioEnhancements.cpp" - "${CORE_SRC_DIR}/EnhancementsDesign.cpp" "${CORE_SRC_DIR}/AudioProfile.cpp" "${CORE_SRC_DIR}/AudioProfileJson.cpp" "${CORE_SRC_DIR}/Bt1035At.cpp" @@ -110,10 +108,6 @@ add_executable(audio_profile_json_test audio_profile_json_test.cpp) target_link_libraries(audio_profile_json_test PRIVATE digiradio_core) add_test(NAME audio_profile_json_test COMMAND audio_profile_json_test) -add_executable(enhancements_design_test enhancements_design_test.cpp) -target_link_libraries(enhancements_design_test PRIVATE digiradio_core) -add_test(NAME enhancements_design_test COMMAND enhancements_design_test) - add_executable(station_service_test station_service_test.cpp) target_include_directories(station_service_test PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/host_stubs" diff --git a/Software/components/core/test/audio_profile_json_test.cpp b/Software/components/core/test/audio_profile_json_test.cpp index 1a9e2d6..d533de8 100644 --- a/Software/components/core/test/audio_profile_json_test.cpp +++ b/Software/components/core/test/audio_profile_json_test.cpp @@ -69,6 +69,23 @@ namespace { std::cerr << "enhancements round-trip mismatch\n"; return EXIT_FAILURE; } + + if (parsed->activeSource != core::ActiveSource::Radio) { + std::cerr << "default active_source mismatch\n"; + return EXIT_FAILURE; + } + + profile.activeSource = core::ActiveSource::Bluetooth; + const std::string json3 = core::serializeAudioProfileJson(profile); + if (json3.find(R"("active_source":"bluetooth")") == std::string::npos) { + std::cerr << "active_source serialization mismatch: " << json3 << '\n'; + return EXIT_FAILURE; + } + const auto parsed3 = core::parseAudioProfileJson(json3); + if (!parsed3 || parsed3->activeSource != core::ActiveSource::Bluetooth) { + std::cerr << "active_source round-trip mismatch\n"; + return EXIT_FAILURE; + } return EXIT_SUCCESS; } diff --git a/Software/components/core/test/enhancements_design_test.cpp b/Software/components/core/test/enhancements_design_test.cpp deleted file mode 100644 index 3da3559..0000000 --- a/Software/components/core/test/enhancements_design_test.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/** - * @file enhancements_design_test.cpp - * @brief Host tests for enhancement-to-EQ mapping. - * - * DigiRadio firmware — https://github.com/manvalan/DigiRadio - * - * Copyright 2026 Michele Bigi - * SPDX-License-Identifier: Apache-2.0 - * - * @author Michele Bigi - * @date 2026-07-06 - */ - -#include "core/AudioEnhancements.hpp" -#include "core/EnhanceLevel.hpp" -#include "core/EnhancementsDesign.hpp" -#include "core/EqBandIndex.hpp" -#include "core/EqProfile.hpp" - -#include -#include -#include - -namespace { - -[[nodiscard]] bool nearlyEqual(float a, float b) noexcept -{ - return std::fabs(a - b) < 0.01F; -} - -[[nodiscard]] int runBassMappingTest() -{ - const auto level = core::EnhanceLevel::tryFromLevel(100U); - if (!level) { - std::cerr << "level setup failed\n"; - return EXIT_FAILURE; - } - - core::AudioEnhancements enhancements = core::AudioEnhancements::factoryDefault(); - enhancements.bass = *level; - - const core::EqProfile base = core::EqProfile::factoryDefault(); - const core::EqProfile effective = - core::applyEnhancementsToEq(base, enhancements); - - const auto band1 = core::EqBandIndex::tryFromIndex(1U); - const auto band2 = core::EqBandIndex::tryFromIndex(2U); - if (!band1 || !band2) { - return EXIT_FAILURE; - } - - if (!nearlyEqual(effective.band(*band1).gain.value(), 9.0F) - || !nearlyEqual(effective.band(*band2).gain.value(), 3.0F)) { - std::cerr << "bass mapping mismatch\n"; - return EXIT_FAILURE; - } - return EXIT_SUCCESS; -} - -[[nodiscard]] int runStereoMappingTest() -{ - const auto level = core::EnhanceLevel::tryFromLevel(50U); - if (!level) { - std::cerr << "level setup failed\n"; - return EXIT_FAILURE; - } - - core::AudioEnhancements enhancements = core::AudioEnhancements::factoryDefault(); - enhancements.stereo = *level; - - const core::EqProfile base = core::EqProfile::factoryDefault(); - const core::EqProfile effective = - core::applyEnhancementsToEq(base, enhancements); - - const auto band3 = core::EqBandIndex::tryFromIndex(3U); - const auto band4 = core::EqBandIndex::tryFromIndex(4U); - const auto band5 = core::EqBandIndex::tryFromIndex(5U); - if (!band3 || !band4 || !band5) { - return EXIT_FAILURE; - } - - if (!nearlyEqual(effective.band(*band3).gain.value(), -0.75F) - || !nearlyEqual(effective.band(*band4).gain.value(), 1.0F) - || !nearlyEqual(effective.band(*band5).gain.value(), 2.0F)) { - std::cerr << "stereo mapping mismatch\n"; - return EXIT_FAILURE; - } - return EXIT_SUCCESS; -} - -[[nodiscard]] int runOffLeavesBaseTest() -{ - const core::EqProfile base = core::EqProfile::factoryDefault(); - const core::AudioEnhancements off = core::AudioEnhancements::factoryDefault(); - const core::EqProfile effective = core::applyEnhancementsToEq(base, off); - - const auto band1 = core::EqBandIndex::tryFromIndex(1U); - if (!band1) { - return EXIT_FAILURE; - } - - if (!nearlyEqual(effective.band(*band1).gain.value(), - base.band(*band1).gain.value())) { - std::cerr << "off should leave base unchanged\n"; - return EXIT_FAILURE; - } - return EXIT_SUCCESS; -} - -} // namespace - -int main() -{ - if (runBassMappingTest() != EXIT_SUCCESS) { - return EXIT_FAILURE; - } - if (runStereoMappingTest() != EXIT_SUCCESS) { - return EXIT_FAILURE; - } - if (runOffLeavesBaseTest() != EXIT_SUCCESS) { - return EXIT_FAILURE; - } - return EXIT_SUCCESS; -} diff --git a/Software/components/core/test/integration_service_test.cpp b/Software/components/core/test/integration_service_test.cpp index 41451d1..42e1db1 100644 --- a/Software/components/core/test/integration_service_test.cpp +++ b/Software/components/core/test/integration_service_test.cpp @@ -40,8 +40,8 @@ public: return {}; } - [[nodiscard]] std::expected applyMixer( - const core::MixerState&) override + [[nodiscard]] std::expected selectSource( + core::ActiveSource) override { return {}; } @@ -52,12 +52,6 @@ public: return {}; } - [[nodiscard]] std::expected setInputVolume( - core::MixSource, core::GainDb, core::GainDb) override - { - return {}; - } - [[nodiscard]] std::expected setMasterVolume( core::GainDb, core::GainDb) override { @@ -76,6 +70,24 @@ public: return {}; } + [[nodiscard]] std::expected setBassBoostLevel( + core::EnhanceLevel) override + { + return {}; + } + + [[nodiscard]] std::expected setStereoSpreadLevel( + core::EnhanceLevel) override + { + return {}; + } + + [[nodiscard]] std::expected + readLevels() override + { + return core::AudioLevels{}; + } + [[nodiscard]] std::expected writeRawParam( unsigned, float) override { diff --git a/Software/components/drivers/adau1701/include/adau1701/Adau1701Driver.hpp b/Software/components/drivers/adau1701/include/adau1701/Adau1701Driver.hpp index 57f3753..4c1983f 100644 --- a/Software/components/drivers/adau1701/include/adau1701/Adau1701Driver.hpp +++ b/Software/components/drivers/adau1701/include/adau1701/Adau1701Driver.hpp @@ -14,14 +14,15 @@ #include "adau1701/Adau1701Error.hpp" +#include "core/AudioLevels.hpp" #include "core/AudioProfile.hpp" +#include "core/EnhanceLevel.hpp" #include "core/EqBandIndex.hpp" #include "core/EqProfile.hpp" #include "core/FrequencyHz.hpp" #include "core/GainDb.hpp" #include "core/IDspProgramSource.hpp" -#include "core/MixSource.hpp" -#include "core/MixerState.hpp" +#include "core/ActiveSource.hpp" #include #include @@ -144,18 +145,18 @@ public: const core::AudioProfile& profile); /** - * @brief applyMixer — safeload input and stereo-mixer gains. + * @brief selectSource — safeload DC1 to pick MX1's active input pair. * - * @dname applyMixer - * @param mixer Per-source and St Mixer1 levels. + * @dname selectSource + * @param source Which stereo pair MX1 passes through. * @return Ok on success, or Adau1701Error. * @pubstate writes parameter RAM via safeload. * * @author Michele Bigi - * @date 2026-07-06 + * @date 2026-08-25 */ - [[nodiscard]] std::expected applyMixer( - const core::MixerState& mixer); + [[nodiscard]] std::expected selectSource( + core::ActiveSource source); /** * @brief applyEq — safeload all six PEQ bands. @@ -171,22 +172,6 @@ public: [[nodiscard]] std::expected applyEq( const core::EqProfile& eq); - /** - * @brief setInputVolume — safeload one input path gain. - * - * @dname setInputVolume - * @param source Si4684 or ESP32 I2S path. - * @param left Left channel gain. - * @param right Right channel gain. - * @return Ok on success, or Adau1701Error. - * @pubstate writes parameter RAM via safeload. - * - * @author Michele Bigi - * @date 2026-07-06 - */ - [[nodiscard]] std::expected setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right); - /** * @brief setMasterVolume — safeload Multiple 1 master output gain. * @@ -234,6 +219,35 @@ public: [[nodiscard]] std::expected setBeepEnabled( bool enabled); + /** + * @brief setBassBoostLevel — scale Bass Boost1 toward its compiled + * curve. + * + * @dname setBassBoostLevel + * @param level 0 = flat bypass, 100 = full compiled response. + * @return Ok on success, or Adau1701Error. + * @pubstate writes parameter RAM via safeload. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] std::expected setBassBoostLevel( + core::EnhanceLevel level); + + /** + * @brief setStereoSpreadLevel — scale SPhat1's stereo spread amount. + * + * @dname setStereoSpreadLevel + * @param level 0 = no spread, 100 = full compiled spread. + * @return Ok on success, or Adau1701Error. + * @pubstate writes parameter RAM via safeload. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] std::expected setStereoSpreadLevel( + core::EnhanceLevel level); + /** * @brief writeRawParam — safeload any named Parameter RAM cell. * @@ -256,6 +270,21 @@ public: [[nodiscard]] std::expected writeRawParam( unsigned address, float value); + /** + * @brief readLevels — on-demand read of all six 1×RTA level meters. + * + * @dname readLevels + * @return AudioLevels snapshot, or Adau1701Error. + * @pubstate Reads the ADAU1701 Data Capture Register (address 2074) six + * times in sequence, reconfiguring it for each meter's + * program-step/register-select pair before each read; no + * background polling, only runs when called. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] std::expected readLevels(); + private: [[nodiscard]] std::expected ensureBooted() const; [[nodiscard]] std::expected safeloadGain( @@ -264,6 +293,8 @@ private: unsigned paramAddr, std::int32_t fixpoint); [[nodiscard]] std::expected replayProgram( const core::DspProgram& program); + [[nodiscard]] std::expected readCaptureDb( + unsigned progCount, unsigned regSel); Adau1701Pins pins_; core::IDspProgramSource& programSource_; diff --git a/Software/components/drivers/adau1701/include/adau1701/Adau1701Dsp.hpp b/Software/components/drivers/adau1701/include/adau1701/Adau1701Dsp.hpp index 722ab8e..8388548 100644 --- a/Software/components/drivers/adau1701/include/adau1701/Adau1701Dsp.hpp +++ b/Software/components/drivers/adau1701/include/adau1701/Adau1701Dsp.hpp @@ -45,15 +45,12 @@ public: [[nodiscard]] std::expected applyProfile( const core::AudioProfile& profile) override; - [[nodiscard]] std::expected applyMixer( - const core::MixerState& mixer) override; + [[nodiscard]] std::expected selectSource( + core::ActiveSource source) override; [[nodiscard]] std::expected applyEq( const core::EqProfile& eq) override; - [[nodiscard]] std::expected setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right) override; - [[nodiscard]] std::expected setMasterVolume( core::GainDb left, core::GainDb right) override; @@ -64,9 +61,18 @@ public: [[nodiscard]] std::expected setBeepEnabled( bool enabled) override; + [[nodiscard]] std::expected setBassBoostLevel( + core::EnhanceLevel level) override; + + [[nodiscard]] std::expected setStereoSpreadLevel( + core::EnhanceLevel level) override; + [[nodiscard]] std::expected writeRawParam( unsigned address, float value) override; + [[nodiscard]] std::expected + readLevels() override; + private: [[nodiscard]] static core::DspError mapError(Adau1701Error error) noexcept; diff --git a/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp b/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp index 23ff4b7..85132fb 100644 --- a/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp +++ b/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp @@ -14,8 +14,8 @@ #include "DigiRadio_IC_1_PARAM.h" +#include "core/ActiveSource.hpp" #include "core/EqBandIndex.hpp" -#include "core/MixSource.hpp" #include @@ -39,39 +39,30 @@ namespace adau1701 { } /** - * @brief paramAddrInputLeft — left volume address for an input source. + * @brief paramSourceIndex — MX1 pair index written to DC1 for a source. * - * @dname paramAddrInputLeft - * @param source Si4684 or ESP32 path. - * @return Parameter RAM address for the left channel gain cell. + * @dname paramSourceIndex + * @param source Which stereo pair MX1 should pass through. + * @return 0 (Radio), 1 (Bluetooth), or 2 (Beep) -- confirmed live + * 2026-08-25 against real hardware (see + * docs/adau1701-sigmastudio-analysis.md). * @pubstate none * * @author Michele Bigi - * @date 2026-07-06 + * @date 2026-08-25 */ -[[nodiscard]] inline unsigned paramAddrInputLeft(core::MixSource source) noexcept +[[nodiscard]] inline unsigned paramSourceIndex( + core::ActiveSource source) noexcept { - return source == core::MixSource::Si4684 - ? static_cast(ADDR_SI4674) - : static_cast(ADDR_ESP32); -} - -/** - * @brief paramAddrInputRight — right volume address for an input source. - * - * @dname paramAddrInputRight - * @param source Si4684 or ESP32 path. - * @return Parameter RAM address for the right channel gain cell. - * @pubstate none - * - * @author Michele Bigi - * @date 2026-07-06 - */ -[[nodiscard]] inline unsigned paramAddrInputRight(core::MixSource source) noexcept -{ - return source == core::MixSource::Si4684 - ? static_cast(ADDR_SI4674_1) - : static_cast(ADDR_ESP32_1); + switch (source) { + case core::ActiveSource::Radio: + return 0U; + case core::ActiveSource::Bluetooth: + return 1U; + case core::ActiveSource::Beep: + return 2U; + } + return 0U; } } // namespace adau1701 diff --git a/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp b/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp index 6263ce7..a4e1d9d 100644 --- a/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp +++ b/Software/components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp @@ -8,13 +8,14 @@ * SPDX-License-Identifier: Apache-2.0 * * Generated from Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h (the - * SigmaStudio export). Regenerate by re-running the extraction over that - * file if the SigmaStudio project's cell list changes; entries here must - * stay in sync with the ADDR_* constants used by + * SigmaStudio export, "DigiRadioFinale" revision, captured 2026-08-25). + * Regenerate by re-running the extraction over that file if the SigmaStudio + * project's cell list changes; entries here must stay in sync with the + * ADDR_* constants used by * components/drivers/adau1701/src/Adau1701Driver.cpp's replayProgram(). * * @author Michele Bigi - * @date 2026-08-18 + * @date 2026-08-25 */ #pragma once @@ -39,83 +40,239 @@ struct Adau1701ParamEntry { * @pubstate Read-only; see file header for regeneration instructions. * * @author Michele Bigi - * @date 2026-08-18 + * @date 2026-08-25 */ -inline constexpr std::array kAdau1701ParamTable = {{ +inline constexpr std::array kAdau1701ParamTable = {{ {"BEEP1_ENABLE", 0}, {"BEEP1_KICK", 1}, {"BEEP1_BEEP_FREQ", 2}, - {"SI4674", 3}, - {"SI4674_1", 4}, - {"ESP32", 5}, - {"ESP32_1", 6}, - {"SINGLE1", 7}, + {"DC1", 3}, + {"DCB1_POLE", 4}, + {"DCB2_POLE", 5}, + {"DCB4_POLE", 6}, + {"DCB3_POLE", 7}, {"SSPLITTER1", 8}, - {"STMIXER1_ST0_VOLUME", 9}, - {"STMIXER1_ST1_VOLUME", 10}, - {"STMIXER1_ST2_VOLUME", 11}, - {"PARAMEQ1_ST0_B0", 12}, - {"PARAMEQ1_ST0_B1", 13}, - {"PARAMEQ1_ST0_B2", 14}, - {"PARAMEQ1_ST0_A0", 15}, - {"PARAMEQ1_ST0_A1", 16}, - {"PARAMEQ1_ST1_B0", 17}, - {"PARAMEQ1_ST1_B1", 18}, - {"PARAMEQ1_ST1_B2", 19}, - {"PARAMEQ1_ST1_A0", 20}, - {"PARAMEQ1_ST1_A1", 21}, - {"PARAMEQ1_ST2_B0", 22}, - {"PARAMEQ1_ST2_B1", 23}, - {"PARAMEQ1_ST2_B2", 24}, - {"PARAMEQ1_ST2_A0", 25}, - {"PARAMEQ1_ST2_A1", 26}, - {"PARAMEQ1_ST3_B0", 27}, - {"PARAMEQ1_ST3_B1", 28}, - {"PARAMEQ1_ST3_B2", 29}, - {"PARAMEQ1_ST3_A0", 30}, - {"PARAMEQ1_ST3_A1", 31}, - {"PARAMEQ1_ST4_B0", 32}, - {"PARAMEQ1_ST4_B1", 33}, - {"PARAMEQ1_ST4_B2", 34}, - {"PARAMEQ1_ST4_A0", 35}, - {"PARAMEQ1_ST4_A1", 36}, - {"PARAMEQ1_ST5_B0", 37}, - {"PARAMEQ1_ST5_B1", 38}, - {"PARAMEQ1_ST5_B2", 39}, - {"PARAMEQ1_ST5_A0", 40}, - {"PARAMEQ1_ST5_A1", 41}, - {"MULTIPLE1", 42}, - {"MULTIPLE1_1", 43}, - {"LIMITER1_S1", 44}, - {"LIMITER1_INT1", 45}, - {"LIMITER1_S2", 46}, - {"LIMITER1_INT2", 47}, - {"LIMITER1_S3", 48}, - {"LIMITER1_INT3", 49}, - {"LIMITER1_S4", 50}, - {"LIMITER1_INT4", 51}, - {"LIMITER1_C1", 52}, - {"LIMITER1_C2", 53}, - {"LIMITER1_C3", 54}, - {"LIMITER1_THRESHOLD", 55}, - {"LIMITER1_RMS", 56}, - {"LIMITER1_DECAY", 57}, - {"LIMITER1_DECAYCOMPLEMENT", 58}, - {"LIMITER2_S1", 59}, - {"LIMITER2_INT1", 60}, - {"LIMITER2_S2", 61}, - {"LIMITER2_INT2", 62}, - {"LIMITER2_S3", 63}, - {"LIMITER2_INT3", 64}, - {"LIMITER2_S4", 65}, - {"LIMITER2_INT4", 66}, - {"LIMITER2_C1", 67}, - {"LIMITER2_C2", 68}, - {"LIMITER2_C3", 69}, - {"LIMITER2_THRESHOLD", 70}, - {"LIMITER2_RMS", 71}, - {"LIMITER2_DECAY", 72}, - {"LIMITER2_DECAYCOMPLEMENT", 73}, + {"COMPRESSOR1_0", 9}, + {"COMPRESSOR1_1", 10}, + {"COMPRESSOR1_2", 11}, + {"COMPRESSOR1_3", 12}, + {"COMPRESSOR1_4", 13}, + {"COMPRESSOR1_5", 14}, + {"COMPRESSOR1_6", 15}, + {"COMPRESSOR1_7", 16}, + {"COMPRESSOR1_8", 17}, + {"COMPRESSOR1_9", 18}, + {"COMPRESSOR1_10", 19}, + {"COMPRESSOR1_11", 20}, + {"COMPRESSOR1_12", 21}, + {"COMPRESSOR1_13", 22}, + {"COMPRESSOR1_14", 23}, + {"COMPRESSOR1_15", 24}, + {"COMPRESSOR1_16", 25}, + {"COMPRESSOR1_17", 26}, + {"COMPRESSOR1_18", 27}, + {"COMPRESSOR1_19", 28}, + {"COMPRESSOR1_20", 29}, + {"COMPRESSOR1_21", 30}, + {"COMPRESSOR1_22", 31}, + {"COMPRESSOR1_23", 32}, + {"COMPRESSOR1_24", 33}, + {"COMPRESSOR1_25", 34}, + {"COMPRESSOR1_26", 35}, + {"COMPRESSOR1_27", 36}, + {"COMPRESSOR1_28", 37}, + {"COMPRESSOR1_29", 38}, + {"COMPRESSOR1_30", 39}, + {"COMPRESSOR1_31", 40}, + {"COMPRESSOR1_32", 41}, + {"COMPRESSOR1_33", 42}, + {"COMPRESSOR1_RMS", 43}, + {"COMPRESSOR1_POST_GAIN", 44}, + {"COMPRESSOR1_HOLD", 45}, + {"COMPRESSOR1_DECAY", 46}, + {"1XRTA3_TCONST", 47}, + {"1XRTA3_HOLD", 48}, + {"1XRTA3_DECAY", 49}, + {"1XRTA3", 2074}, + {"1XRTA4_TCONST", 50}, + {"1XRTA4_HOLD", 51}, + {"1XRTA4_DECAY", 52}, + {"1XRTA4", 2074}, + {"1XRTA1_TCONST", 53}, + {"1XRTA1_HOLD", 54}, + {"1XRTA1_DECAY", 55}, + {"1XRTA1", 2074}, + {"1XRTA2_TCONST", 56}, + {"1XRTA2_HOLD", 57}, + {"1XRTA2_DECAY", 58}, + {"1XRTA2", 2074}, + {"PARAMEQ1_ST0_B0", 59}, + {"PARAMEQ1_ST0_B1", 60}, + {"PARAMEQ1_ST0_B2", 61}, + {"PARAMEQ1_ST0_A0", 62}, + {"PARAMEQ1_ST0_A1", 63}, + {"PARAMEQ1_ST1_B0", 64}, + {"PARAMEQ1_ST1_B1", 65}, + {"PARAMEQ1_ST1_B2", 66}, + {"PARAMEQ1_ST1_A0", 67}, + {"PARAMEQ1_ST1_A1", 68}, + {"PARAMEQ1_ST2_B0", 69}, + {"PARAMEQ1_ST2_B1", 70}, + {"PARAMEQ1_ST2_B2", 71}, + {"PARAMEQ1_ST2_A0", 72}, + {"PARAMEQ1_ST2_A1", 73}, + {"PARAMEQ1_ST3_B0", 74}, + {"PARAMEQ1_ST3_B1", 75}, + {"PARAMEQ1_ST3_B2", 76}, + {"PARAMEQ1_ST3_A0", 77}, + {"PARAMEQ1_ST3_A1", 78}, + {"PARAMEQ1_ST4_B0", 79}, + {"PARAMEQ1_ST4_B1", 80}, + {"PARAMEQ1_ST4_B2", 81}, + {"PARAMEQ1_ST4_A0", 82}, + {"PARAMEQ1_ST4_A1", 83}, + {"PARAMEQ1_ST5_B0", 84}, + {"PARAMEQ1_ST5_B1", 85}, + {"PARAMEQ1_ST5_B2", 86}, + {"PARAMEQ1_ST5_A0", 87}, + {"PARAMEQ1_ST5_A1", 88}, + {"SPHAT1_B0LO0", 89}, + {"SPHAT1_B0LO1", 90}, + {"SPHAT1_B0LO2", 91}, + {"SPHAT1_B0LO3", 92}, + {"SPHAT1_B0LO4", 93}, + {"SPHAT1_B0LO5", 94}, + {"SPHAT1_B0LO6", 95}, + {"SPHAT1_B0LO7", 96}, + {"SPHAT1_B0LO8", 97}, + {"SPHAT1_B0LO9", 98}, + {"SPHAT1_GAINHI", 99}, + {"SPHAT1_GAINLO", 100}, + {"SPHAT1_GAININV", 101}, + {"SPHAT1_COMP_BASE0", 102}, + {"SPHAT1_COMP_BASE1", 103}, + {"SPHAT1_COMP_BASE2", 104}, + {"SPHAT1_COMP_BASE3", 105}, + {"SPHAT1_COMP_BASE4", 106}, + {"SPHAT1_COMP_BASE5", 107}, + {"SPHAT1_COMP_BASE6", 108}, + {"SPHAT1_COMP_BASE7", 109}, + {"SPHAT1_COMP_BASE8", 110}, + {"SPHAT1_COMP_BASE9", 111}, + {"SPHAT1_COMP_BASE10", 112}, + {"SPHAT1_COMP_BASE11", 113}, + {"SPHAT1_COMP_BASE12", 114}, + {"SPHAT1_COMP_BASE13", 115}, + {"SPHAT1_COMP_BASE14", 116}, + {"SPHAT1_COMP_BASE15", 117}, + {"SPHAT1_COMP_BASE16", 118}, + {"SPHAT1_COMP_BASE17", 119}, + {"SPHAT1_COMP_BASE18", 120}, + {"SPHAT1_COMP_BASE19", 121}, + {"SPHAT1_COMP_BASE20", 122}, + {"SPHAT1_COMP_BASE21", 123}, + {"SPHAT1_COMP_BASE22", 124}, + {"SPHAT1_COMP_BASE23", 125}, + {"SPHAT1_COMP_BASE24", 126}, + {"SPHAT1_COMP_BASE25", 127}, + {"SPHAT1_COMP_BASE26", 128}, + {"SPHAT1_COMP_BASE27", 129}, + {"SPHAT1_COMP_BASE28", 130}, + {"SPHAT1_COMP_BASE29", 131}, + {"SPHAT1_COMP_BASE30", 132}, + {"SPHAT1_COMP_BASE31", 133}, + {"SPHAT1_COMP_BASE32", 134}, + {"SPHAT1_COMP_BASE33", 135}, + {"SPHAT1_RMS", 136}, + {"SPHAT1_DECAY", 137}, + {"SPHAT1_HOLD", 138}, + {"SPHAT1_SPREAD1", 139}, + {"SPHAT1_SPREAD2", 140}, + {"GENFILTER1_ST0_B0", 141}, + {"GENFILTER1_ST0_B1", 142}, + {"GENFILTER1_ST0_B2", 143}, + {"GENFILTER1_ST0_A1", 144}, + {"GENFILTER1_ST0_A2", 145}, + {"MULTIPLE1", 146}, + {"MULTIPLE1_1", 147}, + {"BASSBOOST1_BASSFREQUENCY", 148}, + {"BASSBOOST1_B0", 149}, + {"BASSBOOST1_B1", 150}, + {"BASSBOOST1_B2", 151}, + {"BASSBOOST1_A1", 152}, + {"BASSBOOST1_A2", 153}, + {"BASSBOOST1_TABLE0", 154}, + {"BASSBOOST1_TABLE1", 155}, + {"BASSBOOST1_TABLE2", 156}, + {"BASSBOOST1_TABLE3", 157}, + {"BASSBOOST1_TABLE4", 158}, + {"BASSBOOST1_TABLE5", 159}, + {"BASSBOOST1_TABLE6", 160}, + {"BASSBOOST1_TABLE7", 161}, + {"BASSBOOST1_TABLE8", 162}, + {"BASSBOOST1_TABLE9", 163}, + {"BASSBOOST1_TABLE10", 164}, + {"BASSBOOST1_TABLE11", 165}, + {"BASSBOOST1_TABLE12", 166}, + {"BASSBOOST1_TABLE13", 167}, + {"BASSBOOST1_TABLE14", 168}, + {"BASSBOOST1_TABLE15", 169}, + {"BASSBOOST1_TABLE16", 170}, + {"BASSBOOST1_TABLE17", 171}, + {"BASSBOOST1_TABLE18", 172}, + {"BASSBOOST1_TABLE19", 173}, + {"BASSBOOST1_TABLE20", 174}, + {"BASSBOOST1_TABLE21", 175}, + {"BASSBOOST1_TABLE22", 176}, + {"BASSBOOST1_TABLE23", 177}, + {"BASSBOOST1_TABLE24", 178}, + {"BASSBOOST1_TABLE25", 179}, + {"BASSBOOST1_TABLE26", 180}, + {"BASSBOOST1_TABLE27", 181}, + {"BASSBOOST1_TABLE28", 182}, + {"BASSBOOST1_TABLE29", 183}, + {"BASSBOOST1_TABLE30", 184}, + {"BASSBOOST1_TABLE31", 185}, + {"BASSBOOST1_TABLE32", 186}, + {"BASSBOOST1_TIMECONSTANT", 187}, + {"1XRTA2_2_TCONST", 188}, + {"1XRTA2_2_HOLD", 189}, + {"1XRTA2_2_DECAY", 190}, + {"1XRTA2_2", 2074}, + {"1XRTA1_2_TCONST", 191}, + {"1XRTA1_2_HOLD", 192}, + {"1XRTA1_2_DECAY", 193}, + {"1XRTA1_2", 2074}, + {"LIMITER2_S1", 194}, + {"LIMITER2_INT1", 195}, + {"LIMITER2_S2", 196}, + {"LIMITER2_INT2", 197}, + {"LIMITER2_S3", 198}, + {"LIMITER2_INT3", 199}, + {"LIMITER2_S4", 200}, + {"LIMITER2_INT4", 201}, + {"LIMITER2_C1", 202}, + {"LIMITER2_C2", 203}, + {"LIMITER2_C3", 204}, + {"LIMITER2_THRESHOLD", 205}, + {"LIMITER2_RMS", 206}, + {"LIMITER2_DECAY", 207}, + {"LIMITER2_DECAYCOMPLEMENT", 208}, + {"LIMITER1_S1", 209}, + {"LIMITER1_INT1", 210}, + {"LIMITER1_S2", 211}, + {"LIMITER1_INT2", 212}, + {"LIMITER1_S3", 213}, + {"LIMITER1_INT3", 214}, + {"LIMITER1_S4", 215}, + {"LIMITER1_INT4", 216}, + {"LIMITER1_C1", 217}, + {"LIMITER1_C2", 218}, + {"LIMITER1_C3", 219}, + {"LIMITER1_THRESHOLD", 220}, + {"LIMITER1_RMS", 221}, + {"LIMITER1_DECAY", 222}, + {"LIMITER1_DECAYCOMPLEMENT", 223}, }}; /** @@ -127,7 +284,7 @@ inline constexpr std::array kAdau1701ParamTable = {{ * @pubstate none * * @author Michele Bigi - * @date 2026-08-18 + * @date 2026-08-25 */ [[nodiscard]] inline std::optional findAdau1701ParamAddress( std::string_view name) noexcept diff --git a/Software/components/drivers/adau1701/src/Adau1701Driver.cpp b/Software/components/drivers/adau1701/src/Adau1701Driver.cpp index d0924db..266a004 100644 --- a/Software/components/drivers/adau1701/src/Adau1701Driver.cpp +++ b/Software/components/drivers/adau1701/src/Adau1701Driver.cpp @@ -18,6 +18,8 @@ #include "core/BiquadDesign.hpp" #include "core/DspProgram.hpp" +#include + #include "DigiRadio_IC_1_PARAM.h" #include "SigmaStudioFW.h" @@ -358,18 +360,22 @@ namespace adau1701 return safeloadFixpoint(paramAddr, core::gainDbToLinearFixpoint(gain)); } - std::expected Adau1701Driver::setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right) + std::expected Adau1701Driver::selectSource( + core::ActiveSource source) { if (auto ready = ensureBooted(); !ready) { return ready; } - if (auto result = safeloadGain(paramAddrInputLeft(source), left); !result) - { - return result; - } - return safeloadGain(paramAddrInputRight(source), right); + // MX1 (DCinputmux_stereo) reads DC1 as a raw 32-bit integer pair + // index (0/1/2), NOT the 5.23 fixpoint conversion its compiled + // TYPE_DC1/VALUE_DC1 macros would suggest -- confirmed live + // 2026-08-25 (a 5.23-encoded write left the source unchanged; the + // raw integer switched Radio/Bluetooth/Beep correctly). 0=Radio, + // 1=Bluetooth (ESP32), 2=Beep, per paramSourceIndex(). + const auto index = + static_cast(paramSourceIndex(source)); + return safeloadFixpoint(static_cast(ADDR_DC1), index); } std::expected Adau1701Driver::setMasterVolume( @@ -387,45 +393,6 @@ namespace adau1701 return safeloadGain(static_cast(ADDR_MULTIPLE1_1), right); } - std::expected Adau1701Driver::applyMixer( - const core::MixerState &mixer) - { - if (auto ready = ensureBooted(); !ready) - { - return ready; - } - if (auto result = setInputVolume(core::MixSource::Si4684, mixer.si4684Left, - mixer.si4684Right); - !result) - { - ESP_LOGW(kTag, "applyMixer: si4684 input safeload failed"); - return result; - } - if (auto result = setInputVolume(core::MixSource::Esp32, mixer.esp32Left, - mixer.esp32Right); - !result) - { - ESP_LOGW(kTag, "applyMixer: esp32 input safeload failed"); - return result; - } - if (auto result = - safeloadGain(static_cast(ADDR_STMIXER1_ST0_VOLUME), - mixer.mixLeft); - !result) - { - ESP_LOGW(kTag, "applyMixer: st0 safeload failed"); - return result; - } - if (auto result = safeloadGain( - static_cast(ADDR_STMIXER1_ST1_VOLUME), mixer.mixRight); - !result) - { - ESP_LOGW(kTag, "applyMixer: st1 safeload failed"); - return result; - } - return {}; - } - std::expected Adau1701Driver::setEqBand( core::EqBandIndex band, core::GainDb gain, core::FrequencyHz center, float q) { @@ -487,6 +454,103 @@ namespace adau1701 return safeloadFixpoint(static_cast(ADDR_BEEP1_KICK), value); } + namespace + { + // Compiled SigmaStudio defaults for Bass Boost1's crossover filter + // and 33-point compander curve (DigiRadioFinale_IC_1_PARAM.h, + // 2026-08-25 export). setBassBoostLevel() interpolates from these + // toward an identity/unity bypass as level goes from 100 to 0 -- + // ADI's Dynamic Bass Boost algorithm internals aren't documented, + // so this is a linear blend of the known-good compiled curve, not + // a re-derivation of the algorithm's own math. + constexpr float kBassBoostB0 = 4.24433093514364e-05F; + constexpr float kBassBoostB1 = 8.48866187028728e-05F; + constexpr float kBassBoostB2 = 4.24433093514364e-05F; + constexpr float kBassBoostA1 = 1.98148576456209F; + constexpr float kBassBoostA2 = -0.981655537799498F; + constexpr float kBassBoostTable[33] = { + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.319153785510076F, 0.319153785510076F, 0.319153785510076F, + 0.322849412171264F, 0.334195040026114F, 0.345939377826122F, + 0.358096437102636F, 0.370680721782576F, 0.383707245492279F, + 0.39719154946944F, 0.411149721104522F, 0.425598413133743F, + }; + + constexpr float kSpreadSpread1 = 0.0629093159447337F; + constexpr float kSpreadSpread2 = 0.0193038143874401F; + + [[nodiscard]] float towardIdentity(float compiled, float identity, + float level) noexcept + { + return identity + (compiled - identity) * level; + } + } // namespace + + std::expected Adau1701Driver::setBassBoostLevel( + core::EnhanceLevel level) + { + if (auto ready = ensureBooted(); !ready) + { + return ready; + } + const float t = level.fraction(); + unsigned addrs[5U]; + int values[5U]; + addrs[0] = static_cast(ADDR_BASSBOOST1_B0); + addrs[1] = static_cast(ADDR_BASSBOOST1_B1); + addrs[2] = static_cast(ADDR_BASSBOOST1_B2); + addrs[3] = static_cast(ADDR_BASSBOOST1_A1); + addrs[4] = static_cast(ADDR_BASSBOOST1_A2); + values[0] = core::floatToFixpoint823(towardIdentity(kBassBoostB0, 1.0F, t)); + values[1] = core::floatToFixpoint823(towardIdentity(kBassBoostB1, 0.0F, t)); + values[2] = core::floatToFixpoint823(towardIdentity(kBassBoostB2, 0.0F, t)); + values[3] = core::floatToFixpoint823(towardIdentity(kBassBoostA1, 0.0F, t)); + values[4] = core::floatToFixpoint823(towardIdentity(kBassBoostA2, 0.0F, t)); + if (sigma_safeload_block(5U, addrs, values) != 0) + { + return std::unexpected(Adau1701Error::SafeloadFailed); + } + + for (unsigned i = 0U; i < 33U; ++i) + { + const unsigned addr = + static_cast(ADDR_BASSBOOST1_TABLE0) + i; + const std::int32_t value = core::floatToFixpoint823( + towardIdentity(kBassBoostTable[i], 1.0F, t)); + if (auto result = safeloadFixpoint(addr, value); !result) + { + return result; + } + } + return {}; + } + + std::expected Adau1701Driver::setStereoSpreadLevel( + core::EnhanceLevel level) + { + if (auto ready = ensureBooted(); !ready) + { + return ready; + } + const float t = level.fraction(); + if (auto result = safeloadFixpoint( + static_cast(ADDR_SPHAT1_SPREAD1), + core::floatToFixpoint823(kSpreadSpread1 * t)); + !result) + { + return result; + } + return safeloadFixpoint( + static_cast(ADDR_SPHAT1_SPREAD2), + core::floatToFixpoint823(kSpreadSpread2 * t)); + } + std::expected Adau1701Driver::writeRawParam( unsigned address, float value) { @@ -497,6 +561,121 @@ namespace adau1701 return safeloadFixpoint(address, core::floatToFixpoint823(value)); } + namespace + { + // ADAU1701 Data Capture Register, address 2074 (0x081A) -- see + // datasheet Rev.0 "2074 TO 2075 (0x081A TO 0x081B)--DATA CAPTURE + // REGISTERS" (p.36) and Table 32's register-map bit layout (p.30): + // D[11:2]=PC[9:0] (program-step index), D[1:0]=RS[1:0] (register + // select). Reading the same address afterward returns a 3-byte, + // 24-bit two's-complement 5.19 value (5.23 with the 4 LSBs + // truncated, per the datasheet). The per-meter (progCount, regSel) + // pairs below are read verbatim from SigmaStudio's own compiler + // output (Firmware/ADAU1701-Firmware/IC 1_DigiRadioFinale/ + // net_list_out2/trap.dat), not invented. + constexpr unsigned kDataCaptureAddr = 0x081AU; + constexpr unsigned kRegSelMacOut = 2U; // "mult_out" in trap.dat + + struct MeterPoint + { + unsigned progCount; + }; + + constexpr MeterPoint kRadioInLeft{221}; // SingleBandLevelDet1 + constexpr MeterPoint kRadioInRight{254}; // SingleBandLevelDet2 + constexpr MeterPoint kBluetoothInLeft{155}; // SingleBandLevelDet3 + constexpr MeterPoint kBluetoothInRight{188}; // SingleBandLevelDet4 + constexpr MeterPoint kOutputLeft{717}; // SingleBandLevelDet5 + constexpr MeterPoint kOutputRight{684}; // SingleBandLevelDet6 + } // namespace + + std::expected Adau1701Driver::readCaptureDb( + unsigned progCount, unsigned regSel) + { + const unsigned char deviceAddr = + static_cast(pins_.i2cAddr7 << 1); + const std::uint16_t config = static_cast( + ((progCount & 0x3FFU) << 2) | (regSel & 0x3U)); + unsigned char configBytes[2U] = { + static_cast((config >> 8) & 0xFFU), + static_cast(config & 0xFFU), + }; + if (SIGMA_WRITE_REGISTER_BLOCK(deviceAddr, kDataCaptureAddr, 2U, + configBytes) != 0) + { + return std::unexpected(Adau1701Error::SafeloadFailed); + } + + unsigned char raw[3U] = {0U, 0U, 0U}; + if (sigma_i2c_read(kDataCaptureAddr, raw, sizeof(raw)) != 0) + { + return std::unexpected(Adau1701Error::SafeloadFailed); + } + std::int32_t value = (static_cast(raw[0]) << 16) + | (static_cast(raw[1]) << 8) + | static_cast(raw[2]); + if ((value & (1 << 23)) != 0) + { + value -= (1 << 24); + } + const float linear = + static_cast(value) / static_cast(1 << 19); + constexpr float kFloorDb = -96.0F; + if (std::fabs(linear) < 1e-5F) + { + return kFloorDb; + } + const float db = 20.0F * std::log10(std::fabs(linear)); + return db < kFloorDb ? kFloorDb : db; + } + + std::expected Adau1701Driver::readLevels() + { + if (auto ready = ensureBooted(); !ready) + { + return std::unexpected(ready.error()); + } + + core::AudioLevels levels{}; + auto read = [this](MeterPoint point, + float &out) -> std::expected + { + const auto db = readCaptureDb(point.progCount, kRegSelMacOut); + if (!db) + { + return std::unexpected(db.error()); + } + out = *db; + return {}; + }; + + if (auto r = read(kRadioInLeft, levels.radioInLeftDb); !r) + { + return std::unexpected(r.error()); + } + if (auto r = read(kRadioInRight, levels.radioInRightDb); !r) + { + return std::unexpected(r.error()); + } + if (auto r = read(kBluetoothInLeft, levels.bluetoothInLeftDb); !r) + { + return std::unexpected(r.error()); + } + if (auto r = read(kBluetoothInRight, levels.bluetoothInRightDb); !r) + { + return std::unexpected(r.error()); + } + if (auto r = read(kOutputLeft, levels.outputLeftDb); !r) + { + return std::unexpected(r.error()); + } + if (auto r = read(kOutputRight, levels.outputRightDb); !r) + { + return std::unexpected(r.error()); + } + return levels; + } + std::expected Adau1701Driver::applyEq( const core::EqProfile &eq) { @@ -535,7 +714,7 @@ namespace adau1701 { return ready; } - if (auto result = applyMixer(profile.mixer); !result) + if (auto result = selectSource(profile.activeSource); !result) { return result; } @@ -543,7 +722,17 @@ namespace adau1701 { return result; } - return setMasterVolume(profile.masterLeft, profile.masterRight); + if (auto result = setMasterVolume(profile.masterLeft, profile.masterRight); + !result) + { + return result; + } + if (auto result = setBassBoostLevel(profile.enhancements.bass); + !result) + { + return result; + } + return setStereoSpreadLevel(profile.enhancements.stereo); } } // namespace adau1701 diff --git a/Software/components/drivers/adau1701/src/Adau1701Dsp.cpp b/Software/components/drivers/adau1701/src/Adau1701Dsp.cpp index ad850bf..67a3735 100644 --- a/Software/components/drivers/adau1701/src/Adau1701Dsp.cpp +++ b/Software/components/drivers/adau1701/src/Adau1701Dsp.cpp @@ -43,10 +43,10 @@ std::expected Adau1701Dsp::applyProfile( return {}; } -std::expected Adau1701Dsp::applyMixer( - const core::MixerState& mixer) +std::expected Adau1701Dsp::selectSource( + core::ActiveSource source) { - if (auto result = driver_.applyMixer(mixer); !result) { + if (auto result = driver_.selectSource(source); !result) { return std::unexpected(mapError(result.error())); } return {}; @@ -61,15 +61,6 @@ std::expected Adau1701Dsp::applyEq( return {}; } -std::expected Adau1701Dsp::setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right) -{ - if (auto result = driver_.setInputVolume(source, left, right); !result) { - return std::unexpected(mapError(result.error())); - } - return {}; -} - std::expected Adau1701Dsp::setMasterVolume( core::GainDb left, core::GainDb right) { @@ -97,6 +88,24 @@ std::expected Adau1701Dsp::setBeepEnabled(bool enabled) return {}; } +std::expected Adau1701Dsp::setBassBoostLevel( + core::EnhanceLevel level) +{ + if (auto result = driver_.setBassBoostLevel(level); !result) { + return std::unexpected(mapError(result.error())); + } + return {}; +} + +std::expected Adau1701Dsp::setStereoSpreadLevel( + core::EnhanceLevel level) +{ + if (auto result = driver_.setStereoSpreadLevel(level); !result) { + return std::unexpected(mapError(result.error())); + } + return {}; +} + std::expected Adau1701Dsp::writeRawParam( unsigned address, float value) { @@ -106,4 +115,13 @@ std::expected Adau1701Dsp::writeRawParam( return {}; } +std::expected Adau1701Dsp::readLevels() +{ + auto result = driver_.readLevels(); + if (!result) { + return std::unexpected(mapError(result.error())); + } + return *result; +} + } // namespace adau1701 diff --git a/Software/components/net/src/SetupWebServer.cpp b/Software/components/net/src/SetupWebServer.cpp index 4400422..c308b6e 100644 --- a/Software/components/net/src/SetupWebServer.cpp +++ b/Software/components/net/src/SetupWebServer.cpp @@ -971,6 +971,39 @@ esp_err_t audioBeepPostHandler(httpd_req_t* req) return httpd_resp_send(req, json.c_str(), json.size()); } +/** + * @brief audioLevelsGetHandler — serve GET /api/audio/levels as JSON. + * + * @dname audioLevelsGetHandler + * @param req HTTP request handle from esp_http_server. + * @return ESP_OK on success, or an esp_err_t error code. + * @pubstate Reads all six 1×RTA level meters live on every call -- no + * background polling, no caching. + * + * @author Michele Bigi + * @date 2026-08-25 + */ +esp_err_t audioLevelsGetHandler(httpd_req_t* req) +{ + auto* ctx = routeContextFrom(req); + if (ctx == nullptr || ctx->audio == nullptr) { + httpd_resp_set_status(req, "503 Service Unavailable"); + return httpd_resp_send(req, nullptr, 0); + } + + const auto levels = ctx->audio->readLevels(); + if (!levels) { + const std::string json = core::serializeAudioErrorJson("dsp_failed"); + httpd_resp_set_status(req, "500 Internal Server Error"); + httpd_resp_set_type(req, "application/json"); + return httpd_resp_send(req, json.c_str(), json.size()); + } + + const std::string json = core::serializeAudioLevelsJson(*levels); + httpd_resp_set_type(req, "application/json"); + return httpd_resp_send(req, json.c_str(), json.size()); +} + /** * @brief dspParamsGetHandler — serve GET /api/dsp/params as JSON. * @@ -2252,6 +2285,14 @@ std::expected SetupWebServer::start( }; httpd_register_uri_handler(server_, &audioBeepUri); + const httpd_uri_t audioLevelsUri = { + .uri = "/api/audio/levels", + .method = HTTP_GET, + .handler = audioLevelsGetHandler, + .user_ctx = routeCtx, + }; + httpd_register_uri_handler(server_, &audioLevelsUri); + const httpd_uri_t dspParamsUri = { .uri = "/api/dsp/params", .method = HTTP_GET, diff --git a/Software/components/services/audio/include/audio/AudioService.hpp b/Software/components/services/audio/include/audio/AudioService.hpp index f806394..cb68138 100644 --- a/Software/components/services/audio/include/audio/AudioService.hpp +++ b/Software/components/services/audio/include/audio/AudioService.hpp @@ -12,16 +12,16 @@ */ #pragma once +#include "core/ActiveSource.hpp" +#include "core/AudioLevels.hpp" #include "core/AudioProfile.hpp" #include "core/DspError.hpp" #include "core/EnhanceLevel.hpp" -#include "core/EnhancementsDesign.hpp" #include "core/EqBandIndex.hpp" #include "core/FrequencyHz.hpp" #include "core/GainDb.hpp" #include "core/IAudioProfileStore.hpp" #include "core/IDsp.hpp" -#include "core/MixSource.hpp" #include "core/StoreError.hpp" #include @@ -106,22 +106,19 @@ public: const core::AudioProfile& profile, bool persist); /** - * @brief setInputVolume — update one input path and apply live. + * @brief selectSource — switch MX1's active input pair and apply live. * - * @dname setInputVolume - * @param source Si4684 or ESP32 path. - * @param left Left gain. - * @param right Right gain. + * @dname selectSource + * @param source Which stereo pair MX1 should pass through. * @param persist When true and store is set, write NVS. * @return Ok on success, or StoreError wrapping DspError/IoFailed. - * @pubstate updates profile_.mixer and safeloads. + * @pubstate updates profile_.activeSource and safeloads. * * @author Michele Bigi - * @date 2026-07-06 + * @date 2026-08-25 */ - [[nodiscard]] std::expected setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right, - bool persist); + [[nodiscard]] std::expected selectSource( + core::ActiveSource source, bool persist); /** * @brief setMasterVolume — update master output and apply live. @@ -233,15 +230,26 @@ public: [[nodiscard]] std::expected writeRawParam( unsigned address, float value); + /** + * @brief readLevels — on-demand read of all six level meters. + * + * @dname readLevels + * @return AudioLevels snapshot, or DspError. + * @pubstate live-only: not part of AudioProfile, never persisted, does + * not touch profile_. + * + * @author Michele Bigi + * @date 2026-08-25 + */ + [[nodiscard]] std::expected + readLevels(); + private: [[nodiscard]] std::expected persistProfile() const; [[nodiscard]] std::expected applyProfileToDsp( const core::AudioProfile& profile); - [[nodiscard]] std::expected applyEffectiveEq( - bool persist); - core::IDsp& dsp_; core::IAudioProfileStore* store_; core::AudioProfile profile_; diff --git a/Software/components/services/audio/src/AudioService.cpp b/Software/components/services/audio/src/AudioService.cpp index 42f3440..787d648 100644 --- a/Software/components/services/audio/src/AudioService.cpp +++ b/Software/components/services/audio/src/AudioService.cpp @@ -21,15 +21,6 @@ namespace { constexpr char kTag[] = "AudioService"; -[[nodiscard]] core::AudioProfile profileForHardware( - const core::AudioProfile& profile) noexcept -{ - core::AudioProfile hardware = profile; - hardware.eq = - core::applyEnhancementsToEq(profile.eq, profile.enhancements); - return hardware; -} - } // namespace AudioService::AudioService(core::IDsp& dsp, core::IAudioProfileStore* store) @@ -81,28 +72,13 @@ std::expected AudioService::persistProfile() const std::expected AudioService::applyProfileToDsp( const core::AudioProfile& profile) { - const core::AudioProfile hardware = profileForHardware(profile); - if (auto applied = dsp_.applyProfile(hardware); !applied) { + if (auto applied = dsp_.applyProfile(profile); !applied) { ESP_LOGW(kTag, "applyProfileToDsp: DSP safeload failed"); return std::unexpected(core::StoreError::IoFailed); } return {}; } -std::expected AudioService::applyEffectiveEq( - bool persist) -{ - const core::EqProfile effective = core::applyEnhancementsToEq( - profile_.eq, profile_.enhancements); - if (auto applied = dsp_.applyEq(effective); !applied) { - return std::unexpected(core::StoreError::IoFailed); - } - if (persist) { - return persistProfile(); - } - return {}; -} - std::expected AudioService::applyProfile( const core::AudioProfile& profile, bool persist) { @@ -116,21 +92,13 @@ std::expected AudioService::applyProfile( return {}; } -std::expected AudioService::setInputVolume( - core::MixSource source, core::GainDb left, core::GainDb right, bool persist) +std::expected AudioService::selectSource( + core::ActiveSource source, bool persist) { - if (auto applied = dsp_.setInputVolume(source, left, right); !applied) { + if (auto applied = dsp_.selectSource(source); !applied) { return std::unexpected(core::StoreError::IoFailed); } - - if (source == core::MixSource::Si4684) { - profile_.mixer.si4684Left = left; - profile_.mixer.si4684Right = right; - } else { - profile_.mixer.esp32Left = left; - profile_.mixer.esp32Right = right; - } - + profile_.activeSource = source; if (persist) { return persistProfile(); } @@ -155,10 +123,10 @@ std::expected AudioService::applyRadioFirstMix( bool persist) { const core::GainDb unity = core::GainDb::zero(); - profile_.mixer = core::MixerState::radioFirst(); + profile_.activeSource = core::ActiveSource::Radio; profile_.masterLeft = unity; profile_.masterRight = unity; - if (auto applied = dsp_.applyMixer(profile_.mixer); !applied) { + if (auto applied = dsp_.selectSource(profile_.activeSource); !applied) { return std::unexpected(core::StoreError::IoFailed); } if (auto master = dsp_.setMasterVolume(unity, unity); !master) { @@ -179,21 +147,39 @@ std::expected AudioService::setEqBand( .center = center, .q = q, }); - return applyEffectiveEq(persist); + if (auto applied = dsp_.applyEq(profile_.eq); !applied) { + return std::unexpected(core::StoreError::IoFailed); + } + if (persist) { + return persistProfile(); + } + return {}; } std::expected AudioService::setStereoEnhance( core::EnhanceLevel level, bool persist) { + if (auto applied = dsp_.setStereoSpreadLevel(level); !applied) { + return std::unexpected(core::StoreError::IoFailed); + } profile_.enhancements.stereo = level; - return applyEffectiveEq(persist); + if (persist) { + return persistProfile(); + } + return {}; } std::expected AudioService::setBassEnhance( core::EnhanceLevel level, bool persist) { + if (auto applied = dsp_.setBassBoostLevel(level); !applied) { + return std::unexpected(core::StoreError::IoFailed); + } profile_.enhancements.bass = level; - return applyEffectiveEq(persist); + if (persist) { + return persistProfile(); + } + return {}; } std::expected AudioService::setBeepEnabled(bool enabled) @@ -207,4 +193,9 @@ std::expected AudioService::writeRawParam( return dsp_.writeRawParam(address, value); } +std::expected AudioService::readLevels() +{ + return dsp_.readLevels(); +} + } // namespace audio diff --git a/Software/docs/adau1701-sigmastudio-analysis.md b/Software/docs/adau1701-sigmastudio-analysis.md index 4b13b47..a044a74 100644 --- a/Software/docs/adau1701-sigmastudio-analysis.md +++ b/Software/docs/adau1701-sigmastudio-analysis.md @@ -6,188 +6,210 @@ con il driver firmware (`components/drivers/adau1701/`) e le API HTTP (`components/net/src/SetupWebServer.cpp`). Ogni valore di indirizzo/registro citato è letto direttamente dai file di export SigmaStudio, non inventato. -**Root cause del bug "volume/mixer/EQ non si salvano mai" trovato e risolto in questa -sessione (2026-08-24): vedi §7.** Tutto il resto del documento descrive l'architettura -del programma DSP com'è oggi, dopo il fix. +**Questo documento descrive la revisione "DigiRadioFinale" (2026-08-25)**, che +sostituisce il programma DSP precedente (74 parametri, mixer additivo) con uno +molto più ricco (224 parametri) basato su un **selettore di sorgente esclusivo** +invece di un mixer. §5 raccoglie anche i bug storici della revisione precedente, +per riferimento. --- ## 1. Catena del segnale (da `DigiRadio_NetList.xml`) ``` - ┌─────────────┐ -Si4684 (I2S) ──L──▶ │ Gain Si4674 │──▶┐ - ──R──▶ │ (addr 3,4) │──▶┤ - └─────────────┘ │ - │ ┌──────────────┐ ┌──────────────┐ -ESP32 (I2S) ──L──▶ ┌─────────────┐ ├──▶│ St Mixer1 │──▶│ Param EQ1 │──┐ - ──R──▶ │ Gain ESP32 │──▶┤ │ ST0/ST1/ST2 │ │ 6 bande │ │ - │ (addr 5,6) │──▶┘ │ (addr 9-11) │ │ (addr 12-41) │ │ - └─────────────┘ └──────────────┘ └──────────────┘ │ - │ -Beep1 (interno) ──▶ Single1 ──▶ SSplitter1 ──▶ (ST2, ingresso mixer) │ - (addr 0-2) (addr 7) (addr 8) │ - ▼ - ┌──────────────────┐ - │ Multiple1 (L/R) │ - │ = MASTER VOLUME │ - │ (addr 42, 43) │ - └──────────────────┘ - │ - ┌────────────┴────────────┐ - ▼ ▼ - ┌───────────────┐ ┌───────────────┐ - │ Limiter1 (L) │ │ Limiter2 (R) │ - │ (addr 44-58) │ │ (addr 59-73) │ - └───────────────┘ └───────────────┘ - │ │ - ▼ ▼ - Output1 Output2 - (→ BT1035 I2S, L) (→ BT1035 I2S, R) +Input1 (Si4684 L/R, ESP32 L/R) ──┬─▶ DCB1 (L radio) ─┐ + ├─▶ DCB2 (R radio) ─┼─▶ Compressor1 ─▶ 1×RTA1 (L) ─┐ + ├─▶ DCB4 (L esp32) ─┤ (stereo RMS) 1×RTA2 (R) ─┤ + └─▶ DCB3 (R esp32) ─┘ 1×RTA3 (L) ─┤ (readback, + 1×RTA4 (R) ─┤ ingresso) +Beep1 ─▶ S Splitter1 (mono→stereo) ─────────────────────────────────────────────────┤ + ▼ + ┌──────────────────┐ + │ MX1 (mux) │ + │ select = DC1 │ + │ 0=Radio 1=BT │ + │ 2=Beep (raw int!) │ + └──────────────────┘ + │ + ▼ + Param EQ1 (6 bande, addr 59-88) + │ + ▼ + SPhat1 (Spatializer, addr 89-140) + │ + ▼ + Gen Filter1 (Voice Clarifier, + addr 141-145 — non tarato) + │ + ▼ + Multiple1 (Master Volume, + addr 146-147) + │ + ▼ + Bass Boost1 (Dynamic Bass Boost, + addr 148-187) + │ + ┌──────────┴──────────┐ + ▼ ▼ + 1×RTA1_2 (readback) 1×RTA2_2 (readback) + │ │ + ▼ ▼ + Limiter1 (L) Limiter2 (R) + addr 209-223 addr 194-208 + │ │ + ▼ ▼ + Output1 Output2 + (→ BT1035 I2S, L) (→ BT1035 I2S, R) ``` -Punto architetturale importante, spesso fonte di confusione: **ogni sorgente ha DUE -livelli di gain in cascata**, non uno solo: +**Cambio architetturale rispetto alla revisione precedente**: non esiste più un +mixer che combina Si4684 + ESP32 + Beep simultaneamente. `MX1` è un **selettore +esclusivo**: passa UNA SOLA delle tre coppie stereo alla volta, scelta scrivendo +`DC1` (indirizzo 3). Non esistono più gain pre-mixer per sorgente (`SI4674`/`ESP32` +sono spariti) — il livello si controlla solo con Master Volume ed EQ, a valle +della selezione. -1. **Gain pre-mixer** (`SI4674`/`SI4674_1` addr 3/4, `ESP32`/`ESP32_1` addr 5/6) — un - gain indipendente per canale L e R, applicato PRIMA che il segnale entri nel mixer. -2. **Gain del mixer** (`STMIXER1_ST0_VOLUME`/`ST1_VOLUME` addr 9/10) — un SOLO gain per - l'intera coppia stereo di quella sorgente, applicato AL mixer. - -Se uno dei due è a -96dB (muto) e l'altro è aperto, il risultato finale è comunque -muto — impostare solo uno dei due senza sapere dell'altro è la causa più comune di -"ho cambiato il volume ma non sento niente". +**Scoperta empirica cruciale (2026-08-25)**: `DC1` è dichiarato +`SIGMASTUDIOTYPE_FIXPOINT` nell'export compilato (che farebbe pensare al formato +5.23 usato da tutte le altre celle), ma **MX1 legge invece un intero a 32 bit +grezzo**. Scrivere `0x00800000` (= 1.0 in 5.23) non cambia la sorgente; scrivere +`0x00000001` sì. Confermato dal vivo: 0=Radio, 1=Bluetooth(ESP32), 2=Beep. Vedi +`adau1701::paramSourceIndex()` e `Adau1701Driver::selectSource()`. --- -## 2. Mappa completa dei registri Parameter RAM (74 indirizzi, 0-73) +## 2. Mappa completa dei registri Parameter RAM (224 indirizzi, 0-223) -| Indirizzo | Nome SigmaStudio | Funzione | Gruppo | +| Indirizzi | Blocco | Funzione | Controllo runtime | |---|---|---|---| -| 0 | `BEEP1_ENABLE` | Abilita generatore toni interno | Diagnostica | -| 1 | `BEEP1_KICK` | Trigger del generatore toni | Diagnostica | -| 2 | `BEEP1_BEEP_FREQ` | Frequenza del tono (fissa, mai cambiata a runtime) | Diagnostica | -| 3 | `SI4674` | Gain pre-mixer Si4684, canale L | Mixer | -| 4 | `SI4674_1` | Gain pre-mixer Si4684, canale R | Mixer | -| 5 | `ESP32` | Gain pre-mixer streaming ESP32, canale L | Mixer | -| 6 | `ESP32_1` | Gain pre-mixer streaming ESP32, canale R | Mixer | -| 7 | `SINGLE1` | Gain del tono Beep prima dello splitter | Diagnostica | -| 8 | `SSPLITTER1` | Splitter mono→stereo per il tono Beep | Diagnostica | -| 9 | `STMIXER1_ST0_VOLUME` | Gain mixer, leg Si4684 (stereo, un solo controllo) | Mixer | -| 10 | `STMIXER1_ST1_VOLUME` | Gain mixer, leg ESP32 (stereo, un solo controllo) | Mixer | -| 11 | `STMIXER1_ST2_VOLUME` | Gain mixer, leg Beep — **mai esposto da nessuna API curata**, fisso a 1.0 (unity) di fabbrica | Mixer (non controllato) | -| 12-16 | `PARAMEQ1_ST0_*` (B0,B1,B2,A0,A1) | Banda EQ 0 — **filtro passa-alto fisso, mai scritto da `applyEq()`** | EQ (banda bloccata) | -| 17-21 | `PARAMEQ1_ST1_*` | Banda EQ 1 (default 100 Hz) | EQ | -| 22-26 | `PARAMEQ1_ST2_*` | Banda EQ 2 (default 400 Hz) | EQ | -| 27-31 | `PARAMEQ1_ST3_*` | Banda EQ 3 (default 1000 Hz) | EQ | -| 32-36 | `PARAMEQ1_ST4_*` | Banda EQ 4 (default 3000 Hz) | EQ | -| 37-41 | `PARAMEQ1_ST5_*` | Banda EQ 5 (default 8000 Hz) | EQ | -| 42 | `MULTIPLE1` | **Volume master**, canale L | Master | -| 43 | `MULTIPLE1_1` | **Volume master**, canale R | Master | -| 44-58 | `LIMITER1_*` | Limiter canale L (soglia a indirizzo 55) | Limiter | -| 59-73 | `LIMITER2_*` | Limiter canale R (soglia a indirizzo 70) | Limiter | +| 0-2 | `BEEP1_*` | Tono di test interno | `setBeepEnabled()` (live-only) | +| 3 | `DC1` | Selettore sorgente per MX1 — **intero grezzo**, non 5.23 | `selectSource()` | +| 4-7 | `DCB1-4_POLE` | DC blocker, uno per canale (radio L/R, esp32 L/R) | Fisso (compilato) | +| 8 | `SSPLITTER1` | Fan-out mono→stereo per Beep | Fisso | +| 9-46 | `COMPRESSOR1_*` | Compressore RMS stereo (curva a 34 punti) su radio L/R | Fisso | +| 47-58 | `1XRTA3,4,1,2` | 4 VU-meter in ingresso (radio L/R, esp32 L/R) | Lettura via indirizzo speciale 2074 — **meccanismo non ancora implementato in firmware** | +| 59-88 | `PARAMEQ1_ST0..5_*` | EQ parametrico, 6 bande × 5 coefficienti (B0,B1,B2,A0,A1) | `setEqBand()`/`applyEq()` | +| 89-140 | `SPHAT1_*` | Spatializer (SuperPhat) — solo `SPREAD1`/`SPREAD2` (139,140) sono la manopola di intensità; il resto (filtro crossover, tabella compander) è tarato in SigmaStudio | `setStereoSpreadLevel()` — scala SPREAD1/2 proporzionalmente (0=nessuno spread aggiunto, 100=pieno) | +| 141-145 | `GENFILTER1_ST0_*` | Voice Clarifier — **ancora piatto/identità** in questo export (b0=1, resto 0), non tarato | Non ancora implementato | +| 146-147 | `MULTIPLE1`, `MULTIPLE1_1` | Master Volume L/R | `setMasterVolume()` | +| 148-187 | `BASSBOOST1_*` | Dynamic Bass Boost — `BASSFREQUENCY`/`TIMECONSTANT` fissi; filtro crossover (B0,B1,B2,A1,A2) e tabella compander a 33 punti (`TABLE0-32`) sono la parte "intensità" | `setBassBoostLevel()` — scala filtro+tabella verso l'identità/unità (0=bypass piatto, 100=pieno compilato) | +| 188-193 | `1XRTA2_2,1_2` | 2 VU-meter in uscita (post Bass Boost, pre limiter) | Stesso meccanismo di lettura non ancora implementato | +| 194-208 | `LIMITER2_*` | Limiter canale R (soglia indirizzo 205) | Fisso | +| 209-223 | `LIMITER1_*` | Limiter canale L (soglia indirizzo 220) | Fisso | -Le 6 bande EQ condividono gli **stessi coefficienti per L e R** (il cell "Parametric -EQ - Double Precision" è stereo ma con un solo set di coefficienti per banda) — non -esiste un controllo EQ separato per canale. - -Formato dati: fixed-point **5.23** (28 bit significativi, non 32 — un errore di -decodifica di questo formato durante l'indagine del 23/08 aveva fatto sembrare -instabile un filtro che in realtà era corretto; vedi `core::floatToFixpoint823()` / -sign-extend da bit 27 in `Adau1701Driver.cpp`). +Formato dati: fixed-point **5.23** per quasi tutte le celle (28 bit significativi, +sign-extend da bit 27 — vedi `core::floatToFixpoint823()`), **eccetto `DC1`** che è +un intero grezzo a 32 bit (vedi sopra). --- -## 3. Registri di controllo (Core Control block, 0x800-0x827) +## 3. API HTTP e corrispondenza con i registri -| Indirizzo | Nome | Uso nel nostro firmware | -|---|---|---| -| 0x81C | Core Control Register | Scritto una sola volta al boot dal replay del programma compilato | -| 0x81E | Serial Output Control | Compilato, mai modificato a runtime | -| 0x81F | Serial Input Control (bit IBP/ILP) | **Storia**: un override IBP=1 qui era stato introdotto il 16/08 insieme a un fix non correlato di Si4684, mai validato da solo, e causa del fruscio multi-giorno risolto oggi (24/08). Rimosso — ora resta al default compilato (0x00) | -| 0x820/0x821 | MP Config 0/1 | Compilato, mai toccato | -| 0x822 | Analog Power-Down | Compilato, mai toccato | -| 0x826 | Analog Interface Register 2 | Contiene i bit IBIAS_ADJ/VREF_TRIM di trim analogico interno, mai toccati; è un registro diverso da quello dove viveva l'override IBP (0x81F) | - ---- - -## 4. API HTTP e corrispondenza con i registri — tutte testate dal vivo il 24/08 - -| Endpoint | Metodo | Corpo | Registri toccati | Persistenza NVS | Testato | +| Endpoint | Metodo | Corpo | Cosa tocca | Persistenza | Testato dal vivo | |---|---|---|---|---|---| -| `/api/audio/profile` | GET | — | legge tutto | — | ✅ | -| `/api/audio/profile` | PUT | mixer + master + eq[6] + enhancements | 3,4,5,6,9,10,12-41,42,43 | ✅ | ✅ (round-trip completo dopo riavvio) | -| `/api/audio/reset` | POST | — | ripristina `AudioProfile::factoryDefault()` (mixer: **entrambe** le sorgenti aperte a 0dB, non radio-first) | ✅ | ✅ | -| `/api/audio/stereo-enhance` | POST | `{"level":0-100}` | bande EQ 3,4,5 (sovrascrive) | ✅ | ✅ | -| `/api/audio/bass-enhance` | POST | `{"level":0-100}` | bande EQ 1,2 (sovrascrive) | ✅ | ✅ | -| `/api/audio/beep` | POST | `{"enabled":true/false}` | 0 (`BEEP1_ENABLE`), 1 (`BEEP1_KICK`) | ❌ (live-only, come da design) | ✅ | -| `/api/dsp/params` | GET | — | elenco statico nome→indirizzo (74 celle) | — | ✅ | -| `/api/dsp/param` | PUT | `{"name":"...","value":}` | qualunque cella per nome, incluse quelle **non** raggiungibili dalle API curate (es. `STMIXER1_ST2_VOLUME`) | ❌ (live-only, "escape hatch" come SigmaStudio Remote Connection) | ✅ (scritto e ripristinato `STMIXER1_ST2_VOLUME`) | -| `/api/tuner/xtal-calibrate` | POST | `{"ibias","ctun","xtal_freq_hz"}` | Si4684 POWER_UP (non ADAU1701) | ✅ (dal fix di stasera) | ✅ | +| `/api/audio/profile` | GET/PUT | `active_source`, `master`, `eq[6]`, `enhancements` | `DC1`, EQ 59-88, Master 146-147, Bass Boost/Spatializer via enhancements | ✅ | ✅ | +| `/api/audio/reset` | POST | — | `AudioProfile::factoryDefault()` (Radio, EQ piatto, enhancements 0) | ✅ | — | +| `/api/audio/stereo-enhance` | POST | `{"level":0-100}` | `SPHAT1_SPREAD1/2` (scala proporzionale) | ✅ | ✅ (effetto soggettivo/sottile) | +| `/api/audio/bass-enhance` | POST | `{"level":0-100}` | `BASSBOOST1_*` filtro+tabella (scala verso identità) | ✅ | ✅ (confermato su radio, non su tono fisso — l'algoritmo è dinamico, reagisce a contenuto con dinamica reale) | +| `/api/audio/beep` | POST | `{"enabled":true/false}` | `BEEP1_ENABLE/KICK` | ❌ (live-only, per design) | ✅ | +| `/api/audio/levels` | GET | — | legge live i 6 VU-meter (Data Capture Register 2074) | — (nessuna cache/polling) | ✅ | +| `/api/dsp/params` | GET | — | elenco statico nome→indirizzo (230 celle, incluse le 6 speciali readback) | — | ✅ | +| `/api/dsp/param` | PUT | `{"name":"...","value":}` | qualunque cella per nome — **eccetto `DC1`, che qui va scritto già come intero puro, non tramite `selectSource()`** | ❌ (live-only) | ✅ (sweep completo di 223/224 celle scrivibili, 0 errori) | -### Campo `"locked"` per banda EQ (aggiunto oggi) +`active_source` accetta `"radio"`, `"bluetooth"`, `"beep"`. Il vecchio campo +`"mixer"` (con `si4684_left_db`/`esp32_left_db`/`mix_left_db` ecc.) **non esiste +più** — non ha più senso dato che non c'è più un mixer da bilanciare. -`GET/PUT /api/audio/profile` ora include `"locked":true/false` per ciascuna delle 6 -bande in `eq[]`: -- banda 0: **sempre `true`** — è il passa-alto fisso, qualsiasi valore scritto è - cosmetico, non ha mai effetto udibile (`Adau1701Driver::applyEq()` la salta - esplicitamente). -- bande 1,2: `true` quando `bass_level > 0` — l'enhancement le sovrascrive con valori - calcolati da formula, un edit manuale in quel momento non è udibile. -- bande 3,4,5: `true` quando `stereo_level > 0`, stesso motivo. - -Prima di questo fix il comportamento era identico (le bande erano già sovrascritte), -ma l'API non lo segnalava — sembrava che "il salvataggio non facesse nulla" quando in -realtà stava facendo esattamente quello che il DSP prevede, solo senza dirlo. +Il campo `"locked"` per banda EQ (introdotto il 24/08 quando bass/stereo enhance +sovrascrivevano le bande EQ) **ora è sempre `false` tranne la banda 0** (passa-alto +fisso): bass/stereo enhance non toccano più l'EQ, guidano direttamente Bass +Boost1/SPhat1. --- -## 5. Bug trovati e stato +## 4. VU-meter (readback) — implementato 2026-08-25 + +Le 6 celle `1×RTA*` sono veri VU-meter (level detector) posizionati in 4 punti +d'ingresso e 2 punti d'uscita. Il loro valore NON sta al normale indirizzo +Parameter RAM di ciascuna — usano il **Data Capture Register** dell'ADAU1701 +(indirizzo 2074/0x081A, datasheet Rev.0 pag. 30 e 36, Table 28/29/32/44/45): + +1. Si scrive un word di 16 bit a 2074: bit[11:2] = indice del passo di + programma (`PC[9:0]`) dove campionare, bit[1:0] = quale registro interno + del core trasferire (`RS[1:0]`; `10`=MAC_out). +2. Si rilegge lo stesso indirizzo 2074: risponde con 3 byte (24 bit, + complemento a due, formato 5.19 — il 5.23 interno con i 4 LSB troncati). + +Gli indici `PC[9:0]` per ciascuno dei 6 meter **non sono stati inventati**: +vengono letti testualmente dal file che il compilatore SigmaStudio genera +apposta per questo (`IC 1_DigiRadioFinale/net_list_out2/trap.dat`): + +| Meter | Punto | Program-step (trap.dat) | +|---|---|---| +| `1×RTA1` | Radio L, post-compressore | 221 | +| `1×RTA2` | Radio R, post-compressore | 254 | +| `1×RTA3` | ESP32 L | 155 | +| `1×RTA4` | ESP32 R | 188 | +| `1×RTA1_2` | Uscita L (post Bass Boost1) | 717 | +| `1×RTA2_2` | Uscita R (post Bass Boost1) | 684 | + +Il chip ha **solo 2 registri di cattura hardware** (2074, 2075); il firmware +ne usa uno solo, riconfigurandolo e rileggendolo in sequenza per i 6 punti — +**solo quando arriva una richiesta** `GET /api/audio/levels`, nessun polling +in background. Testato dal vivo: valori plausibili e distinti per ciascun +punto, e l'uscita scende coerentemente abbassando il master volume. + +Vedi `Adau1701Driver::readLevels()`/`readCaptureDb()` per l'implementazione. + +--- + +## 5. Bug trovati e stato (cronologia) | # | Sintomo | Causa reale | Stato | |---|---|---|---| -| 1 | Mixer/volume/EQ salvati non sopravvivono MAI a un riavvio | **NVS inizializzato DOPO** `AudioService::loadAndApply()` in `app_main()` — ogni lettura falliva con `ESP_ERR_NVS_NOT_INITIALIZED` (0x1101), silenziosamente, da sempre | ✅ risolto oggi — riordinato boot in `main.cpp`, verificato dal vivo | -| 2 | Anche dopo il fix #1, mixer e master tornavano comunque al preset "radio" a ogni riavvio | `HardwareBootstrap::boot()` chiamava `applyRadioFirstMix()` **incondizionatamente** dopo il caricamento, sovrascrivendo qualunque valore appena ripristinato da NVS | ✅ risolto oggi — ora condizionale, si applica solo se non c'è un profilo salvato | -| 3 | Modificare la banda EQ 0 (20 Hz) via web UI/app non ha mai effetto udibile | È il filtro passa-alto fisso del programma compilato, `applyEq()` la salta di proposito | ✅ ora segnalato via `"locked":true`, non più silenzioso | -| 4 | Attivare bass/stereo enhancement sembra "cancellare" le modifiche manuali dell'EQ sulle bande coinvolte | `core::applyEnhancementsToEq()` sovrascrive bande 1-2 (bass) e 3-5 (stereo) con valori a formula quando il livello è > 0 | ✅ ora segnalato via `"locked":true` sulle bande coinvolte; il comportamento DSP resta invariato (per design) | -| 5 | Il leg Beep del mixer (`STMIXER1_ST2_VOLUME`, indirizzo 11) non è mai regolabile dalle API curate | Nessun bug — è un ingresso diagnostico interno, mai stato nei piani esporlo. Raggiungibile comunque via `/api/dsp/param` se serve per debug | Non è un bug, solo documentato | -| 6 | Fruscio persistente su radio e streaming (multi-giorno) | Override IBP=1 su `SerialInputRegister` (0x81F), introdotto l'8/16 agosto insieme a un fix non correlato, mai validato da solo — condiviso da tutti gli ingressi seriali del chip | ✅ risolto ieri (24/08, prima parte della sessione) — vedi `docs/si4684-rf-investigation-report.md` | +| 1 | Mixer/volume/EQ salvati non sopravvivono MAI a un riavvio (revisione precedente) | NVS inizializzato dopo `AudioService::loadAndApply()` in `app_main()` | ✅ risolto 2026-08-24 | +| 2 | Mixer e master tornavano al preset "radio" a ogni riavvio anche dopo il fix #1 | `HardwareBootstrap::boot()` chiamava `applyRadioFirstMix()` incondizionatamente | ✅ risolto 2026-08-24 | +| 3 | Qualsiasi modifica EQ/enhancement diversa da zero → silenzio totale (anche sul tono di test) | Segno mancante in `core::designPeakingEq()`: i coefficienti di retroazione RBJ (sottrattivi) venivano scritti tali e quali nei registri A0/A1 dell'ADAU1701 (additivi) — retroazione positiva invece che negativa, il filtro divergeva su un valore costante (DC, inaudibile) | ✅ risolto 2026-08-25 — vedi `components/core/src/BiquadDesign.cpp`, test di stabilità in `biquad_design_test.cpp` | +| 4 | Bridge TCP SigmaStudio (porta 8086): `accept()` in loop infinito su EBADF da ogni boot | `SigmaStudioTcpServer::stop()` cancellava incondizionatamente il singleton del socket attivo, anche quando chiamato sull'oggetto move-from (ogni boot ne crea uno) | ✅ risolto 2026-08-25 | +| 5 | Nuovo netlist DigiRadioFinale: nessun mixer, solo `MX1` a selezione esclusiva | Non è un bug — cambio di design intenzionale, confermato dall'utente | Documentato, non un bug | +| 6 | Scrivere `DC1` in formato 5.23 (es. 1.0 = 0x00800000) non cambia la sorgente selezionata | `MX1` legge `DC1` come intero grezzo, non fixpoint, nonostante `TYPE_DC1` compilato dica `SIGMASTUDIOTYPE_FIXPOINT` | ✅ risolto 2026-08-25 — confermato dal vivo (0/1/2 → Radio/BT/Beep) | +| 7 | Fruscio persistente su radio e streaming (multi-giorno, revisione precedente) | Override IBP=1 su `SerialInputRegister` (0x81F), mai validato in isolamento | ✅ risolto 2026-08-24 | --- -## 6. Come testare manualmente (comandi usati stasera) +## 6. Come testare manualmente ```bash # Stato attuale curl http://192.168.1.62/api/audio/profile -# Scrivi un pattern distintivo (mixer + master + 5 bande EQ) +# Cambia sorgente curl -X PUT http://192.168.1.62/api/audio/profile -d '{ - "mixer": {"si4684_left_db": 0, "si4684_right_db": 0, - "esp32_left_db": -96, "esp32_right_db": -96, - "mix_left_db": 0, "mix_right_db": -96}, - "master": {"left_db": -4, "right_db": -4}, + "active_source": "bluetooth", + "master": {"left_db": 0, "right_db": 0}, "eq": [ {"gain_db": 0, "center_hz": 20, "q": 1.414}, - {"gain_db": 5, "center_hz": 100, "q": 1}, - {"gain_db": -3, "center_hz": 400, "q": 1.2}, - {"gain_db": 2, "center_hz": 1000, "q": 1}, - {"gain_db": -1, "center_hz": 3000, "q": 1}, - {"gain_db": 4, "center_hz": 8000, "q": 1} + {"gain_db": 0, "center_hz": 100, "q": 1}, + {"gain_db": 0, "center_hz": 400, "q": 1}, + {"gain_db": 0, "center_hz": 1000, "q": 1}, + {"gain_db": 0, "center_hz": 3000, "q": 1}, + {"gain_db": 0, "center_hz": 8000, "q": 1} ], "enhancements": {"stereo_level": 0, "bass_level": 0} }' -# Riavvia la scheda (fisicamente, o via reset seriale) e rileggi: -curl http://192.168.1.62/api/audio/profile -# → deve mostrare ESATTAMENTE gli stessi valori scritti sopra +# Bass Boost / Spatializer +curl -X POST http://192.168.1.62/api/audio/bass-enhance -d '{"level":100}' +curl -X POST http://192.168.1.62/api/audio/stereo-enhance -d '{"level":100}' ``` -Per leggere/scrivere una singola cella arbitraria (debug avanzato, non persistente): +Per leggere/scrivere una singola cella arbitraria (debug avanzato, non +persistente — **non usare per `DC1`**, che ha una semantica intero-grezzo +diversa da tutte le altre celle): ```bash -curl http://192.168.1.62/api/dsp/params # elenco nome→indirizzo -curl -X PUT http://192.168.1.62/api/dsp/param -d '{"name":"STMIXER1_ST2_VOLUME","value":1.0}' +curl http://192.168.1.62/api/dsp/params # elenco nome→indirizzo (230 celle) +curl -X PUT http://192.168.1.62/api/dsp/param -d '{"name":"SPHAT1_SPREAD1","value":0.0629}' ``` --- @@ -196,12 +218,12 @@ curl -X PUT http://192.168.1.62/api/dsp/param -d '{"name":"STMIXER1_ST2_VOLUME", | File | Contenuto | |---|---| -| `Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h` | Sorgente di verità per tutti gli indirizzi Parameter RAM | +| `Firmware/ADAU1701-Firmware/DigiRadio_IC_1_PARAM.h` | Sorgente di verità per tutti gli indirizzi Parameter RAM (export DigiRadioFinale) | | `Firmware/ADAU1701-Firmware/DigiRadio_NetList.xml` | Topologia del segnale (chi è collegato a chi) | -| `components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp` | Tabella nome→indirizzo generata da PARAM.h, usata da `/api/dsp/param` | -| `components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp` | Funzioni helper indirizzo-per-banda-EQ e indirizzo-per-sorgente-mixer | -| `components/drivers/adau1701/src/Adau1701Driver.cpp` | Implementazione `applyMixer`/`applyEq`/`setMasterVolume`/`setBeepEnabled` | -| `components/services/audio/src/AudioService.cpp` | `loadAndApply()`, `applyRadioFirstMix()`, enhancement plumbing | -| `components/core/src/EnhancementsDesign.cpp` | Formula di sovrascrittura EQ per bass/stereo enhancement | -| `main/main.cpp` | Ordine di boot (`app_main()`) — sede del fix root-cause di oggi | -| `main/hardware_bootstrap.cpp` | `HardwareBootstrap::boot()` — sede del secondo fix (radio-first condizionale) | +| `components/core/include/core/ActiveSource.hpp` | Enum Radio/Bluetooth/Beep + nota sulla semantica intero-grezzo di DC1 | +| `components/drivers/adau1701/include/adau1701/Adau1701ParamTable.hpp` | Tabella nome→indirizzo generata da PARAM.h (230 celle) | +| `components/drivers/adau1701/include/adau1701/Adau1701ParamMap.hpp` | `paramAddrEqBandBase()`, `paramSourceIndex()` | +| `components/drivers/adau1701/src/Adau1701Driver.cpp` | `selectSource()`, `applyEq()`, `setMasterVolume()`, `setBassBoostLevel()`, `setStereoSpreadLevel()`, `setBeepEnabled()` | +| `components/core/src/BiquadDesign.cpp` | `designPeakingEq()` — fix del segno A0/A1 (2026-08-25) | +| `components/services/audio/src/AudioService.cpp` | `loadAndApply()`, `applyRadioFirstMix()`, `selectSource()`, enhancement plumbing | +| `docs/manual/ch-sigmastudio.tex` §"Next revision: DigiRadioFinale" | Diagramma e tabella indirizzi per il manuale PDF | diff --git a/Software/docs/app-cursor-brief-2026-08-25.md b/Software/docs/app-cursor-brief-2026-08-25.md new file mode 100644 index 0000000..3cf5dc8 --- /dev/null +++ b/Software/docs/app-cursor-brief-2026-08-25.md @@ -0,0 +1,214 @@ +# Brief per Cursor — allineamento app iOS al firmware DigiRadioFinale + +Questo documento è vincolante: ogni punto marcato **DEVE** è un requisito, non +un suggerimento. Se qualcosa non è chiaro o sembra in conflitto con codice +esistente, chiedi prima di improvvisare una soluzione diversa — non inventare +comportamenti non specificati qui. + +Dispositivo di test reale: `http://192.168.1.62` (mDNS `digiradio-CC4DB4.local`). +Verifica ogni funzionalità contro il dispositivo vero prima di considerarla +finita, non solo con dati mock. + +--- + +## 0. Problemi riportati oggi dall'utente (da risolvere tutti) + +1. L'interfaccia non è "in stile Apple" — troppo grezza/disorganizzata. +2. I nuovi controlli DSP (selettore sorgente, Bass Boost, Stereo Spread) non + sono stati implementati. +3. Non è possibile selezionare la sorgente di ingresso (radio/Bluetooth). +4. Il controllo del volume è sbagliato/inconsistente. +5. Le stazioni: uno scan completo produce una lista lunga sia FM che DAB, ma + aprendo il tab FM o il tab DAB separatamente dice "nessuna stazione" — + vanno unificate in un'unica lista. + +Le sezioni seguenti danno il contratto dati esatto e i requisiti UI per +risolvere ciascuno di questi punti. Non è accettabile implementare solo una +parte e considerare il resto "per dopo" senza dirlo esplicitamente. + +--- + +## 1. Selettore sorgente (sostituisce il vecchio mixer) — OBBLIGATORIO + +Il firmware non ha più un mixer che combina sorgenti. **DEVE** esserci un +controllo a scelta singola (es. `Picker` segmented, non due slider separati) +con tre opzioni: **Radio**, **Bluetooth**, e opzionalmente **Test tone** +(quest'ultimo solo in una sezione diagnostica, non nella UI principale). + +Contratto API — `PUT /api/audio/profile`, corpo completo (tutti i campi sono +obbligatori nella richiesta, il firmware non li fa opzionali): + +```json +{ + "active_source": "radio", + "master": {"left_db": 0, "right_db": 0}, + "eq": [ + {"gain_db": 0, "center_hz": 20, "q": 1.414}, + {"gain_db": 0, "center_hz": 100, "q": 1}, + {"gain_db": 0, "center_hz": 400, "q": 1}, + {"gain_db": 0, "center_hz": 1000, "q": 1}, + {"gain_db": 0, "center_hz": 3000, "q": 1}, + {"gain_db": 0, "center_hz": 8000, "q": 1} + ], + "enhancements": {"stereo_level": 0, "bass_level": 0} +} +``` + +`active_source` accetta **esattamente** le stringhe `"radio"`, `"bluetooth"`, +`"beep"` (minuscolo, invariato). Nessun altro valore. + +`GET /api/audio/profile` restituisce lo stesso oggetto — usalo per +inizializzare il Picker all'avvio schermata, non assumere sempre "radio". + +**Errore comune da evitare**: NON costruire il body facendo merge parziale di +un vecchio oggetto `"mixer"` — quel campo non esiste più, se lo mandi il +parser lo ignora e basta (non causa errore, ma non fa nulla). + +--- + +## 2. Volume — contratto esatto + +Il volume master è **nello stesso oggetto profilo**, campo `"master"`: + +```json +"master": {"left_db": -6, "right_db": -6} +``` + +- Range valido: **-96.0 .. +12.0** (dB). Valori fuori range vengono rifiutati + dal firmware (risposta di errore, non clamping silenzioso) — clampa lato + client PRIMA di inviare. +- **Non fermare lo slider a 0 dB** — il firmware supporta fino a **+12 dB** di + guadagno reale sul master. Se lo slider attuale si ferma a 0 e "sembra + basso", è un limite arbitrario della UI, non del firmware: estendi il range + fino a +12 dB. +- Normalmente L e R vanno impostati **uguali** con un unico slider "Volume" + (non serve un controllo stereo separato per il volume master, a meno che + non venga esplicitamente richiesto un bilanciamento L/R). +- Ogni `PUT /api/audio/profile` **sostituisce l'intero profilo** — se lo slider + del volume invia solo `{"master": {...}}` senza gli altri campi + (`active_source`, `eq`, `enhancements`), il firmware risponde con errore di + campo mancante. **DEVI sempre inviare l'oggetto completo**, leggendo prima lo + stato corrente con `GET /api/audio/profile` (o tenendolo in uno store locale + sempre sincronizzato) e poi cambiando solo il campo che l'utente ha toccato. + +Questo "invia sempre tutto l'oggetto" è quasi certamente la causa del +"volume sbagliato": se il codice attuale manda solo il volume da solo, il +firmware lo rifiuta o (se altri campi arrivano con default sbagliati) resetta +sorgente/EQ/enhancement senza che l'utente l'abbia chiesto. + +--- + +## 3. Bass Boost e Stereo Spread — nuovi controlli, OBBLIGATORI + +Due slider 0-100, indipendenti da sorgente/volume/EQ: + +``` +POST /api/audio/bass-enhance {"level": 0-100} +POST /api/audio/stereo-enhance {"level": 0-100} +``` + +- Questi sono endpoint **a sé stanti**, non fanno parte del body di + `/api/audio/profile` per la scrittura (ma il loro stato corrente torna + dentro `GET /api/audio/profile` → `"enhancements": {"bass_level":.., "stereo_level":..}`). +- Bass Boost è un algoritmo **dinamico**: su un tono fisso di test non si + sente quasi nulla, è normale — non è un bug se durante un test con la + radio spenta sembra "non fare niente". +- Non esiste più il vecchio comportamento per cui alzare questi livelli + "bloccava" delle bande dell'equalizzatore manuale — l'EQ è ora sempre + indipendente. Il campo `"locked"` per banda nell'array `eq[]` (in + `GET /api/audio/profile`) è ora sempre `false` tranne la banda 0 (che è + sempre `true`, invariato da prima — è un passa-alto fisso, non toccarlo). + +--- + +## 4. Lista stazioni unificata — OBBLIGATORIO + +Il backend ha **un solo elenco stazioni**, non due: + +``` +GET /api/stations +``` + +restituisce un array dove ogni stazione ha un campo `"band"` che vale +`"fm"` oppure `"dab"`, più i campi specifici di banda (`fm_frequency_khz` per +FM; `dab_freq_index`, `dab_service_id`, `dab_component_id` per DAB). + +**Il bug riportato oggi** (lo scan produce una lista lunga, ma il tab FM o il +tab DAB dicono "nessuna stazione") indica che l'app sta usando due sorgenti +dati diverse — una per la lista generale/scan e una diversa (vuota o rotta) +per i tab FM/DAB filtrati. **DEVI unificare**: un solo `StationListStore` (o +equivalente) alimentato da `GET /api/stations`, con i tab FM e DAB che sono +semplicemente **filtri client-side** (`station.band == .fm` / `.dab`) sulla +STESSA lista, non due chiamate/store separati. + +UI richiesta: un'unica lista in stile Apple (`List` con sezioni, o una vista +tipo Impostazioni), non due implementazioni diverse per FM e DAB — stesso +componente di riga, stesso stile, filtrato per banda. + +--- + +## 5. Stile UI — Apple, minimalista ma con una sezione grafica curata + +- Componenti nativi SwiftUI: `Picker` segmented per la sorgente, `Slider` con + `.tint()` per volume/bass/stereo, `List`/`Form` in stile Impostazioni per le + stazioni e le opzioni tecniche. Niente controlli custom pesanti o griglie di + bottoni non standard. +- Organizza per tab/sezione logica, non tutto in una schermata: + - **Ascolto**: sorgente attiva, volume, stazione corrente. + - **Suono**: EQ 6 bande, Bass Boost, Stereo Spread. + - **Stazioni**: lista unificata FM+DAB (vedi §4), con scan. + - **Bluetooth**: pairing, dispositivo connesso. + - **Diagnostica**: tono di test, dettagli tecnici/versione firmware — non + mescolare con i controlli quotidiani. +- Una sezione "grafica" curata è benvenuta (es. una card "Now Playing" con + sfondo sfumato/blur, animazione leggera sul cambio sorgente). Ora **puoi** + agganciarla a dati reali di livello audio — vedi §7, l'endpoint VU-meter è + disponibile da oggi. + +--- + +## 7. VU-meter — nuovo, disponibile da oggi + +``` +GET /api/audio/levels +``` + +Risposta: + +```json +{ + "radio_in_left_db": -1.5, + "radio_in_right_db": -1.5, + "bluetooth_in_left_db": -0.9, + "bluetooth_in_right_db": -1.0, + "output_left_db": -1.9, + "output_right_db": -2.0 +} +``` + +Valori reali in dBFS, letti dal vivo dal DSP **ad ogni chiamata** — il +firmware non fa polling in background né cache. Se vuoi un meter che si +aggiorna in tempo reale, il polling lo fai tu lato app (es. ogni 200-500ms +mentre la schermata è visibile) — **fermalo quando la schermata non è a +video**, per non generare traffico I2C continuo inutile sul dispositivo. +Questa è la sezione "grafica" giusta per barre VU vere (radio in / BT in / +uscita), non un'animazione finta. + +--- + +## 8. Checklist di autoverifica prima di considerare il lavoro finito + +- [ ] Cambiare sorgente da Radio a Bluetooth nell'app cambia davvero l'audio + sul dispositivo reale (non solo lo stato locale dell'app). +- [ ] Cambiare il volume aggiorna il volume reale e **non** resetta + accidentalmente sorgente/EQ/enhancement. +- [ ] Bass Boost e Stereo Spread hanno uno slider visibile, funzionante, e il + valore torna corretto dopo un refresh/riavvio app (persistente lato + firmware). +- [ ] Il tab FM mostra le stazioni FM dello scan; il tab DAB mostra quelle + DAB; entrambe vengono dalla stessa fonte dati. +- [ ] Nessuna schermata mostra contemporaneamente controlli tecnici + (indirizzi DSP, tono di test) mescolati a quelli quotidiani. +- [ ] Lo slider del volume arriva fino a +12 dB, non si ferma a 0 dB. +- [ ] I VU-meter (se implementati) mostrano numeri che cambiano nel tempo con + l'audio reale, e il polling si ferma quando la schermata non è visibile. diff --git a/Software/docs/manual/ch-sigmastudio.tex b/Software/docs/manual/ch-sigmastudio.tex index 0b040ba..270a1bf 100644 --- a/Software/docs/manual/ch-sigmastudio.tex +++ b/Software/docs/manual/ch-sigmastudio.tex @@ -287,3 +287,61 @@ communication channel to a chip --- either the classic USBi/ICP dongle, or DigiRadio's own TCP:8086 SigmaStudio bridge (Section~\ref{sec:adau1701-sigmastudio-tcp}) when connecting live to a running board. \end{drnote} + +\section{Next revision: DigiRadioFinale} +\label{sec:ss-digiradiofinale} + +\begin{drcaution}[Not yet integrated into firmware] +This section documents a SigmaStudio export (\texttt{DigiRadioFinale}) captured +2026-08-25 that is not yet the program the firmware replays at boot. It expands +the parameter RAM from 74 to 224 words with several new dedicated blocks, +replacing two of the EQ-overlay workarounds in +Section~\ref{sec:ss-enhancements} with real ADI algorithm modules. Driver, +safeload API, and this manual's runtime tables will be updated once the +program is finalised. +\end{drcaution} + +\begin{figure}[htbp] + \centering + \includegraphics[width=\linewidth]{sigmastudiofinale.png} + \caption{DigiRadioFinale signal chain: per-channel DC blockers and RMS + compressor, four input-side level meters, the 6-leg Param EQ, the + SuperPhat spatializer, an unconfigured general filter, master volume, + the Dynamic Bass Boost algorithm, two output-side level meters, and the + L/R limiters.} + \label{fig:ss-digiradiofinale} +\end{figure} + +\begin{table}[htbp] + \centering + \small + \begin{tabular}{@{}L{2.6cm}L{2.2cm}L{7.6cm}@{}} + \drhead Addresses & Block & Role \\ + \midrule + 0--2 & Beep1 & test tone (unchanged) \\ + 3 & DC1 & input trim \\ + 4--7 & DCB1--4 & DC blocker, one per channel \\ + 8 & S Splitter1 & control fan-out (unchanged) \\ + 9--46 & Compressor1 & RMS compander, 34-point curve \\ + 47--58 & 1×RTA3,4,1,2 & 4 input-side level meters (readback) \\ + 59--88 & Param EQ1 & 6 stereo legs (ST0--ST5) $\times$ 5 coefficients \\ + 89--140 & SPhat1 & SuperPhat spatializer (dedicated algorithm, + replaces the stereo-enhance EQ overlay) \\ + 141--145& Gen Filter1 & general 2nd-order filter, currently flat/bypassed + --- reserved, not yet configured (candidate slot + for Voice Clarifier) \\ + 146--147& Multiple1 & master volume L/R (unchanged) \\ + 148--187& Bass Boost1 & Dynamic Bass Boost algorithm (dedicated, + replaces the bass-enhance EQ overlay) \\ + 188--193& 1×RTA2\_2,1\_2 & 2 output-side level meters (readback) \\ + 194--223& Limiter2, Limiter1 & unchanged \\ + \bottomrule + \end{tabular} + \caption{DigiRadioFinale parameter RAM map, by address.} + \label{tab:ss-digiradiofinale-map} +\end{table} + +No dedicated mute cell exists yet in this export, and Gen Filter1 (the +Voice Clarifier candidate) is still an identity filter (b0=1, all other +coefficients zero). Both are pending further SigmaStudio work before this +program replaces the one described earlier in this chapter. diff --git a/Software/docs/manual/sigmastudiofinale.png b/Software/docs/manual/sigmastudiofinale.png new file mode 100644 index 0000000..7fb3158 Binary files /dev/null and b/Software/docs/manual/sigmastudiofinale.png differ