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

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

?? pcre_compile.c

?? SDL文件。SDL_ERROwenjian.....
?? C
?? 第 1 頁 / 共 5 頁
字號:
/**************************************************      Perl-Compatible Regular Expressions       **************************************************//* PCRE is a library of functions to support regular expressions whose syntaxand semantics are as close as possible to those of the Perl 5 language.                       Written by Philip Hazel           Copyright (c) 1997-2007 University of Cambridge-----------------------------------------------------------------------------Redistribution and use in source and binary forms, with or withoutmodification, are permitted provided that the following conditions are met:    * Redistributions of source code must retain the above copyright notice,      this list of conditions and the following disclaimer.    * Redistributions in binary form must reproduce the above copyright      notice, this list of conditions and the following disclaimer in the      documentation and/or other materials provided with the distribution.    * Neither the name of the University of Cambridge nor the names of its      contributors may be used to endorse or promote products derived from      this software without specific prior written permission.THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THEIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSEARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BELIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OFSUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESSINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER INCONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THEPOSSIBILITY OF SUCH DAMAGE.-----------------------------------------------------------------------------*//* This module contains the external function pcre_compile(), along withsupporting internal functions that are not used by other modules. */#ifdef HAVE_CONFIG_H#include "config.h"#endif#define NLBLOCK cd             /* Block containing newline information */#define PSSTART start_pattern  /* Field containing processed string start */#define PSEND   end_pattern    /* Field containing processed string end */#include "pcre_internal.h"/* When DEBUG is defined, we need the pcre_printint() function, which is alsoused by pcretest. DEBUG is not defined when building a production library. */#ifdef DEBUG#include "pcre_printint.src"#endif/* Macro for setting individual bits in class bitmaps. */#define SETBIT(a,b) a[b/8] |= (1 << (b%8))/* Maximum length value to check against when making sure that the integer thatholds the compiled pattern length does not overflow. We make it a bit less thanINT_MAX to allow for adding in group terminating bytes, so that we don't haveto check them every time. */#define OFLOW_MAX (INT_MAX - 20)/**************************************************      Code parameters and static tables         **************************************************//* This value specifies the size of stack workspace that is used during thefirst pre-compile phase that determines how much memory is required. The regexis partly compiled into this space, but the compiled parts are discarded assoon as they can be, so that hopefully there will never be an overrun. The codedoes, however, check for an overrun. The largest amount I've seen used is 218,so this number is very generous.The same workspace is used during the second, actual compile phase forremembering forward references to groups so that they can be filled in at theend. Each entry in this list occupies LINK_SIZE bytes, so even when LINK_SIZEis 4 there is plenty of room. */#define COMPILE_WORK_SIZE (4096)/* Table for handling escaped characters in the range '0'-'z'. Positive returnsare simple data values; negative values are for special things like \d and soon. Zero means further processing is needed (for things like \x), or the escapeis invalid. */#ifndef EBCDIC  /* This is the "normal" table for ASCII systems */static const short int escapes[] = {     0,      0,      0,      0,      0,      0,      0,      0,   /* 0 - 7 */     0,      0,    ':',    ';',    '<',    '=',    '>',    '?',   /* 8 - ? */   '@', -ESC_A, -ESC_B, -ESC_C, -ESC_D, -ESC_E,      0, -ESC_G,   /* @ - G */-ESC_H,      0,      0, -ESC_K,      0,      0,      0,      0,   /* H - O */-ESC_P, -ESC_Q, -ESC_R, -ESC_S,      0,      0, -ESC_V, -ESC_W,   /* P - W */-ESC_X,      0, -ESC_Z,    '[',   '\\',    ']',    '^',    '_',   /* X - _ */   '`',      7, -ESC_b,      0, -ESC_d,  ESC_e,  ESC_f,      0,   /* ` - g */-ESC_h,      0,      0, -ESC_k,      0,      0,  ESC_n,      0,   /* h - o */-ESC_p,      0,  ESC_r, -ESC_s,  ESC_tee,    0, -ESC_v, -ESC_w,   /* p - w */     0,      0, -ESC_z                                            /* x - z */};#else           /* This is the "abnormal" table for EBCDIC systems */static const short int escapes[] = {/*  48 */     0,     0,      0,     '.',    '<',   '(',    '+',    '|',/*  50 */   '&',     0,      0,       0,      0,     0,      0,      0,/*  58 */     0,     0,    '!',     '$',    '*',   ')',    ';',    '~',/*  60 */   '-',   '/',      0,       0,      0,     0,      0,      0,/*  68 */     0,     0,    '|',     ',',    '%',   '_',    '>',    '?',/*  70 */     0,     0,      0,       0,      0,     0,      0,      0,/*  78 */     0,   '`',    ':',     '#',    '@',  '\'',    '=',    '"',/*  80 */     0,     7, -ESC_b,       0, -ESC_d, ESC_e,  ESC_f,      0,/*  88 */-ESC_h,     0,      0,     '{',      0,     0,      0,      0,/*  90 */     0,     0, -ESC_k,     'l',      0, ESC_n,      0, -ESC_p,/*  98 */     0, ESC_r,      0,     '}',      0,     0,      0,      0,/*  A0 */     0,   '~', -ESC_s, ESC_tee,      0,-ESC_v, -ESC_w,      0,/*  A8 */     0,-ESC_z,      0,       0,      0,   '[',      0,      0,/*  B0 */     0,     0,      0,       0,      0,     0,      0,      0,/*  B8 */     0,     0,      0,       0,      0,   ']',    '=',    '-',/*  C0 */   '{',-ESC_A, -ESC_B,  -ESC_C, -ESC_D,-ESC_E,      0, -ESC_G,/*  C8 */-ESC_H,     0,      0,       0,      0,     0,      0,      0,/*  D0 */   '}',     0, -ESC_K,       0,      0,     0,      0, -ESC_P,/*  D8 */-ESC_Q,-ESC_R,      0,       0,      0,     0,      0,      0,/*  E0 */  '\\',     0, -ESC_S,       0,      0,-ESC_V, -ESC_W, -ESC_X,/*  E8 */     0,-ESC_Z,      0,       0,      0,     0,      0,      0,/*  F0 */     0,     0,      0,       0,      0,     0,      0,      0,/*  F8 */     0,     0,      0,       0,      0,     0,      0,      0};#endif/* Table of special "verbs" like (*PRUNE). This is a short table, so it issearched linearly. Put all the names into a single string, in order to reducethe number of relocations when a shared library is dynamically linked. */typedef struct verbitem {  int   len;  int   op;} verbitem;static const char verbnames[] =  "ACCEPT\0"  "COMMIT\0"  "F\0"  "FAIL\0"  "PRUNE\0"  "SKIP\0"  "THEN";static verbitem verbs[] = {  { 6, OP_ACCEPT },  { 6, OP_COMMIT },  { 1, OP_FAIL },  { 4, OP_FAIL },  { 5, OP_PRUNE },  { 4, OP_SKIP  },  { 4, OP_THEN  }};static int verbcount = sizeof(verbs)/sizeof(verbitem);/* Tables of names of POSIX character classes and their lengths. The names arenow all in a single string, to reduce the number of relocations when a sharedlibrary is dynamically loaded. The list of lengths is terminated by a zerolength entry. The first three must be alpha, lower, upper, as this is assumedfor handling case independence. */static const char posix_names[] =  "alpha\0"  "lower\0"  "upper\0"  "alnum\0"  "ascii\0"  "blank\0"  "cntrl\0"  "digit\0"  "graph\0"  "print\0"  "punct\0"  "space\0"  "word\0"   "xdigit";static const uschar posix_name_lengths[] = {  5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 0 };/* Table of class bit maps for each POSIX class. Each class is formed from abase map, with an optional addition or removal of another map. Then, for someclasses, there is some additional tweaking: for [:blank:] the vertical spacecharacters are removed, and for [:alpha:] and [:alnum:] the underscorecharacter is removed. The triples in the table consist of the base map offset,second map offset or -1 if no second map, and a non-negative value for mapaddition or a negative value for map subtraction (if there are two maps). Theabsolute value of the third field has these meanings: 0 => no tweaking, 1 =>remove vertical space characters, 2 => remove underscore. */static const int posix_class_maps[] = {  cbit_word,  cbit_digit, -2,             /* alpha */  cbit_lower, -1,          0,             /* lower */  cbit_upper, -1,          0,             /* upper */  cbit_word,  -1,          2,             /* alnum - word without underscore */  cbit_print, cbit_cntrl,  0,             /* ascii */  cbit_space, -1,          1,             /* blank - a GNU extension */  cbit_cntrl, -1,          0,             /* cntrl */  cbit_digit, -1,          0,             /* digit */  cbit_graph, -1,          0,             /* graph */  cbit_print, -1,          0,             /* print */  cbit_punct, -1,          0,             /* punct */  cbit_space, -1,          0,             /* space */  cbit_word,  -1,          0,             /* word - a Perl extension */  cbit_xdigit,-1,          0              /* xdigit */};#define STRING(a)  # a#define XSTRING(s) STRING(s)/* The texts of compile-time error messages. These are "char *" because theyare passed to the outside world. Do not ever re-use any error number, becausethey are documented. Always add a new error instead. Messages marked DEAD beloware no longer used. This used to be a table of strings, but in order to reducethe number of relocations needed when a shared library is loaded dynamically,it is now one long string. We cannot use a table of offsets, because thelengths of inserts such as XSTRING(MAX_NAME_SIZE) are not known. Instead, wesimply count through to the one we want - this isn't a performance issuebecause these strings are used only when there is a compilation error. */static const char error_texts[] =  "no error\0"  "\\ at end of pattern\0"  "\\c at end of pattern\0"  "unrecognized character follows \\\0"  "numbers out of order in {} quantifier\0"  /* 5 */  "number too big in {} quantifier\0"  "missing terminating ] for character class\0"  "invalid escape sequence in character class\0"  "range out of order in character class\0"  "nothing to repeat\0"  /* 10 */  "operand of unlimited repeat could match the empty string\0"  /** DEAD **/  "internal error: unexpected repeat\0"  "unrecognized character after (?\0"  "POSIX named classes are supported only within a class\0"  "missing )\0"  /* 15 */  "reference to non-existent subpattern\0"  "erroffset passed as NULL\0"  "unknown option bit(s) set\0"  "missing ) after comment\0"  "parentheses nested too deeply\0"  /** DEAD **/  /* 20 */  "regular expression is too large\0"  "failed to get memory\0"  "unmatched parentheses\0"  "internal error: code overflow\0"  "unrecognized character after (?<\0"  /* 25 */  "lookbehind assertion is not fixed length\0"  "malformed number or name after (?(\0"  "conditional group contains more than two branches\0"  "assertion expected after (?(\0"  "(?R or (?[+-]digits must be followed by )\0"  /* 30 */  "unknown POSIX class name\0"  "POSIX collating elements are not supported\0"  "this version of PCRE is not compiled with PCRE_UTF8 support\0"  "spare error\0"  /** DEAD **/  "character value in \\x{...} sequence is too large\0"  /* 35 */  "invalid condition (?(0)\0"  "\\C not allowed in lookbehind assertion\0"  "PCRE does not support \\L, \\l, \\N, \\U, or \\u\0"  "number after (?C is > 255\0"  "closing ) for (?C expected\0"  /* 40 */  "recursive call could loop indefinitely\0"  "unrecognized character after (?P\0"  "syntax error in subpattern name (missing terminator)\0"  "two named subpatterns have the same name\0"  "invalid UTF-8 string\0"  /* 45 */  "support for \\P, \\p, and \\X has not been compiled\0"  "malformed \\P or \\p sequence\0"  "unknown property name after \\P or \\p\0"  "subpattern name is too long (maximum " XSTRING(MAX_NAME_SIZE) " characters)\0"  "too many named subpatterns (maximum " XSTRING(MAX_NAME_COUNT) ")\0"  /* 50 */  "repeated subpattern is too long\0"    /** DEAD **/  "octal value is greater than \\377 (not in UTF-8 mode)\0"  "internal error: overran compiling workspace\0"  "internal error: previously-checked referenced subpattern not found\0"  "DEFINE group contains more than one branch\0"  /* 55 */  "repeating a DEFINE group is not allowed\0"  "inconsistent NEWLINE options\0"  "\\g is not followed by a braced name or an optionally braced non-zero number\0"  "(?+ or (?- or (?(+ or (?(- must be followed by a non-zero number\0"  "(*VERB) with an argument is not supported\0"  /* 60 */  "(*VERB) not recognized\0"  "number is too big";/* Table to identify digits and hex digits. This is used when compilingpatterns. Note that the tables in chartables are dependent on the locale, andmay mark arbitrary characters as digits - but the PCRE compiling code expectsto handle only 0-9, a-z, and A-Z as digits when compiling. That is why we havea private table here. It costs 256 bytes, but it is a lot faster than doingcharacter value tests (at least in some simple cases I timed), and in someapplications one wants PCRE to compile efficiently as well as matchefficiently.For convenience, we use the same bit definitions as in chartables:  0x04   decimal digit  0x08   hexadecimal digitThen we can use ctype_digit and ctype_xdigit in the code. */#ifndef EBCDIC  /* This is the "normal" case, for ASCII systems */static const unsigned char digitab[] =  {  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   8- 15 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - '  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ( - /  */  0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /*  0 - 7  */  0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, /*  8 - ?  */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  @ - G  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  H - O  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  P - W  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  X - _  */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  ` - g  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  h - o  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  p - w  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  x -127 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */#else           /* This is the "abnormal" case, for EBCDIC systems */static const unsigned char digitab[] =  {  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   0-  7  0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*   8- 15    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  16- 23 10 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  32- 39 20 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  40- 47    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  48- 55 30 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  56- 63    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - 71 40 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  72- |     */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  & - 87 50 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  88- 95    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  - -103 60 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 104- ?     */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 70 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- "     */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /* 128- g  80 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  h -143    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144- p  90 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  q -159    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160- x  A0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  y -175    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ^ -183 B0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191    */  0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x00, /*  { - G  C0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  H -207    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  } - P  D0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  Q -223    */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  \ - X  E0 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  Y -239    */  0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c,0x0c, /*  0 - 7  F0 */  0x0c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00};/*  8 -255    */static const unsigned char ebcdic_chartab[] = { /* chartable partial dup */  0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*   0-  7 */  0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00, /*   8- 15 */  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*  16- 23 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  24- 31 */  0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00, /*  32- 39 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  40- 47 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  48- 55 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  56- 63 */  0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*    - 71 */  0x00,0x00,0x00,0x80,0x00,0x80,0x80,0x80, /*  72- |  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  & - 87 */  0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00, /*  88- 95 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  - -103 */  0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x80, /* 104- ?  */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 112-119 */  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 120- "  */  0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* 128- g  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  h -143 */  0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* 144- p  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  q -159 */  0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /* 160- x  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  y -175 */  0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /*  ^ -183 */  0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00, /* 184-191 */  0x80,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /*  { - G  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  H -207 */  0x00,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /*  } - P  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  Q -223 */  0x00,0x00,0x12,0x12,0x12,0x12,0x12,0x12, /*  \ - X  */  0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, /*  Y -239 */  0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /*  0 - 7  */  0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x00};/*  8 -255 */#endif/* Definition to allow mutual recursion */static BOOL  compile_regex(int, int, uschar **, const uschar **, int *, BOOL, BOOL, int,    int *, int *, branch_chain *, compile_data *, int *);/**************************************************            Find an error text                  *

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影在线看| 日本一区二区三区国色天香 | 国产精品欧美一级免费| 亚洲天堂免费看| 天天影视色香欲综合网老头| 另类小说综合欧美亚洲| 成人av在线资源| 欧美三级午夜理伦三级中视频| 日韩视频免费观看高清完整版在线观看 | 欧美激情一区二区三区不卡 | 91精品国产乱| 国产精品美女一区二区三区| 亚洲成人免费看| 国产福利一区在线| 欧美亚日韩国产aⅴ精品中极品| 日韩欧美123| 一区二区三区四区中文字幕| 国产真实乱子伦精品视频| 色哟哟国产精品免费观看| 精品成人a区在线观看| 亚洲精品国产精华液| 国产精品一区二区91| 欧美亚洲一区二区在线| 久久久久久久久久久电影| 亚洲成人av一区| 成人午夜免费视频| 日韩精品一区在线观看| 一区二区三区在线不卡| 国产成人av自拍| 日韩欧美在线影院| 一区av在线播放| 国产91露脸合集magnet| 91精品黄色片免费大全| 一区二区三区四区亚洲| 成人午夜又粗又硬又大| 精品va天堂亚洲国产| 五月婷婷欧美视频| 日本道精品一区二区三区| 久久九九久久九九| 美女www一区二区| 欧美老人xxxx18| 亚洲免费电影在线| 99热这里都是精品| 久久久精品蜜桃| 卡一卡二国产精品 | 国产原创一区二区| 欧美一区二区在线免费观看| 亚洲精品国产品国语在线app| 粉嫩av一区二区三区粉嫩 | 成人黄色国产精品网站大全在线免费观看 | 中文字幕不卡在线观看| 激情综合网天天干| 欧美大片一区二区三区| 亚洲一区二区三区视频在线播放| av在线播放成人| 国产精品丝袜在线| 国产成人av网站| 久久久另类综合| 极品少妇xxxx精品少妇偷拍| 欧美成人官网二区| 日本欧美在线看| 欧美一区中文字幕| 日韩精品电影一区亚洲| 欧美肥妇free| 日韩中文字幕亚洲一区二区va在线| 欧美性大战久久| 亚洲国产精品一区二区www | 免费观看在线综合| 日韩视频一区二区三区 | 久久久久久99久久久精品网站| 免费高清在线视频一区·| 777亚洲妇女| 日韩精品乱码免费| 日韩视频在线你懂得| 美女mm1313爽爽久久久蜜臀| 日韩欧美精品三级| 黄色成人免费在线| 欧美精品一区二区蜜臀亚洲| 久色婷婷小香蕉久久| 亚洲男女毛片无遮挡| 在线亚洲高清视频| 偷窥少妇高潮呻吟av久久免费| 欧美日本一区二区在线观看| 秋霞成人午夜伦在线观看| 欧美刺激午夜性久久久久久久| 九色综合国产一区二区三区| 久久久久综合网| bt欧美亚洲午夜电影天堂| 最新国产精品久久精品| 欧美无人高清视频在线观看| 天堂精品中文字幕在线| 精品成人一区二区三区| www.日韩av| 亚洲高清一区二区三区| 欧美一级欧美三级| 国产福利91精品| 亚洲精品自拍动漫在线| 91麻豆精品久久久久蜜臀| 国产一区二区三区免费观看| 亚洲婷婷在线视频| 51久久夜色精品国产麻豆| 国产激情精品久久久第一区二区| 亚洲欧美中日韩| 欧美日产在线观看| 国产精品亚洲第一区在线暖暖韩国 | 日韩av午夜在线观看| 精品国产伦理网| 91在线观看免费视频| 亚洲国产欧美日韩另类综合| 精品国产一区二区三区不卡| 成人精品免费看| 午夜免费欧美电影| 国产女主播一区| 欧美老女人在线| 成人黄色电影在线| 天天综合网 天天综合色| 欧美激情中文字幕| 欧美精品日韩精品| 国产成人精品一区二区三区网站观看| 一区二区三区四区不卡在线| 日韩一级成人av| www.综合网.com| 久久国产剧场电影| 一区二区视频在线| 精品国产3级a| 精品视频在线视频| 成人午夜视频网站| 免费av成人在线| 亚洲欧美日韩在线| 欧美一区二区日韩一区二区| 99视频精品全部免费在线| 九九国产精品视频| 亚洲在线观看免费| 国产精品无遮挡| 欧美大片顶级少妇| 精品视频在线免费| 91网页版在线| 国内精品免费在线观看| 偷拍一区二区三区| 亚洲六月丁香色婷婷综合久久 | 国产福利一区二区| 日韩精品一卡二卡三卡四卡无卡| 综合久久国产九一剧情麻豆| 精品久久国产97色综合| 欧美日韩一级黄| 色综合天天做天天爱| 国产成人欧美日韩在线电影| 美女视频一区在线观看| 亚洲已满18点击进入久久| 中文字幕av免费专区久久| 精品处破学生在线二十三| 91麻豆精品国产91久久久久久 | 亚洲gay无套男同| 亚洲视频在线观看三级| 久久精品人人做人人综合| 日韩欧美一级片| 6080国产精品一区二区| 欧美丝袜丝交足nylons图片| 92国产精品观看| 9l国产精品久久久久麻豆| 国产精品888| 国产美女av一区二区三区| 久久国产欧美日韩精品| 全国精品久久少妇| 日韩av在线播放中文字幕| 五月天婷婷综合| 亚洲成人在线免费| 亚洲一二三级电影| 依依成人精品视频| 亚洲天堂a在线| 亚洲天堂中文字幕| 亚洲欧美日韩久久| 亚洲精品久久久蜜桃| 亚洲男同性视频| 一区二区三区国产| 一区二区久久久久久| 一区二区三区精品在线| 亚洲综合另类小说| 亚洲成人综合视频| 日本午夜一区二区| 久久国产欧美日韩精品| 精品一区二区三区香蕉蜜桃| 久久精品国产久精国产| 激情国产一区二区| 国产成+人+日韩+欧美+亚洲| 国产高清精品在线| www.欧美色图| 91日韩精品一区| 日本大香伊一区二区三区| 欧美三区在线视频| 日韩亚洲欧美一区二区三区| 日韩欧美在线影院| 久久久91精品国产一区二区精品| 欧美国产日韩亚洲一区| 国产精品国产三级国产普通话三级 | 奇米综合一区二区三区精品视频| 日本美女一区二区三区视频| 蜜臀av一区二区在线免费观看| 国产在线一区观看| www.在线成人|