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

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

?? xmltok.c

?? 由Kurt Wall著作的Linux Programming 一書中的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*The contents of this file are subject to the Mozilla Public LicenseVersion 1.0 (the "License"); you may not use this file except incompliance with the License. You may obtain a copy of the License athttp://www.mozilla.org/MPL/Software distributed under the License is distributed on an "AS IS"basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See theLicense for the specific language governing rights and limitationsunder the License.The Original Code is expat.The Initial Developer of the Original Code is James Clark.Portions created by James Clark are Copyright (C) 1998James Clark. All Rights Reserved.Contributor(s):*/#include "xmldef.h"#include "xmltok.h"#include "nametab.h"#define VTABLE1 \  { PREFIX(prologTok), PREFIX(contentTok), PREFIX(cdataSectionTok) }, \  { PREFIX(attributeValueTok), PREFIX(entityValueTok) }, \  PREFIX(sameName), \  PREFIX(nameMatchesAscii), \  PREFIX(nameLength), \  PREFIX(skipS), \  PREFIX(getAtts), \  PREFIX(charRefNumber), \  PREFIX(predefinedEntityName), \  PREFIX(updatePosition), \  PREFIX(isPublicId)#define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16)#define UCS2_GET_NAMING(pages, hi, lo) \   (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1 << ((lo) & 0x1F)))/* A 2 byte UTF-8 representation splits the characters 11 bitsbetween the bottom 5 and 6 bits of the bytes.We need 8 bits to index into pages, 3 bits to add to that index and5 bits to generate the mask. */#define UTF8_GET_NAMING2(pages, byte) \    (namingBitmap[((pages)[(((byte)[0]) >> 2) & 7] << 3) \                      + ((((byte)[0]) & 3) << 1) \                      + ((((byte)[1]) >> 5) & 1)] \         & (1 << (((byte)[1]) & 0x1F)))/* A 3 byte UTF-8 representation splits the characters 16 bitsbetween the bottom 4, 6 and 6 bits of the bytes.We need 8 bits to index into pages, 3 bits to add to that index and5 bits to generate the mask. */#define UTF8_GET_NAMING3(pages, byte) \  (namingBitmap[((pages)[((((byte)[0]) & 0xF) << 4) \                             + ((((byte)[1]) >> 2) & 0xF)] \		       << 3) \                      + ((((byte)[1]) & 3) << 1) \                      + ((((byte)[2]) >> 5) & 1)] \         & (1 << (((byte)[2]) & 0x1F)))#define UTF8_GET_NAMING(pages, p, n) \  ((n) == 2 \  ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \  : ((n) == 3 \     ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \     : 0))#define UTF8_INVALID3(p) \  ((*p) == 0xED \  ? (((p)[1] & 0x20) != 0) \  : ((*p) == 0xEF \     ? ((p)[1] == 0xBF && ((p)[2] == 0xBF || (p)[2] == 0xBE)) \     : 0))#define UTF8_INVALID4(p) ((*p) == 0xF4 && ((p)[1] & 0x30) != 0)staticint isNever(const ENCODING *enc, const char *p){  return 0;}staticint utf8_isName2(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING2(namePages, (const unsigned char *)p);}staticint utf8_isName3(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING3(namePages, (const unsigned char *)p);}#define utf8_isName4 isNeverstaticint utf8_isNmstrt2(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING2(nmstrtPages, (const unsigned char *)p);}staticint utf8_isNmstrt3(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING3(nmstrtPages, (const unsigned char *)p);}#define utf8_isNmstrt4 isNever#define utf8_isInvalid2 isNeverstaticint utf8_isInvalid3(const ENCODING *enc, const char *p){  return UTF8_INVALID3((const unsigned char *)p);}staticint utf8_isInvalid4(const ENCODING *enc, const char *p){  return UTF8_INVALID4((const unsigned char *)p);}struct normal_encoding {  ENCODING enc;  unsigned char type[256];  int (*isName2)(const ENCODING *, const char *);  int (*isName3)(const ENCODING *, const char *);  int (*isName4)(const ENCODING *, const char *);  int (*isNmstrt2)(const ENCODING *, const char *);  int (*isNmstrt3)(const ENCODING *, const char *);  int (*isNmstrt4)(const ENCODING *, const char *);  int (*isInvalid2)(const ENCODING *, const char *);  int (*isInvalid3)(const ENCODING *, const char *);  int (*isInvalid4)(const ENCODING *, const char *);};#define NORMAL_VTABLE(E) \ E ## isName2, \ E ## isName3, \ E ## isName4, \ E ## isNmstrt2, \ E ## isNmstrt3, \ E ## isNmstrt4, \ E ## isInvalid2, \ E ## isInvalid3, \ E ## isInvalid4 static int checkCharRefNumber(int);#include "xmltok_impl.h"/* minimum bytes per character */#define MINBPC 1#define BYTE_TYPE(enc, p) \  (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)])#define BYTE_TO_ASCII(enc, p) (*p)#define IS_NAME_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isName ## n(enc, p))#define IS_NMSTRT_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isNmstrt ## n(enc, p))#define IS_INVALID_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isInvalid ## n(enc, p))#define IS_NAME_CHAR_MINBPC(enc, p) (0)#define IS_NMSTRT_CHAR_MINBPC(enc, p) (0)/* c is an ASCII character */#define CHAR_MATCHES(enc, p, c) (*(p) == c)#define PREFIX(ident) normal_ ## ident#include "xmltok_impl.c"#undef MINBPC#undef BYTE_TYPE#undef BYTE_TO_ASCII#undef CHAR_MATCHES#undef IS_NAME_CHAR#undef IS_NAME_CHAR_MINBPC#undef IS_NMSTRT_CHAR#undef IS_NMSTRT_CHAR_MINBPC#undef IS_INVALID_CHARenum {  /* UTF8_cvalN is value of masked first byte of N byte sequence */  UTF8_cval1 = 0x00,  UTF8_cval2 = 0xc0,  UTF8_cval3 = 0xe0,  UTF8_cval4 = 0xf0};staticvoid utf8_toUtf8(const ENCODING *enc,		 const char **fromP, const char *fromLim,		 char **toP, const char *toLim){  char *to;  const char *from;  if (fromLim - *fromP > toLim - *toP) {    /* Avoid copying partial characters. */    for (fromLim = *fromP + (toLim - *toP); fromLim > *fromP; fromLim--)      if (((unsigned char)fromLim[-1] & 0xc0) != 0x80)	break;  }  for (to = *toP, from = *fromP; from != fromLim; from++, to++)    *to = *from;  *fromP = from;  *toP = to;}staticvoid utf8_toUtf16(const ENCODING *enc,		  const char **fromP, const char *fromLim,		  unsigned short **toP, const unsigned short *toLim){  unsigned short *to = *toP;  const char *from = *fromP;  while (from != fromLim && to != toLim) {    switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) {    case BT_LEAD2:      *to++ = ((from[0] & 0x1f) << 6) | (from[1] & 0x3f);      from += 2;      break;    case BT_LEAD3:      *to++ = ((from[0] & 0xf) << 12) | ((from[1] & 0x3f) << 6) | (from[2] & 0x3f);      from += 3;      break;    case BT_LEAD4:      {	unsigned long n;	if (to + 1 == toLim)	  break;	n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f);	n -= 0x10000;	to[0] = (unsigned short)((n >> 10) | 0xD800);	to[1] = (unsigned short)((n & 0x3FF) | 0xDC00);	to += 2;	from += 4;      }      break;    default:      *to++ = *from++;      break;    }  }  *fromP = from;  *toP = to;}static const struct normal_encoding utf8_encoding = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#include "asciitab.h"#include "utf8tab.h"  },  NORMAL_VTABLE(utf8_)};static const struct normal_encoding internal_utf8_encoding = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#include "iasciitab.h"#include "utf8tab.h"  },  NORMAL_VTABLE(utf8_)};staticvoid latin1_toUtf8(const ENCODING *enc,		   const char **fromP, const char *fromLim,		   char **toP, const char *toLim){  for (;;) {    unsigned char c;    if (*fromP == fromLim)      break;    c = (unsigned char)**fromP;    if (c & 0x80) {      if (toLim - *toP < 2)	break;      *(*toP)++ = ((c >> 6) | UTF8_cval2);      *(*toP)++ = ((c & 0x3f) | 0x80);      (*fromP)++;    }    else {      if (*toP == toLim)	break;      *(*toP)++ = *(*fromP)++;    }  }}staticvoid latin1_toUtf16(const ENCODING *enc,		    const char **fromP, const char *fromLim,		    unsigned short **toP, const unsigned short *toLim){  while (*fromP != fromLim && *toP != toLim)    *(*toP)++ = (unsigned char)*(*fromP)++;}static const struct normal_encoding latin1_encoding = {  { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 },  {#include "asciitab.h"#include "latin1tab.h"  }};staticvoid ascii_toUtf8(const ENCODING *enc,		  const char **fromP, const char *fromLim,		  char **toP, const char *toLim){  while (*fromP != fromLim && *toP != toLim)    *(*toP)++ = *(*fromP)++;}static const struct normal_encoding ascii_encoding = {  { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 },  {#include "asciitab.h"/* BT_NONXML == 0 */  }};#undef PREFIXstatic int unicode_byte_type(char hi, char lo){  switch ((unsigned char)hi) {  case 0xD8: case 0xD9: case 0xDA: case 0xDB:    return BT_LEAD4;  case 0xDC: case 0xDD: case 0xDE: case 0xDF:    return BT_TRAIL;  case 0xFF:    switch ((unsigned char)lo) {    case 0xFF:    case 0xFE:      return BT_NONXML;    }    break;  }  return BT_NONASCII;}#define DEFINE_UTF16_TO_UTF8 \static \void PREFIX(toUtf8)(const ENCODING *enc, \		    const char **fromP, const char *fromLim, \		    char **toP, const char *toLim) \{ \  const char *from; \  for (from = *fromP; from != fromLim; from += 2) { \    int plane; \    unsigned char lo2; \    unsigned char lo = GET_LO(from); \    unsigned char hi = GET_HI(from); \    switch (hi) { \    case 0: \      if (lo < 0x80) { \        if (*toP == toLim) { \          *fromP = from; \	  return; \        } \        *(*toP)++ = lo; \        break; \      } \      /* fall through */ \    case 0x1: case 0x2: case 0x3: \    case 0x4: case 0x5: case 0x6: case 0x7: \      if (toLim -  *toP < 2) { \        *fromP = from; \	return; \      } \      *(*toP)++ = ((lo >> 6) | (hi << 2) |  UTF8_cval2); \      *(*toP)++ = ((lo & 0x3f) | 0x80); \      break; \    default: \      if (toLim -  *toP < 3)  { \        *fromP = from; \	return; \      } \      /* 16 bits divided 4, 6, 6 amongst 3 bytes */ \      *(*toP)++ = ((hi >> 4) | UTF8_cval3); \      *(*toP)++ = (((hi & 0xf) << 2) | (lo >> 6) | 0x80); \      *(*toP)++ = ((lo & 0x3f) | 0x80); \      break; \    case 0xD8: case 0xD9: case 0xDA: case 0xDB: \      if (toLim -  *toP < 4) { \	*fromP = from; \	return; \      } \      plane = (((hi & 0x3) << 2) | ((lo >> 6) & 0x3)) + 1; \      *(*toP)++ = ((plane >> 2) | UTF8_cval4); \      *(*toP)++ = (((lo >> 2) & 0xF) | ((plane & 0x3) << 4) | 0x80); \      from += 2; \      lo2 = GET_LO(from); \      *(*toP)++ = (((lo & 0x3) << 4) \	           | ((GET_HI(from) & 0x3) << 2) \		   | (lo2 >> 6) \		   | 0x80); \      *(*toP)++ = ((lo2 & 0x3f) | 0x80); \      break; \    } \  } \  *fromP = from; \}#define DEFINE_UTF16_TO_UTF16 \static \void PREFIX(toUtf16)(const ENCODING *enc, \		     const char **fromP, const char *fromLim, \		     unsigned short **toP, const unsigned short *toLim) \{ \  /* Avoid copying first half only of surrogate */ \  if (fromLim - *fromP > ((toLim - *toP) << 1) \      && (GET_HI(fromLim - 2) & 0xF8) == 0xD8) \    fromLim -= 2; \  for (; *fromP != fromLim && *toP != toLim; *fromP += 2) \    *(*toP)++ = (GET_HI(*fromP) << 8) | GET_LO(*fromP); \}#define PREFIX(ident) little2_ ## ident#define MINBPC 2#define BYTE_TYPE(enc, p) \ ((p)[1] == 0 \  ? ((struct normal_encoding *)(enc))->type[(unsigned char)*(p)] \  : unicode_byte_type((p)[1], (p)[0]))#define BYTE_TO_ASCII(enc, p) ((p)[1] == 0 ? (p)[0] : -1)#define CHAR_MATCHES(enc, p, c) ((p)[1] == 0 && (p)[0] == c)#define IS_NAME_CHAR(enc, p, n) (0)#define IS_NAME_CHAR_MINBPC(enc, p) \  UCS2_GET_NAMING(namePages, (unsigned char)p[1], (unsigned char)p[0])#define IS_NMSTRT_CHAR(enc, p, n) (0)#define IS_NMSTRT_CHAR_MINBPC(enc, p) \  UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[1], (unsigned char)p[0])#include "xmltok_impl.c"#define SET2(ptr, ch) \  (((ptr)[0] = ((ch) & 0xff)), ((ptr)[1] = ((ch) >> 8)))#define GET_LO(ptr) ((unsigned char)(ptr)[0])#define GET_HI(ptr) ((unsigned char)(ptr)[1])DEFINE_UTF16_TO_UTF8DEFINE_UTF16_TO_UTF16#undef SET2#undef GET_LO#undef GET_HI#undef MINBPC#undef BYTE_TYPE#undef BYTE_TO_ASCII#undef CHAR_MATCHES#undef IS_NAME_CHAR#undef IS_NAME_CHAR_MINBPC#undef IS_NMSTRT_CHAR#undef IS_NMSTRT_CHAR_MINBPC#undef IS_INVALID_CHARstatic const struct normal_encoding little2_encoding = {   { VTABLE, 2, 0,#if BYTE_ORDER == 12    1#else    0#endif  },#include "asciitab.h"#include "latin1tab.h"};#if BYTE_ORDER != 21static const struct normal_encoding internal_little2_encoding = {   { VTABLE, 2, 0, 1 },#include "iasciitab.h"#include "latin1tab.h"};#endif#undef PREFIX#define PREFIX(ident) big2_ ## ident#define MINBPC 2/* CHAR_MATCHES is guaranteed to have MINBPC bytes available. */#define BYTE_TYPE(enc, p) \ ((p)[0] == 0 \  ? ((struct normal_encoding *)(enc))->type[(unsigned char)(p)[1]] \  : unicode_byte_type((p)[0], (p)[1]))#define BYTE_TO_ASCII(enc, p) ((p)[0] == 0 ? (p)[1] : -1)#define CHAR_MATCHES(enc, p, c) ((p)[0] == 0 && (p)[1] == c)#define IS_NAME_CHAR(enc, p, n) 0#define IS_NAME_CHAR_MINBPC(enc, p) \  UCS2_GET_NAMING(namePages, (unsigned char)p[0], (unsigned char)p[1])#define IS_NMSTRT_CHAR(enc, p, n) (0)#define IS_NMSTRT_CHAR_MINBPC(enc, p) \  UCS2_GET_NAMING(nmstrtPages, (unsigned char)p[0], (unsigned char)p[1])#include "xmltok_impl.c"#define SET2(ptr, ch) \  (((ptr)[0] = ((ch) >> 8)), ((ptr)[1] = ((ch) & 0xFF)))#define GET_LO(ptr) ((unsigned char)(ptr)[1])#define GET_HI(ptr) ((unsigned char)(ptr)[0])DEFINE_UTF16_TO_UTF8DEFINE_UTF16_TO_UTF16#undef SET2#undef GET_LO#undef GET_HI#undef MINBPC#undef BYTE_TYPE#undef BYTE_TO_ASCII#undef CHAR_MATCHES#undef IS_NAME_CHAR#undef IS_NAME_CHAR_MINBPC#undef IS_NMSTRT_CHAR#undef IS_NMSTRT_CHAR_MINBPC#undef IS_INVALID_CHARstatic const struct normal_encoding big2_encoding = {  { VTABLE, 2, 0,#if BYTE_ORDER == 21  1#else  0#endif  },#include "asciitab.h"#include "latin1tab.h"};#if BYTE_ORDER != 12static const struct normal_encoding internal_big2_encoding = {  { VTABLE, 2, 0, 1 },#include "iasciitab.h"#include "latin1tab.h"};#endif#undef PREFIXstaticint streqci(const char *s1, const char *s2){  for (;;) {    char c1 = *s1++;    char c2 = *s2++;    if ('a' <= c1 && c1 <= 'z')      c1 += 'A' - 'a';    if ('a' <= c2 && c2 <= 'z')      c2 += 'A' - 'a';    if (c1 != c2)      return 0;    if (!c1)      break;  }  return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲愉拍一区二区| 久久精品在这里| 久久伊99综合婷婷久久伊| 亚洲乱码中文字幕| 国产一区在线观看视频| 91在线免费视频观看| 欧美精品一区二区三区蜜桃视频| 亚洲色图欧洲色图| 国产高清不卡一区| 日韩欧美国产wwwww| 一级做a爱片久久| 高清在线成人网| 精品国产人成亚洲区| 日韩精品三区四区| 欧美调教femdomvk| 一区二区三区在线视频播放| 成人免费视频一区| 久久久精品免费网站| 美美哒免费高清在线观看视频一区二区 | 日本不卡一区二区三区高清视频| av在线一区二区| 日本一区二区三区在线观看| 韩国av一区二区| 欧美xxxxxxxx| 狠狠色伊人亚洲综合成人| 欧美一区二区在线播放| 午夜不卡在线视频| 欧美精品三级在线观看| 午夜视频在线观看一区二区三区| 91久久精品网| 亚洲高清在线精品| 欧美优质美女网站| 午夜精品久久久久久久| 欧美日韩免费一区二区三区视频| 亚洲午夜激情网页| 欧美日韩专区在线| 日本伊人色综合网| 欧美一级黄色录像| 黑人巨大精品欧美黑白配亚洲| 日韩免费看网站| 成人小视频在线| 又紧又大又爽精品一区二区| 日本精品一区二区三区高清 | 欧美日韩一区二区欧美激情| 亚洲午夜精品在线| 日韩一级免费观看| 91在线精品秘密一区二区| 国产精品日韩成人| 日本韩国一区二区| 天天综合日日夜夜精品| 日韩美女在线视频| 国产成人高清在线| 一区二区三区资源| 日韩三级视频中文字幕| 国产大陆精品国产| 亚洲乱码一区二区三区在线观看| 欧美日韩精品免费观看视频| 另类小说综合欧美亚洲| 中文字幕在线免费不卡| 欧美日韩精品欧美日韩精品一| 久久国产夜色精品鲁鲁99| 国产精品久久午夜| 欧美日韩中文一区| 国内久久婷婷综合| 亚洲男女一区二区三区| 日韩一区二区三区视频在线| 国产成人av自拍| 亚洲丶国产丶欧美一区二区三区| 欧美成人高清电影在线| 成人黄页在线观看| 日本中文字幕一区二区有限公司| 国产婷婷色一区二区三区| 在线观看亚洲一区| 国产一区二区视频在线播放| 亚洲黄网站在线观看| 久久色在线视频| 欧美四级电影网| 国产69精品一区二区亚洲孕妇| 亚洲国产精品久久不卡毛片| 久久精品日产第一区二区三区高清版| 精品视频一区三区九区| 成人一二三区视频| 久久国产精品72免费观看| 一区二区三区不卡视频在线观看| 久久综合999| 日韩一区二区精品| 91国偷自产一区二区开放时间| 国产精品18久久久久久久网站| 午夜亚洲国产au精品一区二区| 日韩理论片在线| 日本一区二区免费在线观看视频 | 中文字幕乱码亚洲精品一区| 日韩一级视频免费观看在线| 色综合天天综合色综合av| 国产精品一区专区| 青娱乐精品视频在线| 亚洲综合成人网| 亚洲精品成人少妇| 中文字幕视频一区二区三区久| 久久久www成人免费无遮挡大片| 欧美亚洲日本一区| 色噜噜狠狠成人中文综合| 国产成人午夜高潮毛片| 国产在线观看免费一区| 黄色小说综合网站| 激情综合色综合久久综合| 图片区小说区国产精品视频 | 亚洲少妇最新在线视频| 久久久亚洲精品石原莉奈 | 亚洲女性喷水在线观看一区| 久久蜜臀中文字幕| 2020国产精品自拍| 久久综合九色综合97婷婷女人| 欧美一区二区三级| 日韩精品中文字幕一区| 日韩一区二区三免费高清| 欧美一区二区三区在线| 欧美一区二视频| 欧美不卡视频一区| 欧美精品一区二区三区在线播放 | 一区二区成人在线| 亚洲第一电影网| 视频一区国产视频| 精品一区二区三区欧美| 激情综合一区二区三区| 国产成人综合自拍| 成人精品免费视频| 色一情一乱一乱一91av| 欧美少妇bbb| 欧美成人精品福利| 日本一区二区成人| 亚洲欧美另类小说| 日韩和欧美的一区| 精品一区二区三区影院在线午夜 | 国产精品理论片| 亚洲三级在线看| 香蕉乱码成人久久天堂爱免费| 日韩av不卡一区二区| 国产精品一区二区三区四区| www.成人网.com| 欧美精选在线播放| 久久精品视频一区二区三区| 国产精品大尺度| 日韩影院免费视频| 大桥未久av一区二区三区中文| 99国产麻豆精品| 国产精品美女久久久久高潮| 亚洲男人的天堂在线观看| 日韩电影在线一区二区| 国产69精品久久777的优势| 欧美三级欧美一级| 国产无一区二区| 亚洲chinese男男1069| 国产精品自在在线| 在线观看欧美黄色| 国产亚洲精品bt天堂精选| 亚洲综合色自拍一区| 国产成人免费9x9x人网站视频| 91黄视频在线| 国产欧美一区二区三区在线看蜜臀 | 日韩三级视频在线观看| 国产精品久久久久久久午夜片| 视频在线观看91| 色欧美乱欧美15图片| 久久亚洲二区三区| 天天色图综合网| 91在线码无精品| 日本一区二区不卡视频| 日本美女一区二区三区| 一本久道久久综合中文字幕| 久久综合九色综合欧美就去吻 | 久久这里都是精品| 午夜电影一区二区三区| www..com久久爱| 久久亚洲精华国产精华液 | 激情国产一区二区| 欧美丰满高潮xxxx喷水动漫 | 久久久99久久精品欧美| 日韩av一级电影| 色香蕉久久蜜桃| 亚洲精品中文在线| 成人av网站在线| 中文字幕乱码久久午夜不卡| 另类综合日韩欧美亚洲| 91精品国产aⅴ一区二区| 一区二区三区久久久| 97国产一区二区| 亚洲欧洲成人自拍| 成人h动漫精品| 国产欧美日韩亚州综合| 国产美女精品人人做人人爽| 日韩女优电影在线观看| 日韩福利视频网| 91麻豆精品国产91久久久使用方法| 中文字幕一区二区三区在线播放 | 国产精品一区二区在线观看网站| 91精品国产综合久久久久久久| 亚洲一区二区黄色| 欧美日韩成人一区二区| 亚洲第一在线综合网站|