日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Lerna 运行流程剖析

發布時間:2023/12/9 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Lerna 运行流程剖析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

大家好,我是若川。持續組織了6個月源碼共讀活動,感興趣的可以點此加我微信 ruochuan12?參與,每周大家一起學習200行左右的源碼,共同進步。同時極力推薦訂閱我寫的《學習源碼整體架構系列》?包含20余篇源碼文章。歷史面試系列

Lerna?運行流程剖析

https://www.zoo.team/article/lerna-js

前言

隨著前端組件、包庫等工程體系發展,業務組件和工具庫關系越來越復雜,非常容易遇到倉庫多,庫之間互相依賴。導致維護極其困難,發包過程非常繁瑣,極大程度地限制了前端同學的開發效率。

此刻,出現了一種新的項目管理方式—— Monorepo。一個倉庫管理多個項目。

MultiRepo 是目前常用的項目管理方式。但有些場景是不適用的,存在問題。

  • 多業務組件、互相依賴、無法復用

  • 發包流程復雜、版本管理痛苦

此刻就有了 lerna.js

簡介

Lerna (lerna) ?is a tool that optimizes the workflow around managing multi-package repositories with git and npm.

Lerna 是一個優化基于 git + npm 的多 package 的項目管理工具。

有哪些項目正在使用 Ta ?

  • Vue Cli https://github.com/vuejs/vue-cli

  • create-react-app https://github.com/babel/babel

  • mint-ui ?https://github.com/ElemeFE/mint-ui

    ......

知識點

通過閱讀本文,你將會學會下圖內容:

使用與實踐

基本指令

Lerna?的幾個基本常用指令, 不是本文重點哦。文檔在這里(https://lerna.js.org/)。

下圖是結構目錄等。

與工作區使用

//?package.json?添加 "workspaces":["packages/*" ] //?lerna.json?添加"useWorkspaces":true,"npmClient":?"yarn",//?配置好后,所有依賴就會安裝在最外層的?node_modules?中,且支持軟鏈接方式//?npm?7.x?之后,同樣支持工作區域

學習的過程中少不了查看實現過程和運行流程。接下來我們分析一下 Lerna 中的一些代碼,希望從中你能學到許多。

原理剖析

我們先 Github 克隆源碼(https://github.com/lerna/lerna)

觀察一下目錄

指令的初始化流程

腳手架入口文件位于 /core/lerna/cli.js

core/lerna/cli.js ?入口

#!/usr/bin/env?node"use?strict";/*?eslint-disable?import/no-dynamic-require,?global-require?*/ const?importLocal?=?require("import-local"); //?判斷是否處于本地包文件,下文會介紹 if?(importLocal(__filename))?{require("npmlog").info("cli",?"using?local?version?of?lerna"); }?else?{ //?進入真實的入口執行代碼require(".")(process.argv.slice(2));?//?[node,?lerna,?指令] }

如圖一和代碼入口的文件僅執行了一條判斷語句 ,其目的是為了當項目的局部環境和全局環境都存在 Lerna 時優先使用局部環境下的 Lerna 代碼

  • import-local 一個判斷是否本地包的方法庫

  • require(".") ?是導入當前目錄下的 index.js ?并傳入指令執行代碼 ( process.argv -> ?[node, lerna, 指令] )

core/lerna/index.js ?初始化

/**?省略相同代碼?*///?導入?@lerna/cli?文件? const?cli?=?require("@lerna/cli");//?.....?省略相同指令導入 //?導入?publish?指令文件 const?publishCmd?=?require("@lerna/publish/command"); const?pkg?=?require("./package.json");module.exports?=?main;//?最終導出方法 function?main(argv)?{const?context?=?{lernaVersion:?pkg.version,};return?cli()//?.....?省略?.command(publishCmd).parse(argv,?context);?//?解析注入指令?&?參數(版本號)? }

來到這個代碼中,如圖二和代碼實際上做了這幾件事

  • 初始化導入包 ("@lerna/cli")—— cli 實例

  • 導入所需要的指令文件

  • 通過 cli 實例的 command 方法注冊指令

  • parse(argv, context) 是執行解析注入指令和參數(版本號) 將 Cli | 指令 | 入參 進行模塊劃分,無論在業務中還是開源庫中,都是一種優秀的劃分方式

core/cli/index.js ?全局指令初始化

const?dedent?=?require("dedent");?//?去除空行 const?log?=?require("npmlog"); const?yargs?=?require("yargs/yargs"); const?{?globalOptions?}?=?require("@lerna/global-options");module.exports?=?lernaCLI;function?lernaCLI(argv,?cwd)?{const?cli?=?yargs(argv,?cwd);return?globalOptions(cli).usage("Usage:?$0?<command>?[options]").demandCommand(1,?"A?command?is?required.?Pass?--help?to?see?all?available?commands?and?options.")?//?期望命令個數.recommendCommands()?//?推薦命令.strict()??//?嚴格模式.fail((msg,?err)?=>?{//?...?省略}).alias("h",?"help")?//?別名.alias("v",?"version").wrap(cli.terminalWidth())?//?寬高?.epilogue(dedent`When?a?command?fails,?all?logs?are?written?to?lerna-debug.log?in?the?current?working?directory.For?more?information,?find?our?manual?at?https://github.com/lerna/lerna`);??//?結尾 }

查看圖三全局指令初始化,我們會發現全局指令接受實例的傳入,也支持指令的注冊。顯然這也導出了改 cli 實例(單一實例)

  • 指令的注冊使用了 yargs 包進行管理(yargs 不是本文重點,不贅述)

  • 返回實例,全局指令注冊 return 實例

  • Config 是基本的配置分組等

  • 導出實例給 core/lerna/index.js 調用 我們回到 ?core/lerna/index.js 文件,使用了 command 方法注冊指令傳入了導入的指令文件。

commands/ 業務指令的注冊

可以看到圖 4 中 commands 文件包中有著所有 lerna 指令的注冊文件,每個文件夾帶著 command.js 和 index.js

core/lerna/index.js 導入的都是該目錄中的 command.js (同入口邏輯在 handler 中執行了該目錄下的 index.js )

command.js 包括?yargs 的 command、aliases、describe、builder (執行前的參數操作)、handler (指令執行邏輯)?

以 list 指令舉例

  • 執行指令的邏輯的方法在 index.js

  • 繼承 Command 做 指令的初始化

  • 父類中會在 constructor 執行 initialize 和 execute 方法

const?{?Command?}?=?require("@lerna/command"); const?listable?=?require("@lerna/listable"); const?{?output?}?=?require("@lerna/output"); const?{?getFilteredPackages?}?=?require("@lerna/filter-options");module.exports?=?factory;function?factory(argv)?{return?new?ListCommand(argv); }class?ListCommand?extends?Command?{get?requiresGit()?{return?false;}initialize()?{let?chain?=?Promise.resolve();chain?=?chain.then(()?=>?getFilteredPackages(this.packageGraph,?this.execOpts,?this.options));chain?=?chain.then((filteredPackages)?=>?{this.result?=?listable.format(filteredPackages,?this.options);});return?chain;}execute()?{//?piping?to?`wc?-l`?should?not?yield?1?when?no?packages?matchedif?(this.result.text.length)?{output(this.result.text);}this.logger.success("found","%d?%s",this.result.count,this.result.count?===?1???"package"?:?"packages");} }module.exports.ListCommand?=?ListCommand;“

core/command/index.js ?所有指令的 Command Class

const?{?Project?}?=?require("@lerna/project"); //?省略大部分容錯?和?log class?Command?{constructor(_argv)?{const?argv?=?cloneDeep(_argv);//?"FooCommand"?=>?"foo"this.name?=?this.constructor.name.replace(/Command$/,?"").toLowerCase();//?composed?commands?are?called?from?other?commands,?like?publish?->?versionthis.composed?=?typeof?argv.composed?===?"string"?&&?argv.composed?!==?this.name;//?launch?the?commandlet?runner?=?new?Promise((resolve,?reject)?=>?{//?run?everything?inside?a?Promise?chain//?異步鏈let?chain?=?Promise.resolve();chain?=?chain.then(()?=>?{this.project?=?new?Project(argv.cwd);});//?配置、環境初始化等chain?=?chain.then(()?=>?this.configureEnvironment());chain?=?chain.then(()?=>?this.configureOptions());chain?=?chain.then(()?=>?this.configureProperties());chain?=?chain.then(()?=>?this.configureLogging());chain?=?chain.then(()?=>?this.runValidations());chain?=?chain.then(()?=>?this.runPreparations());//?最終執行邏輯chain?=?chain.then(()?=>?this.runCommand());chain.then((result)?=>?{warnIfHanging();resolve(result);},(err)?=>?{if?(err.pkg)?{//?Cleanly?log?specific?package?error?detailslogPackageError(err,?this.options.stream);}?else?if?(err.name?!==?"ValidationError")?{//?npmlog?does?some?funny?stuff?to?the?stack?by?default,//?so?pass?it?directly?to?avoid?duplication.log.error("",?cleanStack(err,?this.constructor.name));}//?ValidationError?does?not?trigger?a?log?dump,?nor?do?external?package?errorsif?(err.name?!==?"ValidationError"?&&?!err.pkg)?{writeLogFile(this.project.rootPath);}warnIfHanging();//?error?code?is?handled?by?cli.fail()reject(err);});});//?...省略部分代碼}runCommand()?{return?Promise.resolve()//?命令初始化.then(()?=>?this.initialize()).then((proceed)?=>?{if?(proceed?!==?false)?{//?指令執行return?this.execute();}//?early?exits?set?their?own?exitCode?(if?non-zero)});}//?子類不存在?時?拋出錯誤initialize()?{throw?new?ValidationError(this.name,?"initialize()?needs?to?be?implemented.");}execute()?{throw?new?ValidationError(this.name,?"execute()?needs?to?be?implemented.");} }module.exports.Command?=?Command;

在 Class 中最關心的就是 constructor 的邏輯 ,如圖 5 和代碼。上面寫到,每個子指令類會執行 initialize 和 execute 方法。我們整理一下

  • 創建 Promise.resolve() 異步 Chain。

  • 對全局配置、參數、環境初始化

  • 執行 runCommand 方法

  • runCommand 調用 initialize 和 execute(如果子類沒有將會 執行 父類拋出異常) 采用了模板模式,對子指令通邏輯統一模板化。基本的執行流程就是這樣。在這個 Class 中,很巧妙地將指令的初始化、指令的執行等邏輯均注冊在 Promise 的異步任務中。

  • 指令的執行邏輯均晚于 Cli 的同步代碼。(不影響 Cli 的代碼執行)

  • 所有異常錯誤都可以統一捕獲 通過上面的學習,我們幾乎了解了 Lerna 的 一個指令 輸入 -> 解析 -> 注冊 -> 執行 -> 輸出 的流程。

轉過頭我們看下腳手架初始化的第一步的 import-local 到底做了什么?

腳手架的初始化流程

import-local ?用于獲取 npm 是否包存在本地(當前工作區域),用于判斷全局安裝的包如果本地有安裝,優先用本地的,在 webpack-cli 中等絕大多數 cli 中都有運用。


const?path?=?require('path'); const?resolveCwd?=?require('resolve-cwd'); const?pkgDir?=?require('pkg-dir');module.exports?=?filename?=>?{//?'/Users/nvm/versions/node/v14.17.3/lib/node_modules/lerna'?全局文件夾const?globalDir?=?pkgDir.sync(path.dirname(filename));const?relativePath?=?path.relative(globalDir,?filename);?//?'cli.js'const?pkg?=?require(path.join(globalDir,?'package.json'));//?'/Users/Desktop/person/lerna-demo/node_modules/lerna/cli.js'?//?本地文件const?localFile?=?resolveCwd.silent(path.join(pkg.name,?relativePath));?//?'/Users/Desktop/person/lerna-demo/node_modules'??//?本地文件的?node_modulesconst?localNodeModules?=?path.join(process.cwd(),?'node_modules');?const?filenameInLocalNodeModules?=?!path.relative(localNodeModules,?filename).startsWith('..')?&&//?On?Windows,?if?`localNodeModules`?and?`filename`?are?on?different?partitions,?`path.relative()`?returns?the?value?of?`filename`,?resulting?in?`filenameInLocalNodeModules`?incorrectly?becoming?`true`.path.parse(localNodeModules).root?===?path.parse(filename).root;//?Use?`path.relative()`?to?detect?local?package?installation,//?because?__filename's?case?is?inconsistent?on?Windows//?Can?use?`===`?when?targeting?Node.js?8//?See?https://github.com/nodejs/node/issues/6624//?導入使用本地包return?!filenameInLocalNodeModules?&&?localFile?&&?path.relative(localFile,?filename)?!==?''?&&?require(localFile); };

通過最后一行,可以分析出,最核心的是解析出指定的 npm 包存在全局和 npm 的文件夾、路徑。進而判斷是 require() 本地還是全局。

問題 & 對比

對比和查看問題之前,我們要關注一下 Monorepo 單倉庫多項目管理的模式帶來的優勢。

前端工作中你是否會遇到以下問題?

問題 1:

前端同學小明發現了在小紅同學的項目中存在相同的業務邏輯

A: ?我選擇復制一下代碼

B: ?我選擇封裝成 npm 包多項目復用

顯然 A 方式就不是解決該問題的一種選項,完全不不符合應用程序的代碼設計思想。

大多數同學就會異口同聲我選擇 B

那么如果這個 npm 包在后續迭代過程中發現,包依賴也要隨之升級發布,怎么辦?

又或者業務中存在大多數這種場景,每個包沒有統一管理,花絕大多數時間在包依賴之間升級發布。以及各自包的迭代。

你可能只是刪除了一行代碼,你卻要每個依賴這個包的 npm 包全部執行一遍流程。

問題 2:

在開發中,避免不了對 npm 包的更新,當你更新過程中少不了統一的打 tag 以及當前更新的包的影響面。是小的改動,還是大版本 api 無法兼容的升級。這些操作可能都會導致開發的項目中依賴未及時更新,tag 標記錯誤出現問題。

優勢 & 劣勢

就目前來看,Monorepo 解決的是,多倉庫之間的依賴變更升級,批量包管理節省時間成本的事情。

所以在開源社區中使用這種模式的一般存在于依賴拆分包,但是彼此之間獨立的項目(npm 和腳手架等等)

但是 Lerna 的多包管理也有不足之處

  • 依賴之間調試復雜

  • changelog 信息不完整

  • Lerna 本身不支持工作區概念,需要借助其他工具

  • CI 定制成本大

其他 MultiRepo 方案

從圖中我們可以看出

pnpm 更注重包的管理(像下載,穩定準確性等),相比之下 Lerna 更注重包的發布流程規范指定。

二者適用的場景略有不同。

拓展

import-local 解析

如圖六和下方代碼,很顯然 resolve-cwd 和 pkg-dir 是實現 import-local 的主要工具包

  • resolve-cwd 解析類似 require.Resolve () 的模塊的路徑,但是要從當前工作目錄中解析。

  • pkg-dir 從根目錄查找節點。js 項目或 npm 包

resolve-cwd 中使用 resolve-from 工具包解析路徑來源


const?path?=?require('path'); const?Module?=?require('module'); //?省略部分代碼 const?fromFile?=?path.join(fromDirectory,?'noop.js');//?'/Users/Desktop/home/person/lerna-demo/noop.js'const?resolveFileName?=?()?=>?Module._resolveFilename(moduleId,?{id:?fromFile,filename:?fromFile,paths:?Module._nodeModulePaths(fromDirectory) });
  • 使用原生的 module 的原生的兩個 Api:Module._resolveFilename 和 Module._nodeModulePaths

  • Module._nodeModulePaths 推斷出可能存在該 node/js/json 等包文件的路徑數組

  • 而在 Module._resolveFilename 這個方法中,首先會去檢查,本地模塊是否有這個模塊,如果有,直接返回,如果沒有,繼續往下查找。模塊對象的屬性 包含

  • module.id

  • module.filename

  • module.loaded

  • module.parent

  • module.children

  • module.paths Module 是實現 require() 和 熱加載的核心方法之一。

部分實現可以參考阮一峰老師的 require() 源碼解讀(https://www.ruanyifeng.com/blog/2015/05/require.html)


pkg-dir ?中使用 find-up 工具包 向上找全局包文件夾

const?locatePath?=?require('locate-path'); const?stop?=?Symbol('findUp.stop');module.exports.sync?=?(name,?options?=?{})?=>?{let?directory?=?path.resolve(options.cwd?||?'');const?{root}?=?path.parse(directory);const?paths?=?[].concat(name);const?runMatcher?=?locateOptions?=>?{if?(typeof?name?!==?'function')?{return?locatePath.sync(paths,?locateOptions);}const?foundPath?=?name(locateOptions.cwd);if?(typeof?foundPath?===?'string')?{return?locatePath.sync([foundPath],?locateOptions);}return?foundPath;};//?eslint-disable-next-line?no-constant-conditionwhile?(true)?{const?foundPath?=?runMatcher({...options,?cwd:?directory});if?(foundPath?===?stop)?{return;}if?(foundPath)?{return?path.resolve(directory,?foundPath);}if?(directory?===?root)?{return;}directory?=?path.dirname(directory);} };
  • 全局包文件夾全的在當前執行 cwd 向上查找存在 package.json 文件

  • 所以 locatePath.sync 接受一個查找的文件路徑數組和執行的 cwd 路徑

  • 通過 while 循環直至找到 return path.resolve(directory, foundPath);

什么是軟鏈接

fs.symlink(target, path[, type], callback)?Node/symlink (http://nodejs.cn/api/fs.html#fssymlinktarget-path-type-callback)

target <string> | <Buffer> | <URL> // 目標文件 path <string> | <Buffer> | <URL> // 創建軟鏈對應的地址 type <string>

該 API 會創建路徑為 path 的鏈接,該鏈接指向 target。type 參數僅在 Windows 上可用,在其他平臺上則會被忽略。可以被設置為 dir、 file 或 function。如果未設置 type 參數,則 Node.js 將會自動檢測 target 的類型并使用 file 或 dir。

如果 target 不存在,則將會使用 'file'。Windows 上的連接點要求目標路徑是絕對路徑。當使用 'function' 時,target 參數將會自動地標準化為絕對路徑。

總結

  • 從 Lerna 的流程設計中,我們可以發現,每個可執行的 Node 程序,Lerna 都對其進行了拆分,再合。在自己的代碼設計中,相信你也會遇到雜亂的代碼。此刻你是無視,還是從“雜” -> “分” -> “合”來整理代碼

  • 其次我們看到 Lerna 中,使用了單例來注冊指令。在注冊指令,又采用了面相對象和模板模式,來抽離公共的初始化邏輯。而在指令的執行過程中,全是微任務的任務執行,這都是可以學習的設計思路和設計模式。

  • 最后其他 MultiRepo 方案對比中可以看出,工具賦予的能力都有其優劣,沒有好與不好,只有更適合。

參考文獻

  • Lerna 文檔(https://lerna.js.org)

  • 阮一峰老師的require() 源碼解讀(https://www.ruanyifeng.com/blog/2015/05/require.html)

·················?若川簡介?·················

你好,我是若川,畢業于江西高校。現在是一名前端開發“工程師”。寫有《學習源碼整體架構系列》20余篇,在知乎、掘金收獲超百萬閱讀。
從2014年起,每年都會寫一篇年度總結,已經寫了7篇,點擊查看年度總結。
同時,最近組織了源碼共讀活動,幫助3000+前端人學會看源碼。公眾號愿景:幫助5年內前端人走向前列。

識別方二維碼加我微信、拉你進源碼共讀

今日話題

略。分享、收藏、點贊、在看我的文章就是對我最大的支持~

總結

以上是生活随笔為你收集整理的Lerna 运行流程剖析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

日本丶国产丶欧美色综合 | 夜夜爱av | 免费网站在线观看人 | 麻豆视频在线免费观看 | 操操操影院 | 久久综合色8888 | 国产精品18久久久久久不卡孕妇 | 欧美一级看片 | 综合色在线观看 | 中文字幕视频播放 | 五月天六月丁香 | 久久久国产精品麻豆 | 91色综合 | 麻豆精品视频在线 | 天天躁天天躁天天躁婷 | 中中文字幕av在线 | 国产精品美女久久久久久久 | 91色偷偷 | 亚洲乱码久久久 | www.伊人网| 国产精品 日本 | a特级毛片 | 99热99| 精品中文字幕在线播放 | www黄色大片 | 国产高清久久 | 美女在线观看av | 久久精品99精品国产香蕉 | 最新av中文字幕 | 日日夜夜天天 | 国产尤物在线观看 | 激情欧美丁香 | 成人一区二区三区在线观看 | 欧美高清成人 | 日韩一区二区免费播放 | 蜜桃av观看| 五月天六月丁香 | 午夜精品福利一区二区三区蜜桃 | 91麻豆精品国产91久久久久久久久 | 99热国产在线中文 | 人人舔人人爽 | 波多野结衣电影一区二区三区 | 天天草视频 | a'aaa级片在线观看 | 久久99国产一区二区三区 | 四虎影视成人精品国库在线观看 | 日韩精品不卡在线观看 | 美女露久久 | 国模视频一区二区 | 91免费黄视频 | 日本女人b | 国产无遮挡猛进猛出免费软件 | 欧美福利视频一区 | 亚洲乱亚洲乱妇 | 91麻豆精品国产自产在线 | 超碰夜夜 | 欧美日韩不卡一区 | www.五月婷婷| 手机在线观看国产精品 | 久久国产免费视频 | 手机av永久免费 | 日韩成片 | 色在线国产 | 缴情综合网五月天 | 久久精品国产一区二区 | www.五月天激情| 国产 日韩 在线 亚洲 字幕 中文 | 97精产国品一二三产区在线 | 在线观看视频黄色 | 日韩精品在线看 | 日韩视频三区 | 欧美analxxxx | 香蕉视频91| 操操操影院| 日韩av免费网站 | 在线看片日韩 | 日韩中文在线视频 | 999抗病毒口服液 | av久久久| 国产精品美女视频网站 | 999在线视频 | 在线视频福利 | 国产精品a级 | 夜夜夜夜夜夜操 | 在线观看亚洲电影 | 久久精品视频国产 | 国产一区二区三区视频在线 | 日韩欧美在线免费 | 中文区中文字幕免费看 | 国产美女精品久久久 | 色欧美日韩 | www.日本色 | 99这里有精品 | 久久与婷婷 | 国产99久久精品一区二区永久免费 | 国产亲近乱来精品 | 国产精品视频你懂的 | 国产中文字幕久久 | 九九视频在线观看视频6 | 亚洲精品小视频 | 日韩成人精品一区二区 | 久久免费视频精品 | 国产精品大尺度 | 亚洲黄色高清 | 国产精品一区二区在线观看免费 | 在线最新av | 香蕉视频在线看 | 日韩在线免费高清视频 | 日韩在观看线 | 91综合视频在线观看 | 色婷婷午夜 | 久久经典国产视频 | 93久久精品日日躁夜夜躁欧美 | 精品在线播放视频 | 香蕉视频免费看 | 免费黄色av.| 黄色网址在线播放 | 一区二区三区免费在线播放 | 国产精品va在线观看入 | 天天爽天天射 | 日韩黄色免费电影 | 香蕉视频最新网址 | 欧美成人一区二区 | 夜夜骑天天操 | 久久婷婷视频 | 天天天天天操 | 亚洲高清在线 | 国产日女人 | 久久欧洲视频 | 久久黄色成人 | 人人插人人做 | 国色天香在线观看 | av资源网在线播放 | 啪啪免费观看网站 | 日韩三级不卡 | 国产精品亚洲片在线播放 | www黄色软件| 99视频久 | 国产日韩亚洲 | 精品国产伦一区二区三区观看体验 | 久久久www成人免费毛片麻豆 | 国产福利在线免费观看 | 欧美日韩18 | 伊人欧美 | 国产精品毛片一区二区在线看 | 综合网五月天 | 免费看网站在线 | 亚洲一级理论片 | 国产精品美女久久久久久 | 国产一区二区精品在线 | a电影在线观看 | av免费网页| 国产中文在线视频 | 国产成人久久精品一区二区三区 | 成人一级在线 | 日韩在线观看小视频 | 亚洲欧美日韩精品久久久 | 国产精品久久久久久久久搜平片 | 国产精品亚洲成人 | 久久午夜精品视频 | 国内精品久久久久久中文字幕 | 国产精品久久久久一区二区三区共 | 99久久精| 久久久污 | 日日干影院 | 日韩一区二区三区免费视频 | 国产精品区在线观看 | 日韩午夜在线观看 | 99久久激情 | 97国产大学生情侣酒店的特点 | 国产精品伦一区二区三区视频 | 婷婷色影院 | 黄色成人在线网站 | 91精品国产高清自在线观看 | 三级在线播放视频 | 亚洲乱码国产乱码精品天美传媒 | se视频网址 | 1024手机基地在线观看 | 国产精品原创av片国产免费 | 精品美女久久 | 在线观看一区 | 免费看成人av | 黄色大片免费网站 | 天堂在线视频免费观看 | 日韩精品一区二区三区第95 | 狠狠撸电影 | 久久久人人人 | 二区三区毛片 | 久久色视频 | 99精品视频免费全部在线 | 免费观看性生活大片 | 国产精品麻豆视频 | 欧美一区二区在线 | 亚洲综合射 | 国产精品久久99综合免费观看尤物 | 欧美一级免费 | 丁香视频全集免费观看 | 亚洲精品理论 | 免费在线一区二区 | 成人全视频免费观看在线看 | 91视频麻豆| 欧美一级片在线观看视频 | 嫩草伊人久久精品少妇av | 亚洲伦理一区二区 | 婷婷丁香狠狠爱 | 福利视频一区二区 | 福利精品在线 | 天天色成人 | 国产精品99久久久久久武松影视 | 人人射人人插 | 国内精品久久久精品电影院 | 国产91勾搭技师精品 | 久久老司机精品视频 | 日韩在线视频播放 | 伊人网站 | 四虎在线免费观看 | 天堂av在线免费观看 | 狠狠干婷婷| 亚洲国产精品500在线观看 | 视频国产精品 | 91在线看片 | 久久久久久久久久影院 | 国产精品毛片一区二区在线 | 久久99精品久久久久久久久久久久 | 欧美精品中文 | a级国产乱理论片在线观看 伊人宗合网 | 亚洲国产精久久久久久久 | 婷婷久久综合九色综合 | 日本少妇视频 | 久久精品免费电影 | 国产剧在线观看片 | 天天爽综合网 | 超碰在线人 | 日一日干一干 | 美女视频久久黄 | 免费视频91蜜桃 | 97电影院网 | 五月天久久激情 | 99久久综合国产精品二区 | 国产精品成久久久久三级 | 色五月成人 | 亚洲国产精彩中文乱码av | 美女视频国产 | 日韩理论在线视频 | 九九交易行官网 | 青青草国产精品视频 | 人人网av| 久久99精品视频 | 国产精久久 | 中文在线a∨在线 | 色综合五月 | 天堂黄色片| 国产99免费视频 | 美女视频是黄的免费观看 | 在线国产日本 | 深爱激情五月综合 | 国产成人精品综合久久久久99 | 成人av手机在线 | 久日精品| 青草草在线视频 | 亚洲天堂色婷婷 | 99精品在线| 欧美综合色在线图区 | 五月天久久激情 | 亚洲激情综合 | 免费黄色网址网站 | 国产一区 在线播放 | 日韩色爱 | 黄色三级久久 | 国产高清免费av | 999毛片| 丁香婷婷久久久综合精品国产 | 欧美特一级片 | 成人在线一区二区 | www操操| 国产一区二区三区视频在线 | 免费视频一级片 | 99麻豆久久久国产精品免费 | 99久久久国产精品免费99 | 97在线观看免费高清 | 中文字幕免费观看视频 | 色偷偷中文字幕 | 国产淫片| 狠狠狠狠狠狠天天爱 | 男女靠逼app | 狠狠色丁香婷婷综合基地 | 99久久99久久 | 国产精品麻豆视频 | 久久久午夜电影 | 国产精彩视频一区二区 | 欧美一区二视频在线免费观看 | 日本精品久久久久久 | 中文字幕免费高清 | 在线网址你懂得 | 国产精品久久久久久一二三四五 | 在线视频91| 91精品久久久久久久99蜜桃 | 久色小说 | www.狠狠操 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 成人黄色免费在线观看 | 久久一区国产 | 国产一区二区三区免费观看视频 | 狠狠色伊人亚洲综合成人 | 午夜久久久久久久 | 激情久久久久久久久久久久久久久久 | 日韩视频一区二区三区在线播放免费观看 | 久久99国产精品久久99 | 色哟哟国产精品 | 国产精品久久久久久久久毛片 | 国产在线精品视频 | 五月婷婷久久丁香 | 国产精品一区二区三区久久久 | 97精品超碰一区二区三区 | 欧美一二三区在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 久久久资源 | 日韩高清成人在线 | 片网址 | 欧美一级视频免费看 | 欧美一区二区三区在线 | 最近免费观看的电影完整版 | 国产高清在线精品 | 天堂入口网站 | av免费在线网站 | 免费亚洲一区二区 | 午夜久久 | 91豆花在线 | 国产又粗又长的视频 | 中文一二区 | 久久久91精品国产一区二区精品 | 国产一区91 | 色丁香色婷婷 | 日本在线观看一区二区三区 | 天天操夜夜看 | 国产91在线免费视频 | 97av超碰 | 日韩二区三区 | 69精品人人人人 | 在线看国产日韩 | 国产精品久久久久久久免费观看 | 亚洲国产中文字幕在线观看 | 久久人91精品久久久久久不卡 | 在线免费黄色av | ,午夜性刺激免费看视频 | 国内久久看| 在线韩国电影免费观影完整版 | 中文字幕资源站 | 最近日韩中文字幕中文 | 精品96久久久久久中文字幕无 | 成人久久久电影 | 国产色视频一区二区三区qq号 | av在线一二三区 | 婷婷视频在线播放 | japanesexxx乱女另类 | 波多野结衣视频一区 | 综合激情网 | 香蕉影视app| 中文字幕资源网 | 在线免费黄色 | 国产精选在线观看 | 久久久福利视频 | 欧美a影视 | 五月天久久激情 | 久久九九精品 | 久久在线免费视频 | 99草在线视频 | 欧美成人视 | 亚洲dvd| 男女靠逼app | 日韩免费观看一区二区 | 亚洲人毛片 | 国产成人精品福利 | 免费观看mv大片高清 | 国产手机av | 99日精品 | 激情伊人五月天久久综合 | 午夜视频免费播放 | 成人va视频| 欧美一级电影免费观看 | 黄色在线免费观看网站 | 日韩在线 一区二区 | 91色一区二区三区 | 精品久久久久久综合 | 国产中文字幕网 | 国产午夜一级毛片 | 久久乐九色婷婷综合色狠狠182 | av免费在线网站 | 久久看片网 | 日韩欧美国产成人 | 久久国产电影 | 四虎影视成人精品国库在线观看 | 伊在线视频 | 六月丁香婷婷网 | 国产一区二区免费在线观看 | 999视频在线观看 | 亚洲激情婷婷 | 美女一级毛片视频 | 欧美精品久久天天躁 | 九九99视频 | 韩国一区在线 | 欧美一区二区三区四区夜夜大片 | 一区二区三区免费看 | 日本在线成人 | 免费日韩 精品中文字幕视频在线 | 少妇精品久久久一区二区免费 | 免费看国产a | 日本高清dvd | 欧美久久久久久久久久久 | 综合色亚洲 | 欧美日韩亚洲国产一区 | 夜夜干天天操 | 久久精品一区二区 | 中文字幕视频网 | 在线综合 亚洲 欧美在线视频 | 91精品老司机久久一区啪 | 九九av| 亚洲午夜久久久久久久久久久 | 超碰在线中文字幕 | 九九视频精品在线 | 免费视频成人 | 久草综合在线 | 久久国产热视频 | av成人免费在线看 | 91九色国产| 成人一级影视 | 色婷婷电影网 | 黄色一级网 | 午夜精品久久久久久久爽 | av一区二区在线观看中文字幕 | 97免费在线观看视频 | 国产不卡视频在线播放 | 久草免费福利在线观看 | 国产99久久久国产精品 | 玖玖在线视频观看 | 五月天激情电影 | 久久人人射 | 国产精品日韩在线播放 | www五月天婷婷 | 奇米影视777四色米奇影院 | 成人国产精品av | 黄色电影网站在线观看 | 亚洲精品 在线视频 | 日韩成人精品在线观看 | 亚洲一二区精品 | 91精品视频在线观看免费 | 91视频高清免费 | 五月天久久婷婷 | 久久久久久久国产精品视频 | 少妇精69xxtheporn | 91高清完整版在线观看 | 97精品在线观看 | 国产精品99蜜臀久久不卡二区 | 国产在线高清 | 亚州人成在线播放 | 91精品推荐 | 在线视频99| 国产日韩中文字幕 | 日韩国产欧美在线视频 | 成人欧美日韩国产 | 黄色成人小视频 | 色综合久久五月 | 中文字幕中文 | 免费精品在线 | 一区二区三区免费在线播放 | 久久精品xxx| 亚洲v欧美v国产v在线观看 | 天天爽天天爽夜夜爽 | 欧美尹人 | 国产视频在线观看一区 | 精品久久久精品 | 久久综合九色99 | 精品视频9999 | 色噜噜日韩精品一区二区三区视频 | 国产91对白在线 | 日韩午夜在线播放 | 久久久久久久久久久成人 | 91桃色免费视频 | 久久久久国产视频 | 国产乱码精品一区二区三区介绍 | 国产91探花 | 日韩电影中文字幕 | 国产一区二区电影在线观看 | 日本成址在线观看 | 日本狠狠色 | 日韩精品一区二区三区第95 | 久久国产二区 | 国产亚洲精品电影 | 日韩乱色精品一区二区 | 国产区第一页 | 亚洲 欧美 成人 | 91精品婷婷国产综合久久蝌蚪 | 四虎在线影视 | 久久久精品小视频 | 国产欧美精品一区二区三区四区 | 91桃色免费观看 | 超碰在线人人草 | 日韩成人不卡 | 久久婷婷一区 | 色婷婷av国产精品 | 国产91免费在线 | 欧美日韩在线观看不卡 | 久久久久久久久亚洲精品 | 亚洲欧洲成人 | 精品国产免费人成在线观看 | 在线观看一区 | 视频在线观看日韩 | 成人av电影免费观看 | 激情五月亚洲 | 国产精品亚 | 一区二区三区四区精品 | 欧美男女爱爱视频 | 久久久久成人精品 | 免费a v在线| 爱情影院aqdy鲁丝片二区 | 欧美最新另类人妖 | 日韩高清精品免费观看 | 五月开心婷婷网 | 国产精品av在线免费观看 | 91麻豆操 | 欧美成年人在线观看 | 激情久久伊人 | www视频在线免费观看 | 久久久久久久久久久久av | 99这里只有久久精品视频 | 亚洲aⅴ在线观看 | av免费在线观看1 | aa一级片 | 国产成人亚洲精品自产在线 | 日韩一区二区三区在线观看 | 狠狠操夜夜操 | 91在线观看欧美日韩 | 97精品国产97久久久久久久久久久久 | 97国产小视频 | 婷婷六月丁香激情 | 久久精品国产99国产 | 国产视频2区 | 日韩啪视频| 久久大片 | 国产一级二级三级在线观看 | 国产不卡视频在线播放 | 成人毛片100免费观看 | 精品欧美一区二区三区久久久 | 丁香六月激情 | 国产中文字幕在线观看 | 久久艹影院 | 欧美日韩综合在线观看 | 日韩精品视频免费专区在线播放 | 久久久久久激情 | 成人手机在线视频 | 成年人在线免费看视频 | 国产欧美在线一区二区三区 | 免费在线观看av网站 | 日韩高清二区 | 久久综合免费视频 | 国产午夜不卡 | 色在线国产 | 国产aaa毛片 | 日韩免费 | aa一级片 | 99精品国产高清在线观看 | 96国产精品视频 | 欧美日韩99 | 久久婷婷一区二区三区 | 成人免费共享视频 | 日本99热 | 日韩欧美在线免费观看 | 操操碰| 国产亚洲精品久久久久久久久久久久 | 蜜臀久久99精品久久久酒店新书 | 中文久久精品 | 亚洲视频,欧洲视频 | 天天躁日日躁狠狠躁av中文 | 亚洲精品美女视频 | 久草视频免费观 | 国产成人一区二区三区在线观看 | 在线日本看片免费人成视久网 | av成人免费在线 | 亚洲国产中文字幕在线 | 国产综合福利在线 | 五月天综合激情网 | 久久亚洲私人国产精品va | 天天草综合网 | 亚洲乱码久久 | 中文av在线免费观看 | 色com网 | 激情久久久 | 6080yy精品一区二区三区 | 日韩免费网站 | 日韩在线视频播放 | 91av综合 | 81国产精品久久久久久久久久 | 成片视频免费观看 | 国产亚洲精品久久19p | 91免费高清观看 | 四虎影视成人永久免费观看亚洲欧美 | 在线观看免费观看在线91 | 免费无遮挡动漫网站 | 国产精品九九视频 | 狠狠干综合 | 欧美日本不卡高清 | 欧美成人猛片 | 欧美精品一区二区免费 | 在线精品视频免费播放 | 中文字幕在线观看资源 | 99视频在线免费 | 在线欧美小视频 | 亚洲一区美女视频在线观看免费 | 亚洲精品久久久久中文字幕m男 | 国产高清在线精品 | 9在线观看免费高清完整版在线观看明 | 欧美天天综合网 | 日韩激情小视频 | 国产精品久久久久久久久软件 | 国产96在线 | 日韩理论电影网 | 黄色片免费电影 | 福利视频网址 | 欧美精品一区二区在线观看 | 中文字幕亚洲欧美日韩2019 | 日韩成人免费在线观看 | 97操碰| 五月天堂网 | 国产精品永久免费观看 | 91av在线国产 | 色婷婷啪啪免费在线电影观看 | 国精产品999国精产 久久久久 | 性色av免费观看 | 精品国产电影一区 | 97在线免费| 四虎在线影视 | 99这里只有精品99 | 精品在线不卡 | 亚洲国产精品小视频 | 91在线视频一区 | 香蕉久草| 狠狠狠狠狠色综合 | 久爱精品在线 | 在线视频在线观看 | 免费观看黄色12片一级视频 | 天天色天天综合网 | 天天干天天操天天搞 | 亚洲婷婷综合色高清在线 | 日韩精品久久一区二区 | 中文字幕中文字幕中文字幕 | 成人av亚洲 | 亚洲午夜精品久久久久久久久久久久 | 亚洲精品国产区 | 夜添久久精品亚洲国产精品 | www.伊人网 | 国产裸体永久免费视频网站 | 99精品免费在线 | 亚洲高清视频在线观看免费 | 青青草国产免费 | 日日操网| 欧美福利片在线观看 | 成人国产精品久久久久久亚洲 | 亚洲九九精品 | 国产精品免费在线观看视频 | 亚洲成人蜜桃 | 一区中文字幕在线观看 | 久久久久久影视 | 黄色av高清 | 精精国产xxxx视频在线播放 | 97天堂| 97超碰成人| 美女中文字幕 | 五月婷婷六月丁香在线观看 | 三级黄色大片在线观看 | 91亚洲精品国偷拍自产在线观看 | 区一区二区三在线观看 | 欧美在线视频精品 | 女人18片| 99精品视频中文字幕 | 日韩精品一区二区三区在线播放 | 国产一卡二卡在线 | 久久久国产电影 | 久久精品精品 | 91黄色免费网站 | 精品中文字幕在线播放 | 91福利小视频 | a级国产乱理论片在线观看 伊人宗合网 | 波多野结衣电影久久 | 日韩欧美一区二区三区免费观看 | 久草网视频在线观看 | 免费看91的网站 | 最新日韩在线 | 色久av | 久久综合狠狠综合久久激情 | 国产第一二区 | av不卡免费在线观看 | 天天艹天天干天天 | 手机成人在线 | 日本久久精品视频 | 久久精品91视频 | 最新国产视频 | 久久国产精品免费 | 国产精品一区二区白浆 | 中文字幕在线观看视频免费 | 国产aaa免费视频 | 日韩系列在线 | 欧美久久久久久久久中文字幕 | 五月天伊人网 | 亚州精品在线视频 | 91视频首页 | 欧美性爽爽 | 中文一区在线观看 | 视频在线精品 | 日韩在线视频二区 | 成人久久18免费网站麻豆 | 91在线看网站 | 久久久久久久久艹 | 天天天操天天天干 | 亚州av免费| 97偷拍在线视频 | 亚洲一区精品二人人爽久久 | 麻豆国产视频下载 | 国产精品综合久久 | 天天躁日日躁狠狠躁av麻豆 | 亚洲午夜久久久久久久久电影网 | 亚洲精品高清一区二区三区四区 | 色综合天天综合 | 国产第一福利 | 在线电影av | 亚洲精品国精品久久99热 | 国内成人综合 | 九九精品视频在线看 | 国产美女精品久久久 | 四虎永久免费 | 一区二区不卡在线观看 | 亚洲精品高清视频在线观看 | 久久天天躁狠狠躁夜夜不卡公司 | 午夜视频免费 | 国产永久网站 | 午夜精品导航 | 国产一级二级在线 | 黄色亚洲大片免费在线观看 | 中文字幕亚洲欧美日韩 | 六月色 | 久久久免费在线观看 | 天天做天天爱天天综合网 | 久久视频精品在线观看 | 久草在线在线精品观看 | 成人黄色一级视频 | 成人一区电影 | 99久久一区 | a视频免费在线观看 | 欧美一二三区在线观看 | 久久福利综合 | 午夜精品av | 黄色一级网 | 这里只有精品视频在线观看 | 日本天天操 | 亚洲情影院 | www.久久91| 17婷婷久久www| 天天爽夜夜爽精品视频婷婷 | 国产精品成人一区二区三区吃奶 | 久久99热这里只有精品国产 | 激情久久综合网 | 国产午夜精品久久久久久久久久 | 国产手机在线观看视频 | 伊人超碰在线 | 免费三级黄色片 | 久操视频在线播放 | 欧美a级免费视频 | 国产免码va在线观看免费 | 成人xxxx | 992tv在线观看网站 | 91久久精品一区二区二区 | 免费看黄的 | 欧美在线观看视频一区二区 | 国产 日韩 中文字幕 | 精品99免费 | 在线国产日本 | 国产韩国日本高清视频 | 欧美a级一区二区 | 91大神精品视频 | 国产亚洲精品久久久久久移动网络 | 亚洲理论片在线观看 | 狠狠操91| 中文字幕电影网 | 91av资源网| 超碰在线97免费 | 97国产精品 | 蜜臀久久99精品久久久无需会员 | 91精品啪啪 | 香蕉久久久久 | 在线观看日本高清mv视频 | 亚洲视频播放 | 国产v亚洲v | 91人人澡 | 免费日韩一区二区 | 久久国产综合视频 | 99久久精品免费看国产免费软件 | 麻豆视频免费观看 | 亚洲精品乱码久久久久久蜜桃欧美 | 亚洲一区二区三区四区精品 | 亚洲国产网站 | 欧美性极品xxxx娇小 | 日韩欧美高清一区二区 | 四虎影视成人永久免费观看亚洲欧美 | 91九色成人蝌蚪首页 | 国产成人福利在线 | 免费美女久久99 | 国产精品久久久久久欧美 | 国产精品成人一区二区 | 亚洲精品视频在线播放 | 在线观看视频日韩 | 99色精品视频 | 日韩在线一二三区 | 最新av免费在线 | 波多野结衣在线播放视频 | 夜夜躁日日躁狠狠久久av | 天天爱天天插 | 国产精品99页 | 亚欧洲精品视频在线观看 | 亚洲闷骚少妇在线观看网站 | 日韩一区正在播放 | 波多野结衣一区 | 91在线播放视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | 91黄视频在线 | 激情欧美xxxx | 美女网站久久 | 国产精品久久久久久a | 国产玖玖在线 | 激情视频免费在线 | 成人资源站 | 九九热有精品 | 日韩av区| 热久久视久久精品18亚洲精品 | 99国产精品久久久久久久久久 | 91亚州| 久久黄色片子 | 一本到视频在线观看 | 久久爱资源网 | 手机看片国产 | 免费h精品视频在线播放 | 91av在线精品| 在线视频观看你懂的 | 日韩精品在线一区 | 欧美精品在线视频观看 | 少妇啪啪av入口 | 又黄又爽又色无遮挡免费 | 在线观看免费国产小视频 | 成人免费xyz网站 | 青青草在久久免费久久免费 | 成年人av在线播放 | 久久久免费视频播放 | 国产中文在线播放 | 97超碰资源网 | 亚洲国产剧情 | 婷婷丁香激情网 | 国产群p视频 | 亚洲午夜精品在线观看 | 91免费看黄色 | 成年人黄色在线观看 | 99福利片| 日韩三级不卡 | 国产精品专区在线观看 | 午夜色站 | 久久精选 | 亚洲国产精品免费 | 一区二区毛片 | 亚洲午夜精品一区 | 99在线播放 | 成人免费共享视频 | 在线视频婷婷 | 婷婷综合电影 | 九七视频在线观看 | 亚洲,播放 | 久久综合狠狠综合久久狠狠色综合 | 欧美日韩国产免费视频 | 国产小视频福利在线 | 中文字幕精品一区久久久久 | 男女拍拍免费视频 | 免费在线观看日韩视频 | 免费精品久久久 | 日日夜夜骑 | 依人成人综合网 | 在线观看免费黄色 | 欧美最新大片在线看 | 精品国产乱码久久久久久天美 | 玖玖视频国产 | 国精产品999国精产品视频 | 久草电影免费在线观看 | 玖玖视频国产 | 波多野结衣在线观看一区二区三区 | 免费人做人爱www的视 | 亚洲精品在线视频网站 | 国产欧美精品在线观看 | 黄色电影网站在线观看 | 色狠狠综合天天综合综合 | 色国产精品 | 国产精品久久久久久五月尺 | 日本99干网 | 国产精品情侣视频 | 国产黄色精品 | 在线观看岛国av | 九九热1| 欧美成人日韩 | 中文字幕av免费在线观看 | 日韩免费电影在线观看 | 欧美动漫一区二区三区 | 在线观看中文字幕亚洲 | 97中文字幕 | 13日本xxxxxⅹxxx20 | av高清一区二区三区 | 国产91亚洲精品 | 国产资源精品在线观看 | 91av欧美 | .精品久久久麻豆国产精品 亚洲va欧美 | 亚洲精品免费视频 | 欧美色图视频一区 | 丁香花在线观看免费完整版视频 | 人人爱人人添 | 97国产在线播放 | 亚洲综合在线一区二区三区 | 久久婷婷一区 | 亚洲永久精品视频 | 国产精品一区在线观看你懂的 | 国产特级毛片aaaaaa高清 | 91亚洲网站 | 婷婷综合| 中文字幕久久精品 | 97在线视频免费播放 | 亚洲国产成人在线 | 在线观看免费色 | 成人香蕉视频 | 欧美老人xxxx18 | 久久久久久久久久影视 | 成人中文字幕+乱码+中文字幕 | 亚洲欧美成人 | 精品久久久久久亚洲综合网站 | 国产小视频免费观看 | 色吊丝在线永久观看最新版本 | 在线观看亚洲视频 | 日韩二区三区在线 | 99国产精品视频免费观看一公开 | 亚洲精品欧洲精品 | 日韩一区二区三区在线观看 | 成人毛片一区 | 亚洲天堂网在线观看视频 | 午夜视频一区二区三区 | 色婷婷激情综合 | 91传媒在线观看 | 天天做天天爱夜夜爽 | 成人资源在线 | 91视频专区| 免费a v观看 | 一本到在线| 久久国产色 | 美女露久久 | 97成人精品视频在线观看 | 欧美一区二区三区不卡 | 天天激情天天干 | 美女网站免费福利视频 | 久久午夜网 | 久久人人97超碰精品888 | 午夜色婷婷 | 在线观看免费观看在线91 | 99热这里有| 成人天堂网 | 日韩久久久久久久久久久久 | 久久影院亚洲 | 日韩欧美xxxx | 天天射狠狠干 | 中文字幕 91 | 97精品国产91久久久久久久 | 欧美成人久久 | 国产最顶级的黄色片在线免费观看 | 亚洲国产日韩欧美 | 国产成人精品久久亚洲高清不卡 | 久久精品99国产精品亚洲最刺激 | 99福利影院 | 狠狠躁天天躁综合网 | 亚洲精品成人免费 | 成年人在线观看免费视频 | 久久五月网 | 2024av| 中文字幕在线免费 | 中文字幕乱码日本亚洲一区二区 | 国内丰满少妇猛烈精品播放 | 激情视频国产 | 亚洲精品乱码久久久久久久久久 | 免费三级大片 | 一本一本久久aa综合精品 | 成人国产精品一区二区 | 夜夜躁日日躁狠狠久久88av | 精品视频免费播放 | 玖玖视频网| 精品国产一区二区三区久久久蜜月 | 免费a v网站 | 国产免费一区二区三区最新6 | 中文在线a∨在线 | 色综合天天综合在线视频 | 精品国产大片 |