亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? routingarea.cpp

?? 簡單迷宮布線器源碼
?? CPP
字號:

#include	<stdlib.h>
#include	<fstream.h>
#include	<assert.h>
#include	<stdarg.h>
#include    <stdio.h>
#include    <math.h>
#include	<time.h>
#include    "routing_area.h"
//using namespace std;

#define     EMPTY           -100000
#define     PORTBASE        1000000

CRoutingArea::~CRoutingArea()
{
 //   delete[] m_iNetPriority;
 //   delete[] m_iPortAmount;
 //   delete[] m_pRoutingCells;
}

bool CRoutingArea::isFinished()
{
    int     i;
    for (i=0; i<m_iNetAmount; i++)
    {
        if (isRouted(i)==0)
            return false;
    }
    return true;
}

bool CRoutingArea::isnotBottleNeck(int iXPos,int iYPos)
{
    int     iTmpXPos, iTmpYPos,iOthers,iPreNet;

    if (getCell(iXPos,iYPos)>=PORTBASE)
        return false;
    iPreNet=getCell(iXPos,iYPos);

    iOthers=0;
    iTmpXPos=iXPos-1;       iTmpYPos=iYPos-1;
    if (iTmpXPos>=0 && iTmpYPos>=0)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos;       iTmpYPos=iYPos-1;
    if (iTmpYPos>=0)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && 
                iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos+1;       iTmpYPos=iYPos-1;
    if (iTmpXPos<m_iXSize && iTmpYPos>=0)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && 
                iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos+1;   iTmpYPos=iYPos;
    if (iTmpXPos<m_iXSize)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && 
                iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos+1;   iTmpYPos=iYPos+1;
    if (iTmpXPos<m_iXSize && iTmpYPos<m_iYSize)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && 
                iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos;   iTmpYPos=iYPos+1;
    if (iTmpXPos<m_iXSize && iTmpYPos<m_iYSize)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos+1;   iTmpYPos=iYPos+1;
    if (iTmpXPos<m_iXSize && iTmpYPos<m_iYSize)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }

    iTmpXPos=iXPos-1;   iTmpYPos=iYPos+1;
    if (iTmpXPos>=0 && iTmpYPos<m_iYSize)
    {
        if (getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos) &&
            getCell(iTmpXPos,iTmpYPos)!=getCell(iXPos,iYPos)+PORTBASE)
        {
            if (iPreNet!=getCell(iXPos,iYPos) && iPreNet!=getCell(iTmpXPos,iTmpYPos))
                return false;
            else
                iPreNet=getCell(iTmpXPos,iTmpYPos);
        }
    }
    return true;
}

void CRoutingArea::initialize(int iNetAmount, int iMaxPortAmount)
{
    int         i,j,iPortAmount,iXPos, iYPos;

    srand(time(NULL));
    m_iNetAmount=iNetAmount;
    m_iNetPriority=new int(iNetAmount);
    for (i=0; i<iNetAmount; i++)
    {
        m_iNetPriority[i]=i;
    }
    m_iPortAmount=new int(iNetAmount);
    
    for (i=0; i<iNetAmount;i++)
    {
        iPortAmount=rand()%iMaxPortAmount;
        if (iPortAmount<=1)
            iPortAmount=2;
        m_iPortAmount[i]=iPortAmount;
        for (j=0;j<iPortAmount;j++)
        {
            do
            {
                iXPos=rand()%m_iXSize;
                iYPos=rand()%m_iYSize;
            }
            while (getCell(iXPos,iYPos)!=EMPTY);
            setCell(iXPos,iYPos,PORTBASE+i);
        }
    }
}

int CRoutingArea::getCell(int iXPos, int iYPos, int *pArea)
{
    if (pArea==NULL)
        pArea=m_pRoutingCells;
#ifdef _DEBUG
    int     iIndex;
    assert(iYPos*m_iXSize+iXPos>=0 && iYPos*m_iXSize+iXPos<(m_iXSize*m_iYSize));
    iIndex=iYPos*m_iXSize+iXPos;
    iIndex=pArea[iYPos*m_iXSize+iXPos];
#endif
    return pArea[iYPos*m_iXSize+iXPos];
}

void CRoutingArea::setCell(int iXPos, int iYPos, int iNet,int *pArea)
{
    if (pArea==NULL)
        pArea=m_pRoutingCells;
    assert(iYPos*m_iXSize+iXPos>=0 && iYPos*m_iXSize+iXPos<(m_iXSize*m_iYSize));
    pArea[iYPos*m_iXSize+iXPos]=iNet;
}

CRoutingArea::CRoutingArea(int iXSize,int iYSize)
{
    int         i,iAmount;

    m_iXSize=iXSize;
    m_iYSize=iYSize;
    iAmount=iXSize*iYSize;
    m_pRoutingCells=new int(iAmount);
    pTmpRoutingCells=new int(m_iXSize*m_iYSize);
    for (i=0; i<iAmount;i++)
    {
        m_pRoutingCells[i]=EMPTY;
    }

    iXQueue=new int(m_iXSize*m_iYSize);
    iYQueue=new int(m_iXSize*m_iYSize);
    m_iNetPriority=NULL;
    m_iPortAmount=NULL;
}

void CRoutingArea::SingleStepRouting(bool bBlackGrid)
{
    int     i,j,k;
#ifdef _DEBUG
    int     iDEBUG;
#endif

    for (k=0; k<m_iNetAmount; k++)//choose high priority net.
    {
        for (i=0; i<m_iXSize; i++)
        {
            for (j=0; j<m_iYSize; j++)
            {
                if ((i+j)%2==bBlackGrid) //the cell is black cell.
                {
#ifdef _DEBUG
                    iDEBUG=getCell(i,j);
#endif
                    if (getCell(i,j)==m_iNetPriority[k] || 
                        getCell(i,j)-PORTBASE==m_iNetPriority[k] )
                        Expand(m_iNetPriority[k],i,j);
                }
            }
        }
    }
}

void CRoutingArea::Expand(int iNet, int iPortX, int iPortY)
{
    if (iPortX-1>=0)
    {
        Occupy(iNet, iPortX-1, iPortY);
    }

    if (iPortY+1<m_iYSize)
    {
        Occupy(iNet, iPortX, iPortY+1);
    }

    if (iPortX+1<m_iXSize)
    {
        Occupy(iNet, iPortX+1, iPortY);
    }

    if (iPortY-1>=0)
    {
        Occupy(iNet, iPortX, iPortY-1);
    }
}

bool CRoutingArea::Occupy(int iNet, int iPosX, int iPosY)
{
    if (getCell(iPosX,iPosY)==EMPTY)
    {
        setCell(iPosX,iPosY, iNet);
        return true;
    }

    if (isnotBottleNeck(iPosX,iPosY)==true)
    {
        if (isHighPriority(iNet,getCell(iPosX,iPosY))==true)
        {
            if (isPortCell(iPosX,iPosY)==EMPTY)
            {
                setCell(iPosX,iPosY,iNet);
            }
        }
    }
    return false;
}

bool CRoutingArea::isHighPriority(int iSourceNet, int iNextNet)
{
    if (iNextNet==EMPTY)
        return true;
    if (abs(m_iNetPriority[iSourceNet])>abs(m_iNetPriority[iNextNet]))
        return true;
    else
        return false;
}

int CRoutingArea::isPortCell(int iXPos,int iYPos)
{
    if (abs(getCell(iXPos,iYPos))>=PORTBASE)
        return abs(getCell(iXPos,iYPos))-PORTBASE;
    else
        return EMPTY;
}

void CRoutingArea::ModifyPriority()
{
    int     i,iRouted, iRouting;
    int     *RoutedNetPriority, *RoutingNetPriority;

    iRouted=0; 
    iRouting=0;
    RoutedNetPriority=new int(m_iNetAmount);
    RoutingNetPriority=new int(m_iNetAmount);

    for (i=0;i<m_iNetAmount;i++)
    {
        if (isRouted(i)>0)
            RoutedNetPriority[iRouted++]=i;
        else
            RoutingNetPriority[iRouting++]=i;
    }

    for (i=0; i<iRouted; i++)
    {
    }

    for (i=0; i<iRouting; i++)
    {
    }
    delete[] RoutedNetPriority;
    delete[] RoutingNetPriority;
}

int CRoutingArea::isRouted(int iNet)
{
    int     i,j;
    int     iQueueStart,iQueueEnd,iAmount=0,iXPos,iYPos,iPortCount;

    for (i=0; i<m_iXSize*m_iYSize;i++)
    {
        pTmpRoutingCells[i]=m_pRoutingCells[i];
    }

    iPortCount=0;
    for (i=0; i<m_iXSize; i++)
    {
        for (j=0; j<m_iYSize; j++)
        {
            if (getCell(i,j,pTmpRoutingCells)==iNet || isPortCell(i,j)==iNet)
            {
                iXQueue[0]=i;    iYQueue[0]=j;
                iQueueStart=0;  iQueueEnd=1;
                iAmount++;
                
                if (isPortCell(i,j)==iNet)
                {
                    iPortCount++;
                    setCell(i,j,-iNet-PORTBASE,pTmpRoutingCells);
                }
                else
                    setCell(i,j,-iNet,pTmpRoutingCells);
                while (iQueueStart!=iQueueEnd)
                {
                    iXPos=iXQueue[iQueueStart];
                    iYPos=iYQueue[iQueueStart++];

                    if (iXPos-1>=0 && 
                        (getCell(iXPos-1,iYPos,pTmpRoutingCells)==getCell(iXPos,iYPos) ||
                        getCell(iXPos-1,iYPos,pTmpRoutingCells)==getCell(iXPos,iYPos)-PORTBASE))
                    {
                        iXQueue[iQueueEnd]=iXPos-1;
                        iYQueue[iQueueEnd++]=iYPos;
                        iAmount++;
                        setCell(iXPos-1,iYPos,-getCell(iXPos,iYPos),pTmpRoutingCells);
                        if (isPortCell(iXPos-1,iYPos)==iNet)
                            iPortCount++;
                    }

                    if (iXPos+1<m_iXSize && 
                        (getCell(iXPos+1,iYPos,pTmpRoutingCells)==getCell(iXPos,iYPos) ||
                        getCell(iXPos+1,iYPos,pTmpRoutingCells)==getCell(iXPos,iYPos)-PORTBASE))
                    {
                        iXQueue[iQueueEnd]=iXPos+1;
                        iYQueue[iQueueEnd++]=iYPos;
                        iAmount++;
                        setCell(iXPos+1,iYPos,-getCell(iXPos,iYPos),pTmpRoutingCells);
                        if (isPortCell(iXPos+1,iYPos)==iNet)
                            iPortCount++;
                    }

                    if (iYPos-1>=0 && 
                        (getCell(iXPos,iYPos-1,pTmpRoutingCells)==getCell(iXPos,iYPos) ||
                        getCell(iXPos,iYPos-1,pTmpRoutingCells)==getCell(iXPos,iYPos)-PORTBASE))
                    {
                        iXQueue[iQueueEnd]=iXPos;
                        iYQueue[iQueueEnd++]=iYPos-1;
                        iAmount++;
                        setCell(iXPos,iYPos-1,-getCell(iXPos,iYPos),pTmpRoutingCells);
                        if (isPortCell(iXPos,iYPos-1)==iNet)
                            iPortCount++;
                    }

                    if (iYPos+1<m_iYSize && 
                        (getCell(iXPos,iYPos+1,pTmpRoutingCells)==getCell(iXPos,iYPos) ||
                        getCell(iXPos,iYPos+1,pTmpRoutingCells)==getCell(iXPos,iYPos)-PORTBASE))
                    {
                        iXQueue[iQueueEnd]=iXPos;
                        iYQueue[iQueueEnd++]=iYPos+1;
                        iAmount++;
                        setCell(iXPos,iYPos+1,-getCell(iXPos,iYPos),pTmpRoutingCells);
                        if (isPortCell(iXPos,iYPos+1)==iNet)
                            iPortCount++;
                    }
                }


                if (iPortCount==m_iPortAmount[iNet])
                    return iAmount;
                else
                    return 0;
            }
            //廣度優(yōu)先遍歷,如果找到的Port數(shù)等于線網(wǎng)Port數(shù),則該線網(wǎng)已連接。并給出占用單元數(shù)
        }
    }

    return 0;
}

void CRoutingArea::Print()
{
    int     i,j;

    for (i=0; i<m_iYSize; i++)
    {
        for (j=0; j<m_iXSize; j++)
        {
            if (getCell(j,i)>=PORTBASE)
                printf("%d@",(getCell(j,i)-PORTBASE));
            else
            {
                if (abs(getCell(j,i))!=abs(EMPTY))
                    printf("%d",abs(getCell(j,i)));
                else
                    printf("-");
            }

            printf("\t");
        }
        printf("\n");
    }
}
/*

ostream& operator<<(ostream& os,CRoutingArea &Area)
{
    int     i,j;

    for (i=0; i<Area.m_iYSize; i++)
    {
        for (j=0; j<Area.m_iXSize; j++)
        {
            if (Area.getCell(j,i)>=PORTBASE)
                os<<(Area.getCell(j,i,.Area.m_pRoutingCells)-PORTBASE)<<"*";
            else
                os<<abs(Area.getCell(j,i,Area.m_pRoutingCells));

            os<<"\t";
        }
        os<<endl;
    }
    return os;
}

  */
/*
1. 待連接的線網(wǎng)應比已連接的線網(wǎng)擴展快,
2. 其它子線網(wǎng)的擴展必須不破壞任何已連接線網(wǎng)的連接性;
3. 為避免振蕩,不允許任何兩個子線網(wǎng)具有相同的優(yōu)先度;
4. 不允許一個子線網(wǎng)擴展到另一子線網(wǎng)的節(jié)點所在的區(qū)域中。


Bottleneck. 沿一定方向搜索,若此8個單元中的線網(wǎng)號由中心單元的線網(wǎng)號變化為其它線網(wǎng)
號或未用單元、障礙單元的次數(shù)小于2次,則該單元一定不是瓶頸單元。

運用瓶頸單元概念,一個子線網(wǎng)要擴展到另一個線網(wǎng)已占的單元中必須滿足下列條件:
(1). 該單元不是另一個線網(wǎng)的瓶頸單元;
(2). 擴展的線網(wǎng)應具有比已占該單元的線網(wǎng)更高的擴展優(yōu)先權(quán);
(3). 該單元不是另一個線網(wǎng)的節(jié)點;

在這種布線方法中,采用三種優(yōu)先權(quán):
(1). 未布通線網(wǎng)的子線網(wǎng)具有比已布線網(wǎng)更高的擴展優(yōu)先權(quán);
(2). 已布通線網(wǎng)的擴展優(yōu)先權(quán)隨其所占單元數(shù)的增加而減小;未布通線網(wǎng)的每個子線網(wǎng)
隨著它們之間的距離縮短,擴展優(yōu)先權(quán)上升;
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区久久久蜜月| 国产欧美中文在线| 国产精品1区2区3区在线观看| 亚洲乱码国产乱码精品精的特点 | 一区二区日韩电影| 欧美白人最猛性xxxxx69交| 99精品一区二区三区| 美女久久久精品| 一卡二卡欧美日韩| 国产精品免费av| 精品久久久久久无| 欧美高清视频一二三区| 91麻豆视频网站| 国产高清成人在线| 久久99久久久久| 日韩不卡手机在线v区| 亚洲免费资源在线播放| 国产精品午夜久久| 精品福利在线导航| 日韩三级.com| 欧美一区二区三区成人| 欧美三级在线视频| 在线观看免费成人| 欧美在线一二三| 在线区一区二视频| 色婷婷综合久色| 91麻豆精品秘密| 99re在线精品| 91热门视频在线观看| 丁香婷婷综合色啪| 成人免费视频播放| 粉嫩欧美一区二区三区高清影视| 国产一本一道久久香蕉| 国产麻豆视频一区| 六月丁香综合在线视频| 免费观看91视频大全| 日韩av一级片| 蜜臀精品一区二区三区在线观看 | 精品国产精品网麻豆系列| 7799精品视频| 欧美一区日韩一区| 欧美丰满嫩嫩电影| 日韩一级完整毛片| 精品奇米国产一区二区三区| 日韩免费高清视频| 日韩女优毛片在线| 精品99一区二区三区| 久久影视一区二区| 国产日韩成人精品| 欧美国产欧美综合| 亚洲人成小说网站色在线 | 久久久99精品久久| 欧美激情综合五月色丁香小说| 久久精品日产第一区二区三区高清版 | 欧美激情资源网| 中文字幕在线观看一区| 一区二区三区四区在线播放| 香蕉乱码成人久久天堂爱免费| 亚州成人在线电影| 激情久久五月天| 成人黄页毛片网站| 在线观看日韩高清av| 制服丝袜中文字幕亚洲| 久久久久久久久一| 国产精品国产三级国产三级人妇| 亚洲欧美另类图片小说| 午夜伊人狠狠久久| 国产精品一卡二卡| 91九色02白丝porn| 欧美一区二区视频在线观看| 精品国产91洋老外米糕| 国产精品精品国产色婷婷| 亚洲一线二线三线视频| 麻豆精品视频在线观看视频| 国产不卡视频一区| 欧美区一区二区三区| 久久色在线观看| 亚洲精品国产高清久久伦理二区| 蜜桃传媒麻豆第一区在线观看| 国产东北露脸精品视频| 欧美天堂亚洲电影院在线播放| 日韩久久久精品| 亚洲男女毛片无遮挡| 麻豆视频一区二区| 97精品超碰一区二区三区| 91精品麻豆日日躁夜夜躁| 中文字幕va一区二区三区| 天天做天天摸天天爽国产一区| 国产99久久久国产精品潘金| 欧美军同video69gay| 国产精品系列在线| 免费在线欧美视频| 色老汉一区二区三区| 久久久三级国产网站| 婷婷久久综合九色综合伊人色| 成人午夜精品一区二区三区| 在线不卡欧美精品一区二区三区| 国产精品丝袜黑色高跟| 秋霞午夜av一区二区三区| 色综合色狠狠天天综合色| 日韩欧美的一区二区| 一个色在线综合| 成人动漫在线一区| 精品国产凹凸成av人网站| 亚洲成a天堂v人片| 91麻豆福利精品推荐| 国产精品午夜久久| 国产一区 二区 三区一级| 日韩一卡二卡三卡四卡| 狠狠狠色丁香婷婷综合激情| 日韩黄色小视频| 国产经典欧美精品| 日韩欧美精品在线| 亚洲成av人片一区二区梦乃 | 免费高清在线一区| 欧美日韩dvd在线观看| 狠狠色狠狠色合久久伊人| 一区二区三区四区在线免费观看| 欧美日韩国产精品成人| 91极品视觉盛宴| 国产剧情在线观看一区二区| 亚洲国产视频在线| 日韩免费一区二区| 国产精品麻豆久久久| 丝袜诱惑亚洲看片| 水蜜桃久久夜色精品一区的特点| 亚洲一区二区三区三| 日韩不卡一二三区| 欧美丰满嫩嫩电影| 天天爽夜夜爽夜夜爽精品视频| 色久优优欧美色久优优| **性色生活片久久毛片| 成人动漫av在线| 日本一区二区三区国色天香| 国产成人免费在线观看| 欧美大胆一级视频| 蜜臀av性久久久久蜜臀av麻豆| 91精品欧美久久久久久动漫| 日韩制服丝袜av| 日韩精品一区二区三区在线播放| 蜜桃av一区二区在线观看| 日韩欧美不卡在线观看视频| 美女看a上一区| 精品伦理精品一区| 国产美女视频91| 中文字幕av一区二区三区| 成人激情动漫在线观看| 亚洲免费毛片网站| 91美女精品福利| 亚洲一区二区三区美女| 欧美日韩国产区一| 丝袜诱惑亚洲看片| 久久免费美女视频| 国产成人午夜精品5599| 国产精品国产三级国产普通话三级 | 亚洲精品菠萝久久久久久久| 在线亚洲一区二区| 三级影片在线观看欧美日韩一区二区| 欧美一区二区在线看| 国产一区二区三区免费播放| 国产精品国产三级国产有无不卡 | 麻豆精品视频在线观看免费| 久久欧美一区二区| 色婷婷久久综合| 日韩精品一二三四| 久久免费偷拍视频| 色综合激情久久| 奇米精品一区二区三区在线观看 | 午夜激情一区二区三区| 26uuu色噜噜精品一区二区| 波多野结衣亚洲一区| 亚洲国产精品天堂| 亚洲精品在线免费播放| 97se亚洲国产综合自在线不卡| 亚洲成人一区二区| 久久免费看少妇高潮| 欧美在线一区二区三区| 国产自产2019最新不卡| 亚洲另类在线制服丝袜| 日韩视频不卡中文| 99re视频精品| 精品一区二区免费看| 亚洲老妇xxxxxx| 精品国产网站在线观看| 一本大道久久a久久综合婷婷| 奇米综合一区二区三区精品视频| 欧美国产精品专区| 69精品人人人人| 91美女在线看| 国产在线精品一区二区夜色| 一区二区三区欧美激情| 久久久久国产精品麻豆ai换脸 | 欧美二区乱c少妇| jlzzjlzz亚洲女人18| 精品亚洲aⅴ乱码一区二区三区| 亚洲欧美日韩人成在线播放| 久久伊人蜜桃av一区二区| 精品视频一区三区九区| www.av精品| 国产精品一区一区|