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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gds.java

?? The ElectricTM VLSI Design System is an open-source Electronic Design Automation (EDA) system that c
?? JAVA
?? 第 1 頁 / 共 5 頁
字號:
/* -*- tab-width: 4 -*- * * Electric(tm) VLSI Design System * * File: GDS.java * Input/output tool: GDS input * Original C code written by Glen M. Lawson, S-MOS Systems, Inc. * Translated into Java by Steven M. Rubin, Sun Microsystems. * * Copyright (c) 2004 Sun Microsystems and Static Free Software * * Electric(tm) is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * Electric(tm) is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Electric(tm); see the file COPYING.  If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, Mass 02111-1307, USA. */package com.sun.electric.tool.io.input;import com.sun.electric.database.ImmutableNodeInst;import com.sun.electric.database.geometry.DBMath;import com.sun.electric.database.geometry.EPoint;import com.sun.electric.database.geometry.ERectangle;import com.sun.electric.database.geometry.GenMath;import com.sun.electric.database.geometry.Orientation;import com.sun.electric.database.geometry.Poly;import com.sun.electric.database.geometry.PolyBase;import com.sun.electric.database.geometry.PolyMerge;import com.sun.electric.database.hierarchy.Cell;import com.sun.electric.database.hierarchy.Export;import com.sun.electric.database.hierarchy.Library;import com.sun.electric.database.hierarchy.View;import com.sun.electric.database.prototype.NodeProto;import com.sun.electric.database.prototype.PortProto;import com.sun.electric.database.text.Name;import com.sun.electric.database.text.TextUtils;import com.sun.electric.database.topology.Geometric;import com.sun.electric.database.topology.NodeInst;import com.sun.electric.database.variable.ElectricObject;import com.sun.electric.database.variable.MutableTextDescriptor;import com.sun.electric.database.variable.TextDescriptor;import com.sun.electric.technology.ArcProto;import com.sun.electric.technology.Layer;import com.sun.electric.technology.PrimitiveNode;import com.sun.electric.technology.SizeOffset;import com.sun.electric.technology.Technology;import com.sun.electric.technology.Technology.NodeLayer;import com.sun.electric.technology.technologies.Generic;import com.sun.electric.tool.Job;import com.sun.electric.tool.io.GDSLayers;import com.sun.electric.tool.io.IOTool;import com.sun.electric.tool.ncc.basic.NccCellAnnotations;import java.awt.Point;import java.awt.geom.Point2D;import java.awt.geom.Rectangle2D;import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Set;/** * This class reads files in GDS files. * <BR> * Notes: * <UL> * <LI>Case sensitive.</LI> * <LI>NODEs, TEXTNODEs, BOXs - don't have an example.</LI> * <LI>PATHTYPE 1 - rounded ends on paths, not supported.</LI> * <LI>Path dogears - no cleanup yet, simpler to map paths into arcs.</LI> * <LI>Absolute angle - ???</LI> * <LI>SUBLAYERS or XXXTYPE fields are not supported.</LI> * <LI>PROPERTIES are not supported.</LI> * <LI>REFLIBS are not supported.</LI> * <LI>PATH-ARC mapping - should be done, problem is that any layer can be a path, only connection layers in Electric are arcs. *	Someone could make a GDS mapping technology for this purpose, defaults could be taken from this technology.</LI> * <LI>Misc. fields mapped to variables - should be done.</LI> * <LI>AREFs - could build into a separate NODEPROTO, and instance, thus preserving the original intent and space.</LI> * <LI>MAG - no scaling is possible, must create a separate object for each value, don't scale.  (TEXT does scale.)</LI> * </UL> */public class GDS extends Input{	private static final boolean SHOWPROGRESS = false;			/* true for debugging */	private static final boolean IGNOREIMMENSECELLS = false;	/* true for debugging */	private static final boolean TALLYCONTENTS = false;			/* true for debugging */	// data declarations	private static final int MAXPOINTS     = 4096;	private static final int MINFONTWIDTH  =  130;	private static final int MINFONTHEIGHT =  190;	private static class ShapeType {}	private static final ShapeType SHAPEPOLY      = new ShapeType();	private static final ShapeType SHAPERECTANGLE = new ShapeType();	private static final ShapeType SHAPEOBLIQUE   = new ShapeType();	private static final ShapeType SHAPELINE      = new ShapeType();	private static final ShapeType SHAPECLOSED    = new ShapeType();	private static class DatatypeSymbol {}	private static final DatatypeSymbol TYPEERR    = new DatatypeSymbol();	private static final DatatypeSymbol TYPENONE   = new DatatypeSymbol();	private static final DatatypeSymbol TYPEFLAGS  = new DatatypeSymbol();	private static final DatatypeSymbol TYPESHORT  = new DatatypeSymbol();	private static final DatatypeSymbol TYPELONG   = new DatatypeSymbol();	private static final DatatypeSymbol TYPEFLOAT  = new DatatypeSymbol();	private static final DatatypeSymbol TYPEDOUBLE = new DatatypeSymbol();	private static final DatatypeSymbol TYPESTRING = new DatatypeSymbol();	private final static double twoTo32 = makePower(2, 32);	private final static double twoToNeg56 = 1.0 / makePower (2, 56);	private int              countBox, countText, countNode, countPath, countShape, countSRef, countARef, countATotal;	private Library          theLibrary;	private CellBuilder      theCell;	private NodeProto        theNodeProto;	private PrimitiveNode    layerNodeProto;    private PrimitiveNode    pinNodeProto;	private boolean          layerUsed;	private boolean          layerIsPin;	private Technology       curTech;	private int              recordCount;	private GSymbol          theToken;	private DatatypeSymbol   valuetype;	private int              tokenFlags;	private int              tokenValue16;	private int              tokenValue32;	private double           tokenValueDouble;	private String           tokenString;	private Point2D []       theVertices;	private double           theScale;	private Map<Integer,Layer> layerNames;	private Set<Integer>     pinLayers;	private PolyMerge        merge;	private boolean          mergeThisCell;	private double           inputScale;	private static boolean   arraySimplificationUseful;	private static class GSymbol	{		private int value;		private static List<GSymbol> symbols = new ArrayList<GSymbol>();		private GSymbol(int value)		{			this.value = value;			symbols.add(this);		}		private static GSymbol findSymbol(int value)		{			for(GSymbol gs : symbols)			{				if (gs.value == value) return gs;			}			return null;		}	}	private static final GSymbol GDS_HEADER       = new GSymbol(0);	private static final GSymbol GDS_BGNLIB       = new GSymbol(1);	private static final GSymbol GDS_LIBNAME      = new GSymbol(2);	private static final GSymbol GDS_UNITS        = new GSymbol(3);	private static final GSymbol GDS_ENDLIB       = new GSymbol(4);	private static final GSymbol GDS_BGNSTR       = new GSymbol(5);	private static final GSymbol GDS_STRNAME      = new GSymbol(6);	private static final GSymbol GDS_ENDSTR       = new GSymbol(7);	private static final GSymbol GDS_BOUNDARY     = new GSymbol(8);	private static final GSymbol GDS_PATH         = new GSymbol(9);	private static final GSymbol GDS_SREF         = new GSymbol(10);	private static final GSymbol GDS_AREF         = new GSymbol(11);	private static final GSymbol GDS_TEXTSYM      = new GSymbol(12);	private static final GSymbol GDS_LAYER        = new GSymbol(13);	private static final GSymbol GDS_DATATYPSYM   = new GSymbol(14);	private static final GSymbol GDS_WIDTH        = new GSymbol(15);	private static final GSymbol GDS_XY           = new GSymbol(16);	private static final GSymbol GDS_ENDEL        = new GSymbol(17);	private static final GSymbol GDS_SNAME        = new GSymbol(18);	private static final GSymbol GDS_COLROW       = new GSymbol(19);	private static final GSymbol GDS_TEXTNODE     = new GSymbol(20);	private static final GSymbol GDS_NODE         = new GSymbol(21);	private static final GSymbol GDS_TEXTTYPE     = new GSymbol(22);	private static final GSymbol GDS_PRESENTATION = new GSymbol(23);//	private static final GSymbol GDS_SPACING      = new GSymbol(24);	private static final GSymbol GDS_STRING       = new GSymbol(25);	private static final GSymbol GDS_STRANS       = new GSymbol(26);	private static final GSymbol GDS_MAG          = new GSymbol(27);	private static final GSymbol GDS_ANGLE        = new GSymbol(28);//	private static final GSymbol GDS_UINTEGER     = new GSymbol(29);//	private static final GSymbol GDS_USTRING      = new GSymbol(30);	private static final GSymbol GDS_REFLIBS      = new GSymbol(31);	private static final GSymbol GDS_FONTS        = new GSymbol(32);	private static final GSymbol GDS_PATHTYPE     = new GSymbol(33);	private static final GSymbol GDS_GENERATIONS  = new GSymbol(34);	private static final GSymbol GDS_ATTRTABLE    = new GSymbol(35);//	private static final GSymbol GDS_STYPTABLE    = new GSymbol(36);//	private static final GSymbol GDS_STRTYPE      = new GSymbol(37);	private static final GSymbol GDS_ELFLAGS      = new GSymbol(38);//	private static final GSymbol GDS_ELKEY        = new GSymbol(39);//	private static final GSymbol GDS_LINKTYPE     = new GSymbol(40);//	private static final GSymbol GDS_LINKKEYS     = new GSymbol(41);	private static final GSymbol GDS_NODETYPE     = new GSymbol(42);	private static final GSymbol GDS_PROPATTR     = new GSymbol(43);	private static final GSymbol GDS_PROPVALUE    = new GSymbol(44);	private static final GSymbol GDS_BOX          = new GSymbol(45);	private static final GSymbol GDS_BOXTYPE      = new GSymbol(46);	private static final GSymbol GDS_PLEX         = new GSymbol(47);	private static final GSymbol GDS_BGNEXTN      = new GSymbol(48);	private static final GSymbol GDS_ENDEXTN      = new GSymbol(49);//	private static final GSymbol GDS_TAPENUM      = new GSymbol(50);//	private static final GSymbol GDS_TAPECODE     = new GSymbol(51);//	private static final GSymbol GDS_STRCLASS     = new GSymbol(52);//	private static final GSymbol GDS_NUMTYPES     = new GSymbol(53);	private static final GSymbol GDS_IDENT        = new GSymbol(54);	private static final GSymbol GDS_REALNUM      = new GSymbol(55);	private static final GSymbol GDS_SHORT_NUMBER = new GSymbol(56);	private static final GSymbol GDS_NUMBER       = new GSymbol(57);	private static final GSymbol GDS_FLAGSYM      = new GSymbol(58);	private static final GSymbol GDS_FORMAT       = new GSymbol(59);	private static final GSymbol GDS_MASK         = new GSymbol(60);	private static final GSymbol GDS_ENDMASKS     = new GSymbol(61);	private static GSymbol [] optionSet = {GDS_ATTRTABLE, GDS_REFLIBS, GDS_FONTS, GDS_GENERATIONS};	private static GSymbol [] shapeSet = {GDS_AREF, GDS_SREF, GDS_BOUNDARY, GDS_PATH, GDS_NODE, GDS_TEXTSYM, GDS_BOX};	private static GSymbol [] goodOpSet = {GDS_HEADER, GDS_BGNLIB, GDS_LIBNAME, GDS_UNITS, GDS_ENDLIB, GDS_BGNSTR, GDS_STRNAME,		GDS_ENDSTR, GDS_BOUNDARY, GDS_PATH, GDS_SREF, GDS_AREF, GDS_TEXTSYM, GDS_LAYER, GDS_DATATYPSYM, GDS_WIDTH, GDS_XY, GDS_ENDEL,		GDS_SNAME, GDS_COLROW, GDS_TEXTNODE, GDS_NODE, GDS_TEXTTYPE, GDS_PRESENTATION, GDS_STRING, GDS_STRANS, GDS_MAG, GDS_ANGLE,		GDS_REFLIBS, GDS_FONTS, GDS_PATHTYPE, GDS_GENERATIONS, GDS_ATTRTABLE, GDS_NODETYPE, GDS_PROPATTR, GDS_PROPVALUE, GDS_BOX,		GDS_BOXTYPE, GDS_FORMAT, GDS_MASK, GDS_ENDMASKS};	private static GSymbol [] maskSet = {GDS_DATATYPSYM, GDS_TEXTTYPE, GDS_BOXTYPE, GDS_NODETYPE};	private static GSymbol [] unsupportedSet = {GDS_ELFLAGS, GDS_PLEX};    private static class CellBuilder {		private static Map<Cell,CellBuilder> allBuilders;		private static Set<Cell>        cellsTooComplex;        Cell cell;        List<MakeInstance> insts = new ArrayList<MakeInstance>();        List<MakeInstanceArray> instArrays = new ArrayList<MakeInstanceArray>();        private CellBuilder(Cell cell) {            this.cell = cell;            allBuilders.put(cell, this);        }		private void makeInstance(NodeProto proto, Point2D loc, Orientation orient, double wid, double hei, EPoint[] points) {            MakeInstance mi = new MakeInstance(proto, loc, orient, wid, hei, points, null, null);            insts.add(mi);        }		private void makeInstanceArray(NodeProto proto, int nCols, int nRows, Orientation orient, Point2D startLoc, Point2D rowOffset, Point2D colOffset) {            MakeInstanceArray mia = new MakeInstanceArray(proto, nCols, nRows, orient,            	new Point2D.Double(startLoc.getX(), startLoc.getY()), rowOffset, colOffset);            instArrays.add(mia);        }		private void makeExport(NodeProto proto, Point2D loc, Orientation orient, double wid, double hei, String exportName) {            MakeInstance mi = new MakeInstance(proto, loc, orient, wid, hei, null, exportName, null);            insts.add(mi);        }		private void makeText(NodeProto proto, Point2D loc, String text, TextDescriptor textDescriptor) {            MakeInstance mi = new MakeInstance(proto, loc, Orientation.IDENT, 0, 0, null, null, Name.findName(text));            insts.add(mi);        }		private static void init()		{			allBuilders = new HashMap<Cell,CellBuilder>();			cellsTooComplex = new HashSet<Cell>();		}		private static void term()		{			allBuilders = null;			if (cellsTooComplex.size() > 0)			{				System.out.print("THESE CELLS WERE TOO COMPLEX AND NOT FULLY READ:");				for(Cell cell : cellsTooComplex) System.out.print(" " + cell.describe(false));				System.out.println();			}		}		private void makeInstances(Set<Cell> builtCells)		{            if (builtCells.contains(cell)) return;            builtCells.add(cell);			boolean countOff = false;			if (SHOWPROGRESS || IGNOREIMMENSECELLS)			{				int size = insts.size();				int arraySize = instArrays.size();				System.out.println("Building cell " + this.cell.describe(false) +					" with " + size + " single instances and " + arraySize + " arrayed instances");				if (size+arraySize >= 100000)				{					countOff = true;					// ignore internal contents when cell is very large (for testing only)					if (IGNOREIMMENSECELLS)					{						cellsTooComplex.add(cell);						MakeInstance ll = null, ul = null, lr = null, ur = null;						for(MakeInstance mi : insts)						{							if (ll == null) ll = ul = lr = ur = mi;							if (mi.loc.getX() <= ll.loc.getX() && mi.loc.getY() <= ll.loc.getY()) ll = mi;							if (mi.loc.getX() <= ul.loc.getX() && mi.loc.getY() >= ul.loc.getY()) ul = mi;							if (mi.loc.getX() >= lr.loc.getX() && mi.loc.getY() <= lr.loc.getY()) lr = mi;							if (mi.loc.getX() >= ur.loc.getX() && mi.loc.getY() >= ur.loc.getY()) ur = mi;						}						insts.clear();						instArrays.clear();						insts.add(ll);						if (!insts.contains(ul)) insts.add(ul);						if (!insts.contains(lr)) insts.add(lr);						if (!insts.contains(ur)) insts.add(ur);					}				}			}            nameInstances(countOff);           	Collections.sort(insts);			int count = 0;			int renamed = 0;			Map<String,String> exportUnify = new HashMap<String,String>();			for(MakeInstance mi : insts)			{				if (countOff && ((++count % 1000) == 0))					System.out.println("        Made " + count + " instances");                if (mi.proto instanceof Cell) {                    Cell subCell = (Cell)mi.proto;                    CellBuilder cellBuilder = allBuilders.get(subCell);                    if (cellBuilder != null)                        cellBuilder.makeInstances(builtCells);                }				// make the instance                if (mi.instantiate(this.cell, exportUnify)) renamed++;			}			Map<NodeProto,List<EPoint>> massiveMerge = new HashMap<NodeProto,List<EPoint>>();			for(MakeInstanceArray mia : instArrays)			{				if (countOff && ((++count % 1000) == 0))					System.out.println("        Made " + count + " instances");                if (mia.proto instanceof Cell) {                    Cell subCell = (Cell)mia.proto;                    CellBuilder cellBuilder = allBuilders.get(subCell);                    if (cellBuilder != null)                        cellBuilder.makeInstances(builtCells);                }				// make the instance array                mia.instantiate(this, this.cell, massiveMerge);			}			List<NodeProto> mergeNodeSet = new ArrayList<NodeProto>();			for(NodeProto np : massiveMerge.keySet()) mergeNodeSet.add(np);			for(NodeProto np : mergeNodeSet)			{				// place a pure-layer node that embodies all arrays for the whole cell				List<EPoint> points = massiveMerge.get(np);				buildComplexNode(points, np, this.cell);			}			if (renamed > 0)			{				System.out.println("  Warning: Cell " + this.cell.describe(false) + " had " + renamed +					" exports with duplicate names that were renamed and unified");				Map<String,String> unifyStrings = new HashMap<String,String>();				Set<String> finalNames = exportUnify.keySet();				for(String finalName : finalNames)				{					String singleName = exportUnify.get(finalName);					String us = unifyStrings.get(singleName);					if (us == null) us = singleName;					us += " " + finalName;					unifyStrings.put(singleName, us);				}				List<String> annotations = new ArrayList<String>();				for(String us : unifyStrings.keySet())					annotations.add("exportsConnectedByParent " + unifyStrings.get(us));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲在线视频网站| 亚洲va天堂va国产va久| 成人av片在线观看| 亚洲男人电影天堂| 欧美成人精品高清在线播放| 日本福利一区二区| 国产激情精品久久久第一区二区| 一区二区三区久久| 国产精品嫩草久久久久| 久久久久成人黄色影片| 99re免费视频精品全部| 国产裸体歌舞团一区二区| 亚洲成av人片在线观看| 最好看的中文字幕久久| 久久久精品黄色| 日韩一区二区精品葵司在线| 欧美三级午夜理伦三级中视频| 成人激情午夜影院| 国产老女人精品毛片久久| 日本成人在线电影网| 亚洲成人免费看| 亚洲你懂的在线视频| 国产人成亚洲第一网站在线播放| 日韩一级欧美一级| 欧美精选一区二区| 欧美性极品少妇| 在线看日本不卡| 91色porny蝌蚪| av电影在线观看完整版一区二区| 国产福利一区二区三区在线视频| 久久国产剧场电影| 久久99热99| 久久99精品久久只有精品| 奇米精品一区二区三区在线观看| 天天射综合影视| 手机精品视频在线观看| 天天影视涩香欲综合网| 日本伊人精品一区二区三区观看方式| 亚洲国产精品自拍| 夜夜嗨av一区二区三区中文字幕 | 日本一区二区免费在线观看视频 | 在线观看视频一区二区| 97se亚洲国产综合自在线| 99久久精品国产导航| www.色精品| 91麻豆免费视频| 不卡电影一区二区三区| 色综合久久中文综合久久97| 色呦呦国产精品| 在线观看av一区二区| 欧美精品99久久久**| 日韩一区二区三区电影在线观看| 精品国产一区久久| 久久久精品综合| 国产精品你懂的在线| 一区二区三区在线观看视频 | 本田岬高潮一区二区三区| 94-欧美-setu| 在线欧美小视频| 日韩欧美黄色影院| 中文在线一区二区| 亚洲欧美色图小说| 国产在线精品一区二区| 国产一区二区视频在线| 成人激情校园春色| 欧美日韩一二区| 精品国内片67194| 国产精品女同互慰在线看| 亚洲一区二区三区小说| 另类综合日韩欧美亚洲| 成人夜色视频网站在线观看| 色婷婷久久久综合中文字幕| 在线综合亚洲欧美在线视频| 久久久综合视频| 一区二区三区欧美日韩| 久久69国产一区二区蜜臀| 不卡的av在线| 欧美一区二区三区爱爱| 国产女同互慰高潮91漫画| 日产欧产美韩系列久久99| 亚洲综合色丁香婷婷六月图片| 丝袜美腿成人在线| 国产成人免费视频网站| 欧美日韩一级片在线观看| 久久免费看少妇高潮| 亚洲黄一区二区三区| 老司机免费视频一区二区三区| 成人av免费在线观看| 欧美男生操女生| 国产精品理伦片| 卡一卡二国产精品| 色综合久久66| 久久天堂av综合合色蜜桃网| 亚洲资源中文字幕| 成人丝袜高跟foot| 日韩亚洲电影在线| 亚洲综合精品久久| 粉嫩av亚洲一区二区图片| 欧美肥大bbwbbw高潮| ...xxx性欧美| 久久国产精品区| 欧美日韩电影在线| 国产精品久久久久久久浪潮网站| 免费在线观看一区| 91久久国产最好的精华液| 中文字幕欧美激情一区| 青青草97国产精品免费观看| 欧美综合久久久| 中文字幕日韩一区| 国产乱子伦一区二区三区国色天香| 欧美在线制服丝袜| 亚洲图片另类小说| 国产91精品在线观看| 精品少妇一区二区三区| 亚洲va天堂va国产va久| 91精彩视频在线| 亚洲欧洲www| 国产成人av电影| 久久久久久免费毛片精品| 蜜臀av国产精品久久久久| 欧美日韩免费在线视频| 亚洲视频网在线直播| 9l国产精品久久久久麻豆| 久久人人超碰精品| 精品成人私密视频| 国产成人免费在线视频| 日韩免费观看2025年上映的电影| 一区二区三区四区不卡在线| 91免费看视频| 亚洲欧美一区二区视频| 成人18视频日本| 成人免费在线观看入口| 成人国产精品免费| 国产精品美女久久久久aⅴ| 国产成人一级电影| 中文字幕二三区不卡| 99精品久久久久久| 国产精品美女久久久久久久网站| 国产·精品毛片| 国产精品久久久爽爽爽麻豆色哟哟 | 久久精品亚洲麻豆av一区二区| 国内成人精品2018免费看| 精品1区2区在线观看| 国产精品综合久久| 国产精品视频免费| 99精品一区二区| 亚洲一区二区三区四区在线观看| 蜜桃免费网站一区二区三区| 久草热8精品视频在线观看| 在线看国产一区二区| 一区二区三区蜜桃| 欧美精品一卡两卡| 日本sm残虐另类| 久久久久国产精品麻豆ai换脸| 国产精品白丝av| 中文字幕在线播放不卡一区| 色欧美88888久久久久久影院| 亚洲一区二区在线免费看| 欧美日韩国产区一| 九九久久精品视频| 欧美国产国产综合| 色噜噜久久综合| 日本美女一区二区三区| 欧美精品一区二区三区在线播放| 国产毛片精品视频| 最新久久zyz资源站| 懂色av中文一区二区三区| 亚洲欧美日韩国产综合在线| 欧美精品在线一区二区三区| 久久国产麻豆精品| 自拍偷拍亚洲综合| 91精品国产免费久久综合| 国产专区欧美精品| 亚洲欧美国产毛片在线| 日韩免费电影一区| 99re热视频这里只精品| 日本aⅴ免费视频一区二区三区 | 欧美精品日韩一区| 国产精品888| 天天影视网天天综合色在线播放 | 久久综合色之久久综合| 99久久免费国产| 蜜桃久久久久久| 国产精品激情偷乱一区二区∴| 欧美狂野另类xxxxoooo| 成人v精品蜜桃久久一区| 三级成人在线视频| 中文字幕佐山爱一区二区免费| 欧美一区二区三区四区视频 | 欧美日韩激情在线| 国产福利一区在线| 三级久久三级久久| 亚洲国产精品一区二区久久| 日韩亚洲电影在线| 色乱码一区二区三区88| 国产成a人亚洲| 蜜桃av一区二区| 亚洲高清免费观看高清完整版在线观看| 久久久99精品免费观看不卡| 91精品国产综合久久久久久久久久 |