⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨


官方(fāng)論壇
官方(fāng)淘寶(bǎo)
官方(fāng)博客
微信(xìn)公衆号(hào)
點(diǎn)擊聯系(xì)吴工 點(diǎn)擊聯系(xì)周老(lǎo)师(shī)
您的(de)當前(qián)位置:主(zhǔ)页(yè)-old > 産品中(zhōng)心(xīn) > 承接項目 >

XILINX FIFO写不(bù)進(jìn)去(qù)的(de)問(wèn)題(tí)(实用(yòng)分(fēn)享)

發(fà)布(bù)时(shí)間(jiān):2023-06-29   作者(zhě):lanlumei 浏覽量(liàng):

XILINX FIFO写不(bù)進(jìn)去(qù)的(de)問(wèn)題(tí)(实用(yòng)分(fēn)享)



本(běn)文(wén)为(wèi)明(míng)德揚原創文(wén)章(zhāng),轉(zhuǎn)载請注明(míng)出(chū)处!

一(yī)、摘要(yào)

明(míng)德揚(MDY)在(zài)某个(gè)XILINX項目中(zhōng),偶然性(xìng)出(chū)現(xiàn)開(kāi)機(jī)後(hòu)通(tòng)信(xìn)出(chū)錯的(de)情(qíng)形,具體(tǐ)表(biǎo)現(xiàn)为(wèi)反(fǎn)複開(kāi)機(jī)测試400次(cì)後(hòu),約有(yǒu)1~2次(cì)通(tòng)信(xìn)异(yì)常,數據(jù)發(fà)不(bù)出(chū)去(qù)。經(jīng)过(guò)定(dìng)位,是(shì)某个(gè)FIFO出(chū)現(xiàn)异(yì)常,时(shí)鐘(zhōng)正(zhèng)常、複位无效、写使能(néng)有(yǒu)效的(de)情(qíng)況,空信(xìn)号(hào)empty一(yī)直(zhí)为(wèi)1,即一(yī)直(zhí)保持(chí)为(wèi)空的(de)問(wèn)題(tí)。


二(èr)、項目背景

FIFO是(shì)FPGA項目中(zhōng)使用(yòng)最(zuì)多(duō)的(de)IP核,一(yī)个(gè)項目使用(yòng)幾(jǐ)个(gè),甚至(zhì)是(shì)幾(jǐ)十(shí)个(gè)FIFO都是(shì)很正(zhèng)常的(de)。通(tòng)常情(qíng)況下(xià),每个(gè)FIFO的(de)參數,特(tè)别是(shì)位宽(kuān)和(hé)深度(dù),是(shì)不(bù)同(tóng)的(de)。如(rú)果(guǒ)按照通(tòng)常做法,每種(zhǒng)位宽(kuān)和(hé)參數,都要(yào)打(dǎ)開(kāi)FIFO IP核界面(miàn)、命名(命名不(bù)好(hǎo)不(bù)好(hǎo)分(fēn)辨需要(yào)的(de)FIFO)、設置參數、生(shēng)成(chéng)并編譯IP核,工作量(liàng)可(kě)以(yǐ)想(xiǎng)象(xiàng)出(chū)来(lái)是(shì)非(fēi)常多(duō)的(de)。


明(míng)德揚(MDY)在(zài)2021年(nián)承担了(le)多(duō)个(gè)基于(yú)XILINX芯片(piàn)的(de)研發(fà)項目,包(bāo)括VPX网(wǎng)絡透明(míng)傳輸項目(芯片(piàn)为(wèi)XC7K325T-2FBG900)、某高(gāo)端测試儀項目(芯片(piàn)为(wèi)XCKU060-FFVA1156)、某网(wǎng)閘設備項目(芯片(piàn)为(wèi)XC7Z030-FBG676)等,另(lìng)外(wài),明(míng)德揚自(zì)研了(le)基于(yú)XC7K325T-2FBG900和(hé)基于(yú)XC7K410T-2FBG900芯片(piàn)的(de)核心(xīn)板,在(zài)XILINX研發(fà)領域擁有(yǒu)豐富的(de)經(jīng)验(yàn)。


对(duì)于(yú)我(wǒ)们(men)專門(mén)承接項目的(de)团(tuán)隊,絕不(bù)可(kě)忍受如(rú)此(cǐ)重(zhòng)複、枯燥、容易出(chū)錯的(de)工作。經(jīng)过(guò)精心(xīn)研究,終(zhōng)于(yú)發(fà)現(xiàn)XILINX的(de)原語(yǔ):xpm_fifo_async,是(shì)可(kě)以(yǐ)可(kě)參數化(huà)FIFO的(de)位宽(kuān)和(hé)深度(dù)的(de)。即在(zài)設計(jì)时(shí),不(bù)用(yòng)生(shēng)成(chéng)FIFO IP,直(zhí)接例化(huà)xpm_fifo_async,例化(huà)时(shí)定(dìng)義好(hǎo)位宽(kuān)和(hé)深度(dù),就(jiù)可(kě)以(yǐ)使用(yòng)了(le)。關(guān)于(yú)具體(tǐ)的(de)使用(yòng)方(fāng)法,可(kě)以(yǐ)留意(yì)我(wǒ)们(men)新出(chū)的(de)文(wén)章(zhāng)教程。

本(běn)問(wèn)題(tí)的(de)出(chū)現(xiàn),就(jiù)是(shì)在(zài)使用(yòng)这(zhè)个(gè)xpm_fifo_async时(shí)出(chū)現(xiàn)的(de)。


三(sān)、問(wèn)題(tí)現(xiàn)象(xiàng)

FPGA問(wèn)題(tí)都不(bù)好(hǎo)定(dìng)位,特(tè)别是(shì)偶然性(xìng)出(chū)錯的(de)問(wèn)題(tí),即使複現(xiàn)問(wèn)題(tí)都要(yào)花大量(liàng)精力。本(běn)問(wèn)題(tí)出(chū)現(xiàn)的(de)概率小于(yú)1%,即使概率如(rú)此(cǐ)之低,也(yě)是(shì)不(bù)得不(bù)去(qù)定(dìng)位去(qù)做的(de)工作。

在(zài)花費了(le)一(yī)个(gè)月(yuè)的(de)时(shí)間(jiān),才定(dìng)位到(dào)某个(gè)FIFO出(chū)現(xiàn)异(yì)常。为(wèi)更(gèng)加细(xì)致(zhì)地(dì)确認是(shì)FIFO哪里(lǐ)出(chū)錯,使用(yòng)ILA抓取(qǔ)FIFO的(de)信(xìn)号(hào),包(bāo)括写使能(néng)、複位、空指示信(xìn)号(hào)等。



               如(rú)上(shàng)图(tú)所(suǒ)示,在(zài)FIFO写使能(néng)有(yǒu)效时(shí),empty信(xìn)号(hào)仍然保持(chí)为(wèi)空狀态,導致(zhì)數據(jù)无法傳輸。更(gèng)奇怪的(de)是(shì),即使複位了(le)这(zhè)个(gè)FIFO,仍然是(shì)同(tóng)樣(yàng)現(xiàn)象(xiàng)。


四(sì)問(wèn)題(tí)分(fēn)析

該問(wèn)題(tí)非(fēi)常之奇怪,從邏輯角(jiǎo)度(dù)講,时(shí)序是(shì)正(zhèng)确的(de),那(nà)麼(me)IP核就(jiù)應(yìng)該正(zhèng)确,是(shì)不(bù)應(yìng)該出(chū)現(xiàn)此(cǐ)問(wèn)題(tí)的(de)。


怀疑是(shì)FIFO使用(yòng)不(bù)正(zhèng)确,如(rú)FIFO滿後(hòu)還(huán)在(zài)写,或(huò)者(zhě)FIFO空後(hòu)仍在(zài)读(dú)。特(tè)意(yì)在(zài)ILA觸發(fà)写使能(néng)、写滿信(xìn)号(hào)同(tóng)时(shí)为(wèi)1,看(kàn)两(liǎng)者(zhě)是(shì)否有(yǒu)同(tóng)时(shí)有(yǒu)效,沒(méi)有(yǒu)觸發(fà)到(dào),说(shuō)明(míng)沒(méi)有(yǒu)問(wèn)題(tí)。


怀疑是(shì)写时(shí)序不(bù)正(zhèng)确:为(wèi)此(cǐ),我(wǒ)们(men)還(huán)反(fǎn)反(fǎn)複複地(dì)观测写时(shí)序,捕捉開(kāi)機(jī)後(hòu)的(de)第(dì)一(yī)个(gè)写时(shí)序,也(yě)是(shì)沒(méi)問(wèn)題(tí)的(de)。


怀疑处于(yú)複位狀态:为(wèi)此(cǐ)观测複位信(xìn)号(hào),發(fà)現(xiàn)沒(méi)有(yǒu)处于(yú)複位狀态,沒(méi)有(yǒu)問(wèn)題(tí)。


在(zài)思(sī)考了(le)多(duō)種(zhǒng)辦(bàn)法後(hòu),問(wèn)題(tí)沒(méi)有(yǒu)解(jiě)決。为(wèi)此(cǐ),不(bù)得不(bù)認真(zhēn)查閱xpm_fifo_async的(de)官方(fāng)資料,查看(kàn)步驟:

vivodo-PROJECT MANAGER-Language Templates-Verilog-Xilinx Parameterized Macros(XPM)-XPM-XPM_FIFO-Asynchronous FIFO (xpm_ fifo async)。


     通(tòng)过(guò)調閱vivado中(zhōng)有(yǒu)關(guān)FIFO的(de)说(shuō)明(míng),終(zhōng)于(yú)發(fà)現(xiàn)了(le)問(wèn)題(tí)。



                                           如(rú)上(shàng)图(tú)所(suǒ)示,複位信(xìn)号(hào)rst要(yào)求同(tóng)步于(yú)WR_CLK时(shí)鐘(zhōng)。而(ér)我(wǒ)们(men)的(de)複位信(xìn)号(hào)是(shì)异(yì)步信(xìn)号(hào),不(bù)滿足要(yào)求。


五(wǔ)、解(jiě)決方(fāng)法

对(duì) FIFO中(zhōng)的(de)複位信(xìn)号(hào)進(jìn)行异(yì)步信(xìn)号(hào)同(tóng)步化(huà)处理,即对(duì)複位信(xìn)号(hào)進(jìn)行延遲两(liǎng)拍处理,如(rú)下(xià)图(tú)所(suǒ)示:



 上(shàng)图(tú)中(zhōng),aclr是(shì)异(yì)步複位信(xìn)号(hào),經(jīng)过(guò)上(shàng)图(tú)中(zhōng)的(de)148~153行的(de)代(dài)碼,将該信(xìn)号(hào)同(tóng)步化(huà),同(tóng)步化(huà)後(hòu)的(de)rst_ff3可(kě)以(yǐ)認为(wèi)同(tóng)步于(yú)写时(shí)鐘(zhōng)。将該信(xìn)号(hào)連(lián)接到(dào)rst中(zhōng),如(rú)图(tú)中(zhōng)的(de)第(dì)142行。


每3分(fēn)鐘(zhōng)重(zhòng)啟一(yī)次(cì),經(jīng)过(guò)三(sān)天(tiān)的(de)嚴苛测試,再沒(méi)有(yǒu)出(chū)現(xiàn)通(tòng)信(xìn)异(yì)常問(wèn)題(tí),問(wèn)題(tí)得到(dào)解(jiě)決!!!




温(wēn)馨提(tí)示:明(míng)德揚擅长的(de)項目
主(zhǔ)要(yào)包(bāo)括的(de)方(fāng)向(xiàng)有(yǒu)以(yǐ)下(xià)幾(jǐ)个(gè)方(fāng)面(miàn):


1. MIPI視頻拼接


2. SLVS-EC轉(zhuǎn)MIPI接口(kǒu)(IMX472 IMX492)

3. PCIE采集系(xì)統

4. 图(tú)像項目

5. 高(gāo)速多(duō)通(tòng)道(dào)ADDA系(xì)統

6. 基于(yú)FPGA板卡(kǎ)研發(fà)

7. 多(duō)通(tòng)道(dào)高(gāo)靈敏電(diàn)荷放(fàng)大器

8.射頻前(qián)端

http://old.mdy-edu.com/xmucjie/2023/0201/1865.html

點(diǎn)擊→了(le)解(jiě)項目承接業务詳情(qíng)

需要(yào)了(le)解(jiě)相關(guān)信(xìn)息可(kě)以(yǐ)聯系(xì):吴老(lǎo)师(shī)18022857217(微信(xìn)同(tóng)号(hào))

   拓展(zhǎn)閱读(dú)
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨