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

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

?? iso8583.cpp

?? ISO 8583 implementation.
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/////////////////////////////////////////////////////////////////////////////////////////////////////
//
// IT24 Sistemas S.A.
// ISO-8583-Message Propietary Library
// 
//
//   Libreria Propietaria de Mensajes ISO-8583.
//   Propietaria implica que, como es de esperar de un estandard, se 
// respeta el formato, pero... se ajustan los mensajes a las necesidades 
// de B24-HISO.
//   Entonces, esta es la base que verifica los mensajes ISO-8583-B24
// hasta el Secondary BitMap inclusive, en forma parametrica, a traves de un profile
// o bien con valores por default. Esta tecnica utiliza una lista de strings de bitmaps
// para cada tipo de transaccion y verifica contra los bitmaps informados en el mensaje.
//   El modulo se basa en B24-HISO Release 4, en cuanto a Type, Offset y Length 
// de campos ISO8583, y la forma parametrica de cargar los bitmaps externamente (EMF). 
//   (*) Adaptados los BITMAPS especialmente por omision , para conexion con RED LINK S.A.
//
// Tarea        Fecha           Autor   Observaciones
// (Inicial)    1997.09.23      mdc     Base
// (Inicial)    1997.09.26      mdc     Base
// (Inicial)    1997.09.29      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.08      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.15      mdc     Recalculo de Offsets dinamicamente
// (Inicial)    1997.10.28      mdc     Tipo de Campo (0=Fijo,1,2,3=Variable)
// (Inicial)    1997.10.30      mdc     Extensiones Headers/TrxCode/Bitmap
// (Inicial)    1997.10.31      mdc     Longitud de mensaje
// (Inicial)    1997.11.06      mdc     Extensiones de Funcionalidad en Campos
// (Inicial)    1997.11.07      mdc     Extensiones de Tipos de Mensaje
// (Inicial)    1997.11.18      mdc     Establecer Codigo de Respuesta de Mensaje
// (Inicial)    1997.12.16      mdc     Chequeos fuertes de rangos de copia en InsertField()
// (Inicial)    1998.04.01      mdc     Aportes voluntarios AFJP=Bitmaps validos
// (Inicial)    1998.06.22      mdc     Reemplazo de CHAR[] por BYTE[], e inclusion de typedefs.h        
// (Inicial)    1998.06.23      mdc     Ultimos Movimientos=Bitmaps validos
// (Inicial)    1998.06.24      mdc     ISO-MsgTypes en defines
// (Alfa)       1998.06.25      mdc     Bitmaps ULTMOV corregidos
// (Beta)       1998.07.02      mdc     Bitmaps AFJP corregidos
// (Beta)       1998.07.31      mdc     BitMapList para cada TranTyp ahora parametrizable (SOAT)
// (Beta)       1998.08.06      mdc     Agrega BitMaps harcodeados del SOAT-NT
// (Beta)       1998.09.03      mdc     Buffer expandido a 4096 kbytes y agregado Tipo de Campo 4
// (Beta)       1998.10.15      mdc     Longitud campo #126 en 4 digitos
// (Beta)       1998.12.02      mdc     Exceso de copia en campo #126
// (Beta)       1998.12.23      mdc     Nulificacion de buffer antes de copiar datos externos
// (Beta)       1999.06.10      mdc     GetBitmapDescription() retorno dependiente de parametros.
// (Beta)       1999.07.07      mdc     Precondicion: Verificacion habilitada? : Parametrizable en .INI
// (Beta)       2000.02.15      mdc     Parametrizacion en archivo independinte de plataforma (.TXT)
// (Release)	2001.02.14		mdc		::InitMessage() con "Product-Id"="02" = POS
// (Release)    2001.06.27      mdc     Longitud campo #56 en 4 digitos
// (Release)    2005.08.24      mdc     _SYSTEM_ATM_ = _SYSTEM_BASE_
//
/////////////////////////////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////
/*              Base24 4.0 ISO-8583 FIELD NUMBER DEFINITIONS         */
/*      position    type         offset and length                   */
///////////////////////////////////////////////////////////////////////
/*         1,        0,      primary^field( secndry^bit^map     ),
           2,        2,      primary^field( pan                 ),
           3,        0,      primary^field( proc^cde            ),
           4,        0,      primary^field( tran^amt            ),
           5,        0,      primary^field( setl^amt            ),
           6,        0,      primary^field( bill^amt            ),
           7,        0,      primary^field( xmit^dat^tim        ),
           8,        0,      primary^field( bill^fee            ),
           9,        0,      primary^field( setl^conv^rat       ),
          10,        0,      primary^field( bill^conv^rat       ),
          11,        0,      primary^field( trace^num           ),
          12,        0,      primary^field( tran^tim            ),
          13,        0,      primary^field( tran^dat            ),
          14,        0,      primary^field( exp^dat             ),
          15,        0,      primary^field( setl^dat            ),
          16,        0,      primary^field( conv^dat            ),
          17,        0,      primary^field( cap^dat             ),
          18,        0,      primary^field( mrcht^typ^cde       ),
          19,        0,      primary^field( acq^inst^cntry^cde  ),
          20,        0,      primary^field( pan^ext^cntry^cde   ),
          21,        0,      primary^field( frwd^inst^cntry^cde ),
          22,        0,      primary^field( entry^mde           ),
          23,        0,      primary^field( mbr^num             ),
          24,        0,      primary^field( netw^intl^id        ),
          25,        0,      primary^field( pt^tran^spcl^cde    ),
          26,        0,      primary^field( pos^pin^capture^cde ),
          27,        0,      primary^field( auth^id^resp^len    ),
          28,        0,      primary^field( tran^fee            ),
          29,        0,      primary^field( setl^fee            ),
          30,        0,      primary^field( tran^proc^fee       ),
          31,        0,      primary^field( setl^proc^fee       ),
          32,        2,      primary^field( acq^inst^id         ),
          33,        2,      primary^field( frwd^inst^id        ),
          34,        2,      primary^field( pan^extnd           ),
          35,        2,      primary^field( track2              ),
          36,        3,      primary^field( track3              ),
          37,        0,      primary^field( retrvl^ref^num      ),
          38,        0,      primary^field( auth^id^resp        ),
          39,        0,      primary^field( resp^cde            ),
          40,        0,      primary^field( service^cde         ),
          41,        0,      primary^field( term^id             ),
          42,        0,      primary^field( crd^accpt^id^cde    ),
          43,        0,      primary^field( crd^accpt^name^loc  ),
          44,        2,      primary^field( resp^data           ),
          45,        2,      primary^field( track1              ),
          46,        3,      primary^field( add^data^iso        ),
          47,        3,      primary^field( add^data^natl       ),
          48,        3,      primary^field( add^data^prvt       ),
          49,        0,      primary^field( crncy^cde           ),
          50,        0,      primary^field( setl^crncy          ),
          51,        0,      primary^field( bill^crncy          ),
          52,        0,      primary^field( pin                 ),
          53,        0,      primary^field( sec^cntrl^info      ),
          54,        3,      primary^field( add^amts            ),
          55,        3,      primary^field( pri^rsrvd1^iso      ),
          56,        3,      primary^field( pri^rsrvd2^iso      ),
          57,        3,      primary^field( pri^rsrvd1^natl     ),
          58,        3,      primary^field( pri^rsrvd2^natl     ),
          59,        3,      primary^field( pri^rsrvd3^natl     ),
          60,        3,      primary^field( pri^rsrvd1^prvt     ),
          61,        3,      primary^field( pri^rsrvd2^prvt     ),
          62,        3,      primary^field( pri^rsrvd3^prvt     ),
          63,        3,      primary^field( pri^rsrvd4^prvt     ),
          64,        0,      primary^field( pri^mac^cde         ),
          65,       -1,      0, 0, ! Not defined in the standard !
          66,        0,      secndry^field( setl^cde            ),
          67,        0,      secndry^field( extd^pay^cde        ),
          68,        0,      secndry^field( rcv^inst^cntry^cde  ),
          69,        0,      secndry^field( setl^inst^cntry^cde ),
          70,        0,      secndry^field( netw^mgmt^cde       ),
          71,        0,      secndry^field( msg^num             ),
          72,        0,      secndry^field( lst^msg^num         ),
          73,        0,      secndry^field( action^dat          ),
          74,        0,      secndry^field( num^cr              ),
          75,        0,      secndry^field( num^cr^rvsl         ),
          76,        0,      secndry^field( num^db              ),
          77,        0,      secndry^field( num^db^rvsl         ),
          78,        0,      secndry^field( num^xfer            ),
          79,        0,      secndry^field( num^xfer^rvsl       ),
          80,        0,      secndry^field( num^inq             ),
          81,        0,      secndry^field( num^auth            ),
          82,        0,      secndry^field( amt^cr^proc^fees    ),
          83,        0,      secndry^field( amt^cr^tran^fees    ),
          84,        0,      secndry^field( amt^db^proc^fees    ),
          85,        0,      secndry^field( amt^db^tran^fees    ),
          86,        0,      secndry^field( amt^cr              ),
          87,        0,      secndry^field( amt^cr^rvsl         ),
          88,        0,      secndry^field( amt^db              ),
          89,        0,      secndry^field( amt^db^rvsl         ),
          90,        0,      secndry^field( orig^info           ),
          91,        0,      secndry^field( file^updt^cde       ),
          92,        0,      secndry^field( file^sec^cde        ),
          93,        0,      secndry^field( resp^ind            ),
          94,        0,      secndry^field( srv^ind             ),
          95,        0,      secndry^field( replacement         ),
          96,        0,      secndry^field( msg^sec^cde         ),
          97,        0,      secndry^field( setl^amt^net        ),
          98,        0,      secndry^field( payee               ),
          99,        2,      secndry^field( setl^inst           ),
         100,        2,      secndry^field( rcv^inst            ),
         101,        2,      secndry^field( fname               ),
         102,        2,      secndry^field( acct1               ),
         103,        2,      secndry^field( acct2               ),
         104,        3,      secndry^field( tran^descr          ),
         105,        3,      secndry^field( secndry^rsrvd1^iso  ),
         106,        3,      secndry^field( secndry^rsrvd2^iso  ),
         107,        3,      secndry^field( secndry^rsrvd3^iso  ),
         108,        3,      secndry^field( secndry^rsrvd4^iso  ),
         109,        3,      secndry^field( secndry^rsrvd5^iso  ),
         110,        3,      secndry^field( secndry^rsrvd6^iso  ),
         111,        3,      secndry^field( secndry^rsrvd7^iso  ),
         112,        3,      secndry^field( secndry^rsrvd1^natl ),
         113,        3,      secndry^field( secndry^rsrvd2^natl ),
         114,        3,      secndry^field( secndry^rsrvd3^natl ),
         115,        3,      secndry^field( secndry^rsrvd4^natl ),
         116,        3,      secndry^field( secndry^rsrvd5^natl ),
         117,        3,      secndry^field( secndry^rsrvd6^natl ),
         118,        3,      secndry^field( secndry^rsrvd7^natl ),
         119,        3,      secndry^field( secndry^rsrvd8^natl ),
         120,        3,      secndry^field( secndry^rsrvd1^prvt ),
         121,        3,      secndry^field( secndry^rsrvd2^prvt ),
         122,        3,      secndry^field( secndry^rsrvd3^prvt ),
         123,        3,      secndry^field( secndry^rsrvd4^prvt ),
         124,        3,      secndry^field( secndry^rsrvd5^prvt ),
         125,        3,      secndry^field( secndry^rsrvd6^prvt ),
         126,        3,      secndry^field( secndry^rsrvd7^prvt ),
         127,        3,      secndry^field( secndry^rsrvd8^prvt ),
         128,        0,      secndry^field( secndry^mac^cde )    ;
*/
///////////////////////////////////////////////////////////////////////


// Headers ANSI
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>

// Headers propios
// Header Type Definitions
#include <qusrinc/typedefs.h>
// Aliases
#include <qusrinc/alias.h>
// ISO-8583
#include <qusrinc/iso8583.h>
// ISO8583 Customer definitions
#include <qusrinc/dpcsys.h>

// Longitud de bitmap segun ISO
#ifndef BITMAP_STR_LEN	
#define BITMAP_STR_LEN  16
#endif


#ifndef min
#define min(x,y)	(x<y) ? x : y
#define max(x,y)	(x>y) ? x : y
#endif // min-max


// Clase ISO8583MSG
// Constructor
 ISO8583MSG::ISO8583MSG(void) 
	{
	// Inicializacion
    memset((PBYTE)chMsg,0x00,sizeof chMsg); // Buffer Mensaje
	cbMsgLen = 0;                           // Longitud Buffer		
	// Buffer auxiliar de copia 
	memset(chAuxMsg,0x00,sizeof chAuxMsg);	// Buffer Mensaje
	cbAuxMsgLen = 0;						// Longitud Buffer		
	bCheckMessage = FALSE;					// No checking by default

	// Descripcion de Bitmaps y Campos por default
	DefaultBitmapsDescriptions();
	DefaultFieldsDescriptions();
	}

// Constructor opcional
 ISO8583MSG::ISO8583MSG(PBYTE lpbExtMsg	, 
							  WORD  cbExtLen	,
							  PSTR  szFldDescFile) 
	{
	// Inicializacion
    memset((PBYTE)chMsg,0x00,sizeof chMsg);            // Buffer Mensaje
	cbMsgLen = 0;                                   // Longitud Buffer		
	// Buffer auxiliar de copia 
	memset(chAuxMsg,0x00,sizeof chAuxMsg);	// Buffer Mensaje
	cbAuxMsgLen = 0;						// Longitud Buffer		
	bCheckMessage = TRUE;							// Checking by default
	// Descripcion de Bitmaps y Campos por default
	DefaultBitmapsDescriptions();
	DefaultFieldsDescriptions();
	// 緿escripcion de Bitmaps y Campos parametrica?
	if(szFldDescFile)
		{
		GetAllBitmapsDescriptions(szFldDescFile);
		GetFieldsDescription(szFldDescFile);
		}//end-if-szFldDescFile
	if((lpbExtMsg) && (cbExtLen))
		// Copia de buffer plano externo
		Import(lpbExtMsg, cbExtLen);
	}

// Destructor
 ISO8583MSG::~ISO8583MSG(void)
	{
	// ...nada especifico que desalojar dinamicamente...
	}

// Importador
 BOOL ISO8583MSG::Import(const PBYTE lpbExtMsg, WORD cbExtLen)
	{
	PBYTE lpbLocMsg = lpbExtMsg;
	PBYTE lpbMsgETX = NULL;

	// Copia de buffer plano, chequeando longitud
	if( (lpbExtMsg) &&
		(cbExtLen < sizeof(chMsg)) &&
	    (cbExtLen > 0) )	    
		{
		// Nulificacion
		memset((PBYTE)chMsg,0,sizeof chMsg);
		cbMsgLen = 0;
		///////////////////////////////////////////////////////////////
		memmove((PBYTE)chMsg, lpbLocMsg, cbExtLen);		
		chMsg[cbExtLen] = 0x00; // Fin de Mensaje es NULL
		cbMsgLen = cbExtLen;
		// Si hay caracteres ETX o longitudes invalidas
		lpbMsgETX = (PBYTE)strchr((char *)lpbLocMsg, 0x03);
		if(lpbMsgETX)
			{ 
			*lpbMsgETX = 0x00;
			cbMsgLen = strlen((char *)lpbLocMsg);
			}
		// Si hay caracteres ETX o longitudes invalidas
		lpbMsgETX = (PBYTE)strchr((char *)lpbLocMsg, 0x02);
		if(lpbMsgETX)
			{ 
			*lpbMsgETX = 0x00;
			cbMsgLen = strlen((char *)lpbLocMsg);
			}
		if(cbExtLen > CISOMESSAGESIZE-1)
			cbExtLen = CISOMESSAGESIZE-1;
		///////////////////////////////////////////////////////////////

		// Postcondicion: Recalculo dinamico de offsets de Campos presentes Ok?
		return RecalculateOffsets();
		}
	else
		// Error
		return (FALSE);
	}

// Exportador
 BOOL ISO8583MSG::Export(PBYTE lpbExtMsg, PWORD pcbExtMsgLen)
	{
	// Copia de buffer plano, chequeando longitud
	if( (lpbExtMsg)                   &&
		((*pcbExtMsgLen) >= cbMsgLen) &&		
	    ((*pcbExtMsgLen) > 0)         &&
		(cbMsgLen > 0))
		{
		// Copia
		memmove(lpbExtMsg, (PBYTE)chMsg, cbMsgLen);
		///////////////////////////////////////////////////////////////
#ifdef _USE_ETX_
		lpbExtMsg[cbMsgLen  ] = 0x03; // ETX
		lpbExtMsg[cbMsgLen+1] = 0x00; // NULL
		(*pcbExtMsgLen)       = cbMsgLen +1 ;
#else
		lpbExtMsg[cbMsgLen  ] = 0x00; // NUL		
		(*pcbExtMsgLen)       = cbMsgLen ;
#endif
		///////////////////////////////////////////////////////////////
		// Ok
		return (TRUE);
		}
	else
		// Error
		return (FALSE);
	}

// Valor de Campo
 BOOL ISO8583MSG::GetField(WORD wField,PWORD pwFieldLen,
	                             PBYTE szValue,WORD wValueLen)
	{	
	// Precondicion: Mensaje existente
	if(!cbMsgLen) 
		return (FALSE);

	// Precondicion: campo valido
	if(!IsValidField(wField)) 
		return (FALSE);

	// Precondicion: Destino no nulo
	if((pwFieldLen == NULL) || (szValue == NULL) || (wValueLen == 0))
		return (FALSE);

	// Implicit Length
	WORD wImpLength = 0; 
	// Propiedades del Campo especifico
	WORD wType      = FieldType(wField),
         wOffset    = FieldOffset(wField),
	     wLength    = FieldLength(wField);

	// Campo Fijo o Variable?
	if (wType == 0) 
		// Campo fijo, longitud explicita
	    wImpLength = wLength;
	else 
	    // Campo variable, extraer longitud implicita
		if(!GetImplicitLength(wField, &wImpLength))
			return (FALSE);

	// Chequeo de longitud de campo, y eventual correccion
	if(wImpLength == 0)
		return (FALSE);
	else if((INT)wImpLength > ((INT)cbMsgLen - 32)) // ISO Header=32 bytes
		{		
		// Correccion de longitud implicita al maximo posible
		wImpLength = cbMsgLen - 32;                  
		// Correccion de longitud en campo interno
		fdFields[wField].Set(wType,wOffset,wLength); 
		} // end-if

	// Chequeo de longitud implicita/explicita contra la maxima a copiar
	if(wValueLen < wImpLength)
		{		
		// Copia directa...

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成a人片综合在线| 欧美日韩国产美| 国产成人精品免费在线| 欧美亚洲高清一区二区三区不卡| 国产精品久久久久久久久图文区 | 5月丁香婷婷综合| 亚洲不卡在线观看| 日日夜夜精品视频免费| 国内精品嫩模私拍在线| 国产欧美一区二区精品仙草咪| 国产黑丝在线一区二区三区| 中文字幕在线不卡| 欧美日韩在线一区二区| 美女一区二区三区在线观看| 久久久久久黄色| 91美女片黄在线观看| 天天综合天天做天天综合| 欧美一区二区啪啪| 国产不卡免费视频| 亚洲午夜一区二区三区| 精品入口麻豆88视频| www..com久久爱| 日韩成人免费在线| 国产精品久久综合| 欧美一卡在线观看| 99久久精品情趣| 奇米影视在线99精品| 中日韩av电影| 91精品国产欧美日韩| 成人av资源站| 日本午夜一区二区| 亚洲欧美日韩国产综合| 日韩欧美高清在线| 色婷婷亚洲婷婷| 国产在线一区观看| 婷婷久久综合九色综合绿巨人| 久久综合久久久久88| 在线观看视频欧美| 国产成人午夜精品影院观看视频 | 日韩影院免费视频| 国产亚洲精品免费| 欧美一区二区福利视频| av激情综合网| 精品一区二区影视| 欧美日韩成人一区| 91色在线porny| 成人免费高清在线| 国模冰冰炮一区二区| 日韩欧美一二三区| 欧美三级在线播放| 色综合天天综合网天天看片| 国产精品一区免费视频| 麻豆精品在线视频| 亚洲一二三四在线| 日韩理论片网站| 欧美激情一区在线| 久久综合狠狠综合久久激情| 538prom精品视频线放| 色一情一乱一乱一91av| 国产精品一卡二卡| 国产一区在线不卡| 韩国av一区二区三区在线观看| 日韩专区一卡二卡| 午夜精品在线看| 亚洲国产日韩av| 亚洲电影第三页| 亚洲国产精品麻豆| 亚洲成人免费在线观看| 亚洲影院在线观看| 一区二区三区四区蜜桃| 亚洲色图欧洲色图| 亚洲婷婷在线视频| 亚洲六月丁香色婷婷综合久久 | 天堂精品中文字幕在线| 亚洲制服丝袜在线| 香蕉成人伊视频在线观看| 亚洲一二三四在线观看| 亚洲国产cao| 日韩成人精品在线| 麻豆久久一区二区| 国产麻豆精品在线观看| 国产白丝网站精品污在线入口| 国产乱码精品一区二区三区忘忧草 | 风间由美一区二区三区在线观看| 国产麻豆9l精品三级站| 国产成+人+日韩+欧美+亚洲| 播五月开心婷婷综合| 成人免费观看av| 日本精品视频一区二区三区| 欧美日韩一区 二区 三区 久久精品| 精品视频色一区| 日韩欧美中文一区二区| 久久久综合视频| 91麻豆国产在线观看| 亚洲不卡av一区二区三区| 日韩福利视频网| 国模少妇一区二区三区| 成人精品鲁一区一区二区| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品 日产精品 欧美精品| 丁香一区二区三区| 欧洲视频一区二区| 欧美一区二区三区公司| 国产亚洲精品中文字幕| 亚洲自拍偷拍av| 精品一区二区综合| 成年人午夜久久久| 欧美人狂配大交3d怪物一区| 精品少妇一区二区三区日产乱码 | 国产精品久久精品日日| 亚洲一区二区在线观看视频| 美美哒免费高清在线观看视频一区二区 | 午夜伦欧美伦电影理论片| 激情伊人五月天久久综合| 成人一区二区三区| 欧美高清视频在线高清观看mv色露露十八| 欧美一级片免费看| 欧美激情一区三区| 日韩电影网1区2区| 99久久久国产精品免费蜜臀| 日韩欧美一区二区三区在线| 自拍偷自拍亚洲精品播放| 久久精品国产精品亚洲精品| 色综合天天视频在线观看| 欧美xxxxx裸体时装秀| 亚洲欧美日韩国产成人精品影院| 青青草原综合久久大伊人精品优势 | 国产精品一品视频| 欧美美女激情18p| 国产精品国产a| 精彩视频一区二区| 欧美日本精品一区二区三区| 国产精品久久久久影院色老大| 日本美女一区二区三区| 色婷婷综合久久久久中文| 国产亚洲一二三区| 日本欧美在线看| 91福利精品视频| 国产精品短视频| 国产精品亚洲人在线观看| 日韩一区二区三区三四区视频在线观看| 中文字幕人成不卡一区| 国产99一区视频免费| 欧美mv和日韩mv的网站| 日本中文字幕一区二区视频| 91精品办公室少妇高潮对白| 国产欧美日韩视频在线观看| 韩日欧美一区二区三区| 日韩欧美精品在线| 日韩高清在线一区| 欧美日韩高清在线播放| 一区二区三区国产| 成人禁用看黄a在线| 欧美极品少妇xxxxⅹ高跟鞋| 精品一区二区三区在线观看国产| 91精品一区二区三区久久久久久 | 欧美艳星brazzers| 亚洲视频1区2区| 99精品久久久久久| 亚洲婷婷综合色高清在线| 不卡区在线中文字幕| 国产精品久久毛片av大全日韩| 国产成人在线影院| 欧美激情一区二区三区四区 | 免费成人av在线| 91精品麻豆日日躁夜夜躁| 天天操天天综合网| 91精品在线观看入口| 免费美女久久99| 精品久久久久久久久久久久久久久| 久久超碰97中文字幕| 久久美女艺术照精彩视频福利播放 | 欧美精品一区男女天堂| 国产一区二区精品在线观看| 国产欧美一区二区三区网站 | 99久久精品免费看| 亚洲精品第一国产综合野| 欧美三级韩国三级日本三斤| 亚洲777理论| 日韩欧美第一区| 粉嫩高潮美女一区二区三区| 国产精品久久久久久亚洲伦| 色综合久久中文字幕综合网| 午夜精品一区在线观看| 精品美女一区二区三区| 粉嫩蜜臀av国产精品网站| 亚洲欧美激情一区二区| 欧美高清你懂得| 国产一区二区中文字幕| 亚洲欧美在线视频观看| 欧美日韩国产中文| 国内外成人在线视频| 亚洲天堂久久久久久久| 欧美顶级少妇做爰| 国产91在线看| 亚洲bdsm女犯bdsm网站| 久久精品欧美日韩| 在线精品国精品国产尤物884a| 免费日韩伦理电影| 亚洲欧洲精品天堂一级|