青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Error

C++博客 首頁 新隨筆 聯(lián)系 聚合 管理
  217 Posts :: 61 Stories :: 32 Comments :: 0 Trackbacks

#

查看和設(shè)置ndk使用的gcc版本
設(shè)置toolchain的方法是在Application.mk中設(shè)置:
NDK_TOOLCHAIN_VERSION = 4.7
為了確認(rèn)是否設(shè)置成功,在ndk-build調(diào)用時增加參數(shù)V=1。即 ndk-build V=1 ..其他參數(shù)..
結(jié)果會顯示:
/Developer/sdks/Android-ndk-r8e/toolchains/arm-Linux-androideabi-4.7/prebuilt/darwin-x86_64/bin/arm-Linux-androideabi-g++ -MMD -MP -MF ....
posted @ 2017-03-31 19:32 Enic 閱讀(740) | 評論 (0)編輯 收藏

// lambda_test.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <functional>
// 利用rtii觀察堆棧生命周期
class StackLifeTimeWatching
{
public:
StackLifeTimeWatching()
{
std::cout << __FUNCTION__ << std::endl;
}
~StackLifeTimeWatching()
{
std::cout << __FUNCTION__ << std::endl;
}
};
// 經(jīng)驗: 保存lambda表達(dá)式的變量被銷毀后,該表達(dá)式對應(yīng)的閉包會銷毀。應(yīng)該保證閉包在lambda表達(dá)式變量的生命周期之內(nèi)執(zhí)行,否則程序執(zhí)行結(jié)果不可預(yù)知!
// 1.理解lambda首先要理解函數(shù)對象,和閉包
// 2.理解必包的基礎(chǔ)上,理解lambda如何實(shí)現(xiàn)閉包
// 3.理解閉包以后,需要分析設(shè)置不同的capture的情況下分別是如何實(shí)現(xiàn)閉包
//   1)閉包意味著一個函數(shù)地址 + 一組封裝好的參數(shù)。
//   2)閉包可以被拷貝,但是每個閉包中的參數(shù)可以是不一樣的
// 4.理解函數(shù)對象和lambda的關(guān)系: lambda可以理解成函數(shù),但是當(dāng)lambda賦值給一個函數(shù)對象的時候,編譯器應(yīng)該是把lambda構(gòu)造成了一個閉包的function
//   1)根據(jù)匯編碼分析,lambda對象類似于函數(shù)指針(但是類型系統(tǒng)和函數(shù)指針是完全不同的概念,可以用decltype(lambda)來鑒定),本質(zhì)和函數(shù)對象是不一樣的。
//   2)定義一個lambda表達(dá)式相當(dāng)于定義一個函數(shù)(觀察會變碼,lambda表達(dá)式是沒有構(gòu)造和析構(gòu)的)
//   3)把函數(shù)指針賦值給一個std::function,和吧lambda賦值給一個std::function的效果是完全不一樣的。一個這是指針賦值操作,另一個則是完整的閉包。
//   4)經(jīng)過代碼實(shí)際測試,lambda是鑒于函數(shù)指針和函數(shù)對象之間的一個玩意,它也是一個特殊的類型,這個具體只能看C++標(biāo)準(zhǔn)文檔了。
//   5)boost asio異步接口中的functor可能是利用了meta編程技巧,或者他本身每一次發(fā)起異步操作都會形成一個獨(dú)立的閉包,解決了函數(shù)對象和socket對象生命周期綁定的關(guān)系
//      應(yīng)為如果是functor實(shí)現(xiàn),宿主對象析構(gòu),一定會造成作為成員變量的functor銷毀,同時引起lambda閉包混亂(不僅閉包參數(shù)亂掉,閉包函數(shù)本身也呈現(xiàn)混亂)。
//      由此分析,閉包中的任何一行代碼都必須在閉包本身的聲明周期內(nèi)執(zhí)行。似乎可以理解成,lambda閉包是把lambda函數(shù)本身也當(dāng)作一個特殊的參數(shù)來完成閉包封裝的。
//      通過會變碼觀察,在使用不同的lambda變量調(diào)用lambda表達(dá)式的時候,會在ecx寄存器壓入不同的值,然后會讀取一塊關(guān)聯(lián)的內(nèi)存。
//   6)vc2015下的lambda永遠(yuǎn)都是4字節(jié),這應(yīng)該是編譯器實(shí)現(xiàn)細(xì)節(jié)了,按說應(yīng)該是隨著閉包內(nèi)容的大小變化而變化。我猜測,這四個字節(jié)應(yīng)該指向一個塊內(nèi)存,里邊的數(shù)據(jù)是用來還原“lambda”函數(shù)執(zhí)行棧的閉包
// 5.通俗的理解上述分析: lambda對象(變量)是一塊內(nèi)存,內(nèi)存里邊是lambda表達(dá)式本身的副本。當(dāng)執(zhí)行l(wèi)ambda表達(dá)式對象的時候,實(shí)際是執(zhí)行對象對應(yīng)的內(nèi)存中的代碼,如果對象被析構(gòu)了,對應(yīng)的代碼也就是未知代碼。
void Test1();
void Test2();
int main()
{
Test2();
    return 0;
}
void Test2()
{
int n = 0;
auto lambda = [&]()->void
{
StackLifeTimeWatching stackWatching;
n = 1;
int j = 0;
int j1 = 0;
int j2 = 0;
int j3 = 0;
int j4 = 0;
int j5 = 0;
};
decltype(&lambda) pLambda0 = &lambda;
decltype(&lambda) pLambda = NULL;
int nSize = sizeof(lambda);
{
decltype(lambda) lambda_copy = lambda;
lambda_copy();
}
(*pLambda0)();  // 正常掉用
(*pLambda)();  // 調(diào)用后整個閉包混亂
}
void Test1()
{
StackLifeTimeWatching p();
int n = 0;
std::function<void()> func;
std::function<void()>* pFunc = new std::function<void()>;
{
//std::function<void()> func = [&]()->void
//{
// StackLifeTimeWatching stackWatching;
// n = 1;
//};
//func();
auto lambda = [&]()->void
{
StackLifeTimeWatching stackWatching;
n = 1;
};
lambda();
func = lambda;
auto lambda2 = [&]()->void
{
delete pFunc;
pFunc = NULL;
StackLifeTimeWatching stackWatching;
n = 1;
};
//decltype(lambda) lambda_copy = lambda2; 編譯錯誤,應(yīng)為編譯器會把每一個lambda表達(dá)式當(dāng)作一個獨(dú)立的類型,這是lambda不同于函數(shù)指針的地方,函數(shù)指針是根據(jù)參數(shù)來決定類型的
decltype(lambda) lambda_copy = lambda;
*pFunc = lambda2;
}
func();
(*pFunc)();
}
posted @ 2017-03-22 22:41 Enic 閱讀(1856) | 評論 (0)編輯 收藏

實(shí)現(xiàn)在CCGeometry.js
Point:
type: cc.Point(x,y)
help functon: 
cc.p(x,y)
cc.pointEqualToPoint(p1, p2)
cc.Size()
cc.size();
cc.sizeEqualToSize
cc.Rect()
cc.rect()
cc.rectEqualToRect()
cc._rectEqualToZero()
cc.rectContainsRect()
cc.rectGetMaxX
cc.rectGetMidX
cc.rectGetMinX
cc.rectGetMaxY
cc.rectGetMidY
cc.rectGetMinY
cc.rectContainsPoint
cc.rectIntersertsRect
cc.rectOverlapsRect
cc.rectUnion
cc.rectInterserction
// 可視區(qū)域
cc.visibleRect()


經(jīng)過實(shí)際調(diào)試:
Point: 有x y屬性可以直接使用
Size: width height
Rect: x y width height
posted @ 2017-03-19 10:54 Enic 閱讀(177) | 評論 (0)編輯 收藏

1.創(chuàng)建的時候給明確地址和端口,創(chuàng)建完成后直接可以accept
2.open bind listen accept完整套路
posted @ 2017-03-16 21:56 Enic 閱讀(192) | 評論 (0)編輯 收藏

1.直接close:客戶端接收數(shù)據(jù)不完整,本地系統(tǒng)關(guān)閉socket,客戶端收不到完整數(shù)據(jù)
2.shutdown_both:客戶端接收數(shù)據(jù)不完整,end of file
3.shutdown_receive: 客戶端接收數(shù)據(jù)完整
3.shutdown_send: 客戶端接收數(shù)據(jù)不完整,遠(yuǎn)程主機(jī)關(guān)閉鏈接
關(guān)閉socket,但是確保對端一定收到數(shù)據(jù)的手段是:
1.shutdown_receive,同時在應(yīng)用層確認(rèn)全部數(shù)據(jù)已經(jīng)投遞到tcp堆棧,然后調(diào)用close
2.設(shè)計應(yīng)用層關(guān)閉協(xié)議,由接收方主動關(guān)閉
posted @ 2017-03-16 21:54 Enic 閱讀(593) | 評論 (0)編輯 收藏

apt-get install mysql-server
apt-get install apache2
apt-get install php5
apt-get install php5-mysql
apt-get install php5-gd
apt-search php5
apt-get install libapache2-mod-php5.6
apt-get install libapache2-mod-auth-mysql
apt-get install openjdk
sudo apt-get purge openjdk/openjdk
apt-get install python-software-properties
apt-get install software-properties-common
apt-get install -y language-pack-en-base
LC_ALL=en_US.UTF-8 add-apt-repository ppa:ondrej/php
add-apt-repository ppa:ondrej/php
apt-get update
apt-cache search php5
apt-get install php5.5-common
apt-get install libapache2-mod-php5.5
apt-get install php5.6
apt-get install php5.6-mysql
apt-get install php5.6-gd
apt-get install php7.1-mcrypt
apt-get install php-mbstring
apt-get install php7.1-mbstring
lsof -i:80   權(quán)限查詢
/etc/init.d/apache2 restart
netstat -tupln
/etc/apache2/ports.conf
vi /etc/apache2/sites-enabled/000-default.conf  修改默認(rèn)站點(diǎn)的root路徑
sudo apt-get install phpmyadmin
ln -s /usr/share/phpmyadmin
sudo apt-get install wordpress
ln -s /usr/share/wordpress
cp wp-config-sample.php wp-config.php
vi wp-config.php
mysql: create database WordPress
ls /usr/share
ls /var/www/
WordPress
posted @ 2017-03-10 14:13 Enic 閱讀(144) | 評論 (0)編輯 收藏

// RandomTest.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>
#include <cmath>
#include <random>
#include <cstdint>
#include <ctime>
#include <algorithm>
#include <numeric>
#include <cassert>
#include <climits>
#include <thread>

#define XASSERT(exp) assert(exp)
#define XASSERT_MSG(exp, msg) assert(exp)
#define X_DEFAULT_FLOAT_PRECISION (0.00000001)

// @in: 總次數(shù)、目標(biāo)比例(千分比)、算法類型(1.c標(biāo)準(zhǔn)庫rand; 2.cpp11 mt19937)
// @out: 實(shí)際命中次數(shù)、實(shí)際命中概率
bool RandomHitTest(int32_t nTotalCount, float fHitRate, int32_t nAlgorithmType, int32_t& nRealHitCount, float& fRealHitRate);
void RandomHitTest_std_mt19937(int32_t nTotalCount, float fHitRate, int32_t& nRealHitCount, float& fRealHitRate);
void RandomHitTest_std_rand(int32_t nTotalCount, float fHitRate, int32_t& nRealHitCount, float& fRealHitRate);
// 簡化std::rand獲取[nMin, nMax]區(qū)間的一個數(shù)字
uint32_t StdRandEx(uint32_t nMin, uint32_t nMax);


int _tmain(int argc, _TCHAR* argv[])
{
    //std::thread srandThread([](){ std::this_thread::sleep_for(std::chrono::seconds(1));});
    
//srandThread.detach();

    std::vector<std::tuple<floatfloat>> vecResult;

    for (int n = 0; n < 1000; n++)
    {
        uint32_t nTotalCount = 100000;  // 基數(shù)100000次

        for (float fHitRate = 0.001f; 1.f - fHitRate >= 0; fHitRate = fHitRate + 0.101f)
        {
            int32_t nRealHitCount = 0;
            float fRealHitRate = 0;

            // std::rand測試
            RandomHitTest(nTotalCount, fHitRate, 1, nRealHitCount, fRealHitRate);
            //std::cout << "AlgorithmType=" << 1 << ",TotlaCount=" << nTotalCount << ",HitRate=" << 
            
//    fHitRate  << ",ReahHitRate=" << std::fixed << fRealHitRate << ",RealHitCount=" << nRealHitCount << std::endl;


            int32_t nRealHitCount1 = 0;
            float fRealHitRate1 = 0;

            // cpp11 mt19937
            RandomHitTest(nTotalCount, fHitRate, 2, nRealHitCount1, fRealHitRate1);
            //std::cout << "AlgorithmType=" << 2 << ",TotlaCount=" << nTotalCount << ",HitRate=" << 
            
//    fHitRate  << ",ReahHitRate=" << std::fixed << fRealHitRate1 << ",RealHitCount=" << nRealHitCount1 << std::endl;
            
//std::cout << "---differ rate=" << std::fixed << fRealHitRate1 - fRealHitRate << ", differ count=" 
            
//    << nRealHitCount1 - nRealHitCount << std::endl;

            std::tuple<floatfloat> tupleResult = std::make_tuple(fHitRate, std::fabsf(fRealHitRate1 - fRealHitRate));
            vecResult.push_back(tupleResult);
        }
    }

    std::sort(vecResult.begin(), vecResult.end(), 
        [](std::tuple<floatfloat>& tupLeft, std::tuple<floatfloat>& tupRight)->bool{
            //float fHitRateL = 0;
            
//float fRealRateL = 0;

            
//float fHitRateR = 0;
            
//float fRealRateR = 0;
            return std::get<1>(tupLeft) - std::get<1>(tupRight) > 0;;
    });

    auto tupleFirst = vecResult[0];

    return 0;
}


uint32_t StdRandEx(uint32_t nMin, uint32_t nMax)
{
    XASSERT((nMin >= 0) && (nMax >= 0) && (nMin <= nMax));

    uint32_t nRandVal = 0;

    if (nMin == nMax)
    {
        nRandVal = nMax;
    }
    else if (nMin < nMax)
    {
        nRandVal = rand() % (nMax - nMin + 1) + nMin;
    }
    else
    {
        XASSERT_MSG(0, _T("參數(shù)異常"));
    }

    return nRandVal;
}

void RandomHitTest_std_rand(int32_t nTotalCount, float fHitRate, int32_t& nRealHitCount, float& fRealHitRate)
{
    nRealHitCount = 0;
    fRealHitRate = 0;

    if (nTotalCount <= 0 || fHitRate <= 0)
    {
        return;
    }

    // 計算浮點(diǎn)小數(shù)點(diǎn)個數(shù)
    int32_t nWeCount = 3;  // 位數(shù)(三位數(shù),千分比精度)
    XASSERT((fHitRate * std::pow(10, nWeCount)) - std::numeric_limits<uint64_t>::max() <= X_DEFAULT_FLOAT_PRECISION);  // 永不溢出
    int64_t nHitRateIntHelp = static_cast<uint64_t>(fHitRate * std::pow(10, nWeCount));  // 概率轉(zhuǎn)整數(shù)輔助計算

    
// 根據(jù)位數(shù)決定隨機(jī)數(shù)范圍
    int32_t nRandMin = 0;
    int32_t nRandMax = std::pow(10, nWeCount);

    // 開始測試
    auto nTestCount = nTotalCount;
    while (nTestCount-- > 0)
    {
        // 生成隨機(jī)數(shù)
        int32_t nRandVal = StdRandEx(nRandMin, nRandMax);

        // 命中判定
        if (nRandVal < nHitRateIntHelp)
        {
            nRealHitCount++;
        }
    }

    fRealHitRate = float(nRealHitCount)/float(nTotalCount);
}

void RandomHitTest_std_mt19937(int32_t nTotalCount, float fHitRate, int32_t& nRealHitCount, float& fRealHitRate)
{
    nRealHitCount = 0;
    fRealHitRate = 0;

    if (nTotalCount <= 0 || fHitRate <= 0)
    {
        return;
    }

    // 計算浮點(diǎn)小數(shù)點(diǎn)個數(shù)
    int32_t nWeCount = 3;  // 位數(shù)(三位數(shù),千分比精度)
    XASSERT((fHitRate * std::pow(10, nWeCount)) - std::numeric_limits<uint64_t>::max() <= X_DEFAULT_FLOAT_PRECISION);  // 永不溢出
    int64_t nHitRateIntHelp = static_cast<uint64_t>(fHitRate * std::pow(10, nWeCount));  // 概率轉(zhuǎn)整數(shù)輔助計算

    
// 根據(jù)位數(shù)決定隨機(jī)數(shù)范圍
    int32_t nRandMin = 0;
    int32_t nRandMax = std::pow(10, nWeCount);

    // 設(shè)置隨機(jī)數(shù)生成器
    std::random_device rd;
    std::mt19937_64 gen(rd());
    std::uniform_int_distribution<> dis(nRandMin, nRandMax);
    
    // 重設(shè)種子應(yīng)該使用這個api:::CryptGenRandom
    
// linux也有相應(yīng)的高精度隨機(jī)數(shù)
    gen.seed(uint32_t(time(NULL)));

    // 開始命中測試
    auto nTestCount = nTotalCount;
    while (nTestCount-- > 0)
    {
        // 生成隨機(jī)數(shù)
        uint32_t randVal = dis(gen);

        if (randVal < nHitRateIntHelp)
        {
            nRealHitCount++;
        }
    }

    fRealHitRate = float(nRealHitCount)/float(nTotalCount);
}


bool RandomHitTest(int32_t nTotalCount, float fHitRate, int32_t nAlgorithmType, int32_t& nRealHitCount, float& fRealHitRate)
{
    if (nTotalCount <= 0)
    {
        return false;
    }

    bool bRet = true;
    switch (nAlgorithmType)
    {
    case 1:
        RandomHitTest_std_rand(nTotalCount, fHitRate, nRealHitCount, fRealHitRate);
        break;
    case 2:
        RandomHitTest_std_mt19937(nTotalCount, fHitRate, nRealHitCount, fRealHitRate);
        break;
    default:
        bRet = false;
        break;
    }

    return true;
}

posted @ 2017-01-22 12:28 Enic 閱讀(1350) | 評論 (0)編輯 收藏

參考鏈接:http://www.cnblogs.com/dolphinX/p/3269145.html
最基礎(chǔ)的玩法:

var Plaza = {};
Plaza.HelloWorldLayer = cc.Layer

這樣解決不了多個文件中需要使用同一個名字控件而且需要共享的情況。


var Plaza = Plaza || {};
Plaza.HelloWorldLayer = cc.Layer
這樣簡單處理能搞定。

另外還有如下比較高階的函數(shù)玩法:

(function(){                 
   var _NS=function(){ }
   _NS.prototype.alert
=function(){
      console.log(
'test');
}
window.NS
=new _NS();
})();
posted @ 2016-12-21 10:15 Enic 閱讀(140) | 評論 (0)編輯 收藏

bSceneCutsomResolution決定適配策略ResolutionPolicy::EXACT_FIT會用縮放拉伸的方式適配

void
 CAutoScreen::SetSceneResolute(float w, float h, bool bSceneCutsomResolution)
{
    CAutoScreen::sceneCutsomResolution=bSceneCutsomResolution;

    if(bSceneCutsomResolution)
    {
        cocos2d::Size ls = Size(w, h);
        Size fs = Director::getInstance()->getOpenGLView()->getFrameSize();
        float sx = ls.width/fs.width;
        float sy = ls.height/fs.height;
    
        sceneResolute = ls;
    
        //定義 scale 變量
        resoluteBool = sx>sy;
        float scale = resoluteBool?sx:sy;
        SetSceneSize(resoluteBool?ls.width:fs.width*scale, resoluteBool?fs.height*scale:ls.height);
        SetSceneScale(resoluteBool?fs.height*scale/ls.height : fs.width*scale/ls.width);
    
        Director::getInstance()->getOpenGLView()->setDesignResolutionSize(GetSceneWidth(), GetSceneHeight(), ResolutionPolicy::SHOW_ALL);
    }
    else
    {
        sceneScale = 0.0f;
        sceneSize = Size(w, h);
        sceneResolute = Size(w, h);
        Director::getInstance()->getOpenGLView()->setDesignResolutionSize(w, h, ResolutionPolicy::EXACT_FIT);
    }
    Director::getInstance()->setContentScaleFactor(1.0f);
}
posted @ 2016-12-19 18:07 Enic 閱讀(239) | 評論 (0)編輯 收藏

1.暴力做法:
select * into [QPTreasureDB].dbo.[WinLoseScoreInfo2] from [QPTreasureDB].dbo.[WinLoseScoreInfo]
drop table [WinLoseScoreInfo]
select distinct * into [QPTreasureDB].dbo.[WinLoseScoreInfo] from [WinLoseScoreInfo2]

2.如果表中有id字段可以考慮:先根據(jù)指定字段查詢重復(fù)數(shù)據(jù),然后根據(jù)不為已的id設(shè)置保留數(shù)據(jù)
select UserId, ServerId, DateId, count(*) as [count], @@rowid--, ROW_NUMBER()over(order by UserId, ServerId, DateId) 
from QPTreasureDB.dbo.WinLoseScoreInfo 
group by UserId, ServerId, DateId 
having count(*) > 1;
posted @ 2016-12-19 13:58 Enic 閱讀(131) | 評論 (0)編輯 收藏

僅列出標(biāo)題
共22頁: 1 2 3 4 5 6 7 8 9 Last 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美高清在线一区二区| 久久综合国产精品| 美国成人直播| 老司机一区二区三区| 久久婷婷蜜乳一本欲蜜臀| 久久一区视频| 亚洲精品国产精品乱码不99| 久久综合九色99| 亚洲欧洲在线一区| 亚洲线精品一区二区三区八戒| 亚洲在线一区二区三区| 亚洲欧美中文日韩在线| 媚黑女一区二区| 欧美日韩在线免费| 精品动漫av| 欧美一区二区三区的| 欧美顶级少妇做爰| 午夜久久福利| 国产精品亚洲第一区在线暖暖韩国| 国产网站欧美日韩免费精品在线观看| 亚洲欧洲日本专区| 久久先锋影音av| 亚洲欧美成人综合| 欧美午夜久久| 亚洲新中文字幕| 欧美成人免费视频| 久久精品一二三| 亚洲激情女人| 欧美日韩高清在线观看| 亚洲国产高清在线观看视频| 久久久久网站| 久久久久91| 在线欧美日韩国产| 亚洲国产精彩中文乱码av在线播放| 性久久久久久久久| 国产性做久久久久久| 欧美成人午夜剧场免费观看| 在线一区欧美| 国产亚洲一本大道中文在线| 久久精品一区二区国产| 欧美一区二区在线播放| 国产欧美视频一区二区| 久热精品视频在线观看| 久久亚洲高清| 亚洲精品国产精品乱码不99| 亚洲国产欧美日韩另类综合| 男女精品网站| 亚洲影音一区| 亚洲欧美在线观看| 国产综合色产在线精品| 欧美sm极限捆绑bd| 欧美福利一区| 欧美一区二区三区四区在线观看| 午夜欧美精品久久久久久久| 在线电影国产精品| 99re热这里只有精品视频| 国产日韩在线一区二区三区| 亚洲电影欧美电影有声小说| 国产精品扒开腿做爽爽爽软件| 久久精品国内一区二区三区| 欧美精品成人| 在线一区二区三区四区| 玖玖玖国产精品| 国产精品一区免费视频| 欧美国产视频日韩| 国内一区二区在线视频观看| 一本色道久久88精品综合| 亚洲二区在线视频| 久久爱www.| 久久国产综合精品| 国产午夜精品美女视频明星a级| 欧美黄色小视频| 最新亚洲一区| 欧美日韩一区二区视频在线| 欧美暴力喷水在线| 国产在线不卡视频| 久久一二三四| 亚洲人午夜精品免费| 一区二区欧美视频| 国产美女精品一区二区三区| 亚洲欧美在线网| 欧美激情按摩在线| 亚洲免费一区二区| 国产一区二区高清不卡| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美一级片在线播放| 久久激情视频久久| 亚洲日本va午夜在线电影| 欧美日韩亚洲一区在线观看| 亚洲在线视频免费观看| 久久嫩草精品久久久久| 一区二区免费在线视频| 好看不卡的中文字幕| 欧美色图天堂网| 久久久亚洲国产天美传媒修理工| 亚洲精品护士| 蜜桃av噜噜一区| 日韩亚洲欧美高清| 国产欧美日韩精品一区| 蜜臀99久久精品久久久久久软件| 亚洲午夜三级在线| 99国产精品久久久久老师 | 亚洲电影免费观看高清完整版在线| 欧美精品18| 欧美激情视频一区二区三区在线播放 | 欧美日韩亚洲天堂| 欧美高清在线一区| 久久综合久久综合九色| 午夜久久久久久| 一区二区三区欧美成人| 91久久线看在观草草青青| 噜噜噜91成人网| 久久亚洲一区| 男女av一区三区二区色多| 美女网站久久| 欧美成人精品一区二区三区| 久久久久国产成人精品亚洲午夜| 性欧美8khd高清极品| 亚洲男女自偷自拍| 欧美一区二区高清| 久久一区中文字幕| 亚洲国产精品va在线观看黑人| 欧美日本在线看| 国产精品乱人伦中文| 国内成+人亚洲+欧美+综合在线| 国产日韩在线一区| 一区二区高清在线| 免费的成人av| 一区二区三区黄色| 久久久久久**毛片大全| 欧美日韩四区| 国产精品免费福利| 国产欧美在线播放| 欧美一区二区三区免费在线看| 亚洲香蕉视频| 欧美在线黄色| 国产精品qvod| 在线精品福利| 久久久福利视频| 国产偷国产偷精品高清尤物| 欧美手机在线视频| 欧美在线综合| 欧美凹凸一区二区三区视频| 一区二区三区精品| 亚洲精品乱码久久久久| 欧美日本精品一区二区三区| 欧美一区二区| 久久精品久久99精品久久| 亚洲日本中文字幕区| 亚洲欧美日韩另类| 亚洲视频在线观看| 欧美国产精品一区| 欧美国产大片| 亚洲第一精品福利| 性欧美videos另类喷潮| 欧美日韩一区二区三区高清| 欧美一区二区在线免费观看| 亚洲一区欧美激情| 在线不卡免费欧美| 日韩一区二区久久| 国产在线精品一区二区夜色| 麻豆免费精品视频| 欧美日韩另类一区| 亚洲免费在线电影| 老司机67194精品线观看| 亚洲激情另类| 欧美一级夜夜爽| 一区在线影院| 亚洲欧美日韩在线播放| 亚洲电影成人| 国产精品捆绑调教| 蜜桃久久av| 久久久国产精品一区二区三区| 亚洲福利视频三区| 亚洲一区欧美激情| 一本久久精品一区二区| 久久综合久久美利坚合众国| 亚洲一二三四久久| 欧美三级电影一区| 91久久亚洲| 亚洲美女视频在线观看| 久久综合激情| 亚洲精品一区久久久久久| 91久久精品视频| 欧美日韩成人综合在线一区二区| 亚洲第一精品电影| 日韩午夜视频在线观看| 欧美日韩精品一区二区三区四区| 欧美波霸影院| 亚洲一区在线观看视频| 含羞草久久爱69一区| 欧美日韩大片| 亚洲综合成人婷婷小说| 亚洲国产精品久久91精品| 亚洲综合二区| 亚洲欧美日产图| 99国产精品国产精品久久| 亚洲国产精品久久久久婷婷老年 | 亚洲一区区二区| 国产精品视频yy9099|