久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4559|回復: 0
打印 上一主題 下一主題
收起左側

TMF8801激光測距芯片驅動程序(轉發)

[復制鏈接]
跳轉到指定樓層
樓主
TMF8801芯片介紹:

       TMF8801是2019年艾邁斯半導體推出的用于測量直接飛行時間(dToF)距離的集成式模塊,號稱全球體積最小(表示懷疑,不過體積確實非常小)。這個傳感器可以精準測量2cm至2.5m范圍,我實際測試在較亮的環境下能達到2.4m(我站在2.4m的位置,1s檢測一次,測試了幾分鐘,大概有百分五十的概率能檢測到),暗環境下能夠測量到2.5m。相比于我們熟知的VL53L0X測距模塊,測量距離和精度確實要好很多。內置的直方圖可檢測蓋玻片并以最高的 SNR 報告物體距離,同時補償產品蓋玻片上的污垢和污跡,從而實現無偽影的測量。直方圖提供了動態的蓋玻片校準和串擾補償,并且通過片上陽光抑制濾光片將背景光噪聲降至最低。數據輸出通過 1.8 V I2C 快速模式通信接口進行,集成的微控制器具有片上包含的所有算法,無需外部光學器件。
————————————————
TMF8801芯片特性:
       具有高靈敏度 SPAD 檢測的直接 ToF 技術
       快速時間數字轉換器 (TDC) 架構
       亞納秒光脈沖
       30 Hz 時 20mm 至 2500mm 的距離感應
       片上直方圖處理
       940 nm VCSEL 1 類眼睛安全
       陽光片上抑制濾波器和算法
       業界最小的 (2.2 mm x 3.6 mm x 1.0 mm) 模塊化 OLGA 封裝
————————————————
TMF8801芯片應用:
       激光檢測自動對焦 (LDAF)
       存在檢測
       工業測距
       人員計數
       物體躲避和防撞
       快速測距導航檢測
       庫存控制
       光學開關
      3D 攝像機的低功耗系統緩沖
以下是相關規格書: ams-TMF8801-datasheet.pdf (2.04 MB, 下載次數: 38)
————————————————
引腳號        引腳名稱          信號類型        描述
1               VCCD         電源                供電電壓3V;接一個0.1uF電容到地
2              GNDC         地                        電源負極
3              GPIO0         IO                        通用IO口,如果不用,請保持開路
4              INT                 輸出                中斷輸出,如果不用,請接到地
5              SCL                 輸入                 IIC時鐘引腳
6              SDA                 IO                         IIC數據引腳
7              VDD                 電源                 供電電壓3V;接一個0.1uF電容到地
8              GND                 地                         電源負極
9              EN                 輸入                 啟用輸入有效高電平;設置為低電平強制器件關閉,
                                                         所有內存內容都會丟失;如果未使用,則連接至VDD
10              GPIO1          IO                         通用IO口,如果不用,請保持開路
11              GNDV         地                         電源負極
12              VDDV        電源                         供電電壓3V;接一個0.1uF電容到地
————————————————

驅動流程
1、IIC引腳初始化
2、模塊初始化
     1)復位(寄存器地址:0xE0)
     2)初始化下載 HW(寄存器地址:0x08)
     3)設置寫 RAM 地址(寄存器首地址:0x08)
     4)寫 RAM數據(寄存器首地址:0x08)
     5)重映射 RAM 到地址 0 并復位
     6)獲取 TMF8801 信息
          6.1)讀取APP0 主版本號(寄存器地址:0x01)
          6.2)讀取次版本號和修訂版本號(寄存器地址:0x12)
          6.3)讀取芯片修訂 ID(寄存器地址:0xE4)
          6.4)生成序列號(寄存器地址:0x10)
          6.5)讀取序列號(寄存器地址:0x1E)
     7)使能檢測中斷
3、配置APP0,寫入校準數據(寄存器地址:0x20)
4、檢測中斷
5、獲取結果
———————————————
(轉下一頁)
驅動的程:這里以stm32的為例
1、IIC驅動部分(用IO口模擬IIC時序)
  1. #include "tmf8801_iic.h"
  2. #include "math.h"

  3. #define TMF8001_Address                  0x82//器件地址

  4. /*********************************************************
  5. * 名稱: iic_delay_us
  6. * 功能: 用于IIC通訊延時
  7. * 形參: 無        
  8. * 返回: 無
  9. * 說明: 直接用軟件延時,延時的時間和主頻有關,如要移植到別的單片機
  10. *             可能需要修改i的次數以確保延時時間足夠
  11. *********************************************************/
  12. void iic_delay_us(u8 time)
  13. {
  14.         u8 i;
  15.           while(time --)
  16.         {        
  17.                 for(i=0;i<6;i++);
  18.         }
  19. }

  20. /*********************************************************
  21. * 名稱: TMF8001_I2C_Init
  22. * 功能: I2C引腳初始化
  23. * 形參: 無        
  24. * 返回: 無
  25. * 說明: 無  
  26. *********************************************************/
  27. void TMF8001_I2C_Init(void)
  28. {
  29.         GPIO_InitTypeDef GPIO_InitStructure;
  30.         
  31.         RCC_APB2PeriphClockCmd(TMF8001_I2C_RCC, ENABLE);        
  32.            
  33.         GPIO_InitStructure.GPIO_Pin = TMF8001_I2C_SCL_PIN | TMF8001_I2C_SDA_PIN;
  34.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;  
  35.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  36.         GPIO_Init(TMF8001_I2C_PORT, &GPIO_InitStructure);
  37.         
  38.         TMF8001_I2C_SCL_HIGHT;
  39.         TMF8001_I2C_SDA_HIGHT;
  40. }

  41. /*********************************************************
  42. * 名稱: TMF8001_I2C_Start
  43. * 功能: 模擬I2C的起始條件
  44. * 形參: 無        
  45. * 返回: 無
  46. * 說明: 標準的I2C協議I2C起始條件:SCL為高時,SDA由高變低            
  47. *********************************************************/
  48. void TMF8001_I2C_Start(void)
  49. {
  50.     TMF8001_I2C_SDA_Out;
  51.     TMF8001_I2C_SCL_HIGHT;
  52.     TMF8001_I2C_SDA_HIGHT;
  53.     iic_delay_us(4);
  54.     TMF8001_I2C_SDA_LOW;
  55.     //標準的I2C協議I2C起始條件:SCL為高時,SDA由高變低
  56.     iic_delay_us(4);
  57.     TMF8001_I2C_SCL_LOW;//鉗住I2C總線,準備發送或接收數據
  58. }

  59. /*********************************************************
  60. * 名稱: TMF8001_I2C_Stop
  61. * 功能: 模擬I2C的停止條件
  62. * 形參: 無        
  63. * 返回: 無
  64. * 說明: 標準的I2C協議I2C停止條件:SCL為高時,SDA由低變高            
  65. *********************************************************/
  66. void TMF8001_I2C_Stop(void)
  67. {
  68.     TMF8001_I2C_SDA_Out;
  69.     TMF8001_I2C_SCL_LOW;
  70.     TMF8001_I2C_SDA_LOW;
  71.     iic_delay_us(4);
  72.     TMF8001_I2C_SCL_HIGHT;
  73.     TMF8001_I2C_SDA_HIGHT;
  74.     iic_delay_us(4);
  75. }

  76. /*********************************************************
  77. * 名稱: TMF8001_I2C_Wait_Ack
  78. * 功能: 等待應答信號
  79. * 形參: 無        
  80. * 返回: 0:接收成功 1:接收失敗
  81. * 說明: 無      
  82. *********************************************************/
  83. u8 TMF8001_I2C_Wait_Ack(void)
  84. {
  85.         u8 ucErrTime=0;
  86.         TMF8001_I2C_SDA_In;
  87.         TMF8001_I2C_SDA_HIGHT;
  88.         iic_delay_us(4);           
  89.         TMF8001_I2C_SCL_HIGHT;
  90.         iic_delay_us(4);         
  91.         while(Get_TMF8001_I2C_SDA)
  92.         {
  93.                 ucErrTime ++;
  94.                 if(ucErrTime > 250)
  95.                 {
  96.                         TMF8001_I2C_Stop();
  97.                         return 1;
  98.                 }
  99.         }
  100.         TMF8001_I2C_SCL_LOW;
  101.         return 0;
  102. }

  103. /*********************************************************
  104. * 名稱: TMF8001_I2C_Ack
  105. * 功能: 模擬I2C的應答
  106. * 形參: 無        
  107. * 返回: 無
  108. * 說明: 根據標準的I2C協議,從I2C從器件讀1個byte后
  109.          也就是在第9個CLK的時候,I2C主設備的SDA要變低
  110.          表示I2C主器件已經接收完一個字節byte,I2C從器件
  111.          繼續發送數據              
  112. *********************************************************/
  113. void TMF8001_I2C_Ack(void)
  114. {
  115.     TMF8001_I2C_SCL_LOW;
  116.     TMF8001_I2C_SDA_Out;
  117.     TMF8001_I2C_SDA_LOW;
  118.     iic_delay_us(4);
  119.     TMF8001_I2C_SCL_HIGHT;
  120.     iic_delay_us(4);
  121.     TMF8001_I2C_SCL_LOW;
  122. }

  123. /*********************************************************
  124. * 名稱: TMF8001_I2C_NAck
  125. * 功能: 模擬I2C的不應答
  126. * 形參: 無        
  127. * 返回: 無
  128. * 說明:            
  129. *********************************************************/
  130. void TMF8001_I2C_NAck(void)
  131. {
  132.     TMF8001_I2C_SCL_LOW;
  133.     TMF8001_I2C_SDA_Out;
  134.     TMF8001_I2C_SDA_HIGHT;
  135.     iic_delay_us(4);
  136.     TMF8001_I2C_SCL_HIGHT;
  137.     iic_delay_us(4);
  138.     TMF8001_I2C_SCL_LOW;
  139. }

  140. /*********************************************************
  141. * 名稱: TMF8001_I2C_Send_Byte
  142. * 功能: 模擬I2C發送一個字節
  143. * 形參: Byte        
  144. * 返回: 無
  145. * 說明:              
  146. *********************************************************/
  147. void TMF8001_I2C_Send_Byte(u8 Byte)
  148. {
  149.     u8 bit;
  150.     TMF8001_I2C_SDA_Out;
  151.     TMF8001_I2C_SCL_LOW;
  152.     for(bit=0;bit<8;bit++)
  153.     {
  154.         if((Byte&0x80)>>7)
  155.         {
  156.             TMF8001_I2C_SDA_HIGHT;
  157.         }
  158.         else
  159.         {
  160.             TMF8001_I2C_SDA_LOW;
  161.         }
  162.         Byte<<=1;
  163.         //iic_delay_us(4);
  164.         TMF8001_I2C_SCL_HIGHT;
  165.         iic_delay_us(4);
  166.         TMF8001_I2C_SCL_LOW;
  167.         iic_delay_us(4);
  168.     }
  169. }

  170. /************************************************
  171. * 名稱: TMF8001_I2C_Read_Byte
  172. * 功能: 模擬I2C讀取一個字節
  173. * 形參: 無      
  174. * 返回: 1個字節
  175. * 說明: 無              
  176. **************************************************/
  177. u8 TMF8001_I2C_Read_Byte(u8 ack)
  178. {
  179.     u8 bit,Receive_Byte=0;
  180.     TMF8001_I2C_SDA_In;
  181.     for(bit=0;bit<8;bit++)
  182.     {
  183.         TMF8001_I2C_SCL_LOW;
  184.         iic_delay_us(4);
  185.         TMF8001_I2C_SCL_HIGHT;
  186.         Receive_Byte<<=1;//把上一時刻的值左移一位
  187.         if(Get_TMF8001_I2C_SDA)
  188.         {
  189.             Receive_Byte|=0x01;
  190.         }
  191.         iic_delay_us(4);
  192.     }
  193.     if(!ack)
  194.     {
  195.         TMF8001_I2C_NAck();
  196.     }
  197.     else
  198.     {
  199.         TMF8001_I2C_Ack();
  200.     }
  201.     return Receive_Byte;
  202. }

  203. /*******************************************************************************
  204. * 名稱: I2C_TMF8001_WriteByte
  205. * 功能: 通過I2C協議向TMF8001寫入1個字節
  206. * 形參: Data_com -> 要寫入的數據
  207. * 返回: 無
  208. * 說明: 無
  209. ******************************************************************************/
  210. void I2C_TMF8001_WriteByte(u8 Addr, u8 *Data_Com, u8 Len)
  211. {
  212.     u8 i;
  213.     TMF8001_I2C_Start();        /*I2C Start*/
  214.     TMF8001_I2C_Send_Byte(TMF8001_Address);        /*Send TMF8001 Driver  address*/
  215.     TMF8001_I2C_Ack();
  216.     TMF8001_I2C_Send_Byte(Addr);        /*Send byte*/
  217.     TMF8001_I2C_Ack();
  218.     for(i=0;i<Len;i++)
  219.     {
  220.         TMF8001_I2C_Send_Byte(Data_Com[i]);        /*Send byte*/
  221.         TMF8001_I2C_Ack();
  222.     }
  223.     TMF8001_I2C_Stop();        /*I2C Stop*/
  224. }

  225. /*******************************************************************************
  226. * 名稱: I2C_TMF8001_ReadByte
  227. * 功能: 通過I2C協議從TMF8001讀取6個字節
  228. * 形參: Addr -> 寫入寄存器地址 *Read_Buf -> 存數據的數組地址
  229. * 返回: 1個字節數據
  230. * 說明: 無
  231. ******************************************************************************/
  232. u8 I2C_TMF8001_ReadByte(u8 Addr, u8 *Read_Buf, u8 Len)
  233. {        
  234.     u8 i;
  235.         TMF8001_I2C_Start();/*I2C start*/
  236.         TMF8001_I2C_Send_Byte(TMF8001_Address);        /*Send TMF8001 Driver  address*/
  237.     TMF8001_I2C_Ack();
  238.         TMF8001_I2C_Send_Byte(Addr);        /*Send byte*/
  239.     TMF8001_I2C_Ack();
  240.    
  241.         TMF8001_I2C_Start();/*I2C start*/
  242.         TMF8001_I2C_Send_Byte(TMF8001_Address|0x01);/*Send ReadCommand*/
  243.         TMF8001_I2C_Ack();
  244.         for(i=0;i<Len;i++)
  245.         {
  246.             if(i == (Len - 1))
  247.             {
  248.                 Read_Buf[i] = TMF8001_I2C_Read_Byte(0);/*I2C ReadByte*/
  249.             }
  250.             else
  251.             {
  252.             Read_Buf[i] = TMF8001_I2C_Read_Byte(1);/*I2C ReadByte*/
  253.             }
  254.         }
  255.         TMF8001_I2C_Stop();/*I2C Stop*/
  256. //        printf("Read_Buf0: %02X ",Read_Buf[0]);
  257. }
復制代碼


2、TMF8001驅動部分
  1. #include "tmf8801.h"
  2. #include "tmf8801_iic.h"

  3. //TMF8x01 寄存器地址定義
  4. #define TMF8x01_REGADDR_COMMAND         0x10
  5. #define TMF8x01_REGADDR_STATUS          0x1D      
  6. #define TMF8x01_REGADDR_CONTENTS        0x1E
  7. #define TMF8x01_REGADDR_TID             0x1F
  8. #define TMF8x01_REGADDR_ENABLE          0xE0

  9. //RAM數據緩存
  10. const uint8_t app_buf[] = {
  11. 0x6D, 0xC9, 0x41, 0x85, 0x3D, 0x15, 0xAA, 0x51, 0xF4, 0xD2, 0x9E, 0xA8, 0xA7, 0xAC, 0x77, 0xE9,
  12. 0xF9, 0xEC, 0x20, 0x24, 0x63, 0xB8, 0xF1, 0xA5, 0x0B, 0xA7, 0x65, 0xB4, 0x32, 0xB8, 0x18, 0xD7,
  13. 0x5C, 0xF4, 0x00, 0xD0, 0xDC, 0xFD, 0xD9, 0xD5, 0x98, 0xAF, 0x6F, 0x40, 0x96, 0x0A, 0xB2, 0xFA,
  14. 0x9E, 0x13, 0x44, 0xF8, 0x6F, 0x5B, 0xF1, 0x65, 0xA6, 0x88, 0x67, 0xD7, 0x75, 0x0A, 0x4A, 0x7F,
  15. 0x81, 0x9C, 0xF6, 0x91, 0x7B, 0xCF, 0xF2, 0x7C, 0xC1, 0x83, 0xF3, 0xA5, 0xF6, 0xEB, 0xD2, 0xFA,
  16. 0x14, 0x01, 0x7B, 0x81, 0x6D, 0xA9, 0x31, 0x0B, 0x79, 0x14, 0x9D, 0xFE, 0xAA, 0x24, 0x5A, 0x5A,
  17. 0x77, 0xF0, 0x00, 0x00, 0x88, 0x76, 0xBA, 0x20, 0xD1, 0x33, 0xB2, 0x66, 0xCF, 0xD9, 0x67, 0xDD,
  18. 0x4C, 0xF8, 0x5E, 0xAD, 0x6C, 0xF5, 0xF4, 0x7A, 0x60, 0x3D, 0xFB, 0x05, 0x4B, 0xB9, 0x26, 0xA5,
  19. 0xDF, 0xF1, 0xE3, 0xC7, 0x7E, 0x55, 0xEC, 0x50, 0x9C, 0xE3, 0xC9, 0xDA, 0x91, 0xAE, 0x5E, 0x9F,
  20. 0x13, 0x0E, 0x96, 0x52, 0x27, 0x8E, 0x06, 0x22, 0x63, 0x69, 0xAC, 0x61, 0x9C, 0x23, 0xF1, 0x38,
  21. 0x5F, 0x3A, 0x1D, 0x03, 0xBD, 0xCA, 0xDA, 0x42, 0xBB, 0x21, 0x55, 0x35, 0xC8, 0x30, 0x50, 0x6D,
  22. 0x09, 0xBF, 0x32, 0x39, 0x7D, 0xF1, 0x4B, 0x9C, 0x09, 0x33, 0xF0, 0xA1, 0xBD, 0x1B, 0x89, 0xCD,
  23. 0xFC, 0x75, 0xCD, 0x92, 0x52, 0x8E, 0xA8, 0xD1, 0xD2, 0xED, 0x6B, 0x63, 0x41, 0x38, 0x0F, 0x22,
  24. 0xFF, 0xA6, 0x6A, 0xE3, 0xE0, 0x78, 0x83, 0xF5, 0x95, 0xC2, 0x88, 0x77, 0x5C, 0x4B, 0x9C, 0xAD,
  25. 0x32, 0xE4, 0x39, 0x85, 0xBF, 0x4E, 0x2C, 0x21, 0xCF, 0x19, 0x9D, 0x93, 0xFD, 0x9B, 0xFA, 0x15,
  26. 0x2D, 0xB5, 0x7C, 0xD1, 0x43, 0x83, 0x58, 0x4F, 0x8C, 0x66, 0x3E, 0xAA, 0xD2, 0xD2, 0x66, 0xA1,
  27. 0x56, 0x80, 0xD8, 0xF1, 0xED, 0x1F, 0x4D, 0x45, 0x06, 0x64, 0x9A, 0x02, 0xF9, 0x69, 0x6B, 0xCE,
  28. 0xA0, 0x84, 0xD2, 0x67, 0x85, 0xE1, 0xE7, 0x8D, 0xE2, 0xEF, 0x11, 0x5B, 0xDD, 0x27, 0x5A, 0x9E,
  29. 0x34, 0x9D, 0x66, 0x66, 0xE3, 0xA5, 0xD4, 0xC7, 0x6E, 0x80, 0x0D, 0xC6, 0x9C, 0x36, 0x86, 0x19,
  30. 0x32, 0xD0, 0x16, 0x67, 0x45, 0x2D, 0xE5, 0x09, 0x89, 0xC5, 0x80, 0x0F, 0x71, 0x2C, 0x9F, 0xB1,
  31. 0x38, 0x4A, 0x0B, 0xFD, 0x6F, 0x27, 0x69, 0xCD, 0x8B, 0x0F, 0x4B, 0x62, 0xF0, 0xC5, 0xC1, 0x96,
  32. 0xFD, 0xD2, 0x06, 0xCE, 0x01, 0xC4, 0x16, 0x84, 0x42, 0xEA, 0x01, 0x06, 0x16, 0xD9, 0x2C, 0x10,
  33. 0x7B, 0x6D, 0x95, 0xA0, 0x3C, 0x90, 0x7E, 0x83, 0x91, 0xF0, 0x9B, 0x51, 0x2E, 0xD8, 0x87, 0x81,
  34. 0x69, 0x54, 0x9C, 0xD9, 0x7F, 0x99, 0x11, 0x65, 0x85, 0xAA, 0xC7, 0x65, 0xDA, 0x00, 0xE4, 0xDA,
  35. 0x94, 0xDD, 0xCB, 0xEE, 0x04, 0xD6, 0xB5, 0xBD, 0x2D, 0x30, 0xFC, 0x20, 0x4F, 0x15, 0x7C, 0x9E,
  36. 0xD3, 0x2F, 0x39, 0xFC, 0xA6, 0xFB, 0xB5, 0x83, 0xD1, 0xDE, 0x43, 0x3A, 0x72, 0x51, 0x4A, 0xE2,
  37. 0x15, 0xCC, 0x63, 0x70, 0x88, 0x72, 0x52, 0x84, 0x86, 0x35, 0x05, 0xCF, 0xEF, 0x5D, 0x51, 0xFA,
  38. 0x95, 0x39, 0x0D, 0x37, 0xA1, 0xDD, 0x51, 0xDF, 0x54, 0x39, 0xC6, 0xFB, 0x76, 0x4C, 0x0B, 0xD6,
  39. 0x62, 0xEA, 0x84, 0x95, 0x56, 0xDF, 0xF8, 0x7F, 0xAA, 0x76, 0xDE, 0xDE, 0x5E, 0xA0, 0xA6, 0x56,
  40. 0x93, 0x31, 0xB3, 0x06, 0x34, 0x7B, 0xEC, 0x71, 0xB5, 0x47, 0xEF, 0x3E, 0xD4, 0x8B, 0x0A, 0xB2,
  41. 0xB1, 0xC7, 0x5F, 0xC5, 0x9B, 0xB0, 0x72, 0x38, 0xFF, 0x6C, 0x2E, 0x2E, 0xCF, 0x04, 0x00, 0x3C,
  42. 0xFC, 0x07, 0x9F, 0xF0, 0x6F, 0xB0, 0x14, 0xAD, 0x7B, 0x4D, 0xAC, 0x71, 0x53, 0xD8, 0xD1, 0x08,
  43. 0x5F, 0x11, 0xD8, 0x24, 0xD9, 0xB5, 0xA2, 0x0B, 0xFE, 0x8C, 0xDA, 0x83, 0x25, 0xC5, 0x2A, 0xCA,
  44. 0x97, 0x31, 0x3C, 0x4E, 0x53, 0xA6, 0x65, 0x3E, 0x59, 0xC5, 0xFE, 0x92, 0x8E, 0xA8, 0xE9, 0x93,
  45. 0xB6, 0xDF, 0xB8, 0x3A, 0xFE, 0xE9, 0x1C, 0x29, 0x60, 0x42, 0xA6, 0xC4, 0xE0, 0x0A, 0x04, 0xDC,
  46. 0xC5, 0x97, 0xCF, 0x79, 0x94, 0x67, 0x6D, 0x78, 0x7B, 0x88, 0xBA, 0x71, 0x96, 0xC1, 0xB9, 0x2D,
  47. 0xB6, 0x79, 0xFA, 0xC0, 0x00, 0x46, 0xE5, 0x11, 0x96, 0x13, 0xB0, 0x15, 0x48, 0x06, 0x5A, 0x94,
  48. 0x2C, 0x05, 0x01, 0xCF, 0x21, 0x7C, 0x7E, 0x47, 0xA1, 0x1E, 0x68, 0xD7, 0x84, 0x45, 0x1B, 0x1B,
  49. 0x1B, 0x03, 0x78, 0xD9, 0x2C, 0x58, 0xEF, 0xB5, 0xCC, 0x88, 0xF5, 0x0D, 0xCD, 0xC3, 0xD5, 0xF6,
  50. 0x26, 0x18, 0xCE, 0x53, 0x7C, 0x90, 0x34, 0x0D, 0xF1, 0x43, 0x70, 0x0F, 0xF1, 0x70, 0x77, 0xB0,
  51. 0x71, 0x4B, 0x83, 0x3D, 0xCC, 0xA3, 0x16, 0xAA, 0x8D, 0x96, 0xFF, 0x00, 0xB5, 0xC5, 0xB4, 0x52,
  52. 0x90, 0xDE, 0x1F, 0xB5, 0x7A, 0x8F, 0x6C, 0xA0, 0x22, 0xD5, 0x76, 0x48, 0xE5, 0x10, 0xE6, 0x59,
  53. 0xC2, 0xB7, 0xF7, 0x16, 0x13, 0x8E, 0x35, 0xFF, 0xCE, 0x34, 0x96, 0x7C, 0xFD, 0x18, 0x61, 0xA2,
  54. 0x5A, 0x88, 0x88, 0x2C, 0xE6, 0x66, 0x26, 0xB6, 0xA0, 0xDE, 0x04, 0x6D, 0x71, 0x46, 0xDB, 0xCE,
  55. 0xFC, 0x2D, 0x4C, 0xAF, 0x1B, 0xCE, 0xE2, 0x18, 0xCA, 0x96, 0x3D, 0xDF, 0x2B, 0xFC, 0x57, 0x29,
  56. 0xF4, 0x07, 0xC3, 0xB6, 0x5A, 0x37, 0x00, 0x44, 0xF7, 0x1F, 0x54, 0x8D, 0x38, 0x5D, 0xA0, 0xBC,
  57. 0xF8, 0x34, 0x7B, 0x9C, 0xFD, 0xCB, 0x42, 0x62, 0x0F, 0xC3, 0xBF, 0x5C, 0xE6, 0x3F, 0x8D, 0xBD,
  58. 0xDD, 0x3C, 0xA8, 0xE6, 0x21, 0x24, 0xF1, 0x38, 0x58, 0xF5, 0xF0, 0x9B, 0xB3, 0xA2, 0xE1, 0x40,
  59. 0xDC, 0xAB, 0xFD, 0xD3, 0xFB, 0x78, 0x26, 0x50, 0x93, 0x5A, 0xE4, 0x72, 0x6F, 0x2C, 0xC4, 0x4F,
  60. 0xD7, 0x77, 0xD9, 0xE4, 0xBC, 0x86, 0x2B, 0x0B, 0x36, 0xE4, 0xC2, 0x7F, 0x3E, 0x4B, 0xB5, 0xBA,
  61. 0xDD, 0xDA, 0xDE, 0x7F, 0xEE, 0x71, 0x51, 0xAF, 0x55, 0x6A, 0xD4, 0x45, 0xEC, 0x21, 0x0A, 0x94,
  62. 0x08, 0xAE, 0x1B, 0x0D, 0x68, 0x1A, 0x81, 0x0A, 0x5B, 0x3C, 0xDA, 0xC6, 0xF2, 0x78, 0x4E, 0xAF,
  63. 0x79, 0x06, 0x6A, 0xEB, 0x00, 0x67, 0xCE, 0x2E, 0xBC, 0xDF, 0xB9, 0xAF, 0x2F, 0x99, 0x30, 0x51,
  64. 0x78, 0x56, 0x89, 0x86, 0xDB, 0x5D, 0x9C, 0x0A, 0x68, 0xC2, 0x41, 0x01, 0x68, 0xC5, 0x1D, 0x9E,
  65. 0x47, 0xDC, 0x78, 0xDD, 0xF5, 0x1B, 0x9E, 0x75, 0x0D, 0x31, 0x59, 0xCE, 0xB3, 0xA1, 0x7D, 0x27,
  66. 0xF9, 0x3A, 0xC3, 0x96, 0xCD, 0x4B, 0x88, 0xE8, 0x8E, 0xC0, 0xC5, 0x06, 0x0B, 0xE6, 0x5E, 0x5E,
  67. 0xA1, 0xFA, 0xB5, 0x05, 0xD4, 0xF7, 0x6A, 0x10, 0xCF, 0xFE, 0x2E, 0xE0, 0xF8, 0x83, 0x6C, 0x6B,
  68. 0x51, 0xBE, 0x10, 0x4E, 0x64, 0x3B, 0x14, 0x4C, 0x9B, 0xA6, 0xD0, 0x53, 0x1F, 0x48, 0x68, 0xDC,
  69. 0x49, 0x38, 0x0B, 0x28, 0x59, 0xA6, 0x41, 0xD4, 0xC5, 0xC9, 0x69, 0x91, 0xA1, 0x49, 0x89, 0x10,
  70. 0xF8, 0xA6, 0x50, 0xDE, 0xCB, 0xB5, 0x7B, 0x00, 0x23, 0x6A, 0x23, 0x48, 0xDE, 0xBB, 0x9E, 0x67,
  71. 0x22, 0x37, 0x8B, 0x80, 0xC6, 0xD3, 0x78, 0x66, 0x48, 0x1D, 0xAE, 0x1C, 0x23, 0x6C, 0xEB, 0xDF,
  72. 0x68, 0x72, 0xFA, 0xEF, 0x0A, 0x29, 0x5D, 0xB1, 0xA9, 0x8B, 0xB7, 0xC9, 0xBF, 0xCB, 0x7F, 0x99,
  73. 0x4A, 0x7F, 0xB9, 0x15, 0x17, 0xCE, 0x14, 0xC8, 0xCC, 0xC1, 0xC3, 0x53, 0x5A, 0xBB, 0x05, 0x32,
  74. 0x79, 0xBC, 0xB9, 0x27, 0x2B, 0x7C, 0x93, 0x2F, 0xAA, 0xC0, 0x8F, 0xB0, 0x5A, 0xD1, 0x37, 0xF8,
  75. 0x37, 0x4D, 0x2C, 0x1B, 0xD4, 0x23, 0x8D, 0x06, 0xA1, 0xF5, 0x49, 0xFC, 0x11, 0x6A, 0x0D, 0x1B,
  76. 0x51, 0x75, 0x4B, 0xEE, 0xD4, 0xB1, 0xEF, 0xDD, 0x4C, 0xDB, 0x55, 0xAD, 0xF9, 0x4B, 0x45, 0x0D,
  77. 0x57, 0xC4, 0x5C, 0x91, 0xD2, 0x9A, 0xD0, 0xA9, 0x4D, 0x5D, 0xC9, 0x86, 0x67, 0xEF, 0x0E, 0x70,
  78. 0x42, 0x1F, 0x39, 0x15, 0x6F, 0x11, 0x61, 0xFE, 0xE5, 0x39, 0xA4, 0xE6, 0x20, 0xB6, 0x1E, 0x8B,
  79. 0xC6, 0xBC, 0xB1, 0xFA, 0x95, 0xA2, 0x39, 0xA5, 0x16, 0x7D, 0xC8, 0x3E, 0xA3, 0x10, 0x5E, 0x21,
  80. 0x34, 0x6D, 0x20, 0x4E, 0x98, 0xFF, 0xA7, 0x04, 0xCA, 0x81, 0x3B, 0x8C, 0x57, 0x4C, 0x74, 0x05,
  81. 0xCE, 0x2F, 0xEA, 0xFE, 0x84, 0xFC, 0xD7, 0x5E, 0x46, 0x2E, 0xF9, 0x63, 0xF9, 0x6A, 0x9C, 0x34,
  82. 0xAB, 0x96, 0xD6, 0xE5, 0xC1, 0xF3, 0x20, 0x4B, 0x74, 0x0D, 0x6B, 0x97, 0x54, 0xC4, 0x05, 0xE0,
  83. 0xC7, 0xDC, 0xE2, 0xF0, 0x80, 0xD4, 0xF7, 0xD0, 0xF4, 0xFE, 0x96, 0x5E, 0xC1, 0x2D, 0x6D, 0xBF,
  84. 0xC5, 0xC7, 0xC7, 0x9F, 0x12, 0x27, 0x6D, 0xD8, 0xD2, 0x25, 0x9F, 0xE3, 0x69, 0xFD, 0xF9, 0xBC,
  85. 0xE0, 0x40, 0x9A, 0x92, 0xE6, 0x5F, 0xD1, 0x2C, 0xDA, 0x67, 0x23, 0xC5, 0x48, 0x62, 0x55, 0xE9,
  86. 0x61, 0x99, 0x57, 0x34, 0xA2, 0xD3, 0x44, 0xDD, 0xBA, 0x92, 0xF1, 0xE5, 0x9A, 0xE5, 0xE1, 0x25,
  87. 0x99, 0xAE, 0x43, 0x0C, 0xFA, 0xA9, 0xF6, 0xE9, 0x56, 0x12, 0x8A, 0xB6, 0x4F, 0xD6, 0x9B, 0xC4,
  88. 0x51, 0xC9, 0x10, 0xFB, 0xB6, 0x4E, 0x58, 0x57, 0x44, 0xA9, 0xD1, 0x21, 0xC2, 0xA7, 0x04, 0x9A,
  89. 0xC4, 0xCB, 0x10, 0xC8, 0x37, 0xAD, 0x50, 0x67, 0x78, 0x15, 0xB7, 0x6A, 0xE4, 0xE3, 0xB0, 0xEC,
  90. 0x7C, 0x80, 0xDA, 0xAF, 0x93, 0xC4, 0x9A, 0xF1, 0xBA, 0xE1, 0x32, 0x6B, 0xAC, 0x2F, 0xF7, 0x8E,
  91. 0x1A, 0x13, 0x17, 0x19, 0x55, 0x48, 0x7D, 0xC3, 0x16, 0xA3, 0xE5, 0x88, 0xB7, 0xAC, 0xEF, 0x9E,
  92. 0x6B, 0x9F, 0x45, 0xB9, 0x36, 0xB6, 0x13, 0x8F, 0xA0, 0x9B, 0xBF, 0xCE, 0xC2, 0x9B, 0x60, 0x5C,
  93. 0x04, 0x1C, 0x72, 0xE7, 0xCA, 0x29, 0x8A, 0x51, 0x98, 0x26, 0x31, 0x10, 0xFB, 0x47, 0x04, 0x86,
  94. 0x1F, 0x78, 0x7B, 0xE5, 0x8C, 0xCA, 0x96, 0x18, 0xBD, 0xC9, 0x6E, 0xC4, 0xE2, 0xE8, 0xF1, 0xD2,
  95. 0xA6, 0x2C, 0x6C, 0x24, 0x48, 0x7D, 0x76, 0xB1, 0x57, 0x56, 0xD9, 0x38, 0xCA, 0xC6, 0x63, 0xAB,
  96. 0x57, 0x7E, 0xE1, 0xEF, 0x4B, 0xD9, 0x7C, 0x26, 0x17, 0x30, 0x31, 0xCE, 0xB1, 0xBB, 0x1D, 0xAC,
  97. 0xB9, 0x49, 0x52, 0xFF, 0x4F, 0xC5, 0x21, 0xC2, 0x5C, 0x38, 0x78, 0xE8, 0x00, 0xE6, 0xFC, 0x91,
  98. 0x4C, 0x49, 0x16, 0x4A, 0x70, 0xFF, 0x70, 0x51, 0xBA, 0xB0, 0x03, 0x60, 0xEB, 0x44, 0xF0, 0xBC,
  99. 0xD3, 0xEA, 0xD5, 0x18, 0x6E, 0xFA, 0xE0, 0x6F, 0xB0, 0x42, 0xF0, 0xDB, 0xAF, 0xE9, 0x8D, 0x43,
  100. 0x1B, 0x93, 0x3D, 0xCE, 0x44, 0xDC, 0xFB, 0xCD, 0x05, 0xE4, 0xD6, 0x89, 0xB2, 0x4A, 0xBE, 0x86,
  101. 0x51, 0x9B, 0x50, 0xF7, 0x70, 0x15, 0xF9, 0x34, 0xFE, 0x3D, 0x7B, 0x06, 0xF2, 0x24, 0x72, 0xB1,
  102. 0x52, 0xC5, 0x95, 0x34, 0xA4, 0x9C, 0xE0, 0x0A, 0x31, 0x80, 0x40, 0x83, 0x6E, 0xC7, 0x02, 0x38,
  103. 0xA1, 0x0C, 0x17, 0xDC, 0xEA, 0x74, 0x09, 0x31, 0xDF, 0xB6, 0x2A, 0x29, 0xDC, 0xF3, 0x2F, 0x12,
  104. 0x0E, 0x73, 0x23, 0x5F, 0xAD, 0xC8, 0x76, 0x05, 0xA2, 0x5B, 0x94, 0xFE, 0x91, 0xBF, 0x6B, 0x74,
  105. 0x00, 0xF8, 0x30, 0x20, 0x50, 0x1E, 0x93, 0xC2, 0xD8, 0xC6, 0x0A, 0xE4, 0x91, 0x84, 0x78, 0xC7,
  106. 0x91, 0xCF, 0x6D, 0xE8, 0x2E, 0x43, 0xE4, 0xF8, 0xB6, 0xE3, 0xE4, 0xDD, 0xBC, 0x8C, 0xD4, 0x1F,
  107. 0xDA, 0x3D, 0xD4, 0xDC, 0x45, 0x16, 0x35, 0xA5, 0xB2, 0x26, 0xFC, 0x6E, 0x73, 0x0E, 0xDB, 0xA8,
  108. 0xA9, 0x05, 0x33, 0xCA, 0xF2, 0x37, 0x34, 0x9F, 0x93, 0x01, 0x67, 0x0B, 0xAF, 0x03, 0xDF, 0x71,
  109. 0x07, 0x79, 0xFA, 0xAF, 0x4F, 0x4E, 0xCC, 0xD8, 0x9F, 0x4C, 0xD7, 0x34, 0x48, 0xD6, 0xF6, 0xCB,
  110. 0x84, 0x01, 0x1C, 0xB4, 0xC7, 0xBE, 0x0D, 0x51, 0xC1, 0x43, 0xF8, 0x4A, 0x34, 0x5B, 0xA5, 0x3F,
  111. 0xCC, 0x42, 0x1F, 0xCA, 0x47, 0x0F, 0x36, 0xFC, 0x22, 0xD1, 0x87, 0x76, 0x97, 0xB1, 0x2D, 0x91,
  112. 0x12, 0xCE, 0xD4, 0xC9, 0xED, 0x6F, 0x59, 0x2C, 0x87, 0x57, 0x01, 0x86, 0x10, 0x27, 0xE9, 0x57,
  113. 0x87, 0xA3, 0x4F, 0x21, 0x97, 0x77, 0x9B, 0x52, 0xF3, 0xA1, 0xE8, 0x7B, 0xCA, 0x4A, 0x60, 0x36,
  114. 0x3D, 0x65, 0xE1, 0x0B, 0x11, 0x2C, 0xB9, 0x06, 0xBA, 0xC5, 0xCF, 0x2C, 0xD8, 0x5E, 0xB7, 0x0E,
  115. 0x14, 0xC3, 0x04, 0x2B, 0xF9, 0x4C, 0x5A, 0xF0, 0xED, 0x87, 0xFC, 0x71, 0xF6, 0xC9, 0x1C, 0x56,
  116. 0x62, 0xBD, 0x09, 0x1F, 0x77, 0xD9, 0x53, 0x47, 0xA9, 0x6C, 0x96, 0x06, 0x92, 0xB8, 0x51, 0xCB,
  117. 0xFA, 0x86, 0x27, 0x8D, 0xF6, 0x55, 0x64, 0xE4, 0xB4, 0x69, 0xB8, 0xE6, 0xD0, 0x20, 0xA4, 0x43,
  118. 0x5A, 0x1C, 0x36, 0x19, 0x99, 0x0E, 0x78, 0x25, 0x92, 0x00, 0xAC, 0x49, 0x99, 0xF4, 0x68, 0x8F,
  119. 0xE5, 0xD6, 0xB4, 0xF5, 0xB4, 0x48, 0x8D, 0x7B, 0x66, 0x1D, 0x22, 0xB5, 0xCE, 0xA1, 0xC8, 0x61,
  120. 0x68, 0x51, 0xEC, 0x30, 0x5A, 0x69, 0xB4, 0x1C, 0x15, 0x76, 0xB9, 0x51, 0xF1, 0x19, 0xC6, 0xCB,
  121. 0x37, 0x12, 0x4E, 0x07, 0xB5, 0xDA, 0xF7, 0x0D, 0xCE, 0x63, 0x0F, 0x61, 0x55, 0x75, 0x37, 0x1D,
  122. 0x1D, 0xA4, 0x0F, 0x6A, 0x8C, 0x29, 0x70, 0xFC, 0x53, 0x6C, 0x59, 0xEC, 0xC0, 0xEE, 0xF3, 0xB6,
  123. 0x3C, 0xB1, 0xCF, 0x9F, 0x7E, 0x17, 0x77, 0xC6, 0x8D, 0x37, 0x7F, 0x2D, 0x7F, 0x14, 0x36, 0x44,
  124. 0xEE, 0x4A, 0xC3, 0x7A, 0x1E, 0x15, 0x19, 0xBB, 0x70, 0x45, 0x25, 0xC9, 0x5F, 0x21, 0xC5, 0xC5,
  125. 0xC5, 0x26, 0x54, 0xCB, 0x8C, 0xE1, 0x7E, 0x01, 0x9E, 0x3D, 0x29, 0xC2, 0x6D, 0xF0, 0xBD, 0x4B,
  126. 0x97, 0x12, 0x79, 0xAE, 0x27, 0xD3, 0x7F, 0x7F, 0xF2, 0x02, 0x29, 0xD3, 0x5E, 0x87, 0x5F, 0x20,
  127. 0x02, 0x55, 0x27, 0xCE, 0xF1, 0x1E, 0x99, 0xFD, 0x52, 0xC2, 0xF5, 0xB3, 0xE5, 0x43, 0xC5, 0x48,
  128. 0xC2, 0xFE, 0x45, 0x19, 0x6B, 0xD7, 0x7B, 0x80, 0x42, 0x7F, 0x74, 0x80, 0xF0, 0x36, 0x24, 0xFF,
  129. 0xB3, 0x81, 0xBC, 0x75, 0x43, 0x59, 0x64, 0x55, 0x55, 0xBA, 0xC3, 0xE6, 0xAC, 0x24, 0x7A, 0x86,
  130. 0x63, 0x46, 0xD8, 0xF7, 0x56, 0xAD, 0xAA, 0xA5, 0xF0, 0x65, 0x8D, 0xA0, 0xF5, 0xD6, 0xB2, 0x0C,
  131. 0x74, 0x11, 0x16, 0x60, 0xF0, 0xCC, 0xD3, 0x83, 0xE5, 0xC9, 0xC7, 0x69, 0x0D, 0x25, 0x25, 0x83,
  132. 0xB5, 0xAE, 0xA1, 0xC3, 0x75, 0x37, 0x6F, 0x3C, 0x2B, 0x81, 0x19, 0x49, 0x37, 0x02, 0x35, 0xA3,
  133. 0xF7, 0x6C, 0x09, 0xB1, 0x29, 0xB1, 0x98, 0x67, 0x2F, 0xBC, 0xE2, 0xB9, 0x9C, 0x27, 0x54, 0x12,
  134. 0x7D, 0xAE, 0x55, 0x48, 0xD5, 0x54, 0xC9, 0x9C, 0xDF, 0x51, 0x49, 0x1B, 0x0B, 0x9B, 0x56, 0xE5,
  135. 0x12, 0xEE, 0x5C, 0x45, 0xE8, 0xB9, 0xD0, 0xE1, 0xB1, 0xCC, 0x05, 0xFC, 0x24, 0xA5, 0x1B, 0x1B,
  136. 0xB4, 0x76, 0xCF, 0x19, 0x5A, 0x85, 0x13, 0xBC, 0x3B, 0xCC, 0x4A, 0x37, 0xFA, 0xBA, 0x1A, 0x17,
  137. 0xAA, 0x7A, 0x03, 0xDB, 0x18, 0x7D, 0xBD, 0x52, 0xFC, 0xDE, 0x89, 0xFE, 0x97, 0x9D, 0xD8, 0x65,
  138. 0xF9, 0xF3, 0xDC, 0x16, 0x0C, 0xD5, 0x1A, 0x7F, 0x7A, 0x9D, 0x45, 0xDE, 0x35, 0x8E, 0xD8, 0xD7,
  139. 0xA8, 0x9A, 0x16, 0xE4, 0x9A, 0xAD, 0x62, 0x45, 0x78, 0xE0, 0xA5, 0xBB, 0x4A, 0x2C, 0xD5, 0xDF,
  140. 0x07, 0xD2, 0xA0, 0xA8, 0x85, 0x9F, 0x14, 0x5F, 0xE1, 0x65, 0x3B, 0xA9, 0x9F, 0x45, 0xDF, 0x4C,
  141. 0xB8, 0x44, 0xF7, 0xEF, 0x67, 0x41, 0xD6, 0xE2, 0xF3, 0xBF, 0x87, 0x1E, 0x44, 0xA4, 0x95, 0xD4,
  142. 0x72, 0xE2, 0x16, 0x83, 0xC5, 0x2F, 0x96, 0xE8, 0x4A, 0x00, 0x7A, 0xE2, 0xA5, 0x57, 0xF4, 0xF4,
  143. 0x32, 0x34, 0x5F, 0x94, 0x8C, 0x17, 0x4A, 0xF0, 0xB7, 0xE7, 0xFA, 0xF0, 0xB5, 0x1E, 0x6B, 0x55,
  144. 0x2D, 0x6F, 0x5E, 0xCD, 0xCF, 0xD3, 0x10, 0xBE, 0x17, 0xC7, 0x6E, 0x97, 0xA0, 0xCA, 0x48, 0x08,
  145. 0xBD, 0x24, 0x5C, 0xE2, 0x41, 0x38, 0x3A, 0x34, 0xF5, 0x3D, 0xAC, 0x3C, 0xD1, 0x79, 0xAD, 0x55,
  146. 0x8B, 0x3B, 0x0E, 0x6E, 0xB1, 0x06, 0xA3, 0x2A, 0xF6, 0x7A, 0x97, 0xAA, 0x99, 0xD9, 0x9D, 0x2B,
  147. 0x2F, 0xFA, 0xF9, 0x65, 0xC5, 0x8C, 0x44, 0x8C, 0x0D, 0x8F, 0x8A, 0x77, 0x2D, 0xED, 0x2A, 0xDD,
  148. 0x90, 0x45, 0xAF, 0xBC, 0x75, 0x61, 0x94, 0xD5, 0xF8, 0x25, 0x77, 0x2E, 0xB5, 0xC0, 0xEB, 0xA2,
  149. 0x14, 0x47, 0x80, 0x35, 0x3C, 0xBF, 0x93, 0x26, 0x93, 0x68, 0xBD, 0x1F, 0xF7, 0x72, 0x0B, 0x21,
  150. 0x1B, 0xE7, 0x5D, 0xE0, 0xA8, 0xAE, 0x7B, 0xCE, 0x53, 0xF4, 0x27, 0x25, 0x92, 0x7D, 0xE8, 0xF7,
  151. 0x60, 0xA4, 0x8A, 0x99, 0x15, 0xB0, 0x89, 0x6C, 0x73, 0x09, 0x50, 0xC3, 0x32, 0x6D, 0x8C, 0x17,
  152. 0x63, 0x63, 0xFB, 0xE2, 0x35, 0x35, 0xC5, 0x64, 0x4B, 0x85, 0xB5, 0xAF, 0x45, 0xF4, 0xB4, 0xDD,
  153. 0xF6, 0xDE, 0xAD, 0x99, 0xD8, 0xFA, 0xBA, 0x45, 0xC0, 0x80, 0xB8, 0x41, 0x3C, 0x92, 0x3B, 0xF0,
  154. 0xBE, 0xBB, 0x34, 0x78, 0x01, 0x8A, 0xA1, 0x92, 0x5A, 0x04, 0x8B, 0x0B, 0xDA, 0x92, 0xC9, 0xB6,
  155. 0x5C, 0xD0, 0x54, 0x5B, 0xB9, 0x41, 0xD3, 0xDF, 0x10, 0x2C, 0x22, 0xF9, 0x25, 0xC2, 0x05, 0xD5,
  156. 0xCB, 0x0A, 0xC2, 0x9C, 0xAA, 0xC4, 0x23, 0x49, 0x9C, 0x47, 0x53, 0xBC, 0x1D, 0xB1, 0x88, 0x92,
  157. 0xE5, 0xFC, 0x9A, 0xE0, 0x4F, 0x03, 0x4A, 0x44, 0xE9, 0x68, 0x7D, 0xC1, 0x16, 0xC2, 0xDC, 0xA2,
  158. 0xEC, 0xC6, 0x02, 0x06, 0x91, 0x21, 0x3F, 0x54, 0xA4, 0xF7, 0x5A, 0x70, 0x7D, 0x5D, 0xA6, 0xA8,
  159. 0x33, 0x9A, 0x42, 0x6D, 0x1C, 0xDE, 0x12, 0x41, 0xC3, 0x32, 0x80, 0x78, 0xA7, 0x1A, 0x4F, 0xDE,
  160. 0x08, 0x18, 0xF6, 0x7B, 0x65, 0x95, 0x49, 0xC6, 0xCD, 0x1B, 0x65, 0x8C, 0x29, 0x3C, 0x3A, 0x54,
  161. 0x49, 0xE5, 0x62, 0x90, 0x36, 0x6C, 0x76, 0x1D, 0x00, 0xA9, 0x94, 0x43, 0xD6, 0x55, 0x5E, 0xBA,
  162. 0x5B, 0x1C, 0xA2, 0xF8, 0x27, 0x96, 0x9C, 0xAA, 0xE9, 0xED, 0x7A, 0x98, 0xC5, 0x84, 0xF0, 0xE1,
  163. 0xFF, 0x00, 0xDD, 0x7C, 0x1C, 0xAA, 0x58, 0x91, 0x16, 0x61, 0x3E, 0x8C, 0x11, 0xA6, 0x05, 0x29,
  164. 0x51, 0xFB, 0x14, 0xDD, 0xA3, 0x82, 0xD2, 0x39, 0xBD, 0xC4, 0x42, 0x69, 0x4F, 0x56, 0x51, 0x88,
  165. 0x5F, 0x4A, 0x7D, 0xC6, 0xE4, 0x45, 0x43, 0x27, 0x4C, 0x6E, 0x3A, 0xAE, 0xDE, 0xC6, 0xEF, 0x58,
  166. 0xAB, 0xF0, 0x5C, 0x62, 0x53, 0x94, 0x4A, 0x71, 0xA5, 0x6B, 0x7C, 0x50, 0x48, 0xB5, 0xAF, 0xE7,
  167. 0xA5, 0xB8, 0x56, 0x65, 0x94, 0x5D, 0x69, 0xCE, 0x5E, 0x1B, 0xF5, 0x04, 0x5C, 0x3F, 0x74, 0x4A,
  168. 0x80, 0xB6, 0x4C, 0x56, 0xE8, 0x97, 0x1A, 0xFF, 0xB8, 0x30, 0x5A, 0x7A, 0x13, 0xD9, 0x02, 0x34,
  169. 0x57, 0x4C, 0x40, 0xC4, 0xAC, 0xEF, 0xDC, 0x5F, 0xF4, 0x88, 0xC2, 0x4A, 0x50, 0xF0, 0xF3, 0xEF,
  170. 0xB0, 0x20, 0xAF, 0xD2, 0x8B, 0x2E, 0xBE, 0xF5, 0xF4, 0xC0, 0xF1, 0x3C, 0x4B, 0x34, 0x9B, 0x86,
  171. 0x8A, 0xDA, 0x33, 0x64, 0x08, 0x28, 0xFB, 0xC0, 0x81, 0x8D, 0x6A, 0x6D, 0x01, 0xEE, 0x63, 0x84,
  172. 0x83, 0xAB, 0xFC, 0x21, 0xF9, 0x33, 0x76, 0xCF, 0xBA, 0x01, 0x0D, 0x20, 0x1E, 0x87, 0x94, 0x42,
  173. 0x96, 0x9F, 0x8A, 0xA2, 0xC1, 0xBC, 0x83, 0x22, 0x2A, 0xFF, 0x6E, 0x6D, 0x67, 0x94, 0xF1, 0x4C,
  174. 0xE8, 0xD1, 0x4E, 0x58, 0x1E, 0xE9, 0xE2, 0x9F, 0xA9, 0x72, 0x2E, 0x0D, 0x98, 0xA8, 0x40, 0xA9,
  175. 0x52, 0x9E, 0xF6, 0x3B, 0xBE, 0xC5, 0x71, 0x4C, 0xE6, 0x56, 0x86, 0x76, 0x17, 0xD5, 0x48, 0xF9,
  176. 0x5A, 0xCB, 0x84, 0x30, 0xA9, 0xFA, 0xC8, 0x5E, 0xD9, 0xA9, 0x19, 0xA7, 0xB6, 0xE7, 0xAA, 0x5B,
  177. 0x4F, 0x11, 0xB8, 0x15, 0x57, 0x6C, 0x25, 0x32, 0x94, 0xD2, 0xCD, 0x1E, 0x84, 0xD4, 0x2F, 0xAA,
  178. 0xB3, 0xF6, 0x62, 0x74, 0xD0, 0x6F, 0x2F, 0x08, 0x25, 0xF7, 0x0C, 0x04, 0x4E, 0xB7, 0x57, 0xCC,
  179. 0x61, 0x37, 0x7A, 0x23, 0x4F, 0x15, 0x85, 0x91, 0xBC, 0x4D, 0xA4, 0x74, 0x79, 0xFD, 0x03, 0xE5,
  180. 0x11, 0xEA, 0xEC, 0xB6, 0x07, 0x92, 0x22, 0xE9, 0x91, 0x9D, 0x3F, 0xD4, 0x2E, 0x39, 0xFD, 0xAB,
  181. 0x41, 0xBE, 0xEC, 0x0D, 0xCA, 0x59, 0x83, 0x37, 0x8D, 0x35, 0xCF, 0x73, 0xC7, 0x95, 0xFD, 0x71,
  182. 0xE9, 0x01, 0x16, 0x2D, 0xB6, 0x96, 0x49, 0x5E, 0x92, 0xC7, 0x35, 0xBD, 0x7E, 0x8D, 0x52, 0x13,
  183. 0xCE, 0x69, 0x9B, 0x27, 0x57, 0xBD, 0x2A, 0xB1, 0x24, 0xD6, 0x7C, 0x04, 0x0E, 0x43, 0xF5, 0x25,
  184. 0x1D, 0xB3, 0xC7, 0xBF, 0x05, 0xBB, 0x0F, 0x18, 0x1B, 0x70, 0x3A, 0x85, 0xB8, 0x91, 0xF8, 0xA2,
  185. 0xE0, 0x15, 0x43, 0xAA, 0x7C, 0xD9, 0xD7, 0x3C, 0x50, 0xEB, 0x64, 0x46, 0xF1, 0xDC, 0x49, 0xBC,
  186. 0x75, 0x5D, 0x70, 0x00, 0x04, 0xE9, 0xEE, 0x9D, 0xF2, 0xD9, 0xBF, 0x04, 0xA8, 0x05, 0xE3, 0x40,
  187. 0x9A, 0xA3, 0x93, 0x76, 0x44, 0xFB, 0x4A, 0x07, 0x3B, 0xD1, 0x07, 0x1F, 0x03, 0xCC, 0x0E, 0xC0,
  188. 0x5D, 0xE2, 0x9B, 0xB5, 0x9F, 0xA9, 0xAF, 0x5B, 0x06, 0x60, 0x5F, 0x13, 0xA4, 0xA7, 0x9C, 0x21,
  189. 0x3E, 0x3F, 0x69, 0xCD, 0xCA, 0xB5, 0x55, 0x4F, 0xC1, 0x3C, 0xF3, 0x29, 0xD5, 0x60, 0xDD, 0x1F,
  190. 0x7F, 0x98, 0x27, 0x8A, 0xEC, 0x46, 0xFD, 0xAA, 0x76, 0xFE, 0x38, 0x85, 0xA9, 0x0D, 0xE0, 0x94,
  191. 0x62, 0x14, 0x78, 0x58, 0xAC, 0x83, 0xB1, 0x54, 0x8B, 0x7C, 0x1C, 0x0E, 0xF4, 0xA7, 0x06, 0x86,
  192. 0x1F, 0xA5, 0x4B, 0x0A, 0xF7, 0x9A, 0x15, 0xF9, 0x8D, 0x6D, 0x54, 0xC1, 0x5D, 0x5F, 0x0A, 0xC6,
  193. 0x1C, 0xB2, 0x46, 0x34, 0xE8, 0xBC, 0x4B, 0x44, 0xB6, 0xD7, 0xF6, 0xA7, 0xF0, 0xE1, 0x89, 0xAA,
  194. 0x6D, 0x67, 0xC0, 0x4F, 0xD0, 0xE0, 0xA0, 0x90, 0x3B, 0x07, 0x00, 0xB0, 0xCF, 0x6C, 0x14, 0xF2,
  195. 0x7A, 0x67, 0xE3, 0x16, 0x85, 0x3D, 0xE0, 0x60, 0x56, 0xD8, 0x7C, 0xC8, 0xD0, 0x6B, 0xA0, 0xAB,
  196. 0x04, 0x94, 0x14, 0xB7, 0xFF, 0x1F, 0x05, 0x2B, 0x78, 0x08, 0xD2, 0x2A, 0x54, 0xD4, 0xF5, 0xCA,
  197. 0xDC, 0xC2, 0x89, 0x77, 0xEA, 0x60, 0x83, 0x73, 0xB6, 0xA6, 0xDB, 0xA6, 0xCE, 0xAE, 0xCA, 0x8F,
  198. 0xCB, 0x10, 0xF0, 0x7F, 0x93, 0x5E, 0xEE, 0x4E, 0x15, 0xBB, 0xDD, 0x23, 0x28, 0x2F, 0x2C, 0x3E,
  199. 0xB5, 0xFA, 0x7F, 0x5F, 0x3D, 0xF1, 0x30, 0xDC, 0x92, 0xF7, 0xC8, 0xC8, 0x48, 0x98, 0x03, 0xAF,
  200. 0x84, 0xF5, 0xD1, 0xBD, 0x1E, 0x01, 0xBD, 0xCD, 0x85, 0x2B, 0xBD, 0x95, 0x5E, 0xB0, 0xDC, 0x7D,
  201. 0x3B, 0xF5, 0x01, 0x6A, 0x47, 0x90, 0x77, 0xB7, 0x02, 0x05, 0xA8, 0x79, 0x00, 0x91, 0x8C, 0x86,
  202. 0x97, 0x7B, 0x27, 0x4A, 0xB8, 0x33, 0x28, 0xC5, 0x75, 0x05, 0xC7, 0xCE, 0x96, 0x95, 0xE6, 0x99,
  203. 0xB6, 0xCC, 0x0D, 0x34, 0xB8, 0x10, 0xC3, 0x2D, 0xCB, 0x04, 0xCA, 0x9F, 0x23, 0x30, 0x35, 0xD5,
  204. 0xF6, 0x3B, 0x23, 0xEA, 0x15, 0x7D, 0x9D, 0x6D, 0xB6, 0x68, 0xB0, 0x31, 0x88, 0x0E, 0x35, 0xF1,
  205. 0x72, 0xC0, 0xF3, 0xC5, 0xFF, 0x7A, 0x52, 0x90, 0x70, 0xE7, 0xB9, 0x29, 0x25, 0x8B, 0x5C, 0x5D,
  206. 0xF4, 0x15, 0x2D, 0x92, 0xAF, 0x86, 0x72, 0x58, 0x3B, 0x2A, 0x09, 0x25, 0x29, 0xC0, 0x41, 0xE0,
  207. 0xA1, 0x4C, 0x76, 0x69, 0x63, 0x93, 0x65, 0x08, 0x75, 0x18, 0xA9, 0x09, 0xA8, 0xBF, 0x2A, 0x90,
  208. 0xFC, 0x95, 0x4E, 0x50, 0xD5, 0xA9, 0xB1, 0x87, 0x33, 0x94, 0xCC, 0x49, 0x69, 0x2A, 0xDE, 0x86,
  209. 0x06, 0xB5, 0x3F, 0xF6, 0xC2, 0xBB, 0x52, 0xF5, 0xED, 0x22, 0x6B, 0x38, 0xE7, 0x5B, 0x03, 0x63,
  210. 0x31, 0x44, 0x47, 0x25, 0xE4, 0x34, 0xF0, 0x03, 0xDD, 0xDC, 0x20, 0xDC, 0x70, 0xCA, 0xCC, 0xD9,
  211. 0xBA, 0x5F, 0x68, 0xC4, 0x91, 0x5B, 0x49, 0x6D, 0xB3, 0xAA, 0xEA, 0x34, 0x2A, 0xC9, 0xE6, 0x46,
  212. 0x41, 0x4A, 0x8F, 0xD0, 0xF5, 0xC7, 0x99, 0xB3, 0x2A, 0x5A, 0xE1, 0x17, 0x4D, 0xC8, 0x24, 0xDC,
  213. 0x20, 0x86, 0x4A, 0x25, 0x3F, 0x0C, 0xCC, 0x14, 0x07, 0xAD, 0x5C, 0x12, 0xC0, 0x50, 0x57, 0x41,
  214. 0x4A, 0x48, 0x2F, 0x4D, 0x18, 0x08, 0x79, 0x35, 0x20, 0xA7, 0x5F, 0xB9, 0x83, 0x5E, 0x93, 0x91,
  215. 0xE2, 0xCB, 0xAB, 0x8B, 0xAB, 0xF1, 0x92, 0x19, 0x52, 0xF1, 0x33, 0x3F, 0x0A, 0xB8, 0x61, 0xD5,
  216. 0x5C, 0xC8, 0x6F, 0x05, 0x6C, 0x69, 0x0E, 0x3D, 0x99, 0xE2, 0xD2, 0xD2, 0x08, 0x76, 0x64, 0xEB,
  217. 0x1B, 0xBC, 0x79, 0xB6, 0xE4, 0xA9, 0x82, 0xF1, 0x77, 0x59, 0x78, 0xC0, 0x80, 0xAD, 0xD2, 0x7D,
  218. 0xC2, 0xC7, 0x6C, 0xF1, 0x2A, 0x6E, 0xDE, 0x0C, 0x9F, 0xE0, 0x77, 0x91, 0xF2, 0xE8, 0xE4, 0x7B,
  219. 0xA7, 0xEF, 0xDA, 0xD0, 0x78, 0xCD, 0x29, 0x3E, 0x59, 0x05, 0x68, 0xBA, 0x6A, 0x7A, 0x17, 0x7E,
  220. 0x37, 0xF0, 0x21, 0xF8, 0x4E, 0xC7, 0xD8, 0xDE, 0x13, 0x43, 0x55, 0x0F, 0x41, 0x5A, 0x6E, 0x98,
  221. 0x6B, 0xD0, 0x24, 0xC1, 0x0E, 0xA9, 0x6B, 0x63, 0xA9, 0xAF, 0x8C, 0x66, 0x9C, 0xA0, 0x43, 0xCB,
  222. 0x2E, 0xEF, 0xA0, 0x20, 0x49, 0xEA, 0x11, 0x06, 0x2D, 0xDB, 0xDD, 0x2F, 0x5F, 0xB7, 0x5B, 0x06,
  223. 0xD5, 0xA4, 0xFE, 0xEA, 0xE8, 0x76, 0xEA, 0x29, 0xD3, 0x21, 0x52, 0x0D, 0x96, 0xA4, 0xF7, 0x58,
  224. 0x74, 0xAF, 0xAD, 0xB8, 0x29, 0xDB, 0x5D, 0x0A, 0xC2, 0x89, 0xEF, 0xF6, 0x35, 0x2A, 0xD6, 0xEB,
  225. 0x03, 0xDD, 0x73, 0x41, 0x6D, 0xBB, 0x52, 0xFA, 0xC0, 0x5E, 0xFD, 0xFF, 0xF2, 0x64, 0x2E, 0x42,
  226. 0xCB, 0x95, 0x40, 0xA7, 0xDD, 0x2E, 0x7C, 0xEF, 0x2A, 0x18, 0x97, 0x53, 0x67, 0xDB, 0x00, 0xC5,
  227. 0x94, 0xFD, 0x2F, 0xD9, 0xF7, 0x10, 0xA6, 0xC1, 0x0B, 0x20, 0x4C, 0xE0, 0x2E, 0x72, 0x6D, 0xE9,
  228. 0x00, 0x23, 0xE4, 0x63, 0xD3, 0x03, 0x16, 0x8C, 0x71, 0x35, 0x95, 0xAE, 0x99, 0x88, 0xA4, 0x40,
  229. 0x9D, 0x3C, 0xCB, 0x58, 0x4E, 0x78, 0xF4, 0x9E, 0xBD, 0x17, 0xDD, 0x6E, 0x08, 0xDF, 0xD9, 0x66,
  230. 0xEB, 0xD9, 0x2F, 0x7E, 0x41, 0x29, 0xCB, 0xD3, 0xEA, 0x3B, 0xF0, 0x57, 0xAE, 0xD9, 0x64, 0x8E,
  231. 0x75, 0xE7, 0x48, 0x71, 0x22, 0xD9, 0x68, 0xC7, 0x49, 0x41, 0x9B, 0x78, 0xCE, 0x05, 0x1C, 0xA8,
  232. 0xFF, 0x66, 0x4A, 0xE1, 0x56, 0x13, 0x47, 0x9A, 0x1E, 0x99, 0xC4, 0x00, 0xE4, 0xF3, 0xBD, 0x00,
  233. 0x9B, 0x58, 0xA0, 0xC7, 0xDC, 0x9B, 0x53, 0xE7, 0x81, 0xF6, 0xDE, 0x8E, 0x82, 0x35, 0x77, 0xB4,
  234. 0x47, 0x44, 0x6B, 0x7E, 0xDA, 0x6D, 0x49, 0xD6, 0x1C, 0x7A, 0xFB, 0x83, 0xA7, 0xCE, 0xA7, 0x0C,
  235. 0xE8, 0xAD, 0xBA, 0x94, 0xBF, 0xB0, 0xD9, 0xEC, 0x7D, 0x7A, 0xC5, 0x73, 0x38, 0xAA, 0x61, 0xDE,
  236. 0x25, 0xAE, 0x86, 0x18, 0x78, 0x04, 0x5C, 0x9A, 0x2C, 0x58, 0x54, 0xD2, 0x8D, 0x01, 0x30, 0x3F,
  237. 0xE1, 0xBA, 0x6D, 0x18, 0x9D, 0x01, 0x98, 0x94, 0x19, 0xE0, 0x46, 0x91, 0xFC, 0xAF, 0x9B, 0x88,
  238. 0x2A, 0xB9, 0x3E, 0x97, 0x1D, 0xA1, 0x0D, 0x2A, 0x57, 0xE7, 0xBF, 0x8F, 0xE8, 0x82, 0xDC, 0x5F,
  239. 0xF9, 0xD6, 0x3B, 0x1A, 0x8C, 0x10, 0xCF, 0x17, 0x48, 0x13, 0x09, 0x1D, 0x0D, 0xC6, 0x16, 0x75,
  240. 0x59, 0xD2, 0x28, 0x08, 0xE6, 0x03, 0x3C, 0x47, 0xED, 0xC0, 0x9C, 0x0F, 0xD2, 0x24, 0x1E, 0xD2,
  241. 0xAF, 0x20, 0x05, 0xEF, 0x88, 0x8C, 0xC0, 0x8F, 0x7C, 0xA4, 0xF7, 0xB6, 0xC5, 0x26, 0xBC, 0xF8,
  242. 0xDB, 0xF3, 0xC1, 0xEE, 0x63, 0x76, 0xBC, 0xBC, 0xB1, 0x90, 0xE0, 0x1C, 0x13, 0xF4, 0x6D, 0x03,
  243. 0x44, 0x2D, 0xE4, 0xFB, 0x43, 0x78, 0x05, 0x00, 0xEA, 0x2C, 0xBC, 0x86, 0xA4, 0x72, 0x1B, 0xC8,
  244. 0x0D, 0xC0, 0x6E, 0xD4, 0x87, 0x16, 0x0F, 0x55, 0xE6, 0x02, 0x88, 0x9C, 0xC5, 0x99, 0x85, 0x8C,
  245. 0x8A, 0x6A, 0x38, 0xCD, 0xE8, 0x57, 0xF1, 0x80, 0x60, 0x52, 0xB8, 0xEB, 0xB0, 0xC2, 0xC4, 0xA9,
  246. 0x53, 0x19, 0xDC, 0x53, 0xCE, 0x66, 0xDB, 0xFA, 0x4D, 0x17, 0x39, 0xA4, 0xEA, 0x9D, 0xE8, 0x14,
  247. 0x77, 0xCA, 0x62, 0xDD, 0x26, 0xEA, 0x76, 0x08, 0xF5, 0xFF, 0xEE, 0xD5, 0x23, 0x8D, 0xF1, 0xFE,
  248. 0x8E, 0x93, 0xEA, 0x22, 0xF8, 0xE9, 0xE8, 0x61, 0xE6, 0x32, 0xB9, 0x7E, 0xB3, 0x5D, 0x16, 0xE2,
  249. 0xED, 0x96, 0xEC, 0x89, 0x60, 0xE6, 0x44, 0x1C, 0x4B, 0xFC, 0x49, 0x08, 0x73, 0x08, 0xC1, 0x13,
  250. 0xA7, 0xCB, 0xAD, 0xEA, 0x24, 0x09, 0xA9, 0x12, 0x48, 0x7A, 0x19, 0xC5, 0x0C, 0x6D, 0x91, 0xBE,
  251. 0xC3, 0x65, 0xD3, 0x46, 0xCF, 0xCE, 0x81, 0xFC, 0x9E, 0xA9, 0x51, 0xD9, 0x9D, 0xC1, 0x85, 0x36,
  252. 0xED, 0xDB, 0xC7, 0x09, 0x16, 0xC5, 0xD0, 0xF1, 0xB7, 0x4C, 0x80, 0x5F, 0x40, 0x7A, 0xB3, 0xEE,
  253. 0x07, 0xE7, 0xF5, 0x50, 0xC3, 0xF0, 0xE7, 0xEB, 0x89, 0xF6, 0x0F, 0x9E, 0x36, 0x42, 0x52, 0x1A,
  254. 0x41, 0xDF, 0x5C, 0xEC, 0x27, 0xC1, 0x92, 0x14, 0xE8, 0x58, 0xFA, 0xF6, 0x6F, 0x1D, 0x5D, 0xE9,
  255. 0x80, 0xBD, 0x83, 0xD6, 0x50, 0xA4, 0x5B, 0xF2, 0xBD, 0xDA, 0xB4, 0x3A, 0x19, 0x51, 0x1B, 0xC7,
  256. 0x2E, 0x17, 0xD4, 0x19, 0x78, 0x9F, 0x18, 0xFB, 0xD7, 0x20, 0x3B, 0x70, 0x30, 0xE1, 0x4C, 0x36,
  257. 0x83, 0xD8, 0x9F, 0xB9, 0x57, 0x4F, 0xDF, 0x66, 0x54, 0x37, 0xB4, 0xDD, 0xB3, 0xB6, 0x52, 0x2D,
  258. 0x1D, 0x30, 0x19, 0x60, 0x6A, 0x7A, 0x85, 0x7D, 0xC3, 0xB3, 0xDC, 0x1D, 0xAB, 0xB4, 0xE5, 0x3F,
  259. 0x72, 0x12, 0xBB, 0x46, 0xEC, 0x28, 0xFC, 0x2B, 0x9E, 0x36, 0xD0, 0x92, 0x07, 0x59, 0x59, 0xFE,
  260. 0x3C, 0x9C, 0x52, 0x1B, 0x91, 0x43, 0xA1, 0xFD, 0xF6, 0x79, 0xB4, 0x5C, 0xEE, 0xCB, 0x00, 0xA4,
  261. 0xB2, 0xFF, 0xD1, 0xDA, 0xF4, 0x8A, 0x24, 0xF9, 0xCF, 0x61, 0xA5, 0x9D, 0xEC, 0x6D, 0xC3, 0xCF,
  262. 0xEC, 0xC6, 0x9A, 0x12, 0x2B, 0x9A, 0xFF, 0xDC, 0x61, 0x2E, 0x4D, 0x5D, 0xA5, 0x53, 0x6C, 0x34,
  263. 0x8E, 0x62, 0x23, 0x85, 0x55, 0x40, 0xC1, 0x89, 0x1D, 0x7F, 0x65, 0xF3, 0x03, 0xCE, 0xA1, 0xFF,
  264. 0x37, 0xD6, 0xFD, 0x1F, 0x68, 0x1A, 0xFF, 0xBD, 0xB4, 0xEC, 0x77, 0xE4, 0xF8, 0x01, 0xE6, 0x30,
  265. 0xBB, 0xC3, 0x69, 0xC7, 0xDE, 0xAE, 0xA6, 0x4F, 0x66, 0xCE, 0xCF, 0xB6, 0xF0, 0x82, 0x94, 0x6C,
  266. 0x8D, 0xBE, 0xD7, 0xF9, 0x0B, 0xDD, 0xD6, 0x0A, 0x93, 0xF0, 0xF3, 0xC0, 0xFC, 0xD5, 0x16, 0xDE,
  267. 0x12, 0xF3, 0x0D, 0xFF, 0x1F, 0xCE, 0xD7, 0xFD, 0x8F, 0x3A, 0xF6, 0xFA, 0x8B, 0xA4, 0x00, 0xF3,
  268. 0x92, 0x48, 0x88, 0x7C, 0xD0, 0x0C, 0xDE, 0xC0, 0xE2, 0x84, 0xA9, 0x05, 0xE2, 0x8E, 0xD2, 0xDA,
  269. 0x00, 0xA8, 0x20, 0x3E, 0x89, 0xEC, 0x81, 0xE5, 0xE4, 0xED, 0xFA, 0x37, 0xCC, 0x2A, 0x78, 0xC8,
  270. 0x49, 0xF4, 0xE4, 0xF3, 0x98, 0x56, 0x0A, 0x86, 0x49, 0x78, 0x3A, 0xEC, 0x64, 0xAA, 0xBC, 0x39,
  271. 0x95, 0xAC, 0xD5, 0xA8, 0x2A, 0x23, 0x49, 0x5A, 0xE0, 0xB0, 0xFB, 0x8A, 0x45, 0xE1, 0x2A, 0xBA,
  272. 0xA3, 0x39, 0x87, 0x91, 0x1C, 0xF9, 0x0D, 0x9F, 0x27, 0x4A, 0x0C, 0x5B, 0x73, 0x41, 0xB8, 0xF3,
  273. 0x8C, 0x05, 0x4F, 0x97, 0x46, 0x4E, 0x19, 0x2C, 0x91, 0xA2, 0xFD, 0xE3, 0x3B, 0x76, 0x1B, 0xE0,
  274. 0xEB, 0x8E, 0x08, 0xFC, 0x6A, 0xBD, 0x53, 0x5A, 0x93, 0x6B, 0x6E, 0xCF, 0x63, 0xF0, 0x9D, 0xE3,
  275. 0xC4, 0x8F, 0xBE, 0x19, 0xD2, 0x25, 0x50, 0xC4, 0x87, 0x02, 0xD6, 0xFC, 0xC3, 0x69, 0x97, 0xB5,
  276. 0x26, 0x9D, 0x7A, 0xBE, 0x61, 0x92, 0xA8, 0x08, 0x19, 0x25, 0xF4, 0x77, 0xD6, 0x1B, 0x75, 0x51,
  277. 0x43, 0xBF, 0x58, 0x1F, 0x4B, 0xD2, 0x57, 0x7E, 0xA5, 0x51, 0xD4, 0x6A, 0x56, 0x46, 0x9E, 0x61,
  278. 0xFB, 0xB7, 0xD2, 0x9B, 0xEA, 0x8E, 0xB9, 0x69, 0xAC, 0xEC, 0xB3, 0x80, 0x03, 0x31, 0xD5, 0x8A,
  279. 0x40, 0xA5, 0x20, 0x48, 0x58, 0xD1, 0xEE, 0x10, 0xBA, 0x91, 0xAC, 0xEA, 0xDC, 0x15, 0xB6, 0xFF,
  280. 0xE6, 0xD4, 0x25, 0xDB, 0xD3, 0x36, 0x86, 0xE2, 0x65, 0xDD, 0x40, 0x3A, 0xC2, 0x31, 0x31, 0x9F,
  281. 0x7E, 0x6C, 0xFA, 0xF8, 0x57, 0x0E, 0x49, 0x80, 0x1E, 0xED, 0x64, 0xF6, 0x53, 0xD0, 0xEF, 0x75,
  282. 0x82, 0x98, 0x28, 0xEE, 0xE1, 0x74, 0x09, 0xA6, 0x7A, 0x84, 0x73, 0x91, 0x96, 0xBC, 0x8B, 0x1F,
  283. 0x99, 0x46, 0xE5, 0x4A, 0xC3, 0x99, 0x3D, 0x99, 0xC3, 0x49, 0x1F, 0xA6, 0x1F, 0xA5, 0x3C, 0x19,
  284. 0x4D, 0x9E, 0x5A, 0x65, 0xFA, 0x79, 0xFC, 0x89, 0x77, 0xB8, 0xF8, 0x11, 0x56, 0x5E, 0xEE, 0x64,
  285. 0xD3, 0x96, 0xAF, 0x76, 0x4D, 0xA7, 0x51, 0x7C, 0xDA, 0x82, 0x21, 0xF1, 0x36, 0x51, 0x9C, 0xE0,
  286. 0x09, 0x16, 0x01, 0x4F, 0xEC, 0x3C, 0x43, 0xAB, 0xA0, 0x21, 0xC1, 0xE5, 0x32, 0x7D, 0xA1, 0x64,
  287. 0x31, 0x22, 0xB0, 0xD0, 0x7A, 0x86, 0x74, 0xA4, 0x94, 0x5E, 0xB4, 0x1E, 0xF6, 0xDC, 0x47, 0xBF,
  288. 0x28, 0x10, 0xDD, 0x6D, 0x09, 0x4B, 0xC4, 0x8B, 0x08, 0x0A, 0x3A, 0x10, 0xC1, 0xC9, 0x6C, 0xCA,
  289. 0x1A, 0xEB, 0x99, 0x62, 0x5B, 0xA0, 0xF9, 0x57, 0x2C, 0x32, 0x4B, 0x76, 0x0E, 0x40, 0xE7, 0x92,
  290. 0xFA, 0x37, 0xE6, 0x64, 0xF2, 0x49, 0x35, 0x52, 0x64, 0x17, 0xD1, 0xFE, 0xF3, 0xF4, 0x5D, 0xC6,
  291. 0xBE, 0x83, 0x6B, 0x82, 0x3D, 0xB8, 0x4D, 0x43, 0xC4, 0xBB, 0xAD, 0x26, 0xD5, 0x5E, 0xB1, 0xAF,
  292. 0x80, 0x8A, 0x7A, 0xD0, 0x7C, 0xAA, 0x8A, 0xE6, 0x16, 0x91, 0x31, 0x9C, 0xF2, 0xE1, 0x1A, 0x85,
  293. 0x80, 0x5C, 0x3A, 0x65, 0x70, 0xC0, 0xEF, 0x90, 0x79, 0xED, 0x59, 0x07, 0xDD, 0xE8, 0xAF, 0xFE,
  294. 0x9B, 0x94, 0x51, 0x0D, 0xA6, 0x11, 0x47, 0xD8, 0xE7, 0x81, 0xDB, 0x65, 0x7A, 0x35, 0x32, 0xFB,
  295. 0x36, 0x14, 0x67, 0x2F, 0xA6, 0x98, 0x70, 0xF3, 0x2F, 0xB5, 0xD0, 0x12, 0x46, 0x3F, 0x2C, 0x44,
  296. 0x87, 0xC0, 0xF8, 0xDB, 0xB9, 0xF9, 0x76, 0x9E, 0xB8, 0x87, 0x44, 0x39, 0x4A, 0xCF, 0xFC, 0xCE,
  297. 0xD1, 0x7C, 0x4D, 0xDF, 0x73, 0x0F, 0xA7, 0x62, 0x6B, 0xD1, 0xC2, 0x6F, 0x16, 0xF1, 0xBA, 0xF3,
  298. 0x8C, 0xD5, 0xB9, 0xE1, 0x96, 0x87, 0xF3, 0xF4, 0x80, 0x79, 0x34, 0x09, 0xB1, 0x8A, 0x65, 0xC5,
  299. 0x15, 0xD4, 0xCC, 0x45, 0x99, 0xCB, 0x2E, 0x6D, 0x65, 0xBB, 0xFF, 0x01, 0x00, 0x33, 0xCB, 0x16,
  300. 0x86, 0x78, 0xF0, 0x39, 0x17, 0x05, 0xC4, 0x9D, 0x7C, 0xBE, 0xAA, 0x23, 0x6A, 0xF9, 0xC3, 0x91,
  301. 0xA0, 0x76, 0xCC, 0x39, 0xA2, 0x61, 0xE1, 0x13, 0xCD, 0xF8, 0xEC, 0xE6, 0x19, 0x3E, 0xD9, 0x1C,
  302. 0x7B, 0x2E, 0x20, 0xCA, 0x1F, 0xB0, 0xAE, 0xB2, 0xDE, 0xFC, 0xF6, 0x9C, 0xDC, 0xFC, 0xB5, 0xB0,
  303. 0xBD, 0x8E, 0x90, 0xE6, 0x64, 0x05, 0x80, 0xD8, 0x28, 0xF8, 0x99, 0xAF, 0x91, 0x2A, 0xEE, 0x74,
  304. 0x6E, 0x0B, 0x31, 0xD0, 0xAE, 0x92, 0x6B, 0xC8, 0xB8, 0x32, 0xA9, 0xED, 0x4E, 0x70, 0x2F, 0x7E,
  305. 0xB6, 0xB4, 0xA1, 0x8F, 0x7C, 0x33, 0xCF, 0xC5, 0x5E, 0xB0, 0x98, 0x03, 0x7C, 0x06, 0x40, 0x6A,
  306. 0x38, 0xB3, 0x69, 0x6B, 0x69, 0xD7, 0x52, 0x77, 0xAA, 0x23, 0x70, 0x0C, 0xE6, 0x0D, 0x26, 0x12,
  307. 0x7D, 0xF3, 0xA0, 0x2D, 0xE3, 0x42, 0xC7, 0x5D, 0xFF, 0x2E, 0x49, 0xAE, 0x5E, 0xEC, 0x0C, 0x7A,
  308. 0x08, 0x0B, 0xE4, 0x13, 0xF6, 0x65, 0x75, 0xA7, 0x76, 0x02, 0xF6, 0xAA, 0x5C, 0xF1, 0x6B, 0xAB,
  309. 0xA6, 0x39, 0x2D, 0x1C, 0xC5, 0x5E, 0x1B, 0x75, 0x29, 0xA2, 0x8D, 0xD0, 0xF5, 0xB3, 0x9D, 0x3C,
  310. 0xBA, 0xBD, 0xCB, 0x1F, 0xEF, 0x20, 0xC5, 0xE3, 0x88, 0xC5, 0x44, 0x58, 0x1F, 0xFC, 0x7B, 0x39,
  311. 0x6E, 0x3F, 0xA3, 0x30, 0x3A, 0x1A, 0xE5, 0x67, 0xE0, 0x44, 0xF0, 0x7C, 0x50, 0x7F, 0x66, 0x54,
  312. 0x1B, 0x5D, 0xD5, 0x75, 0x7D, 0xE1, 0x9B, 0x77, 0x38, 0x46, 0xBC, 0x8C, 0x37, 0x1D, 0xA8, 0xA7,
  313. 0x2B, 0xC0, 0x07, 0xDB, 0xE6, 0x6C, 0x63, 0x42, 0x4B, 0x6E, 0xEB, 0x42, 0xF2, 0x65, 0xEB, 0xEE,
  314. 0x85, 0x09, 0xDC, 0x6D, 0x11, 0xDE, 0x08, 0xD6, 0x1E, 0x97, 0x09, 0x85, 0x36, 0x5E, 0x5A, 0xDA,
  315. 0x8D, 0x54, 0x99, 0x6C, 0x8C, 0xAC, 0xE4, 0xD7, 0x6D, 0x27, 0x93, 0x05, 0x41, 0xCF, 0xB1, 0x41,
  316. 0x64, 0x05, 0xCC, 0x0B, 0xDD, 0x65, 0xF2, 0x00, 0xFE, 0x5A, 0xD2, 0xD1, 0x0C, 0x60, 0x6B, 0x1F,
  317. 0xAF, 0x3C, 0x1F, 0x1D, 0xED, 0xF5, 0xB9, 0xBA, 0xB8, 0xA7, 0xD6, 0x44, 0xA3, 0xFE, 0xCB, 0xB1,
  318. 0x30, 0xE1, 0xED, 0xDA, 0xDF, 0x38, 0xD1, 0x79, 0x90, 0x7A, 0x62, 0x5E, 0x74, 0x61, 0xC6, 0xC4,
  319. 0x07, 0x40, 0x0F, 0x1E, 0x2A, 0x53, 0x9F, 0xB1, 0x8E, 0x00, 0x9B, 0xB1, 0xAC, 0xA0, 0x12, 0x9D,
  320. 0x7E, 0xC6, 0xBA, 0xAF, 0x48, 0xE1, 0xA7, 0xF9, 0xC1, 0x02, 0x63, 0x42, 0xA7, 0x96, 0xCC, 0x46,
  321. 0x2A, 0xA8, 0xD6, 0x16, 0x5F, 0x53, 0x2D, 0x2A, 0xC4, 0x41, 0xA3, 0xBA, 0x6D, 0x7F, 0x80, 0x17,
  322. 0x6B, 0xDD, 0xC5, 0xEB, 0x91, 0x02, 0x8C, 0x62, 0x52, 0xAF, 0xE0, 0x62, 0xAD, 0x63, 0xE2, 0x41,
  323. 0xE3, 0x13, 0xEA, 0x26, 0xB2, 0x5A, 0xE5, 0xB2, 0xF6, 0x7B, 0xA5, 0x3C, 0xCD, 0xB2, 0xDB, 0xBC,
  324. 0x74, 0xCA, 0xD5, 0xEE, 0x8E, 0xF8, 0xD4, 0x92, 0x35, 0x7B, 0x11, 0x82, 0x13, 0x13, 0xEF, 0xCB,
  325. 0xA5, 0xE5, 0xD0, 0x07, 0x8E, 0x7D, 0xBD, 0x81, 0x35, 0xBF, 0x14, 0x4B, 0xAD, 0x8A, 0x55, 0x65,
  326. 0xFB, 0x5D, 0x54, 0xC3, 0xE9, 0x65, 0x7C, 0x22, 0x6E, 0x4E, 0x48, 0x46, 0xAB, 0x2E, 0x6A, 0x93,
  327. 0xB5, 0x7E, 0x3F, 0x1E, 0x9F, 0x6E, 0xC9, 0x11, 0xF1, 0xC9, 0x38, 0xE0, 0x8F, 0xAD, 0x83, 0x1F,
  328. 0x6D, 0xD2, 0xD6, 0x86, 0x98, 0x3C, 0x25, 0xA3, 0x9A, 0x49, 0xE3, 0x02, 0xC6, 0xD6, 0x2A, 0x09,
  329. 0x8B, 0x1F, 0xCD, 0x0A, 0x2B, 0x8D, 0x49, 0x46, 0xB8, 0x15, 0x45, 0x90, 0x71, 0x10, 0x4C, 0xAE,
  330. 0x5C, 0x3D, 0x6A, 0x54, 0x82, 0xEE, 0x88, 0x24, 0x69, 0x8D, 0x99, 0x7F, 0x05, 0xDC, 0x46, 0x5D,
  331. 0x69, 0xC1, 0x6C, 0x9D, 0xB7, 0x9F, 0x12, 0x75, 0xB2, 0x36, 0xA5, 0xD4, 0xCB, 0xBD, 0x2F, 0xB4,
  332. 0xB0, 0x88, 0x79, 0x9A, 0x34, 0x21, 0xB9, 0x29, 0x7C, 0xB1, 0x6F, 0x21, 0xFB, 0xD6, 0xB8, 0x86,
  333. 0xF8, 0xE0, 0x45, 0xE8, 0x7F, 0x07, 0x9B, 0x7B, 0xC9, 0x38, 0x48, 0x2E, 0x9E, 0xBB, 0x7B, 0x9C,
  334. 0x7C, 0xB2, 0x86, 0xE1, 0x2E, 0xA0, 0x8F, 0xB0, 0x32, 0xF2, 0xF0, 0xAA, 0x18, 0x53, 0x78, 0xEB,
  335. 0x71, 0x60, 0x4E, 0xF9, 0x6E, 0x70, 0xD6, 0x4A, 0x08, 0x3E, 0x09, 0xCB, 0xA1, 0x8B, 0xC3, 0xD3,
  336. 0xFC, 0xE8, 0xC8, 0xC6, 0x9A, 0xC3, 0xAB, 0x8C, 0xD8, 0x1F, 0x7F, 0x17, 0xC8, 0x92, 0x6E, 0x6A,
  337. 0x9C, 0x27, 0xA5, 0xF4, 0xA4, 0x51, 0x08, 0x61, 0xA7, 0x76, 0x23, 0x33, 0x6F, 0xAA, 0xE2, 0x76,
  338. 0x46, 0xFE, 0x7D, 0xDA, 0xCE, 0xF8, 0x07, 0xDD, 0xED, 0xE9, 0x38, 0xE0, 0x41, 0x23, 0x7B, 0x7C,
  339. 0x4B, 0x3D, 0x6C, 0x63, 0x55, 0xEF, 0xB0, 0x37, 0x75, 0x3D, 0x52, 0x97, 0x0E, 0x4A, 0xBF, 0x4E,
  340. 0x00, 0x4A, 0xDD, 0xFF, 0x14, 0x9D, 0xE4, 0xAD, 0x59, 0x4F, 0xEA, 0x23, 0x95, 0x06, 0x2B, 0xF5,
  341. 0x0B, 0x0A, 0x28, 0x89, 0x78, 0x9B, 0x82, 0xDE, 0x51, 0x6A, 0x9A, 0x7B, 0xCA, 0x94, 0xCC, 0x5A,
  342. 0xD5, 0x5D, 0x54, 0x02, 0xAC, 0x2E, 0x94, 0x3D, 0x29, 0x50, 0xFE, 0x42, 0xB2, 0x01, 0x1F, 0x07,
  343. 0x91, 0xAB, 0xEA, 0x49, 0x8C, 0xF4, 0x36, 0xD3, 0x38, 0xB3, 0x9F, 0xDF, 0x04, 0x07, 0x51, 0xCF,
  344. 0x17, 0xEE, 0xA6, 0x43, 0x0C, 0xFC, 0xA8, 0xEA, 0x56, 0x92, 0x91, 0x99, 0x59, 0xBE, 0xEA, 0x2A,
  345. 0xD2, 0xD8, 0x64, 0x38, 0xC0, 0xD5, 0x87, 0x4D, 0xC4, 0x15, 0xB1, 0x4C, 0xAE, 0x32, 0x3B, 0xCD,
  346. 0x8B, 0x2A, 0xF9, 0x3A, 0x0E, 0xC2, 0x24, 0x1E, 0xEF, 0x94, 0xFB, 0x58, 0xB6, 0x6C, 0x5E, 0x97,
  347. 0xD6, 0x9B, 0xDF, 0xCB, 0xFF, 0xC5, 0xF8, 0xE5, 0xD8, 0x3E, 0x76, 0x5D, 0x1D, 0xA2, 0x63, 0xB2,
  348. 0xF0, 0x63, 0x9B, 0xB4, 0x6D, 0x15, 0xF7, 0xFE, 0xA2, 0xDD, 0x83, 0x7F, 0x85, 0x1E, 0x8B, 0x3E,
  349. 0x53, 0xD7, 0x51, 0xEE, 0xE1, 0x0B, 0x4F, 0xA2, 0x9D, 0x82, 0x04, 0x36, 0x68, 0x20, 0x7D, 0x9F,
  350. 0xDF, 0x62, 0x59, 0x71, 0xEF, 0x4A, 0x1E, 0x68, 0x72, 0xFB, 0xDF, 0x53, 0x56, 0x63, 0xA0, 0x2B,
  351. 0xC6, 0xD2, 0x51, 0xA3, 0x5D, 0x4D, 0xD3, 0x0A, 0xA8, 0xF7, 0x90, 0xA3, 0xFF, 0xFD, 0xA3, 0xB8,
  352. 0x9D, 0x1E, 0xD9, 0x1E, 0x94, 0x73, 0x5E, 0xFE, 0x5F, 0xDD, 0x9D, 0x2D, 0x81, 0x82, 0x0A, 0x19,
  353. 0xBA, 0xDB, 0x37, 0xE0, 0xE1, 0x88, 0x24, 0xCC, 0x1E, 0xC8, 0xE4, 0xC4, 0xDE, 0xB2, 0x34, 0x9B,
  354. 0x88, 0x60, 0x2E, 0xFF, 0x57, 0x01, 0x65, 0x74, 0x13, 0xCC, 0xE9, 0x01, 0x25, 0xAE, 0x49, 0x51,
  355. 0x4C, 0x40, 0x85, 0xA1, 0x28, 0xD4, 0x37, 0x0E, 0x83, 0x86, 0x60, 0x2E, 0x52, 0x93, 0x76, 0xE2,
  356. 0x7A, 0x66, 0x2D, 0x7A, 0x0C, 0xEB, 0xAB, 0x27, 0x1F, 0xC5, 0xE7, 0xD3, 0xA2, 0x1C, 0x50, 0xCA,
  357. 0x59, 0x4A, 0x56, 0x10, 0xC8, 0xF0, 0xA3, 0xEF, 0x1B, 0x98, 0xE3, 0xDF, 0xAA, 0xA9, 0x3E, 0x32,
  358. 0x27, 0xA0, 0x90, 0xC7, 0x74, 0xC6, 0xD3, 0xBD, 0x8F, 0x47, 0x59, 0x19, 0xC8, 0xFB, 0xD8, 0xED,
  359. 0x8A, 0xDF, 0xE4, 0x40, 0xF0, 0x28, 0xC6, 0x7E, 0x13, 0x9E, 0xC6, 0x2E, 0x57, 0x6C, 0xAC, 0x88,
  360. 0xA9, 0x1F, 0x52, 0xB8, 0xDB, 0xDA, 0x01, 0x05, 0x02, 0xAC, 0x44, 0x29, 0xAD, 0xAF, 0x06, 0x74,
  361. 0x11, 0x51, 0x62, 0xEA, 0x69, 0x8C, 0xF4, 0xEE, 0xE2, 0x1B, 0x97, 0xEF, 0x7C, 0x17, 0xEC, 0x3A,
  362. 0xA4, 0x1D, 0xD6, 0xB5, 0xD4, 0xEF, 0xF2, 0x97, 0xD0, 0xF3, 0x34, 0xAA, 0xBB, 0x60, 0x17, 0x03,
  363. 0x02, 0x55, 0x83, 0xC3, 0xCE, 0xCE, 0x5A, 0xE9, 0xD1, 0xF6, 0x44, 0x50, 0x28, 0x26, 0x43, 0x5A,
  364. 0xD6, 0x79, 0xB9, 0x24, 0xCC, 0x1B, 0x3A, 0x78, 0x43, 0x0D, 0x47, 0xE7, 0x38, 0x01, 0xA2, 0xD8,
  365. 0xE3, 0x67, 0xBF, 0x8D, 0x2A, 0x3C, 0x53, 0xA8, 0x87, 0x84, 0x2E, 0x42, 0xD9, 0x6A, 0x8C, 0x62,
  366. 0xF1, 0x12, 0x3A, 0xAF, 0x1D, 0x38, 0x8D, 0x51, 0x9D, 0xEA, 0xBC, 0x35, 0x90, 0xF0, 0x94, 0xA0,
  367. 0x42, 0xD9, 0xC0, 0x91, 0xFB, 0x58, 0x73, 0x0B, 0xEE, 0xA0, 0xF4, 0xB5, 0xFD, 0x38, 0x4C, 0xB1,
  368. 0xA9, 0x49, 0x28, 0x74, 0x7E, 0xC1, 0xFA, 0xCC, 0x0C, 0xAD, 0xE9, 0xE6, 0x9A, 0xA5, 0x92, 0xEE,
  369. 0xC4, 0xC6, 0x1C, 0xAF, 0x80, 0x11, 0x49, 0x9C, 0x2F, 0x45, 0xC2, 0xF1, 0x1E, 0x03, 0x12, 0x23,
  370. 0xE6, 0xB4, 0x9C, 0x65, 0xA9, 0xE6, 0x43, 0x6E, 0xF0, 0x7E, 0xFB, 0x94, 0xF8, 0x9E, 0x23, 0x59,
  371. 0xF8, 0x7C, 0xFC, 0x0A, 0x03, 0xF8, 0xAA, 0x2D, 0x6D, 0x92, 0xEF, 0xEC, 0xA4, 0x32, 0x28, 0xA7,
  372. 0xA2, 0xA5, 0xF5, 0xE0, 0x29, 0x66, 0x8C, 0x8C, 0xA5, 0xEB, 0x08, 0x95, 0x11, 0x87, 0x63, 0x88,
  373. 0xF8, 0x5E, 0x08, 0xFD, 0x6F, 0xEA, 0x43, 0x55, 0x9D, 0xB2, 0x35, 0xC6, 0xAF, 0xDF, 0xE2, 0xCF,
  374. 0xCB, 0x7A, 0xCB, 0x21, 0x9E, 0xDD, 0xDD, 0x2F, 0x9B, 0xCB, 0xD7, 0x1E, 0x11, 0x67, 0xD4, 0xA9,
  375. 0x58, 0x95, 0xD2, 0xAD, 0x24, 0xF4, 0x11, 0xF6, 0xE3, 0x77, 0x2F, 0xB3, 0xAD, 0xA4, 0x45, 0xB8,
  376. 0x54, 0x3E, 0x6F, 0x22, 0x1D, 0x1F, 0xA2, 0xC4, 0xCA, 0x81, 0xC8, 0x24, 0x03, 0xCB, 0x34, 0x38,
  377. 0x0E, 0xF5, 0xCF, 0x68, 0x57, 0x5C, 0x5E, 0x3C, 0xF2, 0x39, 0xB7, 0xAA, 0xE0, 0x0B, 0xF3, 0x87,
  378. 0x13, 0x27, 0x99, 0x5C, 0x33, 0xBB, 0xAE, 0x87, 0x9A, 0xA2, 0xD0, 0x6B, 0x63, 0xFB, 0x94, 0xF7,
  379. 0x33, 0x13, 0x25, 0xC4, 0x97, 0x9E, 0x1F, 0x49, 0xB8, 0x44, 0x63, 0xD7, 0x1D, 0x97, 0x48, 0xE7,
  380. 0x91, 0xE9, 0x62, 0xDC, 0x2B, 0xD6, 0xC1, 0xE1, 0x57, 0x68, 0xE2, 0x59, 0xE3, 0xFA, 0x0D, 0xEB,
  381. 0x01, 0x57, 0xCF, 0xD1, 0x67, 0xB6, 0x60, 0xAC, 0x7B, 0x1D, 0x4C, 0x15, 0xB0, 0xD0, 0x0F, 0x17,
  382. 0xF8, 0xF3, 0xD5, 0x85, 0xDE, 0xFF, 0x12, 0xE6, 0x21, 0x06, 0xE4, 0x71, 0x71, 0x44, 0xD0, 0x73,
  383. 0x3F, 0x23, 0x17, 0xDC, 0x82, 0x24, 0x52, 0xA8, 0x4D, 0x73, 0x94, 0xB4, 0x95, 0xAB, 0x0B, 0xF5,
  384. 0xEB, 0x70, 0x90, 0xFF, 0x5F, 0xFA, 0xB2, 0xFC, 0x47, 0xA3, 0x2D, 0x57, 0xF8, 0xB6, 0xFD, 0xF4,
  385. 0xF6, 0xAE, 0xC6, 0x35, 0x13, 0x4A, 0xBF, 0x3D, 0xDA, 0x6F, 0xFE, 0x30, 0x52, 0x1E, 0x7F, 0x28,
  386. 0x31, 0x41, 0xC0, 0xC9, 0x7F, 0x57, 0xE7, 0x1F, 0x6D, 0x57, 0xD6, 0x09, 0x14, 0xDC, 0x62, 0xCE,
  387. 0x3B, 0xEB, 0x66, 0x1C, 0xA4, 0xFA, 0x67, 0x9D, 0x3B, 0x4B, 0x76, 0x65, 0x94, 0xDE, 0xA0, 0x31,
  388. 0x82, 0x80, 0xD3, 0x73, 0x73, 0x68, 0x38, 0x1D, 0x54, 0xB1, 0xE1, 0xDC, 0x24, 0xBE, 0xA7, 0xCD,
  389. 0xC6, 0x45, 0x6F, 0xC1, 0x49, 0xC5, 0xB7, 0xC4, 0x80, 0xA3, 0x57, 0x89, 0x0C, 0xC6, 0x5E, 0x80,
  390. 0x3F, 0x78, 0xB6, 0x17, 0x4E, 0x92, 0x77, 0xB4, 0xFF, 0xF2, 0x34, 0x4F, 0xBF, 0x50, 0x8B, 0x38,
  391. 0x22, 0x60, 0x43, 0x55, 0xE8, 0x53, 0x0C, 0x42, 0xE0, 0xA9, 0x10, 0xB6, 0x89, 0x85, 0x9B, 0xC3,
  392. 0xF1, 0x84, 0xE5, 0xBE, 0x4F, 0x76, 0xBA, 0x07, 0x32, 0xF7, 0x20, 0x41, 0xE7, 0x7A, 0xF2, 0x87,
  393. 0x52, 0x3A, 0xF2, 0x2C, 0x88, 0x8E, 0x97, 0x05, 0xFF, 0xE4, 0xD6, 0xCF, 0x28, 0x30, 0xC0, 0xB5,
  394. 0x6E, 0x89, 0xFA, 0x61, 0x5C, 0xFF, 0x54, 0x30, 0x4F, 0xDD, 0xF6, 0x49, 0x49, 0xB8, 0x97, 0x22,
  395. 0x33, 0xC2, 0x75, 0x2A, 0x5A, 0xE4, 0x46, 0xCA, 0x16, 0xEA, 0x83, 0x7C, 0x85, 0xB1, 0x6B, 0x82,
  396. 0xC6, 0x93, 0xF0, 0xFD, 0xB7, 0x8A, 0x17, 0x0E, 0x8E, 0xD8, 0x71, 0xD6, 0xEF, 0x8A, 0xC9, 0x85,
  397. 0xDB, 0x47, 0x08, 0x7A, 0x3E, 0xF0, 0x34, 0x9B, 0x8C, 0x8B, 0xD4, 0x5D, 0x33, 0xFF, 0xDD, 0x89,
  398. 0x67, 0x9C, 0x90, 0x6B, 0x78, 0x54, 0xDF, 0x1C, 0xA6, 0x2E, 0x1B, 0xDE, 0x0D, 0x44, 0xB9, 0x6C,
  399. 0xF9, 0xF6, 0x4C, 0x57, 0xAA, 0x1E, 0xC3, 0x0E, 0x2A, 0xFC, 0x0D, 0xA6, 0x0F, 0x0E, 0xD6, 0xA7,
  400. 0xDC, 0x97, 0x85, 0x30, 0x3E, 0x1D, 0x6D, 0xD9, 0x28, 0x44, 0xA3, 0x58, 0xF4, 0x2E, 0xDA, 0xBB,
  401. 0xC9, 0xF2, 0x2F, 0xF6, 0xDB, 0xF2, 0xB9, 0xFD, 0x7D, 0x95, 0x5B, 0x26, 0x43, 0x64, 0x25, 0x66,
  402. 0xAD, 0x7A, 0x3A, 0xFB, 0x7B, 0x51, 0x0A, 0x33, 0xFD, 0x24, 0xB4, 0x45, 0x3D, 0x2E, 0xD4, 0xD8,
  403. 0xF6, 0x34, 0x5A, 0x3D, 0xFF, 0x08, 0x5F, 0x62, 0x53, 0x59, 0xFE, 0xA1, 0x9E, 0x8D, 0x04, 0xE3,
  404. 0xEF, 0x00, 0x49, 0x98, 0xD8, 0xAE, 0x8E, 0x7E, 0x92, 0x7F, 0x09, 0xE7, 0xA6, 0xEE, 0x85, 0xA9,
  405. 0x26, 0x73, 0x64, 0x74, 0x94, 0x36, 0x7D, 0x75, 0xA5, 0x69, 0x5B, 0x65, 0xC4, 0xC6, 0x20, 0xB6,
  406. 0xA8, 0x31, 0xFB, 0x70, 0x0D, 0x2D, 0x31, 0x9F, 0x16, 0xB5, 0xBF, 0x6A, 0x25, 0x52, 0x77, 0x79,
  407. 0xDA, 0xEC, 0x56, 0x57, 0x4C, 0x3C, 0xCB, 0x81, 0x08, 0x04, 0xF1, 0xA5, 0x51, 0x66, 0x6A, 0xA9,
  408. 0x96, 0xA4, 0x08, 0xDB, 0x10, 0x78, 0xD0, 0x15, 0x1B, 0x6A, 0x0A, 0xC2, 0xF2, 0x81, 0x61, 0x3E,
  409. 0x80, 0x15, 0x77, 0x24, 0x54, 0xE7, 0x86, 0xA0, 0xA7, 0x48, 0xE8, 0x15, 0xB4, 0xBD, 0x66, 0x24,
  410. 0x16, 0xBC, 0xDB, 0xF2, 0x98, 0x4C, 0x9E, 0xD5, 0xB4, 0x26, 0x20, 0x13, 0x5A, 0x86, 0x9E, 0xC3,
  411. 0xFB, 0xC7, 0xC1, 0xE6, 0xE7, 0x52, 0x12, 0xD4, 0x2C, 0x68, 0x6E, 0x69, 0x1E, 0x6D, 0xCA, 0xAB,
  412. 0x32, 0x16, 0x89, 0x0E, 0x43, 0x17, 0xCC, 0xE2, 0x66, 0xB0, 0x77, 0x7A, 0x31, 0x90, 0xBA, 0x31,
  413. 0xFB, 0x16, 0x28, 0xEC, 0x8F, 0xF7, 0x52, 0xF0, 0x64, 0xC1, 0x0C, 0x08, 0x37, 0x51, 0x8A, 0x59,
  414. 0x8B, 0x19, 0xE9, 0x42, 0x3A, 0x4A, 0x7C, 0x41, 0xA9, 0x19, 0xC9, 0xA8, 0x15, 0x6D, 0x02, 0x24,
  415. 0x41, 0x2C, 0xA5, 0xDF, 0xF3, 0xD9, 0x5E, 0xDC, 0x2A, 0x3D, 0xB1, 0x94, 0x5C, 0xB8, 0x6C, 0x8D,
  416. 0x25, 0xC3, 0xFE, 0xA9, 0x2F, 0x6F, 0x61, 0x14, 0x89, 0xB3, 0x8A, 0x7E, 0x72, 0x72, 0xC6, 0x76,
  417. 0xDE, 0x1B, 0x79, 0x31, 0x5D, 0x3D, 0xAD, 0xA9, 0x2E, 0xBF, 0x2A, 0x42, 0x32, 0x4E, 0x3B, 0x23,
  418. 0xE5, 0x8A, 0x0F, 0x58, 0x4A, 0x5A, 0x29, 0xDD, 0x20, 0x3E, 0x92, 0xE4, 0x87, 0x9C, 0x63, 0x75,
  419. 0x00, 0xDD, 0xF4, 0xF9, 0xF2, 0x35, 0x2E, 0x5D, 0xB9, 0x02, 0xEC, 0xCF, 0xBE, 0x00, 0x61, 0x58,
  420. 0xF7, 0x52, 0x40, 0x90, 0xEA, 0x28, 0x56, 0x6F, 0x13, 0xF6, 0xCF, 0xCA, 0xBF, 0x8A, 0xC9, 0x9D,
  421. 0x40, 0x30, 0xC3, 0xBE, 0xCC, 0xE4, 0xF4, 0xBE, 0xE4, 0xF7, 0xB7, 0xD9, 0x30, 0xEE, 0x34, 0x7F,
  422. 0x52, 0x25, 0xDA, 0x50, 0x42, 0x6E, 0x56, 0xBD, 0x83, 0x51, 0x2F, 0x0B, 0x26, 0xC9, 0x6B, 0x1A,
  423. 0xAC, 0x47, 0x4B, 0xD5, 0xDF, 0x7F, 0x1B, 0xF0, 0x76, 0x54, 0x74, 0x88, 0xA5, 0xB7, 0xE0, 0x13,
  424. 0x92, 0xAA, 0xD7, 0x25, 0xFF, 0x81, 0x7A, 0xB4, 0xFB, 0x40, 0xE1, 0xC3, 0x66, 0xA8, 0x2F, 0x2C,
  425. 0xA3, 0xEE, 0xC1, 0x92, 0x05, 0x92, 0xF6, 0x72, 0x9D, 0x8C, 0x6E, 0xD8, 0x03, 0xD4, 0xE9, 0xA7,
  426. 0x0A, 0xF2, 0x92, 0x7C, 0x61, 0x5E, 0xAC, 0x8F, 0xE3, 0xE4, 0x0F, 0xE1, 0xB1, 0xC8, 0xD0, 0x15,
  427. 0xDF, 0x5E, 0x80, 0x80, 0x16, 0x2D, 0x24, 0xC2, 0xB8, 0xE4, 0x4F, 0x5E, 0xEC, 0x7A, 0x9B, 0x28,
  428. 0xE2, 0xF8, 0x0E, 0x92, 0x55, 0x0C, 0x21, 0x9B, 0x4E, 0x0B, 0xC0, 0xC2, 0x91, 0xB3, 0xF6, 0x8B,
  429. 0xE0, 0xD2, 0xFF, 0xEB, 0x7E, 0x60, 0x74, 0x62, 0xD8, 0xFB, 0x59, 0x86, 0xE0, 0x0A, 0x03, 0xCB,
  430. 0xBB, 0x05, 0xEE, 0x11, 0x49, 0xA5, 0xEC, 0xBB, 0x9C, 0x20, 0x7E, 0x4E, 0xAF, 0x4C, 0x5D, 0xCA,
  431. 0x45, 0xAB, 0x14, 0xD0, 0x0C, 0xFD, 0x42, 0x6E, 0x2F, 0x12, 0xAB, 0x4B, 0x71, 0xF7, 0xD6, 0x60,
  432. 0x4E, 0x5A, 0x7B, 0xA7, 0x78, 0x30, 0xA1, 0x4E, 0x3F, 0x9D, 0x89, 0x1D, 0x8B, 0x86, 0x50, 0x81,
  433. 0xFD, 0x1E, 0xA3, 0x31, 0xA0, 0xCE, 0x06, 0xA3, 0x0D, 0x51, 0x4B, 0x84, 0x2A, 0x49, 0xDF, 0xCE,
  434. 0xB7, 0x2A, 0x2D, 0x08, 0x08, 0x5F, 0x06, 0x27, 0x5A, 0x4F, 0x65, 0x12, 0xF0, 0x9C, 0xCE, 0xA0,
  435. 0xF5, 0x8B, 0xCC, 0x31, 0x4B, 0xB8, 0xFD, 0x4A, 0x05, 0xC6, 0x10, 0x15, 0x60, 0x00, 0x89, 0x85,
  436. 0x3B, 0xB0, 0x7F, 0x66, 0x1D, 0x19, 0xF7, 0x8D, 0xC0, 0x59, 0x0F, 0x40, 0xE2, 0xE5, 0xCC, 0xAC,
  437. 0x08, 0xAA, 0xE5, 0x4A, 0x27, 0x59, 0x44, 0x2F, 0x94, 0x0C, 0xCB, 0x5F, 0xFB, 0xBF, 0x96, 0x34,
  438. 0x19, 0x81, 0x0B, 0xE5, 0x1B, 0xDC, 0x30, 0xB8, 0xEA, 0x91, 0xC8, 0xBE, 0xED, 0x62, 0xF2, 0x37,
  439. 0x51, 0x7A, 0x09, 0xB3, 0xD5, 0x16, 0xF9, 0x11, 0xDC, 0xD1, 0x0C, 0xF7, 0xC4, 0x08, 0x06, 0x84,
  440. 0xF8, 0x4F, 0x10, 0x76, 0xDA, 0xC0, 0xEB, 0x60, 0xF9, 0x5F, 0x27, 0x3E, 0xCB, 0x4A, 0x40, 0xD7,
  441. 0xFC, 0x55, 0x90, 0x36, 0x45, 0xFC, 0xF0, 0xE3, 0x76, 0x29, 0x64, 0xAC, 0xEE, 0x31, 0xAF, 0xA1,
  442. 0xD1, 0x53, 0x2C, 0x5C, 0xC6, 0xBF, 0x6E, 0x36, 0x98, 0x6E, 0x8A, 0x27, 0x97, 0x46, 0x89, 0x2F,
  443. 0xB9, 0x29, 0x14, 0xCF, 0x9F, 0x97, 0x80, 0x13, 0xA2, 0x4C, 0x80, 0xFD, 0x26, 0x46, 0x7C, 0xBE,
  444. 0xE4, 0x54, 0x98, 0x62, 0x6E, 0x0E, 0xA4, 0xB5, 0xC1, 0xF0, 0x02, 0xA6, 0x32, 0x65, 0x3A, 0x62,
  445. 0x92, 0x6E, 0x74, 0xDD, 0xE9, 0x3F, 0x16, 0xAE, 0xF4, 0x82, 0x91, 0xD9, 0xF0, 0x2F, 0x50, 0x0F,
  446. 0x8E, 0x4B, 0xB5, 0x41, 0xF3, 0x66, 0x92, 0xE0, 0x9B, 0xC0, 0xE5, 0x2F, 0x38, 0x72, 0x71, 0x75,
  447. 0x0A, 0xD3, 0xBE, 0x63, 0x84, 0x6A, 0x42, 0x0A, 0x55, 0x67, 0xDF, 0xF4, 0xC7, 0x04, 0xD1, 0x6B,
  448. 0xAA, 0x78, 0x22, 0x8F, 0x3A, 0x2C, 0xD1, 0xD3, 0x39, 0x51, 0x5A, 0x03, 0x6A, 0x0A, 0x33, 0x67,
  449. 0x9B, 0x50, 0xA8, 0x60, 0x91, 0xF0, 0x42, 0xAA, 0x7F, 0x3E, 0x5D, 0x2F, 0xC9, 0x61, 0xFF, 0xF0,
  450. 0x7C, 0x68, 0x9F, 0xF5, 0x32, 0x34, 0x00, 0x87, 0x2A, 0xCD, 0xD4, 0x30, 0x48, 0xED, 0x26, 0x19,
  451. 0x34, 0xDD, 0xFA, 0x71, 0x0C, 0x0D, 0xCB, 0x1F, 0xC8, 0xB0, 0xDC, 0xED, 0x64, 0xA0, 0xEA, 0xF7,
  452. 0x9C, 0x88, 0x33, 0xD3, 0xBD, 0x06, 0x9E, 0x1B, 0x61, 0x6E, 0x45, 0x65, 0xEB, 0xD6, 0xCE, 0x1A,
  453. 0x94, 0x10, 0x8B, 0x11, 0x05, 0xDC, 0x43, 0x5B, 0x87, 0x9D, 0xE0, 0x1A, 0xAA, 0xF9, 0x76, 0x57,
  454. 0x9F, 0xF2, 0x48, 0x07, 0x35, 0x92, 0x57, 0x98, 0x7B, 0xAF, 0x82, 0x02, 0x50, 0x94, 0x07, 0xF5,
  455. 0xFD, 0x71, 0x77, 0x61, 0x12, 0xEB, 0x09, 0xE2, 0xC6, 0xDF, 0xC2, 0x5F, 0xB5, 0x4F, 0xE8, 0x56,
  456. 0xDB, 0xF5, 0x1E, 0xC2, 0xD5, 0xF0, 0x00, 0xC3, 0x1D, 0x0A, 0xBA, 0xCE, 0x43, 0x4A, 0xF0, 0x21,
  457. 0xFE, 0xEC, 0x91, 0x27, 0x65, 0xB1, 0xC3, 0xCA, 0x92, 0xA2, 0xD1, 0x1F, 0xE7, 0x6E, 0x03, 0xB6,
  458. 0xDB, 0x02, 0x12, 0x70, 0x9C, 0xE3, 0x65, 0xF6, 0x97, 0x3E, 0x0C, 0x9B, 0xC8, 0x6D, 0x24, 0x72,
  459. 0x5C, 0xAD, 0xCD, 0xBE, 0x97, 0x53, 0x83, 0x99, 0x6A, 0xF2, 0x23, 0xA0, 0x3A, 0x38, 0xC2, 0xBE,
  460. 0x40, 0xF6, 0x00, 0x50, 0xF3, 0xF9, 0x7D, 0xF8, 0x28, 0xE5, 0x00, 0x52, 0xFD, 0x46, 0x4E, 0xE5,
  461. 0xDC, 0x68, 0x81, 0x48, 0xA3, 0x4C, 0x30, 0x60, 0x58, 0x43, 0xCC, 0x5C, 0x65, 0x3A, 0xBE, 0x8B,
  462. 0x31, 0x91, 0xD6, 0xE7, 0xF4, 0x01, 0x33, 0xFD, 0x96, 0xD8, 0xBA, 0x8C, 0x7A, 0x97, 0xBE, 0xBB,
  463. 0x0F, 0x10, 0x6E, 0x91, 0x32, 0x01, 0x8C, 0xE3, 0xBD, 0xDD, 0xA7, 0x1A, 0xE8, 0x5E, 0x6E, 0xF3,
  464. 0x88, 0xE4, 0x06, 0x4E, 0xB6, 0x3C, 0xA4, 0x82, 0xF5, 0x05, 0x59, 0xCB, 0xD7, 0xFB, 0x72, 0xF3,
  465. 0x4B, 0x26, 0x4A, 0x4C, 0x75, 0x6A, 0x88, 0x6D, 0x95, 0x7A, 0x33, 0x58, 0xC0, 0x1D, 0x02, 0xB6,
  466. 0x66, 0x6B, 0x12, 0xB1, 0x81, 0x6B, 0xAB, 0x5D, 0x4B, 0xF4, 0xDE, 0x76, 0x46, 0x91, 0xCD, 0xDB,
  467. 0x71, 0x3A, 0x10, 0x72, 0x6A, 0x54, 0x93, 0x8D, 0x70, 0x5E, 0x3A, 0x52, 0x2D, 0x68, 0xE1, 0x7B,
  468. 0x84, 0x3F, 0xEC, 0xD9, 0x74, 0x5D, 0x39, 0x6B, 0x58, 0x6A, 0xE6, 0xF8, 0x89, 0x4A, 0xA2, 0x27,
  469. 0x67, 0x0D, 0x5D, 0x92, 0x74, 0x40, 0xE9, 0x82, 0xFE, 0x23, 0x67, 0xB3, 0x94, 0xE0, 0xFB, 0xB5,
  470. 0xB1, 0xD2, 0xBA, 0xCD, 0xFC, 0xC1, 0x14, 0xD0, 0xBF, 0x7C, 0xF8, 0xD0, 0x9F, 0x0A, 0xD0, 0x22,
  471. 0xE3, 0xB3, 0x1F, 0xBD, 0xFA, 0xC5, 0xFE, 0xFE, 0x2F, 0x95, 0xB6, 0xEE, 0x22, 0x74, 0xD1, 0x8A,
  472. 0xA1, 0x45, 0xED, 0x8D, 0xB2, 0x02, 0xE1, 0x5C, 0x5D, 0x3A, 0xA5, 0x0E, 0xC5, 0xE4, 0x5D, 0x93,
  473. 0xE9, 0x05, 0xCD, 0xE8, 0xE5, 0xC7, 0xDE, 0x3D, 0xD6, 0x30, 0xDE, 0x0E, 0x8C, 0x3C, 0xA0, 0x1A,
  474. 0xE9, 0xE5, 0x77, 0x01, 0x5B, 0x4C, 0xAA, 0x7B, 0x21, 0x7A, 0x27, 0xED, 0x5E, 0x6B, 0x74, 0xED,
  475. 0x58, 0x17, 0xAC, 0x83, 0x82, 0x31, 0xCA, 0x04, 0x8A, 0xFA, 0x1E, 0x19, 0xE3, 0xDA, 0xFD, 0x5B,
  476. 0xC6, 0xD1, 0x83, 0x8B, 0x2B, 0x09, 0x60, 0x89, 0x1B, 0x47, 0x94, 0x25, 0xFD, 0xBC, 0x1D, 0x80,
  477. 0xBE, 0x3D, 0x7E, 0x5A, 0x2F, 0xAA, 0x7B, 0xBE, 0x61, 0x16, 0xA1, 0x12, 0xAB, 0xF9, 0xAB, 0x5C,
  478. 0xDA, 0x3D, 0x69, 0xB0, 0x97, 0x79, 0x00, 0x95, 0x8F, 0xD0, 0xC4, 0x99, 0x10, 0xE1, 0x6F, 0xC5,
  479. 0x7C, 0x02, 0x2E, 0xA2, 0xAB, 0x60, 0xEC, 0x88, 0xEA, 0x45, 0x81, 0x52, 0x3B, 0x2E, 0x95, 0x17,
  480. 0xD9, 0x47, 0x30, 0xC2, 0x9B, 0x26, 0xE0, 0xD8, 0x03, 0x14, 0x58, 0xE1, 0xDB, 0x53, 0xA8, 0xC2,
  481. 0x3F, 0xB1, 0xF5, 0xC5, 0x36, 0x4E, 0xF3, 0x30, 0xBA, 0xD0, 0x0B, 0x1F, 0xFC, 0x59, 0x0A, 0x0C,
  482. 0x0F, 0xB4, 0xA3, 0x01, 0xEF, 0xCE, 0xA6, 0xDE, 0xF0, 0x2F, 0x98, 0x82, 0xAC, 0xB2, 0xC3, 0xF5,
  483. 0xB1, 0xC1, 0xEA, 0xDF, 0xFD, 0xE0, 0x39, 0x3E, 0x23, 0x8D, 0xFE, 0x2B, 0x86, 0x2F, 0x5D, 0xAA,
  484. 0x76, 0x47, 0x79, 0x5A, 0x34, 0x95, 0xA2, 0x4D, 0x64, 0x5A, 0x6C, 0xC5, 0xF6, 0x51, 0x53, 0x5B,
  485. 0xF7, 0x60, 0x65, 0x9D, 0x31, 0x72, 0xB1, 0x62, 0xD2, 0x45, 0xE4, 0xAD, 0xE4, 0xB2, 0x6C, 0xDF,
  486. 0x94, 0xE8, 0xDA, 0x21, 0x44, 0x02, 0xDE, 0xBD, 0x03, 0x1C, 0x9F, 0x2B, 0x7E, 0x63, 0x75, 0x44,
  487. 0x97, 0x08, 0x0F, 0x58, 0x03, 0x92, 0xA5, 0x4F, 0x2B, 0xC7, 0x8C, 0xCD, 0xF6, 0x28, 0x8D, 0x0C,
  488. 0xA6, 0x5C, 0x65, 0xBE, 0xD2, 0x0F, 0x77, 0x5F, 0x39, 0x56, 0x78, 0x16, 0x29, 0x4D, 0x9B, 0x14,
  489. 0x34, 0xEF, 0xED, 0xF8, 0xDB, 0x13, 0x91, 0x39, 0xDF, 0x09, 0x8F, 0x3D, 0x1B, 0x8A, 0x43, 0xEB,
  490. 0xEB, 0x10, 0xBB, 0x78, 0x05, 0x3C, 0x45, 0x4B, 0x95, 0xF0, 0x95, 0xA9, 0x82, 0x07, 0x8A, 0x76,
  491. 0x95, 0xE1, 0x0E, 0xE7, 0x35, 0xF5, 0x6A, 0xE5, 0x4D, 0x88, 0x20, 0x3D, 0x6E, 0x18, 0x73, 0x2A,
  492. 0xF1, 0x42, 0xA6, 0x66, 0xEE, 0xC1, 0xE7, 0x65, 0xCC, 0x11, 0x2E, 0xB9, 0x79, 0x9B, 0x22, 0x1B,
  493. 0x7A, 0x67, 0xEC, 0xF5, 0x9D, 0xD8, 0x52, 0x6C, 0xDD, 0x41, 0x2B, 0x8B, 0xE6, 0x1A, 0x69, 0xDA,
  494. 0x97, 0xB1, 0x10, 0x4E, 0xD1, 0x4B, 0x5C, 0xCE, 0x18, 0xD9, 0xFE, 0x87, 0x3E, 0x6C, 0x09, 0x87,
  495. 0x90, 0x57, 0x08, 0xC1, 0x15, 0x21, 0xEA, 0x09, 0x19, 0x13, 0x62, 0xD9, 0x65, 0xE3, 0x92, 0x17,
  496. 0xD2, 0x33, 0x4C, 0xBD, 0x52, 0xCB, 0x9D, 0x3A, 0xF2, 0x79, 0x4F, 0x0B, 0x54, 0x0E, 0x59, 0xC0,
  497. 0xF7, 0x50, 0x16, 0xF5, 0x33, 0xDC, 0xB7, 0xD8, 0x8F, 0x4A, 0xC8, 0xB1, 0x92, 0x46, 0xFE, 0xE2,
  498. 0xB7, 0x50, 0xA0, 0x60, 0x15, 0x65, 0x6C, 0x54, 0x46, 0x65, 0xFE, 0x3D, 0xB7, 0x99, 0x93, 0xF3,
  499. 0x42, 0x8A, 0xCA, 0x39, 0x03, 0xA6, 0x9E, 0xFF, 0x7C, 0x8C, 0x94, 0xA1, 0x21, 0xA3, 0xE2, 0xC6,
  500. 0x15, 0x1E, 0xED, 0x23, 0x61, 0x0B, 0x43, 0x70, 0x1C, 0xAD, 0xC7, 0x9D, 0xE2, 0xB4, 0x3A, 0xB1,
  501. 0x96, 0x23, 0xC0, 0xFB, 0x88, 0x60, 0x89, 0xF7, 0x3A, 0x59, 0xB6, 0x76, 0x52, 0xE8, 0xB5, 0xA6,
  502. 0xEF, 0x0F, 0x16, 0x0F, 0x02, 0x1E, 0x6E, 0xDB, 0x9F, 0x30, 0xAC, 0x4F, 0x8C, 0xAA, 0x1F, 0x93,
  503. 0xBB, 0xC4, 0x1E, 0x54, 0x11, 0xEF, 0x4A, 0xFB, 0x3E, 0x6C, 0x98, 0x4A, 0xE7, 0x1D, 0xD9, 0x03,
  504. 0x59, 0x81, 0xA1, 0x07, 0xBA, 0x17, 0x80, 0x38, 0x08, 0x93, 0xE0, 0xBF, 0x61, 0xAF, 0x1F, 0x0D,
  505. 0xB1, 0x63, 0x8C, 0xD4, 0x24, 0xA3, 0xDC, 0x3D, 0x18, 0x1F, 0x02, 0x4C, 0xE8, 0x03, 0x1E, 0xFF,
  506. 0x6F, 0xC7, 0x1F, 0x1A, 0x9A, 0xB8, 0x48, 0x35, 0xDB, 0x7A, 0x62, 0x02, 0x1E, 0x4D, 0x64, 0x33,
  507. 0x14, 0xC7, 0xF5, 0x32, 0x7B, 0x3F, 0x50, 0x2B, 0x7F, 0xC4, 0xBF, 0x5E, 0xCD, 0x62, 0x23, 0x5F,
  508. 0xC6, 0x7F, 0x6F, 0x64, 0x1B, 0xA7, 0x63, 0x67, 0xCD, 0x69, 0x02, 0xA0, 0xBB, 0xAB, 0x27, 0x9C,
  509. 0xDB, 0xAC, 0x76, 0x15, 0xF7, 0x08, 0x04, 0x45, 0x79, 0x2E, 0x4B, 0xF5, 0x94, 0xDB, 0xB0, 0xD3,
  510. 0x51, 0x02, 0x7F, 0x25, 0x99, 0xDF, 0xE4, 0x14, 0x97, 0xA6, 0x22, 0x5D, 0x3E, 0xE6, 0xF8, 0x98,
  511. 0x59, 0x8A, 0xB4, 0x0A, 0x70, 0x19, 0x09, 0xF6, 0x42, 0x8B, 0x61, 0x9F, 0x22, 0x8D, 0x03, 0x77,
  512. 0xC1, 0x81, 0x05, 0xA2, 0xA8, 0x16, 0x00, 0xEF, 0xE4, 0x15, 0x70, 0x88, 0xCB, 0x02, 0xF8, 0xE7,
  513. 0xD2, 0xD6, 0x6F, 0x5D, 0x57, 0xB7, 0x5C, 0xAD, 0x6C, 0x6A, 0x79, 0x22, 0x60, 0x30, 0xBD, 0x8B,
  514. 0x9C, 0xE4, 0x78, 0x97, 0x6E, 0x5E, 0x49, 0x25, 0xB1, 0x9A, 0x74, 0x6B, 0x74, 0xB9, 0xDA, 0xBE,
  515. 0x1F, 0x81, 0xD2, 0xE3, 0x46, 0x2A, 0x54, 0xD8, 0x5B, 0x8F, 0x90, 0x28, 0xC0, 0xAD, 0xBE, 0xEA,
  516. 0x14, 0x6E, 0xD7, 0xFE, 0x89, 0xB8, 0x2E, 0xE6, 0xAA, 0x44, 0x57, 0xBA, 0xF3, 0xEC, 0xBE, 0x05,
  517. 0x83, 0x09, 0x5D, 0x11, 0x8F, 0x8E, 0x87, 0x21, 0x57, 0x8C, 0x9C, 0x1F, 0x24, 0x3F, 0x47, 0x9D,
  518. 0x41, 0x54, 0xD9, 0x83, 0xAF, 0xC2, 0x6F, 0xC5, 0x86, 0x40, 0xB9, 0x86, 0x70, 0x14, 0xB0, 0x37,
  519. 0xC4, 0x0B, 0xAC, 0x85, 0x2A, 0x39, 0xCF, 0x5E, 0xD4, 0xC2, 0x21, 0x7B, 0x49, 0x1E, 0x3D, 0x65,
  520. 0xCB, 0xA9, 0xF8, 0xCE, 0xF5, 0xB3, 0x0D, 0x3D, 0x13, 0xB3, 0x9A, 0xDB, 0x35, 0x21, 0x7A, 0xA7,
  521. 0xE3, 0xFF, 0xD4, 0x42, 0xA6, 0x04, 0x86, 0xAC, 0x44, 0x2A, 0xAF, 0xA0, 0x8A, 0x01, 0x16, 0x5E,
  522. 0xE0, 0x72, 0xCD, 0xA3, 0xE8, 0xC7, 0xF2, 0x73, 0x71, 0x7C, 0x61, 0xF5, 0xA7, 0xFC, 0xC7, 0x6B,
  523. 0x68, 0xC8, 0x51, 0xE2, 0xF8, 0x20, 0x93, 0xB0, 0x5E, 0xD3, 0x5B, 0x11, 0x4C, 0x3E, 0xDD, 0x7C,
  524. 0xA7, 0x5F, 0x2F, 0xAD, 0x99, 0x5C, 0xF5, 0x57, 0xF5, 0x38, 0x67, 0x8D, 0xD4, 0x2B, 0x73, 0x64,
  525. 0xAC, 0x58, 0x76, 0xFA, 0x0F, 0x43, 0x97, 0xC1, 0x68, 0x2F, 0xE6, 0x61, 0x3D, 0x89, 0x70, 0xB4,
  526. 0x85, 0xB1, 0x65, 0xA1, 0x0E, 0xC8, 0xAB, 0x22, 0x2D, 0xD1, 0xB6, 0xBC, 0x77, 0x49, 0xD6, 0x22,
  527. 0xE0, 0x0C, 0xA2, 0x6B, 0xD8, 0x45, 0xA6, 0x80, 0xE2, 0x1A, 0x7C, 0x6D, 0x4D, 0x7C, 0x6B, 0xF8,
  528. 0x40, 0x62, 0xDD, 0xD6, 0x32, 0xB4, 0x52, 0x9B, 0x3C, 0x4E, 0xD0, 0x29, 0x87, 0x3D, 0x41, 0xE4,
  529. 0x35, 0x20, 0xF0, 0x4F, 0x61, 0xD4, 0x18, 0x64, 0x39, 0x87, 0x90, 0x64, 0xF5, 0xCE, 0xA9, 0xAA,
  530. 0x18, 0xBE, 0x66, 0x53, 0xA9, 0x23, 0xF9, 0xF4, 0x53, 0x3F, 0xEA, 0x25, 0xD9, 0xD4, 0x79, 0x2C,
  531. 0xD4, 0x64, 0x0B, 0xAE, 0xDF, 0xDE, 0xCE, 0xCD, 0xC5, 0x91, 0xE2, 0xB9, 0x94, 0x17, 0xF3, 0xC7,
  532. 0x6F, 0x01, 0xF8, 0xCD, 0xE7, 0x0C, 0x30, 0xDF, 0x58, 0x34, 0x3D, 0x20, 0x61, 0xD8, 0xF9, 0x0A,
  533. 0x2F, 0x3D, 0xA7, 0xE9, 0x5C, 0x7A, 0x52, 0xDB, 0xEE, 0x45, 0x47, 0x7A, 0x2E, 0x1D, 0xE3, 0x2D,
  534. 0x6C, 0xA4, 0xBD, 0xED, 0x65, 0x5C, 0x0E, 0x09, 0x67, 0x0B, 0x77, 0x27, 0x51, 0x9B, 0x38, 0x72,
  535. 0xD3, 0x9A, 0xEA, 0x21, 0x71, 0x75, 0x2B, 0x0F, 0xC7, 0xD0, 0x35, 0x08, 0x02, 0x19, 0xF5, 0x97,
  536. 0xEB, 0xF4, 0xB9, 0x39, 0x30, 0x10, 0x52, 0xA3, 0x50, 0x09, 0x89, 0xF8, 0xF1, 0xA8, 0x31, 0xB2,
  537. 0xEF, 0x6B, 0x85, 0x35, 0x45, 0xF7, 0x89, 0x58, 0x8D, 0x6A, 0xD3, 0x5C, 0x57, 0xA3, 0x43, 0x18,
  538. 0xB5, 0x09, 0x08, 0xD8, 0x24, 0x8C, 0xD3, 0xFA, 0xAC, 0x6D, 0xEE, 0x4F, 0xB4, 0x77, 0xF3, 0x46,
  539. 0xE9, 0x1E, 0xB3, 0x40, 0x8E, 0xC7, 0x85, 0xEA, 0xEF, 0xD9, 0xF4, 0xB5, 0xFF, 0x90, 0x03, 0xA0,
  540. 0x61, 0x65, 0x83, 0x2C, 0x6D, 0x66, 0x98, 0x67, 0x1E, 0x41, 0x41, 0x66, 0xBC, 0x28, 0x8A, 0x76,
  541. 0x8A, 0x0E, 0xF6, 0x0B, 0xD9, 0x7C, 0x51, 0x90, 0xD2, 0x28, 0x77, 0xA0, 0x9B, 0xE6, 0xBB, 0x3C,
  542. 0xA1, 0x53, 0xDB, 0xE7, 0x75, 0xCD, 0x3D, 0x0E, 0x1C, 0x11, 0x3E, 0xD8, 0x7A, 0x09, 0xE1, 0x12,
  543. 0x5E, 0x1D, 0x9A, 0x29, 0x06, 0x79, 0xFD, 0x8D, 0x49, 0xB9, 0xD3, 0x0E, 0xB7, 0x7D, 0x69, 0x83,
  544. 0x81, 0x56, 0x82, 0x58, 0x2F, 0xEA, 0xCF, 0x66, 0xD8, 0x34, 0x16, 0x17, 0x27, 0x18, 0xEF, 0x65,
  545. 0xBE, 0x01, 0x65, 0xBF, 0x6F, 0xAE, 0x21, 0xA4, 0xA3, 0xA2, 0x95, 0xBC, 0x0B, 0x83, 0x30, 0xEA,
  546. 0x46, 0xC0, 0xAB, 0xA8, 0xA4, 0xCB, 0x22, 0x53, 0xAD, 0xC7, 0x8C, 0x03, 0x6B, 0x35, 0xB9, 0xB0,
  547. 0x69, 0xA0, 0xB9, 0xE0, 0x68, 0xB6, 0x4E, 0xE7, 0x91, 0x67, 0x05, 0x9C, 0x81, 0x47, 0xD3, 0x36,
  548. 0x06, 0xEE, 0xE3, 0x06, 0x04, 0xDB, 0x29, 0xFA, 0x62, 0x1F, 0xC7, 0xD6, 0xF4, 0x63, 0x75, 0x46,
  549. 0xD9, 0x1D, 0x17, 0x7C, 0x94, 0x81, 0x05, 0xA8, 0x92, 0x99, 0xD4, 0x5F, 0xB8, 0xF7, 0x21, 0x6D,
  550. 0x3D, 0x2B, 0x47, 0x04, 0xF9, 0x17, 0xC9, 0xDC, 0x2D, 0xC0, 0xB8, 0x1B, 0x0C, 0xF9, 0xBA, 0x35,
  551. 0x63, 0xD8, 0xF5, 0xAF, 0x52, 0x67, 0x02, 0x47, 0x1F, 0x0A, 0x93, 0x19, 0x8A, 0x40, 0x5B, 0x58,
  552. 0xA8, 0x9B, 0x4B, 0x93, 0x44, 0x30, 0xB1, 0x14, 0x1B, 0x66, 0xD4, 0x58, 0x4C, 0xD0, 0x0A, 0x2C,
  553. 0xD2, 0x91, 0xBF, 0x69, 0xEC, 0xFB, 0x10, 0xBF, 0x84, 0x13, 0x24, 0x25, 0xD7, 0x8E, 0x78, 0x8A,
  554. 0xF5, 0xD2, 0x24, 0x8B, 0x4C, 0xD6, 0x26, 0x92, 0x56, 0x6B, 0xF5, 0x8D, 0x67, 0x51, 0x1B, 0xDE,
  555. 0xFD, 0xE9, 0x8F, 0x27, 0x6C, 0x07, 0x41, 0xD5, 0x0A, 0x85, 0xA8, 0xA7, 0x55, 0x82, 0x38, 0x8C,
  556. 0x38, 0x60, 0x18, 0xDA, 0xFC, 0xD5, 0xC4, 0x9A, 0x20, 0x14, 0xBF, 0x91, 0x4E, 0x97, 0xE9, 0xF2,
  557. 0x54, 0xB7, 0x1E, 0x5B, 0x43, 0x59, 0x5E, 0xA3, 0x29, 0xDF, 0xE5, 0x55, 0x21, 0x7B, 0x2B, 0x16,
  558. 0x6C, 0x35, 0x12, 0xCB, 0xB0, 0x4B, 0xCB, 0xF3, 0x8C, 0x89, 0xDD, 0xCA, 0xCB, 0x66, 0xF2, 0x2B,
  559. 0xC2, 0x4E, 0x24, 0xBA, 0xD1, 0x94, 0xA6, 0xA3, 0x01, 0x9B, 0xB3, 0xFA, 0xCD, 0x26, 0x2B, 0x51,
  560. 0x78, 0x54, 0x2F, 0x90, 0xF9, 0xAA, 0x45, 0x0A, 0xCA, 0x16, 0x41, 0xD4, 0xA2, 0xFE, 0xA5, 0x9D,
  561. 0x0B, 0x8E, 0x29, 0xB7, 0xE4, 0xE8, 0xDE, 0x29, 0x76, 0xC7, 0xA6, 0x74, 0x48, 0x9D, 0x75, 0x69,
  562. 0xBA, 0xB9, 0xFD, 0x3C, 0x44, 0x28, 0x7D, 0x8E, 0xDC, 0xE0, 0xCB, 0xC9, 0x25, 0x26, 0x55, 0x80,
  563. 0x84, 0xA8, 0xB8, 0x80, 0x9B, 0x57, 0x0E, 0x61, 0xFB, 0x06, 0xFF, 0x87, 0xA1, 0x8D, 0xF0, 0x33,
  564. 0xDD, 0xED, 0x06, 0x96, 0x90, 0xED, 0x42, 0x2D, 0xEE, 0x85, 0x06, 0x1A, 0x9F, 0xAC, 0x74, 0x79,
  565. 0xA2, 0x95, 0xE9, 0x5E, 0x14, 0x7B, 0xC3, 0xCF, 0xEE, 0x48, 0xEC, 0xD6, 0x9D, 0x3E, 0x66, 0x9E,
  566. 0x30, 0xAB, 0x8C, 0xCF, 0x11, 0xE2, 0x22, 0x69, 0x5B, 0x45, 0xA8, 0xC8, 0x87, 0x90, 0xE4, 0x9E,
  567. 0xB7, 0x9A, 0x41, 0x6E, 0x1D, 0x83, 0xDE, 0x9C, 0xFB, 0xC6, 0xCC, 0x0C, 0x79, 0x8F, 0xFF, 0xC0,
  568. 0xF4, 0xE9, 0x38, 0xA5, 0xC6, 0x96, 0x5A, 0xE6, 0xA8, 0xAA, 0xA8, 0x8B, 0xCF, 0x0C, 0x1B, 0x08,
  569. 0xDC, 0x07, 0xB0, 0xF5, 0xEA, 0xAC, 0xB5, 0x90, 0x97, 0x95, 0xCA, 0x41, 0x49, 0x90, 0xF2, 0x84,
  570. 0x32, 0xF3, 0x60, 0x47, 0xF1, 0xEA, 0x1A, 0xA3, 0x79, 0x14, 0x00, 0x2E, 0xEB, 0xEC, 0xBC, 0x80,
  571. 0x05, 0x8B, 0xDE, 0xD7, 0xE6, 0x17, 0xF9, 0xF1, 0xD4, 0xD1, 0xFD, 0xA7, 0x14, 0xDA, 0x07, 0xB9,
  572. 0x2A, 0x6B, 0x7D, 0x4D, 0xD2, 0x5F, 0x14, 0xD5, 0x23, 0x5B, 0x9B, 0x3C, 0xD2, 0xCE, 0x9F, 0xE8,
  573. 0x31, 0x2E, 0x6F, 0xF5, 0x72, 0x11, 0xD1, 0x81, 0x19, 0xDC, 0x6E, 0xA2, 0xD2, 0xDA, 0xD2, 0xD5,
  574. 0xE3, 0x3D, 0x3E, 0xB4, 0x41, 0x16, 0xE7, 0x52, 0x03, 0xE2, 0x81, 0xBB, 0x49, 0x85, 0xAF, 0xEC,
  575. 0x6D, 0x31, 0x27, 0xC4, 0x46, 0x71, 0xAA, 0xCD, 0x5C, 0x21, 0xD1, 0x61, 0x8B, 0x02, 0xFA, 0xF3,
  576. 0x4E, 0x56, 0x54, 0xB9, 0x4F, 0x0F, 0x80, 0x7A, 0xA7, 0x72, 0x6F, 0x40, 0x57, 0xF8, 0xBC, 0x15,
  577. 0x29, 0x33, 0x9E, 0x4A, 0x0C, 0xDB, 0x7B, 0x37, 0x55, 0x90, 0xD7, 0x73, 0xAD, 0x19, 0x77, 0xD2,
  578. 0xEB, 0x95, 0x51, 0x57, 0xF4, 0xBC, 0x37, 0xD2, 0x64, 0xAE, 0xF7, 0xC6, 0x02, 0xD8, 0x31, 0x7F,
  579. 0xC4, 0xB0, 0x50, 0x64, 0x8C, 0x95, 0xBE, 0xCF, 0x53, 0x68, 0x7C, 0xDA, 0x3D, 0x85, 0xBB, 0xEE,
  580. 0x2E, 0xCD, 0xF1, 0xF5, 0x09, 0x3C, 0x2D, 0x2E, 0x2E, 0xBE, 0x68, 0x35, 0x70, 0x99, 0x00, 0x0B,
  581. 0x71, 0x86, 0x52, 0x9D, 0x09, 0x48, 0x9B, 0x5D, 0xFD, 0xAA, 0xB4, 0xC9, 0x75, 0xB3, 0x45, 0xC8,
  582. 0x41, 0x14, 0x6F, 0x71, 0x45, 0x0D, 0x16, 0x1F, 0x2F, 0xB2, 0x25, 0x52, 0x46, 0x3B, 0x72, 0x00,
  583. 0x04, 0x3E, 0x09, 0x6A, 0x86, 0x5C, 0x59, 0x0C, 0x36, 0x4B, 0x98, 0xDD, 0x0D, 0x98, 0xB0, 0xF1,
  584. 0x48, 0xE3, 0xC7, 0x2B, 0xC8, 0xBB, 0x1B, 0x23, 0xCC, 0xDD, 0x24, 0x5B, 0xAE, 0xF9, 0xAC, 0xE5,
  585. 0xD1, 0xB1, 0x7D, 0x13, 0xA3, 0xC3, 0xBC, 0x86, 0xB2, 0xBC, 0xC5, 0x50, 0x94, 0x6C, 0xED, 0xDB,
  586. 0x13, 0xB8, 0x11, 0x1B, 0x63, 0x19, 0x85, 0xE3, 0xF3, 0x24, 0x59, 0xDD, 0xB3, 0x9D, 0x37, 0xF9,
  587. 0x5A, 0x89, 0xD3, 0x34, 0xEE, 0x37, 0xCA, 0x00, 0x55, 0xC6, 0x59, 0x33, 0x87, 0x32, 0xC9, 0xB2,
  588. 0x73, 0x7E, 0x8B, 0x2B, 0x63, 0x5F, 0x9E, 0x49, 0x1A, 0x0C, 0xCE, 0x24, 0x4B, 0xE7, 0xC3, 0x7D,
  589. 0xF8, 0x90, 0xD7, 0xA1, 0xBE, 0x07, 0x8B, 0xB7, 0x7D, 0x91, 0xBD, 0xD3, 0x50, 0xB9, 0x66, 0xEA,
  590. 0x5A, 0x11, 0x24, 0x42, 0xBD, 0x72, 0x02, 0x98, 0x7F, 0xCF, 0x13, 0x56, 0xE0, 0x00, 0x24, 0x59,
  591. 0x84, 0xAE, 0xA1, 0x89, 0x83, 0xEB, 0xA9, 0x73, 0x94, 0x4C, 0xD2, 0xEE, 0xB6, 0x94, 0xC2, 0xDA,
  592. 0xBB, 0x3F, 0x66, 0x5E, 0x5C, 0x9A, 0x05, 0xF6, 0x94, 0x44, 0x86, 0x45, 0xEE, 0xBA, 0xF0, 0x29,
  593. 0x97, 0x16, 0x2E, 0xB0, 0xB4, 0x67, 0x1E, 0xF9, 0x37, 0x4D, 0x47, 0x15, 0x43, 0xBE, 0xBB, 0xFC,
  594. 0xA1, 0x9B, 0xB9, 0xA6, 0xA1, 0x49, 0x34, 0xF5, 0x99, 0xAB, 0x11, 0x5F, 0x4F, 0xE2, 0x3C, 0xAA,
  595. 0xAF, 0xED, 0x64, 0xC6, 0x06, 0x25, 0xB7, 0xCA, 0xEB, 0xF5, 0xE9, 0xBD, 0xF2, 0x50, 0x0F, 0xC2,
  596. 0x90, 0x2C, 0xE3, 0xDD, 0xE5, 0xD9, 0x07, 0x14, 0xB4, 0x6D, 0xE8, 0x22, 0x1A, 0xB8, 0xAD, 0xFB,
  597. 0xC0, 0x86, 0x5E, 0x54, 0xC2, 0x78, 0x9B, 0xC2, 0x84, 0x1C, 0x82, 0x07, 0x16, 0x39, 0xB4, 0x11,
  598. 0x20, 0x6F, 0xA2, 0x70, 0x8A, 0xB5, 0xAF, 0xD3, 0x37, 0x10, 0xCC, 0x81, 0xEF, 0x8C, 0x1E, 0x8E,
  599. 0x5E, 0xAC, 0x39, 0xB7, 0x46, 0x86, 0x88, 0x34, 0x0E, 0x39, 0x58, 0xE0, 0xCB, 0x3B, 0x03, 0x93,
  600. 0x42, 0xCB, 0x29, 0x51, 0x9D, 0xDA, 0xE2, 0xC3, 0x42, 0xEA, 0x4C, 0x03, 0x05, 0xEB, 0x63, 0x0D,
  601. 0xEC, 0x4B, 0x9C, 0x7F, 0x31, 0xE3, 0x59, 0x4A, 0x6F, 0xBD, 0xD8, 0x9A, 0x30, 0x2E, 0x1F, 0x0B,
  602. 0x13, 0x8F, 0xF5, 0xD9, 0xD2, 0x22, 0xF3, 0xA8, 0x6C, 0x71, 0xC1, 0x18, 0x24, 0x34, 0x86, 0x40,
  603. 0xF8, 0x17, 0xEA, 0xBA, 0x32, 0x9E, 0x64, 0xAD, 0xFC, 0x32, 0x50, 0x25, 0x5E, 0x2E, 0x5D, 0xDD,
  604. 0x8D, 0x8B, 0x1C, 0xAB, 0xCB, 0x33, 0x67, 0x37, 0x17, 0x56, 0xFC, 0x10, 0x58, 0x67, 0x9E, 0x53,
  605. 0xF1, 0x48, 0x6B, 0xBC, 0x07, 0x68, 0x9E, 0x0E, 0xF1, 0xE1, 0xD9, 0x80, 0x49, 0x62, 0x39, 0xB0,
  606. 0x3A, 0xF5, 0x79, 0xF1, 0x36, 0xE6, 0x71, 0xC2, 0x24, 0x98, 0xE2, 0x6A, 0x60, 0x53, 0xEC, 0x48,
  607. 0x00, 0xA6, 0xEB, 0x23, 0xB3, 0xF9, 0x2D, 0xAD, 0xF2, 0x51, 0xCC, 0x90, 0x1D, 0x9B, 0x71, 0x5F,
  608. 0x22, 0xE1, 0x80, 0x4D, 0xB9, 0x51, 0x3B, 0xB0, 0xEB, 0xDF, 0x0A, 0x88, 0xC1, 0x06, 0x7D, 0xB5,
  609. 0x36, 0x27, 0x40, 0x04, 0x72, 0xBA, 0xE6, 0xE5, 0x20, 0x9B, 0xB1, 0xDC, 0x11, 0x04, 0x98, 0x75,
  610. 0x51, 0x5E, 0x66, 0x7E, 0xE8, 0xAB, 0xC1, 0x6E, 0x9E, 0x61, 0xBA, 0x88, 0x1C, 0xB0, 0x4A, 0x5D,
  611. 0xAC, 0x37, 0x63, 0x65, 0x2F, 0x2F, 0x11, 0x5D, 0x32, 0x3D, 0x71, 0x7E, 0x61, 0x98, 0xC0, 0x0C,
  612. 0xCB, 0x34, 0x81, 0x48, 0x81, 0x66, 0xE0, 0xAD, 0xC9, 0x43, 0x00, 0x8B, 0xCF, 0x8D, 0xEF, 0xA4,
  613. 0xFC, 0xD4, 0x67, 0xE9, 0xEF, 0xDB, 0x45, 0x2A, 0x59, 0x2F, 0xEE, 0xC2, 0xDB, 0x5A, 0x07, 0xD0,
  614. 0x53, 0x41, 0x66, 0x81, 0xC3, 0x30, 0xB4, 0xE3, 0x7F, 0x8B, 0xBD, 0xB4, 0x84, 0xC4, 0xEE, 0xEE,
  615. 0xFE, 0x2D, 0x71, 0x3A, 0x39, 0x5A, 0xED, 0xE5, 0xF3, 0xF0, 0xE5, 0xB1, 0x0C, 0x53, 0x2A, 0x37,
  616. 0xCF, 0x04, 0xF9, 0xFE, 0x70, 0xBF, 0x5A, 0x68, 0x57, 0x0B, 0x54, 0x98, 0x48, 0x8D, 0xDB, 0x80,
  617. 0xC9, 0x4C, 0xB7, 0x14, 0x45, 0x4C, 0xA3, 0xA2, 0x0C, 0x11, 0xDB, 0x02, 0x4D, 0xE9, 0xA6, 0xA6,
  618. 0x03, 0x63, 0x41, 0xD9, 0xCB, 0xE5, 0x8A, 0xA5, 0xEF, 0x09, 0xCA, 0xF9, 0x92, 0x4D, 0x75, 0xF8,
  619. 0xB7, 0x10, 0x78, 0x5D, 0x59, 0x3D, 0x75, 0x6A, 0xE6, 0xFD, 0x8E, 0xC2, 0x5F, 0x7A, 0xCA, 0x03,
  620. 0xAB, 0x95, 0x61, 0x79, 0x9F, 0x4F, 0x8F, 0xEF, 0x45, 0x07, 0xBB, 0x7E, 0x12, 0x43, 0x1A, 0xA7,
  621. 0x87, 0x33, 0x61, 0x71, 0x3A, 0x74, 0x6D, 0x98, 0x59, 0xF5, 0x47, 0xA6, 0x07, 0x03, 0x41, 0x45,
  622. 0x09, 0xB1, 0x0A, 0x45, 0xBA, 0x82, 0xAA, 0x6E, 0xCB, 0xD8, 0xDA, 0x4D, 0x83, 0xE2, 0x6B, 0x13,
  623. 0x96, 0x33, 0xA3, 0xC0, 0xF9, 0x10, 0x8E, 0x01, 0x1E, 0xAD, 0xD7, 0xB9, 0x6F, 0xB4, 0x69, 0x79,
  624. 0x3D, 0x36, 0x45, 0xEA, 0x48, 0x19, 0x46, 0xDC, 0x1E, 0x42, 0x65, 0x28, 0x70, 0x08, 0x06, 0xA8,
  625. 0x82, 0xA5, 0x7B, 0xDE, 0xEC, 0x1E, 0x97, 0x0D, 0xE0, 0xCC, 0x6D, 0x1B, 0x57, 0xE5, 0xCA, 0x60,
  626. 0xC2, 0xF8, 0xBD, 0x39, 0xAA, 0xA9, 0x91, 0x5E, 0x8E, 0x12, 0x84, 0x2E, 0x0C, 0xE8, 0xD3, 0x5E,
  627. 0xE6, 0x15, 0xB8, 0x53, 0x4A, 0x89, 0xB3, 0x0E, 0xCF, 0x4D, 0x90, 0x1B, 0x9A, 0x9E, 0x32, 0x6C,
  628. 0xAF, 0xE3, 0x35, 0xE1, 0xC1, 0xFB, 0x66, 0x1C, 0x5F, 0xD6, 0xA2, 0x83, 0x33, 0xEE, 0xE5, 0x14,
  629. 0x0D, 0x92, 0xF6, 0xB4, 0x7D, 0x8C, 0x67, 0xA2, 0xC8, 0xFB, 0x26, 0x09, 0x30, 0x10, 0x37, 0x4F,
  630. 0x73, 0x97, 0xE7, 0x43, 0x4B, 0xE2, 0xEB, 0x8F, 0x90, 0x85, 0x50, 0xFF, 0x65, 0xFF, 0x1E, 0x45,
  631. 0x5B, 0xF8, 0xFD, 0x87, 0xEE, 0xE2, 0xA4, 0x75, 0x1A, 0xF6, 0x18, 0x44, 0x37, 0xE4, 0xF5, 0xEB,
  632. 0x77, 0x9E, 0xED, 0x64, 0xC5, 0x82, 0xF6, 0x19, 0x06, 0x31, 0xC2, 0xCD, 0x18, 0x52, 0x01, 0xB7,
  633. 0x67, 0x6E, 0x1D, 0xCD, 0x38, 0xDF, 0xCE, 0x56, 0xAC, 0x7F, 0x66, 0xED, 0x2D, 0xD1, 0x20, 0xE1,
  634. 0xB8, 0x6D, 0xA8, 0x8B, 0x7D, 0x6C, 0x14, 0x10, 0xFE, 0x3A, 0xCA, 0xBA, 0x5C, 0xD6, 0x02, 0xA9,
  635. 0xCC, 0x2E, 0xC4, 0xB4, 0xCE, 0x31, 0x91, 0x81, 0x50, 0xCA, 0x6F, 0x36, 0xF9, 0xF4, 0xC4, 0x5F,
  636. 0xE9, 0x98, 0xA6, 0x67, 0x09, 0x07, 0x0C, 0x7A, 0x04, 0x3F, 0xAE, 0x20, 0xF9, 0x41, 0x25, 0xA6,
  637. 0x0D, 0xD7, 0x78, 0x08, 0xA0, 0x51, 0xE3, 0x72, 0xD6, 0x6F, 0xB2, 0x4C, 0x33, 0x8A, 0x4D, 0xC7,
  638. 0x17, 0xA3, 0x33, 0xC3, 0x44, 0xE3, 0x92, 0xDA, 0x33, 0xA5, 0x4B, 0x88, 0xF3, 0x7C, 0x85, 0x2E,
  639. 0xC2, 0x7D, 0x19, 0x1E, 0x9C, 0x40, 0xA9, 0x09, 0x2B, 0xF8, 0xD5, 0x91, 0xFD, 0x8A, 0xC4, 0xBD,
  640. 0x25, 0x23, 0x43, 0xB7, 0x37, 0x9A, 0x89, 0xA9, 0x7C, 0xEB, 0x2E, 0x47, 0x38, 0x00, 0xEC, 0x6A,
  641. 0x94, 0xB7, 0xA9, 0x60, 0xEF, 0xCD, 0x4A, 0x2A, 0xA5, 0x40, 0xA5, 0x40, 0x2B, 0x1C, 0xFA, 0x48,
  642. 0xA1, 0x71, 0xC6, 0xA2, 0x79, 0x76, 0x5D, 0x74, 0xE6, 0x09, 0x05, 0x1C, 0x97, 0xED, 0x15, 0x37,
  643. 0x61, 0xE5, 0x9F, 0xDA, 0xAA, 0x79, 0x4A, 0x7F, 0x85, 0x71, 0x29, 0x62, 0x1B, 0x56, 0x89, 0x23,
  644. 0xC1, 0xC4, 0xBB, 0x32, 0x5A, 0x3B, 0xAE, 0x5F, 0xC2, 0x3A, 0x90, 0xAD, 0xE6, 0x72, 0x36, 0xB5,
  645. 0xB3, 0x25, 0xDB, 0x78, 0x5D, 0x24, 0xD7, 0x20, 0x32, 0x88, 0xC9, 0x01, 0x29, 0x41, 0xE3, 0x20,
  646. 0x3A, 0xC1, 0x6D, 0xD8, 0x7C, 0xB5, 0xCB, 0x54, 0x69, 0xE6, 0x65, 0xA3, 0xE2, 0x61, 0xF7, 0x7A,
  647. 0x79, 0x89, 0xB6, 0xE6, 0x4F, 0x82, 0x20, 0x30, 0x6F, 0x11, 0x56, 0xB1, 0x9E, 0xC1, 0xFD, 0x1F,
  648. 0xF0, 0x7A, 0xF5, 0x10, 0x3F, 0x33, 0x64, 0xEE, 0x16, 0x26, 0x94, 0x5A, 0xDB, 0xFC, 0x02, 0xB4,
  649. 0x7F, 0xC6, 0x4B, 0xAF, 0x88, 0xAB, 0x06, 0xBA, 0x5B, 0x70, 0xD4, 0xAD, 0x90, 0xBB, 0x7E, 0x71,
  650. 0x45, 0x3C, 0x62, 0xF0, 0xD9, 0xDE, 0xBC, 0x3C, 0x61, 0x7F, 0x50, 0x65, 0x8D, 0x1E, 0x72, 0x88,
  651. 0x69, 0xF4, 0xD5, 0xDA, 0x1F, 0x2B, 0x65, 0x9A, 0xEA, 0x05, 0x0A, 0x30, 0xC0, 0x56, 0x20, 0x01,
  652. 0x27, 0xCD, 0xDD, 0xF4, 0xBD, 0x37, 0x87, 0x58, 0x4F, 0x6D, 0x52, 0x12, 0xDC, 0xD7, 0x25, 0xCD,
  653. 0x21, 0xEF, 0x77, 0x78, 0x61, 0x06, 0x6B, 0x63, 0xC5, 0xCC, 0x9A, 0x36, 0x27, 0x5A, 0xF9, 0xC6,
  654. 0xDF, 0x28, 0x58, 0x38, 0xD9, 0x62, 0x98, 0x7E, 0x79, 0x4A, 0x6F, 0xD0, 0xBF, 0x6D, 0x20, 0x1D,
  655. 0x78, 0x5C, 0xF3, 0xAD, 0x4A, 0x31, 0xB4, 0xDD, 0xCD, 0xFC, 0xF2, 0x9C, 0x66, 0xEF, 0xC4, 0x46,
  656. 0xDB, 0xA8, 0x39, 0xDF, 0x6B, 0x78, 0x6F, 0xB5, 0xC2, 0xE0, 0xB2, 0xE4, 0x82, 0xF4, 0xAC, 0x26,
  657. 0xB6, 0xEA, 0xEF, 0xDD, 0xEB, 0xE9, 0x04, 0x39, 0x7E, 0x43, 0xD6, 0x7A, 0xF2, 0xE4, 0x26, 0xDB,
  658. 0x42, 0xBB, 0x0C, 0xDB, 0xB9, 0x00, 0xF2, 0x07, 0x7A, 0xED, 0xCC, 0x32, 0xFE, 0xEB, 0x12, 0x8D,
  659. 0x8E, 0x9D, 0x5B, 0xCF, 0x36, 0x4A, 0xB2, 0x90, 0xAE, 0xAE, 0xC3, 0x46, 0x94, 0x2B, 0x67, 0xD9,
  660. 0x0D, 0x88, 0x22, 0x74, 0x42, 0x90, 0x80, 0x24, 0xDD, 0x11, 0xE0, 0xC2, 0x20, 0xAC, 0xD1, 0x90,
  661. 0x5E, 0x18, 0x70, 0x5C, 0xB1, 0x2E, 0xA5, 0x6B, 0xC5, 0x0F, 0x7E, 0xFF, 0x86, 0x91, 0x26, 0x09,
  662. 0x76, 0x5F, 0x8A, 0xB6, 0xAC, 0xFA, 0x84, 0x6C, 0x5C, 0x4F, 0x1F, 0x45, 0x45, 0x45, 0xE8, 0x0A,
  663. 0x5B, 0x95, 0x05, 0x1F, 0xFC, 0xD7, 0x72, 0xA9, 0xA0, 0x2E, 0x1D, 0x7F, 0xE3, 0xF6, 0xC1, 0xBF,
  664. 0x64, 0xA1, 0x11, 0x1C, 0x9F, 0xDA, 0x64, 0x78, 0x1A, 0x5A, 0xC8, 0x1D, 0x85, 0xD3, 0xC5, 0x70,
  665. 0xCE, 0x7E, 0xAB, 0x94, 0x92, 0xCE, 0xF5, 0x20, 0xD3, 0x59, 0xD5, 0x43, 0xDE, 0xC7, 0x40, 0x1E,
  666. 0x1F, 0x1B, 0xFC, 0x06, 0xD3, 0xE5, 0x81, 0xE6, 0xDC, 0x75, 0x13, 0xF5, 0xD7, 0x95, 0x3A, 0xC3,
  667. 0x2F, 0xBE, 0xD5, 0x27, 0xEB, 0xE9, 0x82, 0x55, 0x74, 0x2A, 0x30, 0x50, 0xB4, 0xAD, 0x06, 0xB2,
  668. 0xE6, 0x4C, 0xAF, 0x1E, 0x8B, 0x6B, 0xB4, 0x76, 0x89, 0x37, 0x38, 0x23, 0x2C, 0xA2, 0xAF, 0x7E,
  669. 0xA0, 0x60, 0x1A, 0xFA, 0xD5, 0xB4, 0xD1, 0x66, 0x5F, 0xBB, 0x03, 0x8A, 0x09, 0x26, 0xAE, 0xE5,
  670. 0x0C, 0xF7, 0xF8, 0x02, 0xA6, 0xC4, 0x75, 0x37, 0xD4, 0x90, 0x58, 0xD0, 0x44, 0xFC, 0x57, 0xD6,
  671. 0xF3, 0x85, 0x9A, 0xEF, 0x44, 0xC3, 0xF3, 0xE3, 0xDE, 0x38, 0xFE, 0xA6, 0x48, 0x96, 0x9A, 0xB4,
  672. 0xB7, 0x9D, 0x0B, 0x3A, 0x2C, 0xCE, 0xD5, 0x37, 0xA0, 0xB7, 0x9E, 0x6B, 0x5F, 0xDE, 0x04, 0x52,
  673. 0x81, 0xC4, 0x92, 0xE6, 0xDC, 0x56, 0x08, 0xF2, 0x11, 0x98, 0x3E, 0xFF, 0x31, 0x3C, 0x54, 0xD2,
  674. 0xB5, 0xAF, 0x69, 0x51, 0x06, 0xB4, 0xF3, 0x54, 0xAF, 0xC4, 0x3B, 0x8D, 0x94, 0xC3, 0x05, 0x4D,
  675. 0x5F, 0xD8, 0x06, 0xA0, 0x90, 0xEB, 0xEC, 0xFB, 0x6E, 0x7B, 0xA5, 0xBE, 0x94, 0xAD, 0xFF, 0x32,
  676. 0x9E, 0x59, 0xF4, 0x6C, 0x55, 0x17, 0x6A, 0xE9, 0xA8, 0x5A, 0x14, 0xAA, 0x7C, 0x1B, 0xD3, 0xBB,
  677. 0xA4, 0x7E, 0x80, 0xCE, 0x02, 0xDF, 0xA2, 0x93, 0x07, 0xF3, 0xD9, 0xDB, 0x96, 0x5F, 0xA8, 0xC7,
  678. 0xF8, 0xE7, 0x5D, 0xB6, 0x52, 0xC7, 0x3B, 0x6D, 0xE0, 0xAF, 0x4F, 0x19, 0xEB, 0x77, 0xE9, 0x7D,
  679. 0xDB, 0x51, 0xEE, 0x60, 0xC9, 0x94, 0x5B, 0x4D, 0x4B, 0x6B, 0x59, 0x97, 0x8D, 0xB6, 0x06, 0x30,
  680. 0x57, 0x0D, 0xB6, 0x70, 0xC9, 0xDC, 0x54, 0x68, 0xB4, 0xF1, 0x8B, 0x3B, 0xB0, 0x09, 0xD7, 0x20,
  681. 0x21, 0x12, 0x29, 0x87, 0x4C, 0x35, 0x01, 0xB3, 0x76, 0xB6, 0x99, 0xD1, 0x4B, 0x2C, 0x3C, 0xED,
  682. 0xF9, 0xC0, 0x78, 0x97, 0x19, 0xF3, 0x9F, 0x73, 0x9D, 0xF7, 0xCC, 0x06, 0x6A, 0x9B, 0xEC, 0x94,
  683. 0xD7, 0xD1, 0x77, 0x20, 0xC3, 0xA2, 0x8B, 0x74, 0xCA, 0x96, 0x9F, 0x69, 0x6D, 0xAD, 0xE3, 0x62,
  684. 0x98, 0xEB, 0x86, 0x7E, 0xAC, 0xB9, 0x8B, 0x17, 0xA9, 0x4F, 0x07, 0xBB, 0x0C, 0xE3, 0x82, 0xDD,
  685. 0x40, 0xFF, 0x22, 0x7A, 0xF2, 0x46, 0x80, 0x5A, 0x8D, 0x5A, 0xF6, 0xCC, 0x3E, 0xC5, 0x34, 0x02,
  686. 0x0D, 0xAC, 0xDC, 0xE9, 0xC1, 0x1A, 0xC6, 0x5E, 0x68, 0xEE, 0x05, 0x1B, 0x6A, 0x6D, 0x39, 0x3F,
  687. 0x10, 0xF8, 0xEB, 0x43, 0x6F, 0x52, 0x81, 0x49, 0x6C, 0x0A, 0x23, 0x30, 0x24, 0x25, 0xF9, 0xB4,
  688. 0xF3, 0x95, 0x74, 0x23, 0x51, 0x6E, 0x27, 0xEC, 0x1C, 0x84, 0xB5, 0xD1, 0x0D, 0x8D, 0x17, 0x53,
  689. 0xCA, 0xB7, 0x1E, 0x3F, 0xA4, 0x5F, 0x07, 0x58, 0xB1, 0x6D, 0x94, 0xAE, 0x60, 0x23, 0x3F, 0x51,
  690. 0xAF, 0x7A, 0x45, 0xC3, 0x3B, 0x76, 0xE4, 0x9A, 0x5B, 0xB3, 0x5C, 0xBA, 0x64, 0xB9, 0x25, 0x92,
  691. 0xAB, 0x60, 0xB6, 0x2E, 0xF5, 0xCF, 0x85, 0xEB, 0x3E, 0xAB, 0xD4, 0x6B, 0x47, 0xDC, 0x8D, 0x69,
  692. 0x3C, 0x53, 0x51, 0x64, 0x7B, 0x22, 0xBE, 0xC8, 0xB0, 0x61, 0xD7, 0x89, 0xF6, 0xCA, 0xCF, 0x1D,
  693. 0x29, 0x18, 0xF2, 0x71, 0x5C, 0x58, 0xD7, 0x18, 0xEF, 0xDB, 0xE1, 0xD6, 0x83, 0xC3, 0x26, 0x1A,
  694. 0xBE, 0xF2, 0x7F, 0xDB, 0x0E, 0x99, 0x9F, 0x8C, 0x56, 0xD7, 0x6E, 0xD6, 0xCA, 0x55, 0x52, 0x66,
  695. };

  696. /** \brief 校準數據 */
  697. uint8_t g_cali_buf[14] = {
  698.         0x81, 0x47, 0x00, 0xf5, 0x94, 0x3f, 0xc3,
  699.         0x07, 0x0b, 0x08, 0x32, 0x6c, 0x00, 0x04,};

  700. /** \brief 狀態數據 */
  701. uint8_t g_state_buf[11] = {        
  702.         0xB1, 0xD3, 0x04, 0x00, 0x37, 0x70,
  703.         0x02, 0x00, 0x00, 0x00, 0x00};

  704. /** \brief 存儲 TOF 獲取的結果 */
  705. result_info_t   g_tof_result = {0};     

  706. /**
  707. * \brief 讀取 TMF8801 狀態標志位
  708. *
  709. * \retval TMF8x01_OK  : 操作成功
  710. * \retval TMF8x01_NK  : 操作失敗
  711. */
  712. static int8_t __tmf8801_status_read (void)
  713. {
  714.     uint8_t sta_buf[3] = {0};
  715.    
  716.     /* 讀狀態寄存器 */
  717.     I2C_TMF8001_ReadByte(0x08, sta_buf, 3);

  718.     if (sta_buf[0] != 0x00 ||
  719.         sta_buf[1] != 0x00 ||
  720.         sta_buf[2] != 0xFF)
  721.     {
  722.         
  723. //        printf("Error\r\n");
  724.         return TMF8x01_NK;
  725.     }
  726.     return TMF8x01_OK;
  727. }

  728. /**
  729. * \brief 初始化下載 HW
  730. */
  731. static int8_t __tmf8801_download_init (void)
  732. {
  733.     /*
  734.      * cmd_buf[0]    : 初始化下載 HW 命令(0x14)
  735.      * cmd_buf[1]    : 數據長度(0x01)
  736.      * cmd_buf[3]    : 1個字節數據
  737.      * cmd_buf[4]    : 校驗字節
  738.      */
  739.     uint8_t  cmd_buf[] = {0x14, 0x01, 0x29, 0xC1};
  740.     uint32_t tick = 0;
  741.    
  742.     I2C_TMF8001_WriteByte(0x08, cmd_buf, 4);
  743.    
  744.     while (1)
  745.     {
  746.         if (__tmf8801_status_read() == TMF8x01_OK)
  747.         {
  748.             break;
  749.         }
  750.         tick ++;
  751.         if (tick >= 10)
  752.         {
  753.             printf("__tmf8801_download_init tmo!\r\n");
  754.             return TMF8x01_NK;
  755.         }
  756.     }
  757.     return TMF8x01_OK;
  758. }

  759. /**
  760. * \brief 設置寫 RAM 地址
  761. */
  762. static int8_t __tmf8801_set_ram_addr (uint16_t addr)
  763. {
  764.     /*
  765.      * cmd_buf[0]    : 寫 RAM 地址命令(0x43)
  766.      * cmd_buf[1]    : 數據長度(0x02)
  767.      * cmd_buf[4:3]  : 2個字節數據
  768.      * cmd_buf[5]    : 校驗字節
  769.      */
  770.     uint8_t  cmd_buf[5] = {0};
  771.     uint32_t tick       =  0;
  772.    
  773.     cmd_buf[0] = 0x43;                  
  774.     cmd_buf[1] = 0x02;
  775.     cmd_buf[2] = (uint8_t)addr;         /* 地址低 8 位 */
  776.     cmd_buf[3] = (uint8_t)(addr >> 8);  /* 地址高 8 位 */
  777.     cmd_buf[4] = (cmd_buf[0]            /* 校驗字節 */
  778.                +  cmd_buf[1]
  779.                +  cmd_buf[2]
  780.                +  cmd_buf[3])
  781.                ^ 0xFF;
  782.             
  783.     I2C_TMF8001_WriteByte(0x08, cmd_buf, 5);
  784.    
  785.     while (1)
  786.     {
  787.         if (__tmf8801_status_read() == TMF8x01_OK)
  788.         {
  789.             break;
  790.         }
  791.         tick ++;
  792.         if (tick >= 10)
  793.         {
  794.             printf("__tmf8801_set_ram_addr tmo!\r\n");
  795.             return TMF8x01_NK;
  796.         }
  797.     }
  798.     return TMF8x01_OK;
  799. }

  800. /**
  801. * \brief 寫 RAM
  802. */
  803. static int8_t __tmf8801_write_ram (void)
  804. {   
  805.     /*
  806.      * cmd_buf[0]    : 命令(0x41)
  807.      * cmd_buf[1]    : 數據長度(0x10)
  808.      * cmd_buf[17:2] : 16個字節數據
  809.      * cmd_buf[18]   : 校驗字節
  810.      */
  811.     uint8_t  cmd_buf[19] = {0};  
  812.    
  813.     uint16_t buf_length  =  0;        /* app_buf 總字節個數 */
  814.     uint16_t buf_line    =  0;        /* app_buf 行地址 */
  815.    
  816.     uint32_t tick        =  0;
  817.     uint16_t i           =  0;
  818.     uint16_t j           =  0;
  819.    
  820.     buf_length = sizeof(app_buf) / sizeof(app_buf[0]);
  821.     buf_line   = buf_length / 16;
  822.    
  823.     cmd_buf[0] = 0x41;                          /* 寫 RAM */
  824.     cmd_buf[1] = 0x10;                          /* 待寫數據長度:16字節 */
  825.    
  826.     for (i = 0; i < buf_line; i++) {
  827.    
  828.         /* 裝載命令數據緩存區 */
  829.         for (j = 0; j < 16; j++) {              /* 16字節 */
  830.         
  831.             cmd_buf[2+j] = app_buf[16 * i + j];
  832.         }
  833.         
  834.         /* 計算校驗字節 */
  835.         cmd_buf[18] = 0;                        /* 清零校驗字節 */
  836.         for (j = 0; j < 18; j++) {              /* 累加 */
  837.         
  838.             cmd_buf[18] += cmd_buf[j];
  839.         }
  840.         cmd_buf[18] ^= 0xFF;                    /* 異或 0xFF */
  841.         
  842.         /* 寫 RAM */
  843.         I2C_TMF8001_WriteByte(0x08, cmd_buf, 19);   
  844.         
  845.         /* 讀狀態寄存器 */
  846.         while (1)
  847.         {
  848.             if (__tmf8801_status_read() == TMF8x01_OK)
  849.             {
  850.                 break;
  851.             }
  852.             tick ++;
  853.             if (tick >= 10)
  854.             {
  855.                 printf("__tmf8801_write_ram tmo!\r\n");
  856.                 return TMF8x01_NK;
  857.             }
  858.         }
  859.     }
  860.     return TMF8x01_OK;
  861. }

  862. /**
  863. * \brief 重映射 RAM 到地址 0 并復位
  864. */
  865. static int8_t __tmf8801_ram_remap_rst (void)
  866. {
  867.     /*
  868.      * cmd_buf[0]    : RAM 地址重映射并復位命令(0x11)
  869.      * cmd_buf[1]    : 數據長度(0x00)
  870.      * cmd_buf[2]    : 校驗字節
  871.      */
  872.     uint8_t  cmd_buf[] = {0x11, 0x00, 0xEE};      
  873.     uint8_t  regval    =  0;
  874.     uint32_t tick      =  0;
  875.    
  876.     I2C_TMF8001_WriteByte(0x08, cmd_buf, 3);

  877.     while (1)
  878.     {             /* wait CPU ready */
  879.         I2C_TMF8001_ReadByte(0xE0, ®val, 1);
  880.         if (regval == 0x41)
  881.         {
  882.             break;
  883.         }
  884.         tick ++;
  885.         if (tick >= 10)
  886.         {
  887.             printf("__tmf8801_ram_remap_rst tmo!\r\n");
  888.             return TMF8x01_NK;
  889.         }
  890.     }
  891.     return TMF8x01_OK;
  892. }

  893. /**
  894. * \brief TMF8801 復位
  895. */
  896. static int8_t __tmf8801_rst (void)
  897. {
  898.     uint8_t  regval = 0;      
  899.     uint32_t tick   = 0;
  900.    
  901.     regval = 0x81;
  902.     I2C_TMF8001_WriteByte(0xE0, ®val, 1);
  903.    
  904.     while (1)
  905.     {/* wait CPU ready */
  906.         I2C_TMF8001_ReadByte(0xE0, ®val , 1);
  907.         if (regval == 0x41)
  908.         {
  909.             break;
  910.         }
  911.         tick ++;
  912.         if (tick >= 100)
  913.         {
  914.             printf("__tmf8801_rst tmo!\r\n");
  915.             return TMF8x01_NK;
  916.         }
  917.     }  
  918.     return TMF8x01_OK;
  919. }

  920. /**
  921. * \brief 獲取 TMF8801 信息
  922. */
  923. static int8_t __tmf8801_info_read (void)
  924. {  
  925.     uint8_t  app0_rev_num[3] = {0};
  926.     uint8_t  chip_rev_id     =  0;
  927.     uint8_t  serial_num[4]   = {0};
  928.    
  929.     uint8_t  regval          =  0;   
  930.     uint32_t tick            =  0;
  931.    
  932.     /* APP0 主版本號 */
  933.     I2C_TMF8001_ReadByte(0x01, &app0_rev_num[0], 1);
  934.    
  935.     /* 次版本號和修訂版本號 */
  936.     I2C_TMF8001_ReadByte(0x12, &app0_rev_num[1], 2);
  937.    
  938.     /* 芯片修訂 ID */
  939.     I2C_TMF8001_ReadByte(0xE4, &chip_rev_id, 1);      
  940.    
  941.     /* 序列號 */
  942.     regval = 0x47;                                  /* 發送讀序列號命令 */
  943.     I2C_TMF8001_WriteByte(0x10, ®val, 1);
  944.    
  945.     while (1)
  946.     {                                     /* 等待序列號生成完畢 */
  947.         I2C_TMF8001_ReadByte(0x1E, ®val, 1);
  948.         if (regval == 0x47)
  949.         {
  950.             break;
  951.         }
  952.         tick ++;
  953.         if (tick >= 10)
  954.         {
  955.             printf("__tmf8801_info_read tmo!\r\n");
  956.             return TMF8x01_NK;
  957.         }
  958.     }   
  959.     I2C_TMF8001_ReadByte(0x28, serial_num, 4);
  960.    
  961.     /* 打印 */
  962.     printf("Serial Number: %02x-%02x-%02x-%02x\r\n",
  963.             serial_num[0], serial_num[1], serial_num[2], serial_num[3]);
  964.     printf("App0 Revision: %d.%d.%d\r\n",
  965.             app0_rev_num[0], app0_rev_num[1], app0_rev_num[2]);
  966.     printf("Chip Revision: %d\r\n", chip_rev_id);
  967.    
  968.     return TMF8x01_OK;
  969. }

  970. /******************************************************************************/
  971. int8_t tmf8801_init (void)
  972. {   
  973.     /* TMF8801 復位 */
  974.     if (__tmf8801_rst() == TMF8x01_NK)
  975.     {
  976.         return TMF8x01_NK;
  977.     }  
  978.     /* 補丁下載初始化 */   
  979.     if (__tmf8801_download_init() == TMF8x01_NK)
  980.     {  
  981.         return TMF8x01_NK;
  982.     }
  983.     /* 設置寫 RAM 地址 */
  984.     if (__tmf8801_set_ram_addr(0x00) == TMF8x01_NK)
  985.     {
  986.         return TMF8x01_NK;
  987.     }
  988.     /* 寫 RAM */
  989.     if (__tmf8801_write_ram() == TMF8x01_NK)
  990.     {
  991.         return TMF8x01_NK;
  992.     }     
  993.     /* 復位 RAM */
  994.     if (__tmf8801_ram_remap_rst() == TMF8x01_NK)
  995.     {
  996.         return TMF8x01_NK;
  997.     }
  998.     delay_ms(100);
  999.     /* 獲取 TMF8801 芯片信息 */
  1000.     if (__tmf8801_info_read() == TMF8x01_NK)
  1001.     {
  1002.         return TMF8x01_NK;
  1003.     }
  1004.     /* 使能檢測中斷 */
  1005.     tmf8801_intx_enable();
  1006.     return TMF8x01_OK;
  1007. }

  1008. /******************************************************************************/
  1009. int8_t tmf8801_app0_start (app0_init_config_t *p_config)
  1010. {   
  1011.     /*
  1012.      * cmd_data7=03  Algorithm state and factory calibration is provided
  1013.      * cmd_data6=23  
  1014.      * cmd_data5=00  No GPIO control used
  1015.      * cmd_data4=00  No GPIO control used
  1016.      * cmd_data3=00  Object detection threshold
  1017.      * cmd_data2=64  Repetition period in ms 64 hex = 100ms
  1018.      * cmd_data1=84  Number of iterations, low byte; 1 LSB=1 k
  1019.      * cmd_data0=03  Number of iterations, high byte; Set to 900k iterations
  1020.      * command  =02  Set flag to perform target distance measurement with 8
  1021.      *               bytes of data containing where including setting of
  1022.      *               calibration (and algorithm state) configuration.
  1023.      */
  1024.     uint8_t cmd_buf[9] = {0x00, 0xA3, 0x00, 0x00, 0x00, 0x64, 0x84, 0x03, 0x02};   
  1025.    
  1026.     uint8_t  cali_ok   =  0;
  1027.     uint8_t  regval    =  0;   
  1028.     uint8_t  i         =  0;
  1029.    
  1030.     I2C_TMF8001_ReadByte(0xE0, ®val, 1);
  1031.     if (regval != 0x41)
  1032.     {/* CPU 沒準備好與主機 IIC 通信 */
  1033.         return TMF8x01_NK;
  1034.     }
  1035.    
  1036.     /* 配置 APP0 相關參數 */
  1037.     cmd_buf[0] = p_config->calibration_state_mask;
  1038.     cmd_buf[2] = p_config->gpio_control;
  1039.     cmd_buf[3] = p_config->gpio_output_control;
  1040.     cmd_buf[5] = p_config->repetition_period_ms;
  1041.     cmd_buf[6] = p_config->iterations & 0xFF;
  1042.     cmd_buf[7] = (p_config->iterations >> 8) & 0xFF;
  1043.      
  1044.     /* 預裝載工廠校準數據或算法狀態數據 */   
  1045.     if (cmd_buf[0] & FACTORY_CALIBRATION_PROVIDE)
  1046.     {/* 提供了工廠校準數據 */
  1047.         #if 0
  1048.         if (eepromRead(CALI_STA_ADDR, &cali_ok, 1) != EE_SUCCESS)
  1049.         {
  1050.             return TMF8x01_NK;
  1051.         }
  1052.         if (cali_ok == 0xAA)
  1053.         {/* 執行過工廠校準 */
  1054.             if (eepromRead(CALI_DATA_ADDR, g_cali_buf, 14) != EE_SUCCESS)/* 讀取工廠校準數據 */
  1055.             {
  1056.                 return TMF8x01_NK;
  1057.             }
  1058.         }
  1059.         #endif
  1060.         
  1061.         I2C_TMF8001_WriteByte(0x20, g_cali_buf, 14);/* 寫入 14 字節校準數據 */

  1062.         if (cmd_buf[0] & ALGORITHM_STATE_PROVIDE)
  1063.         {/* 提供了算法狀態數據 */
  1064.             I2C_TMF8001_WriteByte(0x2E, g_state_buf, 11);/* 寫入 11 字節算法狀態數據 */
  1065.         }
  1066.     }
  1067.     else if (cmd_buf[0] & ALGORITHM_STATE_PROVIDE)
  1068.     {/* 提供了算法狀態數據 */
  1069.         I2C_TMF8001_WriteByte(0x20, g_state_buf, 11);/* 寫入 11 字節算法狀態數據 */
  1070.     }
  1071.    
  1072.     I2C_TMF8001_WriteByte(0x08, cmd_buf, 9);/* 配置 TOF 功能并啟動 */

  1073.     printf("配置并啟動APP0:\r\n"); /* 回顯打印 */
  1074.     for (i = 0; i < 9; i++)
  1075.     {            
  1076.         printf("%02x ", cmd_buf[i]);
  1077.     }
  1078.     printf("\r\n");
  1079.    
  1080.     return TMF8x01_OK;
  1081. }

  1082. /******************************************************************************/
  1083. int8_t tof_timestamp_get (uint8_t *timestamp)
  1084. {
  1085.     uint8_t  status    =  0;
  1086.            
  1087.     /*
  1088.      * 一定要從ToF_REGADDR_STATUS開始讀,并判斷ToF_REGADDR_CONTENTS中的值為0x55
  1089.      * 否則可能讀出時間戳為0!!!
  1090.      */
  1091.     I2C_TMF8001_ReadByte(TMF8x01_REGADDR_STATUS, &status, 1);
  1092.     printf("TMF8x01_REGADDR_STATUS: %x\r\n", status);

  1093.     I2C_TMF8001_ReadByte(TMF8x01_REGADDR_CONTENTS, &status, 1);
  1094.     printf("TMF8x01_REGADDR_CONTENTS: %x\r\n", status);

  1095.     if (status != 0x55)
  1096.     {/* 未生成結果數據 */
  1097.         return TMF8x01_ENORES;
  1098.     }
  1099.    
  1100.     I2C_TMF8001_ReadByte(0x24, timestamp, 4);     /* 讀取時間戳 */
  1101.     printf("timestamp: %d\r\n", *timestamp);
  1102.    
  1103.     return TMF8x01_OK;
  1104. }

  1105. /******************************************************************************/
  1106. int8_t tmf8801_result_get (result_info_t *p_res)
  1107. {
  1108.     uint8_t result_buf[0x3A - 0x20 + 1] = {0};
  1109.     uint8_t regval                      =  0;
  1110.     uint8_t i                           =  0;
  1111.    
  1112.     I2C_TMF8001_ReadByte(TMF8x01_REGADDR_STATUS, ®val, 1);
  1113.     I2C_TMF8001_ReadByte(TMF8x01_REGADDR_CONTENTS, ®val, 1);
  1114.     if (regval != 0x55)
  1115.     {/* 未生成結果數據 */
  1116.         return TMF8x01_ENORES;
  1117.     }
  1118.    
  1119.     /* 讀取結果數據 */
  1120.     I2C_TMF8001_ReadByte(0x20, result_buf, 0x3A - 0x20 + 1);
  1121.    
  1122.     p_res->result_num        = result_buf[0x20 - 0x20];
  1123.     p_res->reliability       = result_buf[0x21 - 0x20] & 0x3F;
  1124.    
  1125.    
  1126.     p_res->distance_peak     = ((uint16_t)result_buf[0x23 - 0x20] << 8)
  1127.                              + result_buf[0x22 - 0x20];
  1128.    
  1129.     p_res->time_stamp        = ((uint32_t)result_buf[0x27 - 0x20] << 24) |
  1130.                                ((uint32_t)result_buf[0x26 - 0x20] << 16) |
  1131.                                ((uint32_t)result_buf[0x25 - 0x20] << 8)  |
  1132.                                ((uint32_t)result_buf[0x24 - 0x20] << 0);
  1133.    
  1134.     p_res->reference_hits    = ((uint32_t)result_buf[0x36 - 0x20] << 24) |
  1135.                                ((uint32_t)result_buf[0x35 - 0x20] << 16) |
  1136.                                ((uint32_t)result_buf[0x34 - 0x20] << 8)  |
  1137.                                ((uint32_t)result_buf[0x33 - 0x20] << 0);
  1138.                               
  1139.     p_res->object_hits       = ((uint32_t)result_buf[0x3A - 0x20] << 24) |
  1140.                                ((uint32_t)result_buf[0x39 - 0x20] << 16) |
  1141.                                ((uint32_t)result_buf[0x38 - 0x20] << 8)  |
  1142.                                ((uint32_t)result_buf[0x37 - 0x20] << 0);  
  1143.             
  1144.     /* 備份算法狀態數據 */
  1145.     for (i = 0; i < 11; i++) {      
  1146.         g_state_buf[i] = result_buf[0x28 - 0x20 + i];
  1147.     }
  1148.     return TMF8x01_OK;
  1149. }

  1150. /******************************************************************************/
  1151. void tmf8801_result_display (result_info_t result)
  1152. {   
  1153.     printf("Result number:%d\r\n", result.result_num);
  1154.    
  1155.     printf("Distance(mm):%d\r\n", result.distance_peak);
  1156.    
  1157.     printf("Reliability:%d\r\n", result.reliability);  

  1158.     printf("Timestamp(100us):%d\r\n", result.time_stamp);
  1159.    
  1160.     printf("State data:%02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x\r\n",
  1161.             g_state_buf[0], g_state_buf[1], g_state_buf[2],
  1162.             g_state_buf[3], g_state_buf[4], g_state_buf[5],
  1163.             g_state_buf[6], g_state_buf[7], g_state_buf[8],
  1164.             g_state_buf[9], g_state_buf[10]);   
  1165.    
  1166.     printf("Reference hits:%d\r\n", result.reference_hits);
  1167.             
  1168.     printf("Object hits:%d\r\n", result.object_hits);
  1169. }

  1170. /******************************************************************************/
  1171. int8_t tmf8801_app0_stop (void)
  1172. {
  1173.     uint32_t tick   = 0;   
  1174.     uint8_t  regval = 0xFF;
  1175.    
  1176.     I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1);
  1177.    
  1178.     while (1)
  1179.     {/* wait CPU ready */
  1180.         I2C_TMF8001_ReadByte(0xE0, ®val, 1);
  1181.         if (regval == 0x41)
  1182.         {
  1183.             break;
  1184.         }      
  1185.         tick ++;
  1186.         if (tick >= 5)
  1187.         {   /* 重新發送停止命令 */
  1188.             I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1);
  1189.         }
  1190.         if (tick >= 10)  
  1191.         { /* 超時 */
  1192.             printf("tmf8801_app0_stop err!\r\n");
  1193.             return TMF8x01_NK;
  1194.         }
  1195.     }   
  1196.     return TMF8x01_OK;  
  1197. }

  1198. /******************************************************************************/
  1199. int8_t tmf8801_factory_calibration (void)
  1200. {
  1201.     uint8_t  cali_ok = 0;
  1202.     uint8_t  regval  = 0;   
  1203.     uint32_t tick    = 0;
  1204.     uint8_t  i       = 0;
  1205.    
  1206.     I2C_TMF8001_ReadByte(TMF8x01_REGADDR_ENABLE, ®val, 1);
  1207.     if (regval != 0x41)
  1208.     {/* 傳感器忙 */
  1209.         return TMF8x01_ENOTREADY;
  1210.     }
  1211.    
  1212.     regval = 0x0A;
  1213.     I2C_TMF8001_WriteByte(TMF8x01_REGADDR_COMMAND, ®val, 1);  /* 執行工廠校準命令 */
  1214.    
  1215.     while (1)
  1216.     {                             /* 等待校準數據生成完畢 */
  1217.         I2C_TMF8001_ReadByte(0x1E, ®val, 1);
  1218.         if (regval == 0x0A)
  1219.         {
  1220.             break;
  1221.         }
  1222.         tick ++;
  1223.         if (tick >= 10)
  1224.         {
  1225.             printf("tmf8801_factory_calibration tmo!\r\n");
  1226.             return TMF8x01_NK;
  1227.         }
  1228.     }
  1229.    
  1230.     /* 讀取14字節的校驗數據 */
  1231.     I2C_TMF8001_ReadByte(0x20, g_cali_buf, 14);
  1232.    
  1233.     cali_ok = 0xAA;       /* 標志已經執行過工廠校準 */

  1234.     #if 0
  1235.     /* 備份工廠校準數據 */
  1236.     if (eepromRead(0, g_sys_para, SYSPARA_BUF_LEN) != EE_SUCCESS) {
  1237.         return TMF8x01_NK;
  1238.     }
  1239.     for (i = 0; i < 14; i++) {
  1240.         g_sys_para[i] = g_cali_buf[i];
  1241.     }
  1242.     g_sys_para[CALI_STA_ADDR] = cali_ok;   
  1243.     if (eepromWriteNByte(0, g_sys_para, SYSPARA_BUF_LEN) != EE_SUCCESS) {
  1244.         return TMF8x01_NK;
  1245.     }
  1246.     #endif
  1247.    
  1248.     printf("工廠校準數據: ");
  1249.     for (i = 0; i < 14; i++)
  1250.     {            
  1251.    
  1252.         printf("0x%02x, ", g_cali_buf[i]);
  1253.     }
  1254.     printf("\r\n");
  1255.    
  1256.     return TMF8x01_OK;   
  1257. }

  1258. /******************************************************************************/
  1259. void tmf8801_app0_get_default_config (app0_init_config_t *p_config)
  1260. {
  1261.     /* 不提供工廠校準數據和算法狀態數據 */
  1262.     p_config->calibration_state_mask = NO_DATA_PROVIDE;
  1263.    
  1264.     /* GPIO0, GPIO1 均作輸入(復位值) */
  1265.     p_config->gpio_control           = GPIO0_INPUT | GPIO1_INPUT;
  1266.       
  1267.     /* 無信號輸出 */
  1268.     p_config->gpio_output_control    = 0;
  1269.    
  1270.     /* 重復測量周期為 6ms */
  1271.     p_config->repetition_period_ms   = 6;      

  1272.     /* 迭代次數 900k */
  1273.     p_config->iterations             = 900;
  1274. }

  1275. /******************************************************************************/
  1276. int8_t tmf8801_app0_osc_trim (int32_t change)
  1277. {
  1278.     uint8_t  regval   = 0;
  1279.     uint8_t  fuse3    = 0;
  1280.     uint8_t  fuse6    = 0;
  1281.     int32_t  trim_val = 0;
  1282.     uint32_t tick     = 0;
  1283.    
  1284.     regval = 0x29;  
  1285.     I2C_TMF8001_WriteByte(0x06, ®val, 1);
  1286.    
  1287.     regval = 0x00;          /* PON = 0 */
  1288.     I2C_TMF8001_WriteByte(0xE0, ®val, 1);
  1289.    
  1290.     while (1)
  1291.     {             /* 等待進入待機模式 */
  1292.         I2C_TMF8001_ReadByte(0xE0, ®val, 1);
  1293.         {
  1294.             if (regval == 0x00)
  1295.             {
  1296.                 break;
  1297.             }
  1298.         }
  1299.         tick ++;
  1300.         if (tick >= 10)
  1301.         {
  1302.             printf("tmf8801_app0_osc_trim tmo!\r\n");
  1303.             return TMF8x01_NK;
  1304.         }
  1305.     }  
  1306.    
  1307.     I2C_TMF8001_ReadByte(0x03, &fuse3, 1);
  1308.    
  1309.     I2C_TMF8001_ReadByte(0x06, &fuse6, 1);
  1310.    
  1311.     trim_val = (((int32_t)fuse3) << 1) | ((fuse6 & (0x01 << 6)) >> 6);
  1312.     trim_val += change;
  1313.     trim_val &= 0x1FF;
  1314.     fuse6 &= ~(0x01 << 6);
  1315.     fuse6 |= ((trim_val & 0x01) << 6);
  1316.     fuse3  = ((trim_val >> 1) & 0xFF);
  1317.    
  1318.     I2C_TMF8001_WriteByte(0x03, &fuse3, 1);
  1319.    
  1320.     I2C_TMF8001_WriteByte(0x06, &fuse6, 1);
  1321.    
  1322.     regval = 0x01;          /* PON = 1 */
  1323.     I2C_TMF8001_WriteByte(0xE0, ®val, 1);
  1324.    
  1325.     while (1)
  1326.     {/* 等待進入空閑模式 */
  1327.         I2C_TMF8001_ReadByte(0xE0, ®val, 1);
  1328.         {
  1329.             if (regval == 0x41)
  1330.             {
  1331.                 break;
  1332.             }
  1333.         }
  1334.         tick ++;
  1335.         if (tick >= 10)
  1336.         {
  1337.             printf("tmf8801_app0_osc_trim tmo!\r\n");
  1338.             return TMF8x01_NK;
  1339.         }
  1340.     }  
  1341.     return TMF8x01_OK;
  1342. }

  1343. /******************************************************************************/
  1344. void tmf8801_intx_enable (void)
  1345. {
  1346.     uint8_t regval = 0x01;
  1347.     I2C_TMF8001_WriteByte(0xE2, ®val, 1);
  1348. }

  1349. /******************************************************************************/
  1350. uint8_t tmf8801_int_status_get (void)
  1351. {
  1352.     uint8_t status = 0;
  1353.    
  1354.     I2C_TMF8001_ReadByte(0xE1, &status, 1);
  1355.     return status;
  1356. }

  1357. /******************************************************************************/
  1358. void tmf8801_int_status_clr (void)
  1359. {
  1360.     uint8_t regval = 0x01;
  1361.     I2C_TMF8001_WriteByte(0xE1, ®val, 1);
  1362. }

  1363. /******************************************************************************/
  1364. int8_t tmf8801_handle_irq (void)
  1365. {
  1366.     uint8_t  status = 0;
  1367.     uint32_t tick   = 0;
  1368.    
  1369.     status = tmf8801_int_status_get();
  1370.     if (status & 0x01)
  1371.     {       /* 發生檢測中斷 */
  1372.         
  1373.         tmf8801_int_status_clr();
  1374.         
  1375.         while (1)
  1376.         {
  1377.             if (tmf8801_result_get(&g_tof_result) == TMF8x01_OK)
  1378.             {
  1379.                 break;
  1380.             }
  1381.             tick ++;
  1382.             if (tick >= 10)
  1383.             {
  1384.                 printf("tmf8801_result_get tmo!\r\n");
  1385.                 return TMF8x01_NK;
  1386.             }
  1387.         }      
  1388.     }  
  1389.     return TMF8x01_OK;
  1390. }
復制代碼


3、main函數
  1. //有些變量是全局變量關系比較復雜,我這里就不寫出來了,你們看一下TMF8801配置的流程就行了
  2. int main(void)
  3. {   
  4.     u8 tof_timestamp[4];
  5.     static uint32_t tof_timestamp_t1 = {0};
  6.     static uint32_t tof_timestamp_t0 = {0};
  7.     static uint8_t  cnt              =  0;  
  8.     app0_init_config_t config = {0};
  9.         uart_init(115200);
  10.         TIM3_Int_Init(10,36000);//5ms定時,實際測量5MS
  11.         TMF8001_I2C_Init();
  12.         //初始化TMF8x01
  13.     if (tmf8801_init() == TMF8x01_NK)
  14.     {
  15.         printf("tmf8801_init err!\r\n");
  16.     }
  17.     //配置APP0
  18.     config.calibration_state_mask = FACTORY_CALIBRATION_PROVIDE;//提供了工廠校準數據
  19.     config.repetition_period_ms = 100;//重復測量周期為100ms
  20.     config.iterations           = 900;//迭代次數 900k
  21.     if (tmf8801_app0_start(&config) == TMF8x01_NK)//配置APP0
  22.     {
  23.         printf("tmf8801_app0_start err!\r\n");
  24.     }
  25.     while(1)
  26.           {
  27.               if(System_Tick > 200)
  28.               {
  29.                   System_Tick = 0;
  30.                   tmf8801_handle_irq();
  31.                         printf("num:%3d  測量距離(mm):%4d  可信度:%2d",
  32.                 g_tof_result.result_num,
  33.                 g_tof_result.distance_peak,
  34.                 g_tof_result.reliability);
  35.               }
  36.           }
  37. }   
復制代碼

———————————————
程序測試后正常運行時串口打印的數據:                             
   




單片機和TMF8801通訊有問題時串口打印的數據:                     

————————————————
版權聲明:本文為CSDN博主「子先」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区二区三区精品 | 欧美日韩亚洲一区 | 天天爱天天操 | 男女污网站 | 不卡一二区 | 精品一区二区三区在线观看国产 | 欧美日韩国产精品一区 | 久久99国产精一区二区三区 | 国产视频91在线 | 欧美一区二区三区久久精品 | 91精品国产91久久久久游泳池 | www日日日 | 日韩精品 | 超碰成人免费观看 | 红桃视频一区二区三区免费 | 九一精品 | 亚洲欧美视频一区 | 久久精品国产亚洲 | 国产精品久久 | 国产二区在线播放 | 狠狠干狠狠插 | 午夜影院黄 | 成人在线观看免费观看 | 欧美国产日韩在线观看 | 国产精品日韩一区 | 欧美精品一区二区免费 | 韩日精品一区 | 亚洲欧美综合精品久久成人 | 久久99久久99精品免视看婷婷 | 亚洲福利在线观看 | 久色一区| 国产亚洲成av人片在线观看桃 | 欧美日韩亚洲国产综合 | 超碰伊人久久 | 国产免费一区二区三区 | 极品在线| 一区二区三区免费 | 日韩精品无码一区二区三区 | 日韩国产欧美视频 | 粉嫩在线 | 国产精品久久久久久久久久久久冷 |