国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      16位真彩色下平滑顯示24、32位真彩色圖像的方法

      文檔序號(hào):7740127閱讀:677來(lái)源:國(guó)知局

      專利名稱::16位真彩色下平滑顯示24、32位真彩色圖像的方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及數(shù)字電視圖像處理領(lǐng)域,特別是涉及一種16位真彩色下平滑顯示24、32位真彩色圖像的方法。
      背景技術(shù)
      :目前數(shù)字電視機(jī)頂盒應(yīng)用廣泛,各個(gè)廠家、各個(gè)平臺(tái)中均有OSD(OnScreenDisplay)的顯示層,在使用0SD時(shí),顏色模式一般可以被設(shè)置成,16位真彩色、24位真彩色、32位真彩色等多種模式,其中16位真彩色使用的最為廣泛。尤其在標(biāo)清的數(shù)字電視應(yīng)用中,由于STB(機(jī)頂盒)的CPU處理能力較低,內(nèi)存資源有限,要解決大量的計(jì)算,以適應(yīng)STB的CPU頻率比較低的嵌入式環(huán)境,顏色存儲(chǔ)最常使用16位(2個(gè)字節(jié))而不是使用32位(4個(gè)字節(jié))來(lái)處理OSD的應(yīng)用,而16位真彩色一般會(huì)作為默認(rèn)的顯示方式。在16位真彩色這個(gè)顏色模式下,屏幕上每個(gè)點(diǎn)的顏色存儲(chǔ)有多種方式,例如ARGB4444、ARGB1555、RGB565等(以下我們分別簡(jiǎn)稱位4444模式、1555模式、565模式)。標(biāo)識(shí)符中的數(shù)字表示每種顏色分量(透明A、紅R、綠G、藍(lán)B)顏色所占用的位數(shù)。其中4444模式,可以表示的顏色數(shù)為2~4(紅)*2~4(綠)*2~4(藍(lán))=4096種顏色;1555模式可以表示的顏色數(shù)為2"5(紅)*2"5(綠)*2"5(藍(lán))=32768種顏色(由于565模式缺少了透明位,一般不在數(shù)字電視領(lǐng)域中應(yīng)用,所以這里不加討論)。我們可以看到,在1555模式下,顏色的細(xì)膩程度已經(jīng)足夠(相對(duì)人肉眼的可分辨能力而言)。24位真彩色,這里指RGB888,每個(gè)顏色分量使用8位來(lái)表示。32位真彩色,這里指ARGB8888,即除R、G、B外加上透明位,每個(gè)顏色分量使用8位來(lái)表示。從以上描述可以看出,當(dāng)要用ARGB1555顯示一個(gè)更加細(xì)膩的RGB888的圖像時(shí),R、G、B每個(gè)顏色分量上,都會(huì)有3個(gè)位的誤差(從8位轉(zhuǎn)換到5位),這個(gè)問(wèn)題反映到實(shí)際的顯示效果來(lái)看,就是當(dāng)外部制作、獲得到的圖片是24、32位真彩色圖片,而將之顯示到16位的環(huán)境下時(shí)會(huì)產(chǎn)生失真。
      發(fā)明內(nèi)容本發(fā)明的主要目的就是針對(duì)現(xiàn)有技術(shù)的不足,提供一種16位真彩色下平滑顯示24、32位真彩色圖像的方法,能有效避免波紋、失真。為實(shí)現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案—種16位真彩色下平滑顯示24、32位真彩色圖像的方法,其特征在于,包括以下步驟a.獲得點(diǎn)在圖像中的紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x以及縱坐標(biāo)y;b.使用顏色值查找函數(shù),所述顏色值查找函數(shù)根據(jù)紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y來(lái)查找一個(gè)顏色對(duì)應(yīng)表,所述顏色對(duì)應(yīng)表相當(dāng)于一個(gè)三維數(shù)組,其由預(yù)定好數(shù)值的多個(gè)數(shù)組元素組成,所述單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y分別確定各數(shù)組元素的三個(gè)維的下標(biāo),將由此所確定的數(shù)組元素的數(shù)值作為點(diǎn)的單種顏色值的轉(zhuǎn)換值;c.根據(jù)轉(zhuǎn)換后的紅、綠、藍(lán)三種顏色值,確定16位真彩色下所顯示的顏色值。優(yōu)選地,所述16位真彩色采用ARGB1555模式,1、5、5、5為透明、紅、綠、藍(lán)各顏色分量所占位數(shù)。優(yōu)選地,所述三維數(shù)組的結(jié)構(gòu)為[256][8][8],其中[256]、[8]、[8]分別為所述單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y所對(duì)應(yīng)的維。所述步驟b中,可采用對(duì)坐標(biāo)值進(jìn)行除8取模運(yùn)算來(lái)確定對(duì)應(yīng)維的下標(biāo)。所述步驟b中,可采用對(duì)坐標(biāo)值進(jìn)行移位運(yùn)算來(lái)確定對(duì)應(yīng)維的下標(biāo)。所述步驟b中,當(dāng)單種原始顏色值color為0xff時(shí),所述顏色值查找函數(shù)返回轉(zhuǎn)換值為0xFF。本發(fā)明有益的技術(shù)效果是采用本發(fā)明,能有效避免圖像產(chǎn)生波紋和失真,實(shí)現(xiàn)平滑顯示,提高顯示效果,同時(shí)還能節(jié)省存儲(chǔ)空間。圖1為本發(fā)明的16位真彩色下平滑顯示24、32位真彩色圖像的方法的流程圖。本發(fā)明的特征及優(yōu)點(diǎn)將通過(guò)實(shí)施例結(jié)合附圖進(jìn)行詳細(xì)說(shuō)明。具體實(shí)施例方式請(qǐng)參考圖l,本發(fā)明的顯示方法一種實(shí)施例的具體流程如下步驟1:當(dāng)解析圖像(例如GIF,JPEG,BMP,PNG等格式)時(shí),對(duì)于圖像中的每個(gè)點(diǎn),獲取其在圖像中的原始顏色值和坐標(biāo)。例如,對(duì)于24位的位圖(BMP),首先計(jì)算出點(diǎn)在位圖中的原始顏色值在本例中p24BmpPixBytes是存儲(chǔ)24位的位圖(BMP)數(shù)據(jù)的數(shù)組,在此過(guò)程表示取出此位圖橫坐標(biāo)為i、縱坐標(biāo)為j的點(diǎn)的數(shù)據(jù);btPixB表示藍(lán)色點(diǎn)、btPixG表示綠色點(diǎn)、btPixR表示紅色點(diǎn),那么藍(lán)色點(diǎn)的取值方式為UINT8btPixB=p24BmpPixBytes[(i*bmp_width+j)*3];綠色點(diǎn)的取值方式為UINT8btPixG=p24BmpPixBytes[(i*bmp_width+j)*3+l];紅色點(diǎn)的取值方式為UINT8btPixR=p24BmpPixBytes[(i*bmp_width+j)*3+2]。以寬度(bmp_width)為1080的位圖為例,可確定點(diǎn)在圖像中的橫坐標(biāo)為j,而縱坐標(biāo)為1080-i-l。步驟2:接下來(lái)利用顏色值查找函數(shù)進(jìn)行處理,以原始顏色值和坐標(biāo)為參數(shù),查找具有三維數(shù)組結(jié)構(gòu)的顏色對(duì)應(yīng)表,將對(duì)應(yīng)的數(shù)組元素的數(shù)值作為點(diǎn)的單種顏色值的轉(zhuǎn)換值。顏色值查找函數(shù)形式如下一UINT8get_color_value(UINT8color,UINT16x,UINT16y){if(color==Oxff)return0xFF;returntr_table[color][x%8][y%8];}方法二UINT8get_color_value(UINT8color,UINT16x,UINT16y){if(color==Oxff)return0xFF;returntr_table[color][x&(0x08—1)][y&(0x08—1)];}X的取值范圍(UINT16x,UINT16y):0-655350x0000-0xffff該函數(shù)的返回值即為查找到的顏色值。其中,color表示24位真彩色圖像中點(diǎn)的單種原始顏色值;x表示點(diǎn)在圖像中的橫坐標(biāo);y表示點(diǎn)在圖像中的縱坐標(biāo);tr_table為一個(gè)用來(lái)查詢需轉(zhuǎn)換的單種顏色值的顏色對(duì)應(yīng)表,該表相當(dāng)于一個(gè)三維數(shù)組,其由預(yù)定好數(shù)值的多個(gè)數(shù)組元素組成,顏色點(diǎn)的單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y分別用于確定數(shù)組元素的三個(gè)維的下標(biāo),上述方法一中,x%8和y%8表示對(duì)坐標(biāo)值進(jìn)行除8取模運(yùn)算。應(yīng)指出,本表的構(gòu)造結(jié)果更適用于嵌入式開發(fā)環(huán)境。1)顏色的轉(zhuǎn)換只用通過(guò)查表的方式來(lái)進(jìn)行,不需經(jīng)過(guò)逐點(diǎn)計(jì)算,不增加額外的臨時(shí)存儲(chǔ)空間,且在轉(zhuǎn)換過(guò)程中占用的存儲(chǔ)空間和圖像大小無(wú)關(guān);2)表的形式為256*8*8的三維數(shù)組,這使得根據(jù)坐標(biāo)進(jìn)行顏色查找時(shí),任何一坐標(biāo)值對(duì)8取模均可采用位運(yùn)算來(lái)替代,由于在嵌入式環(huán)境中不一定存在除法運(yùn)算器,所以顏色值查找函數(shù)的坐標(biāo)轉(zhuǎn)換可用位移來(lái)處理是本表的特征之一,如get—color—value的上述方法二,使得查找的時(shí)間縮短,速度加快。而由三個(gè)下標(biāo)所確定數(shù)組元素的數(shù)值即為該顏色點(diǎn)需轉(zhuǎn)換的單種顏色值;其中,當(dāng)單種原始顏色值color為Oxff時(shí),函數(shù)返回值為OxFF。將步驟1所得的原始顏色值和橫、縱坐標(biāo)參數(shù)代入,運(yùn)行顏色值查找函函數(shù),得到R、G、B三種單色的轉(zhuǎn)換值如下btPixB=get_color_value(btPixB,j,1080_i_l);btPixG=get_color_value(btPixG,j,1080_i_l);btPixR=get_color_value(btPixR,j,1080_i_l)。步驟3:最后,根據(jù)點(diǎn)的R、G、B三種顏色的轉(zhuǎn)換值,確定可被直接使用的16位真彩色下如ARGB1555模式下的顏色值,該處理過(guò)程可以下式來(lái)表示W(wǎng)ORDcolor=((btPixR&0x00F8)<<7)|((btPixG&0x00F8)<<2)I((btPixB&0x00F8)>>3)。其表示將R、G、B3個(gè)顏色值(分別保存在1個(gè)字節(jié)(8位)中,每個(gè)的有效位是5位)用一個(gè)雙字節(jié)的變量來(lái)存儲(chǔ)。以R為例btPixR&0x00F8將一個(gè)字節(jié)的后三位置0(0x00F8二進(jìn)制表示為0000000011111000);(btPixR&0x00F8)<<7再將以上的結(jié)果左移7位,(因最高位為透明位,這里不處理)則執(zhí)行的結(jié)果類似于OxxxxxOO00000000。對(duì)G、B的處理類似。這樣,就分別將RGB3個(gè)顏色的分量放置到對(duì)應(yīng)的位上ORRRRRGGGGGBBBBB(二進(jìn)制表示),生成了一個(gè)2字節(jié)(16位)的變量,并將此結(jié)果保存到雙字節(jié)的變量WORDcolor中o本步驟對(duì)R、G、B顏色值的處理可采用已知的常規(guī)技術(shù)。在一個(gè)優(yōu)選的實(shí)施例中,步驟2中所采用的顏色對(duì)應(yīng)表具體如下staticUINT8tr—table[256][8][8]=U),0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,8,0,0,0,8,0,0,0,o,o,o,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,o,o,o,0,8,0,0,0,8,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,0,0,o,o,o,0,0,0,8,0,8,0,8,0,8,0,0,8,0,0,0,8,0,0,8,0,8,0,8,0,8,0,0,0,0,8,0,0,0,0,8,0,8,0,8,0,8,0,0,8,0,0,0,8,0,0,8,0,8,0,8,0,8,0,0,0,0,8,0,0,0,8,8,0,8,0,8,0,8,0,0,8,0,8,0,8,0,0,8,0,8,0,8,0,8,0,0,8,0,8,0,8,0,8,8,0,8,0,8,0,8,0,0,8,0,8,0,8,0,8,8,0,8,0,8,0,8,0,0,8,0,8,0,8,0,8,8,0,8,0,8,0,8,0,8,8,0,8,8,8,0,8,8,0,8,0,8,0,8,0,0,8,8,8,0,8,0,8,8,0,8,0,8,0,8,0,8,8,0,8,8,8,0,8,8,0,8,0,8,0,8,0,0,8,0,8,0,8,8,8,8,0,8,0,8,0,8,0,8,8,8,8,8,8,0,8,8,0,8,0,8,0,8,0,8,8,8,8,8,8,8,8,8,0,8,0,8,0,8,0,8,8,0,8,8,8,8,8,8,0,8,0,8,0,8,0,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,0,8,8,8,8,8,8,8,8,8,0,8,8,8,0,8,0,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,0,8,8,8,8,8,8,8,8,8,0,8,0,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,16,8,8,8,16,8,8,8,8,8,8,8,8,8,8,8,8,8,16,8,8,8,8,8,8,8,8,8,8,8,8,8,16,8,8,8,16,8,8,8,8,8,8,8,8,8,8,8,8,8,16,8,8,8,16,8,8,8,8,8,8,8,8,8,16,8,16,8,16,8,8,8,8,8,8,8,8,8,8,8,16,8,16,8,16,8,16,8,8,8,8,8,8,8,8,8,16,8,16,8,16,8,16,8,8,8,8,8,8,8,8,8,16,8,16,8,16,8,16,8,8,8,8,8,8,8,8,8,16,8,16,8,16,8,16,8,8,16,8,8,8,16,8,8,16,8,16,8,16,8,16,8,8,8,8,16,8,8,8,8,16,8,16,8,16,8,16,8,8,16,8,8,8,16,8,8,16,8,16,8,16,8,16,8,8,8,8,16,8,8,8,16,16,8,16,8,16,8,16,8,8,16,8,16,8,16,8,8,16,8,16,8,16,8,16,8,8,16,8,16,8,16,8,16,16,8,16,8,16,8,16,8,8,16,8,16,8,16,8,16,16,8,16,8,16,8,16,8,8,16,8,16,8,16,8,16,16,8,16,8,16,8,16,8,16,16,8,16,16,16,8,16,16,8,16,8,16,8,16,8,8,16,16,16,8,16,8,16,16,8,16,8,16,8,16,8,16,16,8,16,16,16,8,16,16,8,16,8,16,8,16,8,8,16,8,16,8,16,16,16,16,8,16,8,16,8,16,8,16,16,16,16,16,16,8,16,16,8,16,8,16,8,16,8,16,16,16,16,16,16,16,16,16,8,16,8,16,8,16,8,16,16,8,16,16,16,16,16,16,8,16,8,16,8,16,8,16,16,16,16,16,16,16,16,16,16,16,8,16,16,16,8,16,16,16,16,16,16,16,16,16,8,16,16,16,8,16,8,16,16,16,16,16,16,16,16,16,16,16,8,16,16,16,8,16,16,16,16,16,16,16,16,16,8,16,8,16,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,8,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,24,16,16,16,16,16,16,16,16,16,16,16,16,16,24,16,16,16,24,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,24,16,16,16,16,16,16,16,16,16,24,16,24,16,24,16,24,16,16,24,16,16,16,24,16,16,24,16,24,16,24,16,24,16,16,16,16,24,16,16,16,16,24,16,24,16,24,16,24,16,16,24,16,16,16,24,16,16,24,16,24,16,24,16,24,16,16,16,16,24,16,16,16,24,24,16,24,16,24,16,24,16,16,24,16,24,16,24,16,16,24,16,24,16,24,16,24,16,16,24,16,24,16,24,16,24,24,16,24,16,24,16,24,16,16,24,16,24,16,24,16,24,24,16,24,16,24,16,24,16,16,24,16,24,16,24,16,24,24,16,24,16,24,16,24,16,24,24,16,24,24,24,16,24,24,16,24,16,24,16,24,16,16,24,24,24,16,24,16,24,24,16,24,16,24,16,24,16,24,24,16,24,24,24,16,24,24,16,24,16,24,16,24,16,16,24,16,24,16,24,24,24,24,16,24,16,24,16,24,16,24,24,24,24,24,24,16,24,24,16,24,16,24,16,24,16,24,24,24,24,24,24,24,24,24,16,24,16,24,16,24,16,24,24,16,24,24,24,24,24,24,16,24,16,24,16,24,16,24,24,24,24,24,24,24,24,24,24,24,16,24,24,24,16,24,24,24,24,24,24,24,24,24,16,24,24,24,16,24,16,24,24,24,24,24,24,24,24,24,24,24,16,24,24,24,16,24,24,24,24,24,24,24,24,24,16,24,16,24,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,16,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,32,24,24,24,32,24,24,24,24,24,24,24,24,24,24,24,24,24,32,24,24,24,24,24,24,24,24,24,24,24,24,24,32,24,24,24,32,24,24,24,24,24,24,24,24,24,24,24,24,24,32,24,24,24,32,24,24,24,24,24,24,24,24,24,32,24,32,24,32,24,24,24,24,24,24,24,24,24,24,24,32,24,32,24,32,24,32,24,24,24,24,24,24,24,24,24,32,24,32,24,32,24,32,24,24,24,24,24,24,24,24,24,32,24,32,24,32,24,32,24,24,24,24,24,24,24,24,24,32,24,32,24,32,24,32,24,24,32,24,24,24,32,24,24,32,24,32,24,32,24,32,24,24,24,24,32,24,24,24,24,32,24,32,24,32,24,32,24,24,32,24,24,24,32,24,24,32,24,32,24,32,24,32,24,24,24,24,32,24,24,24,32,32,24,32,24,32,24,32,24,24,32,24,32,24,32,24,24,32,24,32,24,32,24,32,24,24,32,24,32,24,32,24,32,32,24,32,24,32,24,32,24,24,32,24,32,24,32,24,32,32,24,32,24,32,24,32,24,24,32,24,32,24,32,24,32,32,24,32,24,32,24,32,24,32,32,24,32,32,32,24,32,32,24,32,24,32,24,32,24,24,32,32,32,24,32,24,32,32,24,32,24,32,24,32,24,32,32,24,32,32,32,24,32,32,24,32,24,32,24,32,24,24,32,24,32,24,32,32,32,32,24,32,24,32,24,32,24,32,32,32,32,32,32,24,32,32,24,32,24,32,24,32,24,32,32,32,32,32,32,32,32,32,24,32,24,32,24,32,24,32,32,24,32,32,32,32,32,32,24,32,24,32,24,32,24,32,32,32,32,32,32,32,32,32,32,32,24,32,32,32,24,32,32,32,32,32,32,32,32,32,24,32,32,32,24,32,24,32,32,32,32,32,32,32,32,32,32,32,24,32,32,32,24,32,32,32,32,32,32,32,32,32,24,32,24,32,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,24,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,4l,32,32,32,4l,32,32,32,32,32,32,32,32,32,32,32,32,32,4l,32,32,32,32,32,32,32,32,32,32,32,32,32,4l,32,32,32,4l,32,32,32,32,32,32,32,32,32,32,32,32,32,4l,32,32,32,4l,32,32,32,32,32,32,32,32,32,4l,32,4l,32,4l,32,32,32,32,32,32,32,32,32,32,32,4l,32,4l,32,4l,32,4l,32,32,32,32,32,32,32,32,32,4l,32,4l,32,4l,32,4l,32,32,32,32,32,32,32,32,32,4l,32,4l,32,4l,32,4l,32,32,32,32,32,32,32,32,32,4l,32,4l,32,4l,32,4l,32,32,4l,32,32,32,4l,32,32,4l,32,4l,32,4l,32,4l,32,32,32,32,4l,32,32,32,32,4l,32,4l,32,4l,32,4l,32,32,4l,32,32,32,4l,32,32,4l,32,4l,32,4l,32,4l,32,32,32,32,4l,32,32,32,4l,4l,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,32,4l,4l,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,32,4l,4l,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,32,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,32,4l,4l,4l,32,4l,4l,32,4l,32,4l,32,4l,32,32,4l,4l,4l,32,4l,32,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,32,4l,4l,4l,32,4l,4l,32,4l,32,4l,32,4l,32,32,4l,32,4l,32,4l,4l,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,4l,4l,4l,4l,32,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,32,4l,4l,4l,4l,4l,4l,32,4l,32,4l,32,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,4l,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,4l,4l,32,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,4l,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,32,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,32,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,4l,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,4l,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,4l,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,49,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,49,4l,49,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,49,4l,49,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,49,4l,49,4l,49,4l,4l,4l,4l,4l,4l,4l,4l,4l,49,4l,49,4l,49,4l,49,4l,4l,49,4l,4l,4l,49,4l,4l,49,4l,49,4l,49,4l,49,4l,4l,4l,4l,49,4l,4l,4l,4l,49,4l,49,4l,49,4l,49,4l,41,49,41,41,41,49,41,41,49,41,49,41,49,41,49,41,41,41,41,49,41,41,41,49,49,41,49,41,49,41,49,41,41,49,41,49,41,49,41,41,49,41,49,41,49,41,49,41,41,49,41,49,41,49,41,49,49,41,49,41,49,41,49,41,41,49,41,49,41,49,41,49,49,41,49,41,49,41,49,41,41,49,41,49,41,49,41,49,49,41,49,41,49,41,49,41,49,49,41,49,49,49,41,49,49,41,49,41,49,41,49,41,41,49,49,49,41,49,41,49,49,41,49,41,49,41,49,41,49,49,41,49,49,49,41,49,49,41,49,41,49,41,49,41,41,49,41,49,41,49,49,49,49,41,49,41,49,41,49,41,49,49,49,49,49,49,41,49,49,41,49,41,49,41,49,41,49,49,49,49,49,49,49,49,49,41,49,41,49,41,49,41,49,49,41,49,49,49,49,49,49,41,49,41,49,41,49,41,49,49,49,49,49,49,49,49,49,49,49,41,49,49,49,41,49,49,49,49,49,49,49,49,49,41,49,49,49,41,49,41,49,49,49,49,49,49,49,49,49,49,49,41,49,49,49,41,49,49,49,49,49,49,49,49,49,41,49,41,49,41,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,41,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,41,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,57,49,49,49,57,49,49,49,49,49,49,49,49,49,49,49,49,49,57,49,49,49,49,49,49,49,49,49,49,49,49,49,57,49,49,49,57,49,49,49,49,49,49,49,49,49,49,49,49,49,57,49,49,49,57,49,49,49,49,49,49,49,49,49,57,49,57,49,57,49,49,49,49,49,49,49,49,49,49,49,57,49,57,49,57,49,57,49,49,49,49,49,49,49,49,49,57,49,57,49,57,49,57,49,49,49,49,49,49,49,49,49,57,49,57,49,57,49,57,49,49,49,49,49,49,49,49,49,57,49,57,49,57,49,57,49,49,57,49,49,49,57,49,49,57,49,57,49,57,49,57,49,49,49,49,57,49,49,49,49,57,49,57,49,57,49,57,49,49,57,49,49,49,57,49,49,57,49,57,49,57,49,57,49,49,49,49,57,49,49,49,57,57,49,57,49,57,49,57,49,49,57,49,57,49,57,49,49,57,49,57,49,57,49,57,49,49,57,49,57,49,57,49,57,57,49,57,49,57,49,57,49,49,57,49,57,49,57,49,57,57,49,57,49,57,49,57,49,49,57,49,57,49,57,49,57,57,49,57,49,57,49,57,49,57,57,49,57,57,57,49,57,57,49,57,49,57,49,57,49,49,57,57,57,49,57,49,57,57,49,57,49,57,49,57,49,57,57,49,57,57,57,49,57,57,49,57,49,57,49,57,49,49,57,49,57,49,57,57,57,57,49,57,49,57,49,57,49,57,57,57,57,57,57,49,57,57,49,57,49,57,49,57,49,57,57,57,57,57,57,57,57,57,49,57,49,57,49,57,49,57,57,49,57,57,57,57,57,57,49,57,49,57,49,57,49,57,57,57,57,57,57,57,57,57,57,57,49,57,57,57,49,57,57,57,57,57,57,57,57,57,49,57,57,57,49,57,49,57,57,57,57,57,57,57,57,57,57,57,49,57,57,57,49,57,57,57,57,57,57,57,57,57,49,57,49,57,49,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,49,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,49,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,65,57,57,57,65,57,57,57,57,57,57,57,57,57,57,57,57,57,65,57,57,57,57,57,57,57,57,57,57,57,57,57,65,57,57,57,65,57,57,57,57,57,57,57,57,57,57,57,57,57,65,57,57,57,65,57,57,57,57,57,57,57,57,57,65,57,65,57,65,57,57,57,57,57,57,57,57,57,57,57,65,57,65,57,65,57,65,57,57,57,57,57,57,57,57,57,65,57,65,57,65,57,65,57,57,57,57,57,57,57,57,57,65,57,65,57,65,57,65,57,57,57,57,57,57,57,57,57,65,57,65,57,65,57,65,57,57,65,57,57,57,65,57,57,65,57,65,57,65,57,65,57,57,57,57,65,57,57,57,57,65,57,65,57,65,57,65,57,57,65,57,57,57,65,57,57,65,57,65,57,65,57,65,57,57,57,57,65,57,57,57,65,65,57,65,57,65,57,65,57,57,65,57,65,57,65,57,57,65,57,65,57,65,57,65,57,57,65,57,65,57,65,57,65,65,57,65,57,65,57,65,57,57,65,57,65,57,65,57,65,65,57,65,57,65,57,65,57,57,65,57,65,57,65,57,65,65,57,65,57,65,57,65,57,65,65,57,65,65,65,57,65,65,57,65,57,65,57,65,57,57,65,65,65,57,65,57,65,65,57,65,57,65,57,65,57,65,65,57,65,65,65,57,65,65,57,65,57,65,57,65,57,57,65,57,65,57,65,65,65,65,57,65,57,65,57,65,57,65,65,65,65,65,65,57,65,65,57,65,57,65,57,65,57,65,65,65,65,65,65,65,65,65,57,65,57,65,57,65,57,65,65,57,65,65,65,65,65,65,57,65,57,65,57,65,57,65,65,65,65,65,65,65,65,65,65,65,57,65,65,65,57,65,65,65,65,65,65,65,65,65,57,65,65,65,57,65,57,65,65,65,65,65,65,65,65,65,65,65,57,65,65,65,57,65,65,65,65,65,65,65,65,65,57,65,57,65,57,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,57,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,57,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,65,74,65,65,65,74,65,65,65,65,65,65,65,65,65,65,65,65,65,74,65,65,65,65,65,65,65,65,65,65,65,65,65,74,65,65,65,74,65,65,65,65,65,65,65,65,65,65,65,65,65,74,65,65,65,74,65,65,65,65,65,65,65,65,65,74,65,74,65,74,65,65,65,65,65,65,65,65,65,65,65,74,65,74,65,74,65,74,65,65,65,65,65,65,65,65,65,74,65,74,65,74,65,74,65,65,65,65,65,65,65,65,65,74,65,74,65,74,65,74,65,65,65,65,65,65,65,65,65,74,65,74,65,74,65,74,65,65,74,65,65,65,74,65,65,74,65,74,65,74,65,74,65,65,65,65,74,65,65,65,65,74,65,74,65,74,65,74,65,65,74,65,65,65,74,65,65,74,65,74,65,74,65,74,65,65,65,65,74,65,65,65,74,74,65,74,65,74,65,74,65,65,74,65,74,65,74,65,65,74,65,74,65,74,65,74,65,65,74,65,74,65,74,65,74,74,65,74,65,74,65,74,65,65,74,65,74,65,74,65,74,74,65,74,65,74,65,74,65,65,74,65,74,65,74,65,74,74,65,74,65,74,65,74,65,74,74,65,74,74,74,65,74,74,65,74,65,74,65,74,65,65,74,74,74,65,74,65,74,74,65,74,65,74,65,74,65,74,74,65,74,74,74,65,74,74,65,74,65,74,65,74,65,65,74,65,74,65,74,74,74,74,65,74,65,74,65,74,65,74,74,74,74,74,74,65,74,74,65,74,65,74,65,74,65,74,74,74,74,74,74,74,74,74,65,74,65,74,65,74,65,74,74,65,74,74,74,74,74,74,65,74,65,74,65,74,65,74,74,74,74,74,74,74,74,74,74,74,65,74,74,74,65,74,74,74,74,74,74,74,74,74,65,74,74,74,65,74,65,74,74,74,74,74,74,74,74,74,74,74,65,74,74,74,65,74,74,74,74,74,74,74,74,74,65,74,65,74,65,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,65,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,65,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,82,74,74,74,82,74,74,74,74,74,74,74,74,74,74,74,74,74,82,74,74,74,74,74,74,74,74,74,74,74,74,74,82,74,74,74,82,74,74,74,74,74,74,74,74,74,74,74,74,74,82,74,74,74,82,74,74,74,74,74,74,74,74,74,82,74,82,74,82,74,74,74,74,74,74,74,74,74,74,74,82,74,82,74,82,74,82,74,74,74,74,74,74,74,74,74,82,74,82,74,82,74,82,74,74,74,74,74,74,74,74,74,82,74,82,74,82,74,82,74,74,74,74,74,74,74,74,74,82,74,82,74,82,74,82,74,74,82,74,74,74,82,74,74,82,74,82,74,82,74,82,74,74,74,74,82,74,74,74,74,82,74,82,74,82,74,82,74,74,82,74,74,74,82,74,74,82,74,82,74,82,74,82,74,74,74,74,82,74,74,74,82,82,74,82,74,82,74,82,74,74,82,74,82,74,82,74,74,82,74,82,74,82,74,82,74,74,82,74,82,74,82,74,82,82,74,82,74,82,74,82,74,74,82,74,82,74,82,74,82,82,74,82,74,82,74,82,74,74,82,74,82,74,82,74,82,82,74,82,74,82,74,82,74,82,82,74,82,82,82,74,82,82,74,82,74,82,74,82,74,74,82,82,82,74,82,74,82,82,74,82,74,82,74,82,74,82,82,74,82,82,82,74,82,82,74,82,74,82,74,82,74,74,82,74,82,74,82,82,82,82,74,82,74,82,74,82,74,82,82,82,82,82,82,74,82,82,74,82,74,82,74,82,74,82,82,82,82,82,82,82,82,82,74,82,74,82,74,82,74,82,82,74,82,82,82,82,82,82,74,82,74,82,74,82,74,82,82,82,82,82,82,82,82,82,82,82,74,82,82,82,74,82,82,82,82,82,82,82,82,82,74,82,82,82,74,82,74,82,82,82,82,82,82,82,82,82,82,82,74,82,82,82,74,82,82,82,82,82,82,82,82,82,74,82,74,82,74,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,74,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,74,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,90,82,82,82,90,82,82,82,82,82,82,82,82,82,82,82,82,82,90,82,82,82,82,82,82,82,82,82,82,82,82,82,90,82,82,82,90,82,82,82,82,82,82,82,82,82,82,82,82,82,90,82,82,82,90,82,82,82,82,82,82,82,82,82,90,82,90,82,90,82,82,82,82,82,82,82,82,82,82,82,90,82,90,82,90,82,90,82,82,82,82,82,82,82,82,82,90,82,90,82,90,82,90,82,82,82,82,82,82,82,82,82,90,82,90,82,90,82,90,82,82,82,82,82,82,82,82,82,90,82,90,82,90,82,90,82,82,90,82,82,82,90,82,82,90,82,90,82,90,82,90,82,82,82,82,90,82,82,82,82,90,82,90,82,90,82,90,82,82,90,82,82,82,90,82,82,90,82,90,82,90,82,90,82,82,82,82,90,82,82,82,90,90,82,90,82,90,82,90,82,82,90,82,90,82,90,82,82,90,82,90,82,90,82,90,82,82,90,82,90,82,90,82,90,90,82,90,82,90,82,90,82,82,90,82,90,82,90,82,90,90,82,90,82,90,82,90,82,82,90,82,90,82,90,82,90,90,82,90,82,90,82,90,82,90,90,82,90,90,90,82,90,90,82,90,82,90,82,90,82,82,90,90,90,82,90,82,90,90,82,90,82,90,82,90,82,90,90,82,90,90,90,82,90,90,82,90,82,90,82,90,82,82,90,82,90,82,90,90,90,90,82,90,82,90,82,90,82,90,90,90,90,90,90,82,90,90,82,90,82,90,82,90,82,90,90,90,90,90,90,90,90,90,82,90,82,90,82,90,82,90,90,82,90,90,90,90,90,90,82,90,82,90,82,90,82,90,90,90,90,90,90,90,90,90,90,90,82,90,90,90,82,90,90,90,90,90,90,90,90,90,82,90,90,90,82,90,82,90,90,90,90,90,90,90,90,90,90,90,82,90,90,90,82,90,90,90,90,90,90,90,90,90,82,90,82,90,82,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,82,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,82,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,98,90,90,90,98,90,90,90,90,90,90,90,90,90,90,90,90,90,98,90,90,90,90,90,90,90,90,90,90,90,90,90,98,90,90,90,98,90,90,90,90,90,90,90,90,90,90,90,90,90,98,90,90,90,98,90,90,90,90,90,90,90,90,90,98,90,98,90,98,90,90,90,90,90,90,90,90,90,90,90,98,90,98,90,98,90,98,90,90,90,90,90,90,90,90,90,98,90,98,90,98,90,98,90,90,90,90,90,90,90,90,90,98,90,98,90,98,90,98,90,90,90,90,90,90,90,90,90,98,90,98,90,98,90,98,90,90,98,90,90,90,98,90,90,98,90,98,90,98,90,98,90,90,90,90,98,90,90,90,90,98,90,98,90,98,90,98,90,90,98,90,90,90,98,90,90,98,90,98,90,98,90,98,90,90,90,90,98,90,90,90,98,98,90,98,90,98,90,98,90,90,98,90,98,90,98,90,90,98,90,98,90,98,90,98,90,90,98,90,98,90,98,90,98,98,90,98,90,98,90,98,90,90,98,90,98,90,98,90,98,98,90,98,90,98,90,98,90,90,98,90,98,90,98,90,98,98,90,98,90,98,90,98,90,98,98,90,98,98,98,90,98,98,90,98,90,98,90,98,90,90,98,98,98,90,98,90,98,98,90,98,90,98,90,98,90,98,98,90,98,98,98,90,98,98,90,98,90,98,90,98,90,90,98,90,98,90,98,98,98,98,90,98,90,98,90,98,90,98,98,98,98,98,98,90,98,98,90,98,90,98,90,98,90,98,98,98,98,98,98,98,98,98,90,98,90,98,90,98,90,98,98,90,98,98,98,98,98,98,90,98,90,98,90,98,90,98,98,98,98,98,98,98,98,98,98,98,90,98,98,98,90,98,98,98,98,98,98,98,98,98,90,98,98,98,90,98,90,98,98,98,98,98,98,98,98,98,98,98,90,98,98,98,90,98,98,98,98,98,98,98,98,98,90,98,90,98,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,90,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,106,98,98,98,106,98,98,98,98,98,98,98,98,98,98,98,98,98,106,98,98,98,98,98,98,98,98,98,98,98,98,98,106,98,98,98,106,98,98,98,98,98,98,98,98,98,98,98,98,98,106,98,98,98,106,98,98,98,98,98,98,98,98,98,106,98,106,98,106,98,98,98,98,98,98,98,98,98,98,98,106,98,106,98,106,98,106,98,98,98,98,98,98,98,98,98,106,98,106,98,106,98,106,98,98,98,98,98,98,98,98,98,106,98,106,98,106,98,106,98,98,98,98,98,98,98,98,98,106,98,106,98,106,98,106,98,98,106,98,98,98,106,98,98,106,98,106,98,106,98,106,98,98,98,98,106,98,98,98,98,106,98,106,98,106,98,106,98,98,106,98,98,98,106,98,98,106,98,106,98,106,98,106,98,98,98,98,106,98,98,98,106,106,98,106,98,106,98,106,98,98,106,98,106,98,106,98,98,106,98,106,98,106,98,106,98,98,106,98,106,98,106,98,106,106,98,106,98,106,98,106,98,98,106,98,106,98,106,98,106,106,98,106,98,106,98,106,98,98,106,98,106,98,106,98,106,106,98,106,98,106,98,106,98,106,106,98,106,106,106,98,106,106,98,106,98,106,98,106,98,98,106,106,106,98,106,98,106,106,98,106,98,106,98,106,98,106,106,98,106,106,106,98,106,106,98,106,98,106,98,106,98,98,106,98,106,98,106,106,106,106,98,106,98,106,98,106,98,106,106,106,106,106,106,98,106,106,98,106,98,106,98,106,98,106,106,106,106,106,106,106,106,106,98,106,98,106,98,106,98,106,106,98,106,106,106,106,106,106,98,106,98,106,98,106,98,106,106,106,106,106,106,106,106,106,106,106,98,106,106,106,98,106,106,106,106,106,106,106,106,106,98,106,106,106,98,106,98,106,106,106,106,106,106,106,106,106,106,106,98,106,106,106,98,106,106,106,106,106,106,106,106,106,98,106,98,106,98,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,98,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,98,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,115,106,106,106,115,106,106,106,106,106,106,106,106,106,106,106,106,106,115,106,106,106,106,106,106,106,106,106,106,106,106,106,115,106,106,106,115,106,106,106,106,106,106,106,106,106,106,106,106,106,115,106,106,106,115,106,106,106,106,106,106,106,106,106,115,106,115,106,115,106,106,106,106,106,106,106,106,106,106,106,115,106,115,106,115,106,115,106,106,106,106,106,106,106,106,106,115,106,115,106,115,106,115,106,106,106,106,106,106,106,106,106,115,106,115,106,115,106,115,106,106,106,106,106,106,106,106,106,115,106,115,106,115,106,115,106,106,115,106,106,106,115,106,106,115,106,115,106,115,106,115,106,106,106,106,115,106,106,106,106,115,106,115,106,115,106,115,106,106,115,106,106,106,115,106,106,115,106,115,106,115,106,115,106,106,106,106,115,106,106,106,115,115,106,115,106,115,106,115,106,106,115,106,115,106,115,106,106,115,106,115,106,115,106,115,106,106,115,106,115,106,115,106,115,115,106,115,106,115,106,115,106,106,115,106,115,106,115,106,115,115,106,115,106,115,106,115,106,106,115,106,115,106,115,106,115,115,106,115,106,115,106,115,106,115,115,106,115,115,115,106,115,115,106,115,106,115,106,115,106,106,115,115,115,106,115,106,115,115,106,115,106,115,106,115,106,115,115,106,115,115,115,106,115,115,106,115,106,115,106,115,106,106,115,106,115,106,115,115,115,115,106,115,106,115,106,115,106,115,115,115,115,115,115,106,115,115,106,115,106,115,106,115,106,115,115,115,115,115,115,115,115,115,106,115,106,115,106,115,106,115,115,106,115,115,115,115,115,115,106,115,106,115,106,115,106,115,115,115,115,115,115,115,115,115,115,115,106,115,115,115,106,115,115,115,115,115,115,115,115,115,106,115,115,115,106,115,106,115,115,115,115,115,115,115,115,115,115,115,106,115,115,115,106,115,115,115,115,115,115,115,115,115,106,115,106,115,106,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,106,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,106,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,123,115,115,115,123,115,115,115,115,115,115,115,115,115,115,115,115,115,123,115,115,115,115,115,115,115,115,115,115,115,115,115,123,115,115,115,123,115,115,115115,123,115,115,115,123,115,115,115,115123,115,115,115,115,115,115,115,115,115115,115,115,115,115,115,115,115,115,123115,115,115,115,115,115,123,115,123,115115,115,115,123,115,123,115,123,115,123,23,115,123,115,123,115,123,115,115,115,115,123,115,123,115,115,123,115,115,115,123,115,115,115,115,123,115,115,115,123,123,115,123,115,123,115,115,123,115,123,115,123,115,123,123,115,123,115,123,115,123,123,115,123,115,123,115,123,115,115,123,115,123,115,123,115,123,123,115,123,115,123,115,115,123,123,123,115,123,115,123,123,115,123,123,123,115,123,123,115,123,115,123,123,123,123,115,123,115,123,115,123,123,115,123,115,123,115,123,115,115,123,115,123,115,123,115,123,123,115,123,115,123,115,123,123,123,123,123,123,115,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,115,123,123,123,123,115,123,115,123,115,123,123,123,123,123,123,123,123,115,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,131,123,123,123,123,123,123,123,123,131,123,123,123,123,131,123,123,123,131,123,123,123,123,131,123,123,123,131,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,131,123,123,123,123,123,123,131,123,131,123,131,123,123,131,123,131,123,131,123,131,123,123,131,123,131,123,131,123,123,123,123,131,123,131,123,123,131,123,123,123,131,123,123,123,123,131,123,123,123,131,131,123,131,123,131,123,123,131,123,131,123,131,123,131,131,123,131,123,131,123,131,131,123,131,123,131,123,131,123,123,131,,115,115,115,115,115,115,115,115,115,,115,115,115,115,115,123,115,123,115,,115,115,123,115,123,115,123,115,123,,115,123,115,123,115,123,115,115,115,,123,115,123,115,115,115,115,115,115,115,115,123,115,115,115,123,115,115,,115,123,115,115,115,115,123,115,123,123,115,115,123,115,123,115,123,115,123,115,123,115,123,115,123,115,115,115,123,115,123,115,115,123,115,123,123,115,115,123,115,123,115,123,115,123,115,123,115,123,115,123,123,115,123,123,115,123,123,115,123,115,123,123,123,115,123,115,123,115,123,115,123,115,123,115,123,115,115,123,115,115,123,115,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,115,123,115,123,123,123,123,123,115,123,123,123,115,123,123,123,115,123,115,123,123,123,123,123,115,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,115,123,123,123,123,123,123,123,123,123,123,123,123,131,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,131,123,131,123,131,123,131,123,131,123,131,123,131,123,131,123,131,123,131,123,123,123,123,123,131,123,123,123,123,123,123,123,123,131,123,123,123,131,123,123,131,131,123,123,123,123,131,123,131,123,123,123,131,123,131,123,131,123,131,123,131,123,131,123,131,123,123,131,131,123,131,123,123,131,123,131,123,123,123,131,123,131,123,131,123,131,123,131,123,131,123,131,131,123,131,123,131,123,131,123,131,131,123,131,131,131,123,131,131,123,131,123,131,123,131,123,123,131,131,131,123,131,123,131,131,123,131,123,131,123,131,123,131,131,123,131,131,131,123,131,131,123,131,123,131,123,131,123,123,131,123,131,123,131,131,131,131,123,131,123,131,123,131,123,131,131,131,131,131,131,123,131,131,123,131,123,131,123,131,123,131,131,131,131,131,131,131,131,131,123,131,123,131,123,131,123,131,131,123,131,131,131,131,131,131,123,131,123,131,123,131,123,131,131,131,131,131,131,131,131,131,131,131,123,131,131,131,123,131,131,131,131,131,131,131,131,131,123,131,131,131,123,131,123,131,131,131,131,131,131,131,131,131,131,131,123,131,131,131,123,131,131,131,131,131,131,131,131,131,123,131,123,131,123,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,123,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,123,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,131,139,131,131,131,139,131,131,131,131,131,131,131,131,131,131,131,131,131,139,131,131,131,131,131,131,131,131,131,131,131,131,131,139,131,131,131,139,131,131,131,131,131,131,131,131,131,131,131,131,131,139,131,131,131,139,131,131,131,131,131,131,131,131,131,139,131,139,131,139,131,131,131,131,131,131,131,131,131,131,131,139,131,139,131,139,131,139,131,131,131,131,131,131,131,131,131,139,131,139,131,139,131,139,131,131,131,131,131,131,131,131,131,139,131,139,131,139,131,139,131,131,131,131,131,131,131,131,131,139,131,139,131,139,131,139,131,131,139,131,131,131,139,131,131,139,131,139,131,139,131,139,131,131,131,131,139,131,131,131,131,139,131,139,131,139,131,139,131,131,139,131,131,131,139,131,131,139,131,139,131,139,131,139,131,131,131,131,139,131,131,131,139,139,131,139,131,139,131,139,131,131,139,131,139,131,139,131,131,139,131,139,131,139,131,139,131,131,139,131,139,131,139,131,139,139,131,139,131,139,131,139,131,131,139,131,139,131,139,131,139,139,131,139,131,139,131,139,131,131,139,131,139,131,139,131,139,139,131,139,131,139,131,139,131,139,139,131,139,139,139,131,139,139,131,139,131,139,131,139,131,131,139,139,139,131,139,131,139,139,131,139,131,139,131,139,131,139,139,131,139,139,139,131,139,139,131,139,131,139,131,139,131,131,139,131,139,131,139,139,139,139,131,139,131,139,131,139,131,139,139,139,139,139,139,131,139,139,131,139,131,139,131,139,131,139,139,139,139,139,139,139,139,139,131,139,131,139,131,139,131,139,139,131,139,139,139,139,139,139,131,139,131,139,131,139,131,139,139,139,139,139,139,139,139,139,139,139,131,139,139,139,131,139,139,139,139,139,139,139,139,139,131,139,139,139,131,139,131,139,139,139,139,139,139,139,139,139,139,139,131,139,139,139,131,139,139,139,139,139,139,139,139,139,131,139,131,139,131,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,131,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,131,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,139,148,139,139,139,148,139,139,139,139,139,139,139,139,139,139,139,139,139,148,139,139,139,139,139,139,139,139,139,139,139,139,139,148,139,139,139,148,139,139,139,139,139,139,139,139,139,139,139,139,139,148,139,139,139,148,139,139,139,139,139,139,139,139,139,148,139,148,139,148,139,139,139,139,139,139,139,139,139,139,139,148,139,148,139,148,139,148,139,139,139,139,139,139,139,139,139,148,139,148,139,148,139,148,139,139,139,139,139,139,139,139,139,148,139,148,139,148,139,148,139,139,139,139,139,139,139,139,139,148,139,148,139,148,139,148,139,139,148,139,139,139,148,139,139,148,139,148,139,148,139,148,139,139,139,139,148,139,139,139,139,148,139,148,139,148,139,148,139,139,148,139,139,139,148,139,139,148,139,148,139,148,139,148,139,139,139,139,148,139,139,139,148,148,139,148,139,148,139,148,139,139,148,139,148,139,148,139,139,148,139,148,139,148,139,148,139,139,148,139,148,139,148,139,148,148,139,148,139,148,139,148,139,139,148,139,148,139,148,139,148,148,139,148,139,148,139,148,139,139,148,139,148,139,148,139,148,148,139,148,139,148,139,148,139,148,148,139,148,148,148,139,148,148,139,148,139,148,139,148,139,139,148,148,148,139,148,139,148,148,139,148,139,148,139,148,139,148,148,139,148,148,148,139,148,148,139,148,139,148,139,148,139,139,148,139,148,139,148,148,148,148,139,148,139,148,139,148,139,148,148,148,148,148,148,139,148,148,139,148,139,148,139,148,139,148,148,148,148,148,148,148,148,148,139,148,139,148,139,148,139,148,148,139,148,148,148,148,148,148,139,148,139,148,139,148,139,148,148,148,148,148,148,148,148,148,148,148,139,148,148,148,139,148,148,148,148,148,148,148,148,148,139,148,148,148,139,148,139,148,148,148,148,148,148,148,148,148,148,148,139,148,148,148,139,148,148,148,148,148,148,148,148,148,139,148,139,148,139,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,139,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,139,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,148,156,148,148,148,156,148,148,148,148,148,148,148,148,148,148,148,148,148,156,148,148,148,148,148,148,148,148,148,148,148,148,148,156,148,148,148,156,148,148,148,148,148,148,148,148,148,148,148,148,148,156,148,148,148,156,148,148,148,148,148,148,148,148,148,156,148,156,148,156,148,148,148,148,148,148,148,148,148,148,148,156,148,156,148,156,148,156,148,148,148,148,148,148,148,148,148,156,148,156,148,156,148,156,148,148,148,148,148,148,148,148,148,156,148,156,148,156,148,156,148,148,148,148,148,148,148,148,148,156,148,156,148,156,148,156,148,148,156,148,148,148,156,148,148,156,148,156,148,156,148,156,148,148,148,148,156,148,148,148,148,156,148,156,148,156,148,156,148,148,156,148,148,148,156,148,148,156,148,156,148,156,148,156,148,148,148,148,156,148,148,148,156,156,148,156,148,156,148,156,148,148,156,148,156,148,156,148,148,156,148,156,148,156,148,156,148,148,156,148,156,148,156,148,156,156,148,156,148,156,148,156,148,148,156,148,156,148,156,148,156,156,148,156,148,156,148,156,148,148,156,148,156,148,156,148,156,156,148,156,148,156,148,156,148,156,156,148,156,156,156,148,156,156,148,156,148,156,148,156,148,148,156,156,156,148,156,148,156,156,148,156,148,156,148,156,148,156,156,148,156,156,156,148,156,156,148,156,148,156,148,156,148,148,156,148,156,148,156,156,156,156,148,156,148,156,148,156,148,156,156,156,156,156,156,148,156,156,148,156,148,156,148,156,148,156,156,156,156,156,156,156,156,156,148,156,148,156,148,156,148,156,156,148,156,156,156,156,156,156,148,156,148,156,148,156,148,156,156,156,156,156,156,156,156,156,156,156,148,156,156,156,148,156,156,156,156,156,156,156,156,156,148,156,156,156,148,156,148,156,156,156,156,156,156,156,156,156,156,156,148,156,156,156,148,156,156,156,156,156,156,156,156,156,148,156,148,156,148,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,148,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,148,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,156,164,156,156,156,164,156,156,156,156,156,156,156,156,156,156,156,156,156,164,156,156,156,156,156,156,156,156,156,156,156,156,156,164,156,156,156,164,156,156,156,156,156,156,156,156,156,156,156,156,156,164,156,156,156,164,156,156,156,156,156,156,156,156,156,164,156,164,156,164,156,156,156,156,156,156,156,156,156,156,156,164,156,164,156,164,156,164,156,156,156,156,156,156,156,156,156,164,156,164,156,164,156,164,156,156,156,156,156,156,156,156,156,164,156,164,156,164,156,164,156,156,156,156,156,156,156,156,156,164,156,164,156,164,156,164,156,156,164,156,156,156,164,156,156,164,156,164,156,164,156,164,156,156,156,156,164,156,156,156,156,164,156,164,156,164,156,164,156,156,164,156,156,156,164,156,156,164,156,164,156,164,156,164,156,156,156,156,164,156,156,156,164,164,156,164,156,164,156,164,156,156,164,156,164,156,164,156,156,164,156,164,156,164,156,164,156,156,164,156,164,156,164,156,164,164,156,164,156,164,156,164,156,156,164,156,164,156,164,156,164,164,156,164,156,164,156,164,156,156,164,156,164,156,164,156,164,164,156,164,156,164,156,164,156,164,164,156,164,164,164,156,164,164,156,164,156,164,156,164,156,156,164,164,164,156,164,156,164,164,156,164,156,164,156,164,156,164,164,156,164,164,164,156,164,164,156,164,156,164,156,164,156,156,164,156,164,156,164,164,164,164,156,164,156,164,156,164,156,164,164,164,164,164,164,156,164,164,156,164,156,164,156,164,156,164,164,164,164,164,164,164,164,164,156,164,156,164,156,164,156,164,164,156,164,164,164,164,164,164,156,164,156,164,156,164,156,164,164,164,164,164,164,164,164,164,164,164,156,164,164,164,156,164,164,164,164,164,164,164,164,164,156,164,164,164,156,164,156,164,164,164,164,164,164,164,164,164,164,164,156,164,164,164,156,164,164,164,164,164,164,164,164,164,156,164,156,164,156,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,156,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,156,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,164,172,164,164,164,172,164,164,164,164,164,164,164,164,164,164,164,164,164,172,164,164,164,164,164,164,164,164,164,164,164,164,164,172,164,164,164,172,164,164,164,164,164,164,164,164,164,164,164,164,164,172,164,164,164,172,164,164,164,164,164,164,164,164,164,172,164,172,164,172,164,164,164,164,164,164,164,164,164,164,164,172,164,172,164,172,164,172,164,164,164,164,164,164,164,164,164,172,164,172,164,172,164,172,164,164,164,164,164,164,164,164,164,172,164,172,164,172,164,172,164,164,164,164,164,164,164,164,164,172,164,172,164,172,164,172,164,164,172,164,164,164,172,164,164,172,164,172,164,172,164,172,164,164,164,164,172,164,164,164,164,172,164,172,164,172,164,172,164,164,172,164,164,164,172,164,164,172,164,172,164,172,164,172,164,164,164,164,172,164,164,164,172,172,164,172,164,172,164,172,164,164,172,164,172,164,172,164,164,172,164,172,164,172,164,172,164,164,172,164,172,164,172,164,172,172,164,172,164,172,164,172,164,164,172,164,172,164,172,164,172,172,164,172,164,172,164,172,164,164,172,164,172,164,172,164,172,172,164,172,164,172,164,172,164,172,172,164,172,172,172,164,172,172,164,172,164,172,164,172,164,164,172,172,172,164,172,164,172,172,164,172,164,172,164,172,164,172,172,164,172,172,172,164,172,172,164,172,164,172,164,172,164,164,172,164,172,164,172,172,172,172,164,172,164,172,164,172,164,172,172,172,172,172,172,164,172,172,164,172,164,172,164,172,164,172,172,172,172,172,172,172,172,172,164,172,164,172,164,172,164,172,172,164,172,172,172,172,172,172,164,172,164,172,164,172,164,172,172,172,172,172,172,172,172,172,172,172,164,172,172,172,164,172,172,172,172,172,172,172,172,172,164,172,172,172,164,172,164,172,172,172,172,172,172,172,172,172,172,172,164,172,172,172,164,172,172,172,172,172,172,172,172,172,164,172,164,172,164,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,164,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,164,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,172,180,172,172,172,180,172,172,172,172,172,172,172,172,172,172,172,172,172,180,172,172,172,172,172,172,172,172,172,172,172,172,172,180,172,172,172,180,172,172,172,172,172,172,172,172,172,172,172,172,172,180,172,172,172,180,172,172,172,172,172,172,172,172,172,180,172,180,172,180,172,172,172,172,172,172,172,172,172,172,172,180,172,180,172,180,172,180,172,172,172,172,172,172,172,172,172,180,172,180,172,180,172,180,172,172,172,172,172,172,172,172,172,180,172,180,172,180,172,180,172,172,172,172,172,172,172,172,172,180,172,180,172,180,172,180,172,172,180,172,172,172,180,172,172,180,172,180,172,180,172,180,172,172,172,172,180,172,172,172,172,180,172,180,172,180,172,180,172,172,180,172,172,172,180,172,172,180,172,180,172,180,172,180,172,172,172,172,180,172,172,172,180,180,172,180,172,180,172,180,172,172,180,172,180,172,180,172,172,180,172,180,172,180,172,180,172,172,180,172,180,172,180,172,180,180,172,180,172,180,172,180,172,172,180,172,180,172,180,172,180,180,172,180,172,180,172,180,172,172,180,172,180,172,180,172,180,180,172,180,172,180,172,180,172,180,180,172,180,180,180,172,180,180,172,180,172,180,172,180,172,172,180,180,180,172,180,172,180,180,172,180,172,180,172,180,172,180,180,172,180,180,180,172,180,180,172,180,172,180,172,180,172,172,180,172,180,172,180,180,180,180,172,180,172,180,172,180,172,180,180,180,180,180,180,172,180,180,172,180,172,180,172,180,172,180,180,180,180,180,180,180,180,180,172,180,172,180,172,180,172,180,180,172,180,180,180,180,180,180,172,180,172,180,172,180,172,180,180,180,180,180,180,180,180,180,180,180,172,180,180,180,172,180,180,180,180,180,180,180,180,180,172,180,180,180,172,180,172,180,180,180,180,180,180,180,180,180,180,180,172,180,180,180,172,180,180,180,180,180,180,180,180,180,172,180,172,180,172,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,172,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,172,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,189,180,180,180,189,180,180,180,180,180,180,180,180,180,180,180,180,180,189,180,180,180,180,180,180,180,180,180,180,180,180,180,189,180,180,180,189,180,180,180,180,180,180,180,180,180,180,180,180,180,189,180,180,180,189,180,180,180,180,180,180,180,180,180,189,180,189,180,189,180,180,180,180,180,180,180,180,180,180,180,189,180,189,180,189,180,189,180,180,180,180,180,180,180,180,180,189,180,189,180,189,180,189,180,180,180,180,180,180,180,180,180,189,180,189,180,189,180,189,180,180,180,180,180,180,180,180,180,189,180,189,180,189,180,189,180,180,189,180,180,180,189,180,180,189,180,189,180,189,180,189,180,180,180,180,189,180,180,180,180,189,180,189,180,189,180,189,180,180,189,180,180,180,189,180,180,189,180,189,180,189,180,189,180,180,180,180,189,180,180,180,189,189,180,189,180,189,180,189,180,180,189,180,189,180,189,180,180,189,180,189,180,189,180,189,180,180,189,180,189,180,189,180,189,189,180,189,180,189,180,189,180,180,189,180,189,180,189,180,189,189,180,189,180,189,180,189,180,180,189,180,189,180,189,180,189,189,180,189,180,189,180,189,180,189,189,180,189,189,189,180,189,189,180,189,180,189,180,189,180,180,189,189,189,180,189,180,189,189,180,189,180,189,180,189,180,189,189,180,189,189,189,180,189,189,180,189,180,189,180,189,180,180,189,180,189,180,189,189,189,189,180,189,180,189,180,189,180,189,189,189,189,189,189,180,189,189,180,189,180,189,180,189,180,189,189,189,189,189,189,189,189,189,180,189,180,189,180,189,180,189,189,180,189,189,189,189,189,189,180,189,180,189,180,189,180,189,189,189,189,189,189,189,189,189,189,189,180,189,189,189,180,189,189,189,189,189,189,189,189,189,180,189,189,189,180,189,180,189,189,189,189,189,189,189,189,189,189,189,180,189,189,189,180,189,189,189,189,189,189,189,189,189,180,189,180,189,180,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,180,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,180,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,189,197,189,189,189,197,189,189,189,189,189,189,189,189,189,189,189,189,189,197,189,189,189,189,189,189,189,189,189,189,189,189,189,197,189,189,189,197,189,189,189,189,189,189,189,189,189,189,189,189,189,197,189,189,189,197,189,189,189,189,189,189,189,189,189,197,189,197,189,197,189,189,189,189,189,189,189,189,189,189,189,197,189,197,189,197,189,197,189,189,189,189,189,189,189,189,189,197,189,197,189,197,189,197,189,189,189,189,189,189,189,189,189,197,189,197,189,197,189,197,189,189,189,189,189,189,189,189,189,197,189,197,189,197,189,197,189,189,197,189,189,189,197,189,189,197,189,197,189,197,189,197,189,189,189,189,197,189,189,189,189,197,189,197,189,197,189,197,189,189,197,189,189,189,197,189,189,197,189,197,189,197,189,197,189,189,189,189,197,189,189,189,197,197,189,197,189,197,189,197,189,189,197,189,197,189,197,189,189,197,189,197,189,197,189,197,189,189,197,189,197,189,197,189,197,197,189,197,189,197,189,197,189,189,197,189,197,189,197,189,197,197,189,197,189,197,189,197,189,189,197,189,197,189,197,189,197,197,189,197,189,197,189,197,189,197,197,189,197,197,197,189,197,197,189,197,189,197,189,197,189,189,197,197,197,189,197,189,197,197,189,197,189,197,189,197,189,197,197,189,197,197,197,189,197,197,189,197,189,197,189,197,189,189,197,189,197,189,197,197,197,197,189,197,189,197,189,197,189,197,197,197,197,197,197,189,197,197,189,197,189,197,189,197,189,197,197,197,197,197,197,197,197,197,189,197,189,197,189,197,189,197,197,189,197,197,197,197,197,197,189,197,189,197,189,197,189,197,197,197,197,197,197,197,197,197,197,197,189,197,197,197,189,197,197,197,197,197,197,197,197,197,189,197,197,197,189,197,189,197,197,197,197,197,197,197,197,197,197,197,189,197,197,197,189,197,197,197,197,197,197,197,197,197,189,197,189,197,189,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,189,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,189,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,197,205,197,197,197,205,197,197,197,197,197,197,197,197,197,197,197,197,197,205,197,197,197,197,197,197,197,197,197,197,197,197,197,205,197,197,197,205,197,197,197,197,197,197,197,197,197,197,197,197,197,205,197,197,197,205,197,197,197,197,197,197,197,197,197,205,197,205,197,205,197,197,197,197,197,197,197,197,197,197,197,205,197,205,197,205,197,205,197,197,197,197,197,197,197,197,197,205,197,205,197,205,197,205,197,197,197,197,197,197,197,197,197,205,197,205,197,205,197,205,197,197,197,197,197,197,197,197,197,205,197,205,197,205,197,205,197,197,205,197,197,197,205,197,197,205,197,205,197,205,197,205,197,197,197,197,205,197,197,197,197,205,197,205,197,205,197,205,197,197,205,197,197,197,205,197,197,205,197,205,197,205,197,205,197,197,197,197,205,197,197,197,205,205,197,205,197,205,197,205,197,197,205,197,205,197,205,197,197,205,197,205,197,205,197,205,197,197,205,197,205,197,205,197,205,205,197,205,197,205,197,205,197,197,205,197,205,197,205,197,205,205,197,205,197,205,197,205,197,197,205,197,205,197,205,197,205,205,197,205,197,205,197,205,197,205,205,197,205,205,205,197,205,205,197,205,197,205,197,205,197,197,205,205,205,197,205,197,205,205,197,205,197,205,197,205,197,205,205,197,205,205,205,197,205,205,197,205,197,205,197,205,197,197,205,197,205,197,205,205,205,205,197,205,197,205,197,205,197,205,205,205,205,205,205,197,205,205,197,205,197,205,197,205,197,205,205,205,205,205,205,205,205,205,197,205,197,205,197,205,197,205,205,197,205,205,205,205,205,205,197,205,197,205,197,205,197,205,205,205,205,205,205,205,205,205,205,205,197,205,205,205,197,205,205,205,205,205,205,205,205,205,197,205,205,205,197,205,197,205,205,205,205,205,205,205,205,205,205,205,197,205,205,205,197,205,205,205,205,205,205,205,205,205,197,205,197,205,197,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,197,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,197,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,213,205,205,205,213,205,205,205,205,205,205,205,205,205,205,205,205,205,213,205,205,205,205,205,205,205,205,205,205,205,205,205,213,205,205,205,213,205,205,205,205,205,205,205,205,205,205,205,205,205,213,205,205,205,213,205,205,205,205,205,205,205,205,205,213,205,213,205,213,205,205,205,205,205,205,205,205,205,205,205,213,205,213,205,213,205,213,205,205,205,205,205,205,205,205,205,213,205,213,205,213,205,213,205,205,205,205,205,205,205,205,205,213,205,213,205,213,205,213,205,205,205,205,205,205,205,205,205,213,205,213,205,213,205,213,205,205,213,205,205,205,213,205,205,213,205,213,205,213,205,213,205,205,205,205,213,205,205,205,205,213,205,213,205,213,205,213,205,205,213,205,205,205,213,205,205,213,205,213,205,213,205,213,205,205,205,205,213,205,205,205,213,213,205,213,205,213,205,213,205,205,213,205,213,205,213,205,205,213,205,213,205,213,205,213,205,205,213,205,213,205,213,205,213,213,205,213,205,213,205,213,205,205,213,205,213,205,213,205,213,213,205,213,205,213,205,213,205,205,213,205,213,205,213,205,213,213,205,213,205,213,205,213,205,213,213,205,213,213,213,205,213,213,205,213,205,213,205,213,205,205,213,213,213,205,213,205,213,213,205,213,205,213,205,213,205,213,213,205,213,213,213,205,213,213,205,213,205,213,205,213,205,205,213,205,213,205,213,213,213,213,205,213,205,213,205,213,205,213,213,213,213,213,213,205,213,213,205,213,205,213,205,213,205,213,213,213,213,213,213,213,213,213,205,213,205,213,205,213,205,213,213,205,213,213,213,213,213,213,205,213,205,213,205,213,205,213,213,213,213,213,213,213,213,213,213,213,205,213,213,213,205,213,213,213,213,213,213,213,213,213,205,213,213,213,205,213,205,213,213,213,213,213,213,213,213,213,213,213,205,213,213,213,205,213,213,213,213,213,213,213,213,213,205,213,205,213,205,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,205,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,205,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,222,213,213,213,222,213,213,213,213,213,213,213,213,213,213,213,213,213,222,213,213,213,213,213,213,213,213,213,213,213,213,213,222,213,213,213,222,213,213,213,213,213,213,213,213,213,213,213,213,213,222,213,213,213,222,213,213,213,213,213,213,213,213,213,222,213,222,213,222,213,213,213,213,213,213,213,213,213,213,213,222,213,222,213,222,213,222,213,213,213,213,213,213,213,213,213,222,213,222,213,222,213,222,213,213,213,213,213,213,213,213,213,222,213,222,213,222,213,222,213,213,213,213,213,213,213,213,213,222,213,222,213,222,213,222,213,213,222,213,213,213,222,213,213,222,213,222,213,222,213,222,213,213,213,213,222,213,213,213,213,222,213,222,213,222,213,222,213,213,222,213,213,213,222,213,213,222,213,222,213,222,213,222,213,213,213,213,222,213,213,213,222,222,213,222,213,222,213,222,213,213,222,213,222,213,222,213,213,222,213,222,213,222,213,222,213,213,222,213,222,213,222,213,222,222,213,222,213,222,213,222,213,213,222,213,222,213,222,213,222,222,213,222,213,222,213,222,213,213,222,213,222,213,222,213,222,222,213,222,213,222,213,222,213,222,222,213,222,222,222,213,222,222,213,222,213,222,213,222,213,213,222,222,222,213,222,213,222,222,213,222,213,222,213,222,213,222,222,213,222,222,222,213,222,222,213,222,213,222,213,222,213,213,222,213,222,213,222,222,222,222,213,222,213,222,213,222,213,222,222,222,222,222,222,213,222,222,213,222,213,222,213,222,213,222,222,222,222,222,222,222,222,222,213,222,213,222,213,222,213,222,222,213,222,222,222,222,222,222,213,222,213,222,213,222,213,222,222,222,222,222,222,222,222,222,222,222,213,222,222,222,213,222,222,222,222,222,222,222,222,222,213,222,222,222,213,222,213,222,222,222,222,222,222,222,222,222,222,222,213,222,222,222,213,222,222,222,222,222,222,222,222,222,213,222,213,222,213,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,213,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,213,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,230,222,222,222,230,222,222,222,222,222,222,222,222,222,222,222,222,222,230,222,222,222,222,222,222,222,222,222,222,222,222,222,230,222,222,222,230,222,222,222,222,222,222,222,222,222,222,222,222,222,230,222,222,222,230,222,222,222,222,222,222,222,222,222,230,222,230,222,230,222,222,222,222,222,222,222,222,222,222,222,230,222,230,222,230,222,230,222,222,222,222,222,222,222,222,222,230,222,230,222,230,222,230,222,222,222,222,222,222,222,222,222,230,222,230,222,230,222,230,222,222,222,222,222,222,222,222,222,230,222,230,222,230,222,230,222,222,230,222,222,222,230,222,222,230,222,230,222,230,222,230,222,222,222,222,230,222,222,222,222,230,222,230,222,230,222,230,222,222,230,222,222,222,230,222,222,230,222,230,222,230,222,230,222,222,222,222,230,222,222,222,230,230,222,230,222,230,222,230,222,222,230,222,230,222,230,222,222,230,222,230,222,230,222,230,222,222,230,222,230,222,230,222,230,230,222,230,222,230,222,230,222,222,230,222,230,222,230,222,230,230,222,230,222,230,222,230,222,222,230,222,230,222,230,222,230,230,222,230,222,230,222,230,222,230,230,222,230,230,230,222,230,230,222,230,222,230,222,230,222,222,230,230,230,222,230,222,230,230,222,230,222,230,222,230,222,230,230,222,230,230,230,222,230,230,222,230,222,230,222,230,222,222,230,222,230,222,230,230,230,230,222,230,222,230,222,230,222,230,230,230,230,230,230,222,230,230,222,230,222,230,222,230,222,230,230,230,230,230,230,230,230,230,222,230,222,230,222,230,222,230,230,222,230,230,230,230,230,230,222,230,222,230,222,230,222,230,230,230,230,230,230,230,230,230,230,230,222,230,230,230,222,230,230,230,230,230,230,230,230,230,222,230,230,230,222,230,222,230,230,230,230,230,230,230,230,230,230,230,222,230,230,230,222,230,230,230,230,230,230,230,230,230,222,230,222,230,222,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,222,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,222,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,238,230,230,230,238,230,230,230,230,230,230,230,230,230,230,230,230,230,238,230,230,230,230,230,230,230,230,230,230,230,230,230,238,230,230,230,238,230,230,230,230,230,230,230,230,230,230,230,230,230,238,230,230,230,238,230,230,230,230,230,230,230,230,230,238,230,238,230,238,230,230,230,230,230,230,230,230,230,230,230,238,230,238,230,238,230,238,230,230,230,230,230,230,230,230,230,238,230,238,230,238,230,238,230,230,230,230,230,230,230,230,230,238,230,238,230,238,230,238,230,230,230,230,230,230,230,230,230,238,230,238,230,238,230,238,230,230,238,230,230,230,238,230,230,238,230,238,230,238,230,238,230,230,230,230,238,230,230,230,230,238,230,238,230,238,230,238,230,230,238,230,230,230,238,230,230,238,230,238,230,238,230,238,230,230,230,230,238,230,230,230,238,238,230,238,230,238,230,238,230,230,238,230,238,230,238,230,230,238,230,238,230,238,230,238,230,230,238,230,238,230,238,230,238,238,230,238,230,238,230,238,230,230,238,230,238,230,238,230,238,238,230,238,230,238,230,238,230,230,238,230,238,230,238,230,238,238,230,238,230,238,230,238,230,238,238,230,238,238,238,230,238,238,230,238,230,238,230,238,230,230,238,238,238,230,238,230,238,238,230,238,230,238,230,238,230,238,238,230,238,238,238,230,238,238,230,238,230,238,230,238,230,230,238,230,238,230,238,238,238,238,230,238,230,238,230,238,230,238,238,238,238,238,238,230,238,238,230,238,230,238,230,238,230,238,238,238,238,238,238,238,238,238,230,238,230,238,230,238,230,238,238,230,238,238,238,238,238,238,230,238,230,238,230,238,230,238,238,238,238,238,238,238,238,238,238,238,230,238,238,238,230,238,238,238,238,238,238,238,238,238,230,238,238,238,230,238,230,238,238,238,238,238,238,238,238,238,238,238,230,238,238,238,230,238,238,238,238,238,238,238,238,238,230,238,230,238,230,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,230,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,230,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,238,246,238,238,238,246,238,238,238,238,238,238,238,238,238,238,238,238,238,246,238,238,238,238,238,238,238,238,238,238,238,238,238,246,238,238,238,246,238,238,238,238,238,238,238,238,238,238,238,238,238,246,238,238,238,246,238,238,238,238,238,238,238,238,238,246,238,246,238,246,238,238,238,238,238,238,238,238,238,238,238,246,238,246,238,246,238,246,238,238,238,238,238,238,238,238,238,246,238,246,238,246,238,246,238,238,238,238,238,238,238,238,238,246,238,246,238,246,238,246,238,238,238,238,238,238,238,238,238,246,238,246,238,246,238,246,238,238,246,238,238,238,246,238,238,246,238,246,238,246,238,246,238,238,238,238,246,238,238,238,238,246,238,246,238,246,238,246,238,238,246,238,238,238,246,238,238,246,238,246,238,246,238,246,238,238,238,238,246,238,238,238,246,246,238,246,238,246,238,246,238,238,246,238,246,238,246,238,238,246,238,246,238,246,238,246,238,238,246,238,246,238,246,238,246,246,238,246,238,246,238,246,238,238,246,238,246,238,246,238,246,246,238,246,238,246,238,246,238,238,246,238,246,238,246,238,246,246,238,246,238,246,238,246,238,246,246,238,246,246,246,238,246,246,238,246,238,246,238,246,238,238,246,246,246,238,246,238,246,246,238,246,238,246,238,246,238,246,246,238,246,246,246,238,246,246,238,246,238,246,24238,246,238,238,246,238,246,238,246,246,246,246,238,246,238,246,238,246,238,246,246,246,246,246,246,238,246,246,238,246,238,246,238,246,238,246,246,246,246,246,246,246,246,246,238,246,238,246,238,246,238,246,246,238,246,246,246,246,246,246,238,246,238,246,238,246,238,246,246,246,246,246,246,246,246,246,246,246,238,246,246,246,238,246,246,246,246,246,246,246,246,246,238,246,246,246,238,246,238,246,246,246,246,246,246,246,246,246,246,246,238,246,246,246,238,246,246,246,246,246,246,246,246,246,238,246,238,246,238,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,238,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,238,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,255,246,246,246,255,246,246,246,246,246,246,246,246,246,246,246,246,246,255,246,246,246,246,246,246,246,246,246,246,246,246,246,255,246,246,246,255,246,246,246,246,246,246,246,246,246,246,246,246,246,255,246,246,246,255,246,246,246,246,246,246,246,246,246,255,246,255,246,255,246,246,246,246,246,246,246,246,246,246,246,255,246,255,246,255,246,255,246,246,246,246,246,246,246,246,246,255,246,255,246,255,246,255,246,246,246,246,246,246,246,246,246,255,246,255,246,255,246,255,246,246,246,246,246,246,246,246,246,255,246,255,246,255,246,255,246,246,255,246,246,246,255,246,246,255,246,255,246,255,246,255,246,246,246,246,255,246,246,246,246,255,246,255,246,255,246,255,246,246,255,246,246,246,255,246,246,255,246,255,246,255,246,255,246,246,246,246,255,246,246,246,255,255,246,255,246,255,246,255,246,246,255,246,255,246,255,246,246,255,246,255,246,255,246,255,246,246,255,246,255,246,255,246,255,255,246,255,246,255,246,255,246,246,255,246,255,246,255,246,255,255,246,255,246,255,246,255,246,246,255,246,255,246,255,246,255,255,246,255,246,255,246,255,246,255,255,246,255,255,255,246,255,255,246,255,246,255,246,255,246,246,255,255,255,246,255,246,255,255,246,255,246,255,246,255,246,255,255,246,255,255,255,246,255,255,246,255,246,255,246,255,246,246,255,246,255,246,255,255,255,255,246,255,246,255,246,255,246,255,255,255,255,255,255,246,255,255,246,255,246,255,246,255,246,255,255,255,255,255,255,255,255,255,246,255,246,255,246,255,246,255,255,246,255,255,255,255,255,255,246,255,246,255,246,255,246,255,255,255,255,255,255,255,255,255,255,255,246,255,255,255,246,255,255,255,255,255,255,255,255,255,246,255,255,255,246,255,246,255,255,255,255,255,255,255,255,255,255,255,246,255,255,255,246,255,255,255,255,255,255,255,255,255,246,255,246,255,246,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,246,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}根據(jù)本發(fā)明,除了可在16位真彩色下平滑顯示24位真彩色圖像,還可以在16位真彩色下平滑顯示32位真彩色圖像。與顯示24位真彩色圖像的不同之處僅在于,對(duì)于32位真彩色(RGBA)的顯示,除了R、G、B顏色各占8位,還包括8位(l字節(jié))的透明位A,而對(duì)透明位的相關(guān)處理可以采用已知的技術(shù)。以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對(duì)本發(fā)明所作的進(jìn)一步詳細(xì)說(shuō)明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說(shuō)明。對(duì)于本發(fā)明所屬
      技術(shù)領(lǐng)域
      的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡(jiǎn)單推演或替換,都應(yīng)當(dāng)視為屬于本發(fā)明的保護(hù)范圍。權(quán)利要求一種16位真彩色下平滑顯示24、32位真彩色圖像的方法,其特征在于,包括以下步驟a.獲得點(diǎn)在圖像中的紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x以及縱坐標(biāo)y;b.使用顏色值查找函數(shù),所述顏色值查找函數(shù)根據(jù)紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y來(lái)查找一個(gè)顏色對(duì)應(yīng)表,所述顏色對(duì)應(yīng)表相當(dāng)于一個(gè)三維數(shù)組,其由預(yù)定好數(shù)值的多個(gè)數(shù)組元素組成,所述單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y分別確定各數(shù)組元素的三個(gè)維的下標(biāo),將由此所確定的數(shù)組元素的數(shù)值作為點(diǎn)的單種顏色值的轉(zhuǎn)換值;c.根據(jù)轉(zhuǎn)換后的紅、綠、藍(lán)三種顏色值,確定16位真彩色下所顯示的顏色值。2.如權(quán)利要求1所述的方法,其特征在于,所述16位真彩色采用ARGB1555模式,1、5、5、5為透明、紅、綠、藍(lán)各顏色分量所占位數(shù)。3.如權(quán)利要求1或2所述的方法,其特征在于,所述三維數(shù)組的結(jié)構(gòu)為[256][8][8],其中[256]、[8]、[8]分別為所述單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y所對(duì)應(yīng)的維。4.如權(quán)利要求3所述的方法,其特征在于,所述步驟b中,采用對(duì)坐標(biāo)值進(jìn)行除8取模運(yùn)算來(lái)確定對(duì)應(yīng)維的下標(biāo)。5.如權(quán)利要求3所述的方法,其特征在于,所述步驟b中,采用對(duì)坐標(biāo)值進(jìn)行移位運(yùn)算來(lái)確定對(duì)應(yīng)維的下標(biāo)。6.如權(quán)利要求3所述的方法,其特征在于,所述步驟b中,當(dāng)單種原始顏色值color為0xff時(shí),所述顏色值查找函數(shù)返回轉(zhuǎn)換值為0xFF。全文摘要本發(fā)明公開了一種16位真彩色下平滑顯示24、32位真彩色圖像的方法,包括以下步驟a.獲得點(diǎn)在圖像中的紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x以及縱坐標(biāo)y;b.使用顏色值查找函數(shù),所述顏色值查找函數(shù)根據(jù)紅/綠/藍(lán)單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y來(lái)查找一個(gè)顏色對(duì)應(yīng)表,顏色對(duì)應(yīng)表相當(dāng)于一個(gè)三維數(shù)組,其由預(yù)定好數(shù)值的多個(gè)數(shù)組元素組成,單種原始顏色值color、橫坐標(biāo)x和縱坐標(biāo)y分別確定各數(shù)組元素的三個(gè)維的下標(biāo),將由此所確定的數(shù)組元素的數(shù)值作為點(diǎn)的單種顏色值的轉(zhuǎn)換值;c.根據(jù)轉(zhuǎn)換后的紅、綠、藍(lán)三種顏色值,確定16位真彩色下所顯示的顏色值。本發(fā)明能在16位真彩色下平滑顯示24、32位真彩色圖像,有效避免波紋、失真。文檔編號(hào)H04N5/445GK101742171SQ201010004508公開日2010年6月16日申請(qǐng)日期2010年1月7日優(yōu)先權(quán)日2009年8月28日發(fā)明者涂睿,王天春,胡勇,陳坤江申請(qǐng)人:深圳市佳創(chuàng)視訊技術(shù)股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1